Skip to content

Commit aa9bb73

Browse files
authored
Add REPO_URL in Dockerfile to allow docker builds from contributor repos (#3291)
* Add REPO_URL in Dockerfile * Add repo url to docker files and build_image.sh * Enable repo url in docker ci workflow * Update docs for repo url
1 parent ef196c0 commit aa9bb73

File tree

7 files changed

+36
-10
lines changed

7 files changed

+36
-10
lines changed

.github/workflows/docker-ci.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ jobs:
3939
working-directory: docker
4040
run: |
4141
IMAGE_TAG=test-image-${{ matrix.python-version }}
42-
./build_image.sh -py "${{ matrix.python-version }}" -t "${IMAGE_TAG}" -b ${{ steps.branch-name.outputs.GITHUB_BRANCH }} -s
42+
./build_image.sh -py "${{ matrix.python-version }}" -t "${IMAGE_TAG}" -b ${{ steps.branch-name.outputs.GITHUB_BRANCH }} -repo ${{ github.repositoryUrl }} -s
4343
echo "IMAGE_TAG=${IMAGE_TAG}" >> $GITHUB_OUTPUT
4444
4545
- name: Container Healthcheck

docker/Dockerfile

+3-2
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ ARG BUILD_NIGHTLY
3434
ARG BUILD_FROM_SRC
3535
ARG LOCAL_CHANGES
3636
ARG BRANCH_NAME
37+
ARG REPO_URL=https://github.com/pytorch/serve.git
3738
ENV PYTHONUNBUFFERED TRUE
3839

3940
RUN --mount=type=cache,id=apt-dev,target=/var/cache/apt \
@@ -72,7 +73,7 @@ COPY ./ serve
7273
RUN \
7374
if echo "$LOCAL_CHANGES" | grep -q "false"; then \
7475
rm -rf serve;\
75-
git clone --recursive https://github.com/pytorch/serve.git -b $BRANCH_NAME; \
76+
git clone --recursive $REPO_URL -b $BRANCH_NAME; \
7677
fi
7778

7879

@@ -237,7 +238,7 @@ COPY ./ serve
237238
RUN \
238239
if echo "$LOCAL_CHANGES" | grep -q "false"; then \
239240
rm -rf serve;\
240-
git clone --recursive https://github.com/pytorch/serve.git -b $BRANCH_NAME; \
241+
git clone --recursive $REPO_URL -b $BRANCH_NAME; \
241242
fi
242243

243244
COPY --from=compile-image /home/venv /home/venv

docker/Dockerfile.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ ARG PYTHON_VERSION
2626
ARG CMAKE_VERSION
2727
ARG GCC_VERSION
2828
ARG BRANCH_NAME
29+
ARG REPO_URL=https://github.com/pytorch/serve.git
2930
ARG USE_CUDA_VERSION
3031
ARG DEBIAN_FRONTEND=noninteractive
3132
ENV PYTHONUNBUFFERED TRUE
@@ -67,7 +68,7 @@ RUN (wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/nu
6768
&& echo "Package: cmake-data\nPin: version $CMAKE_VERSION*\nPin-Priority: 1001" > /etc/apt/preferences.d/cmake-data \
6869
&& rm -rf /var/lib/apt/lists/*
6970
70-
RUN git clone --recursive https://github.com/pytorch/serve.git \
71+
RUN git clone --recursive $REPO_URL \
7172
&& cd serve \
7273
&& git checkout ${BRANCH_NAME}
7374

docker/Dockerfile.dev

+2-1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ FROM ${BASE_IMAGE} AS compile-image
1616

1717
ARG BASE_IMAGE
1818
ARG BRANCH_NAME=master
19+
ARG REPO_URL=https://github.com/pytorch/serve.git
1920
ARG MACHINE_TYPE=cpu
2021
ARG CUDA_VERSION
2122

@@ -62,7 +63,7 @@ FROM compile-image AS dev-image
6263
ARG MACHINE_TYPE=cpu
6364
ARG CUDA_VERSION
6465
RUN if [ "$MACHINE_TYPE" = "gpu" ]; then export USE_CUDA=1; fi \
65-
&& git clone https://github.com/pytorch/serve.git \
66+
&& git clone $REPO_URL \
6667
&& cd serve \
6768
&& git checkout ${BRANCH_NAME} \
6869
&& python$PYTHON_VERSION -m venv /home/venv

docker/Dockerfile.neuron.dev

+2-1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ FROM ${BASE_IMAGE} AS compile-image
2121

2222
ARG BASE_IMAGE
2323
ARG BRANCH_NAME=master
24+
ARG REPO_URL=https://github.com/pytorch/serve.git
2425
ARG MACHINE_TYPE=cpu
2526
ARG CUDA_VERSION
2627

@@ -67,7 +68,7 @@ FROM compile-image AS dev-image
6768
ARG MACHINE_TYPE=cpu
6869
ARG CUDA_VERSION
6970
RUN if [ "$MACHINE_TYPE" = "gpu" ]; then export USE_CUDA=1; fi \
70-
&& git clone https://github.com/pytorch/serve.git \
71+
&& git clone $REPO_URL \
7172
&& cd serve \
7273
&& git checkout --track ${BRANCH_NAME} \
7374
&& if [ -z "$CUDA_VERSION" ]; then python ts_scripts/install_dependencies.py --environment=dev; else python ts_scripts/install_dependencies.py --environment=dev --cuda $CUDA_VERSION; fi \

docker/README.md

+1
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ Use `build_image.sh` script to build the docker images. The script builds the `p
3838
|------|------|
3939
|-h, --help|Show script help|
4040
|-b, --branch_name|Specify a branch name to use. Default: master |
41+
|-repo, --repo_url|Specify the repository url to use. Default: https://github.com/pytorch/serve |
4142
|-g, --gpu|Build image with GPU based ubuntu base image|
4243
|-bi, --baseimage specify base docker image. Example: nvidia/cuda:11.8.0-cudnn8-runtime-ubuntu20.04|
4344
|-bt, --buildtype|Which type of docker image to build. Can be one of : production, dev, ci|

docker/build_image.sh

+25-4
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ set -o errexit -o nounset -o pipefail
44

55
MACHINE=cpu
66
BRANCH_NAME="master"
7+
REPO_URL="https://github.com/pytorch/serve.git"
78
DOCKER_TAG="pytorch/torchserve:latest-cpu"
89
BUILD_TYPE="production"
910
BASE_IMAGE="ubuntu:20.04"
@@ -25,6 +26,7 @@ do
2526
echo "options:"
2627
echo "-h, --help show brief help"
2728
echo "-b, --branch_name=BRANCH_NAME specify a branch_name to use"
29+
echo "-repo, --repo_url=REPO_URL specify a github repo url to use"
2830
echo "-g, --gpu specify to use gpu"
2931
echo "-bi, --baseimage specify base docker image. Example: nvidia/cuda:11.7.0-cudnn8-runtime-ubuntu20.04 "
3032
echo "-bt, --buildtype specify for type of created image. Possible values: production, dev, ci."
@@ -51,6 +53,18 @@ do
5153
fi
5254
shift
5355
;;
56+
-repo|--repo_url)
57+
if test $
58+
then
59+
REPO_URL="$2"
60+
LOCAL_CHANGES=false
61+
shift
62+
else
63+
echo "Error! repo_url not provided"
64+
exit 1
65+
fi
66+
shift
67+
;;
5468
-g|--gpu)
5569
MACHINE=gpu
5670
DOCKER_TAG="pytorch/torchserve:latest-gpu"
@@ -202,15 +216,22 @@ fi
202216

203217
if [ "${BUILD_TYPE}" == "production" ]
204218
then
205-
DOCKER_BUILDKIT=1 docker build --file Dockerfile --build-arg BASE_IMAGE="${BASE_IMAGE}" --build-arg USE_CUDA_VERSION="${CUDA_VERSION}" --build-arg PYTHON_VERSION="${PYTHON_VERSION}" --build-arg BUILD_NIGHTLY="${BUILD_NIGHTLY}" --build-arg BRANCH_NAME="${BRANCH_NAME}" --build-arg BUILD_FROM_SRC="${BUILD_FROM_SRC}" --build-arg LOCAL_CHANGES="${LOCAL_CHANGES}" -t "${DOCKER_TAG}" --target production-image ../
219+
DOCKER_BUILDKIT=1 docker build --file Dockerfile --build-arg BASE_IMAGE="${BASE_IMAGE}" --build-arg USE_CUDA_VERSION="${CUDA_VERSION}" --build-arg PYTHON_VERSION="${PYTHON_VERSION}"\
220+
--build-arg BUILD_NIGHTLY="${BUILD_NIGHTLY}" --build-arg BRANCH_NAME="${BRANCH_NAME}" --build-arg REPO_URL="${REPO_URL}" --build-arg BUILD_FROM_SRC="${BUILD_FROM_SRC}"\
221+
--build-arg LOCAL_CHANGES="${LOCAL_CHANGES}" -t "${DOCKER_TAG}" --target production-image ../
206222
elif [ "${BUILD_TYPE}" == "ci" ]
207223
then
208-
DOCKER_BUILDKIT=1 docker build --file Dockerfile --build-arg BASE_IMAGE="${BASE_IMAGE}" --build-arg USE_CUDA_VERSION="${CUDA_VERSION}" --build-arg PYTHON_VERSION="${PYTHON_VERSION}" --build-arg BUILD_NIGHTLY="${BUILD_NIGHTLY}" --build-arg BRANCH_NAME="${BRANCH_NAME}" --build-arg BUILD_FROM_SRC="${BUILD_FROM_SRC}" --build-arg LOCAL_CHANGES="${LOCAL_CHANGES}" -t "${DOCKER_TAG}" --target ci-image ../
224+
DOCKER_BUILDKIT=1 docker build --file Dockerfile --build-arg BASE_IMAGE="${BASE_IMAGE}" --build-arg USE_CUDA_VERSION="${CUDA_VERSION}" --build-arg PYTHON_VERSION="${PYTHON_VERSION}"\
225+
--build-arg BUILD_NIGHTLY="${BUILD_NIGHTLY}" --build-arg BRANCH_NAME="${BRANCH_NAME}" --build-arg REPO_URL="${REPO_URL}" --build-arg BUILD_FROM_SRC="${BUILD_FROM_SRC}"\
226+
--build-arg LOCAL_CHANGES="${LOCAL_CHANGES}" -t "${DOCKER_TAG}" --target ci-image ../
209227
else
210228
if [ "${BUILD_CPP}" == "true" ]
211229
then
212-
DOCKER_BUILDKIT=1 docker build --file Dockerfile.cpp --build-arg BASE_IMAGE="${BASE_IMAGE}" --build-arg USE_CUDA_VERSION="${CUDA_VERSION}" --build-arg PYTHON_VERSION="${PYTHON_VERSION}" --build-arg BRANCH_NAME="${BRANCH_NAME}" -t "${DOCKER_TAG}" --target cpp-dev-image .
230+
DOCKER_BUILDKIT=1 docker build --file Dockerfile.cpp --build-arg BASE_IMAGE="${BASE_IMAGE}" --build-arg USE_CUDA_VERSION="${CUDA_VERSION}" --build-arg PYTHON_VERSION="${PYTHON_VERSION}"\
231+
--build-arg BRANCH_NAME="${BRANCH_NAME}" --build-arg REPO_URL="${REPO_URL}" -t "${DOCKER_TAG}" --target cpp-dev-image .
213232
else
214-
DOCKER_BUILDKIT=1 docker build --file Dockerfile --build-arg BASE_IMAGE="${BASE_IMAGE}" --build-arg USE_CUDA_VERSION="${CUDA_VERSION}" --build-arg PYTHON_VERSION="${PYTHON_VERSION}" --build-arg BUILD_NIGHTLY="${BUILD_NIGHTLY}" --build-arg BRANCH_NAME="${BRANCH_NAME}" --build-arg BUILD_FROM_SRC="${BUILD_FROM_SRC}" --build-arg LOCAL_CHANGES="${LOCAL_CHANGES}" --build-arg BUILD_WITH_IPEX="${BUILD_WITH_IPEX}" -t "${DOCKER_TAG}" --target dev-image ../
233+
DOCKER_BUILDKIT=1 docker build --file Dockerfile --build-arg BASE_IMAGE="${BASE_IMAGE}" --build-arg USE_CUDA_VERSION="${CUDA_VERSION}" --build-arg PYTHON_VERSION="${PYTHON_VERSION}"\
234+
--build-arg BUILD_NIGHTLY="${BUILD_NIGHTLY}" --build-arg BRANCH_NAME="${BRANCH_NAME}" --build-arg REPO_URL="${REPO_URL}" --build-arg BUILD_FROM_SRC="${BUILD_FROM_SRC}" --build-arg LOCAL_CHANGES="${LOCAL_CHANGES}"\
235+
--build-arg BUILD_WITH_IPEX="${BUILD_WITH_IPEX}" -t "${DOCKER_TAG}" --target dev-image ../
215236
fi
216237
fi

0 commit comments

Comments
 (0)