blob: f4022ae90160244b42eb6b7c1438a87a4b87be45 [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Used for any vLLM integration test
# Dockerfile — Beam dev harness + install dev SDK from LOCAL source package
FROM nvidia/cuda:12.4.1-devel-ubuntu22.04
# 1) Non-interactive + timezone
ENV DEBIAN_FRONTEND=noninteractive \
TZ=Etc/UTC
RUN apt-get update && \
apt-get install -y --no-install-recommends \
curl \
tzdata \
software-properties-common \
python3.10-full \
python3.10-distutils \
build-essential \
python3.10-dev \
cython3 && \
ln -fs /usr/share/zoneinfo/$TZ /etc/localtime && \
dpkg-reconfigure --frontend noninteractive tzdata && \
rm -rf /var/lib/apt/lists/*
# 2) Symlink python3 to 3.10
RUN ln -sf /usr/bin/python3.10 /usr/bin/python3 && \
ln -sf /usr/bin/python3.10 /usr/bin/python
# 3) Install pip, setuptools & wheel
RUN curl -sS https://bootstrap.pypa.io/get-pip.py | python3 && \
python3 -m pip install --upgrade pip setuptools wheel
# 4) Copy the Beam SDK harness (for Dataflow workers)
COPY --from=gcr.io/apache-beam-testing/beam-sdk/beam_python3.10_sdk:latest \
/opt/apache/beam /opt/apache/beam
# 5) Make sure the harness is discovered first
ENV PYTHONPATH=/opt/apache/beam:$PYTHONPATH
# 6) Install the Beam dev SDK from the local source package.
# This .tar.gz file will be created by GitHub Actions workflow
# and copied into the build context. This will include vLLM dependencies
COPY ./sdks/python/build/apache-beam.tar.gz /tmp/beam.tar.gz
RUN python3 -m pip install --no-cache-dir "/tmp/beam.tar.gz[gcp,vllm]"
# 8) Use the Beam boot script as entrypoint
ENTRYPOINT ["/opt/apache/beam/boot"]