diff --git a/.github/workflows/docker_builder.yml b/.github/workflows/docker_builder.yml new file mode 100644 index 0000000000..8135ef8398 --- /dev/null +++ b/.github/workflows/docker_builder.yml @@ -0,0 +1,46 @@ +name: 'Torch-TRT Docker' + +on: + pull_request: + types: [opened, synchronize, ready_for_review, review_requested, reopened] + +##### Adapted from https://docs.github.com/en/actions/publishing-packages/publishing-docker-images + +# Defines two custom environment variables for the workflow. These are used for the Container registry domain, and a name for the Docker image that this workflow builds. +env: + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }} + +# There is a single job in this workflow. It's configured to run on the latest available version of Ubuntu. +jobs: + build-and-push-image: + runs-on: ubuntu-latest + # Sets the permissions granted to the `GITHUB_TOKEN` for the actions in this job. + permissions: + contents: read + packages: write + steps: + - name: Checkout repository + uses: actions/checkout@v3 + # Uses the `docker/login-action` action to log in to the Container registry registry using the account and password that will publish the packages. Once published, the packages are scoped to the account defined here. + - name: Log in to the Container registry + uses: docker/login-action@v2 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + # This step uses the `docker/build-push-action` action to build the image, based on your repository's `Dockerfile`. If the build succeeds, it pushes the image to GitHub Packages. + # It uses the `context` parameter to define the build's context as the set of files located in the specified path. For more information, see "[Usage](https://github.com/docker/build-push-action#usage)" in the README of the `docker/build-push-action` repository. + # It uses the `tags` and `labels` parameters to tag and label the image with the output from the "meta" step. + - name: Build and push Docker image + uses: docker/build-push-action@v4 + with: + context: . + push: true + tags: torch_tensorrt:main + file: docker/Dockerfile + build-args: | + TENSORRT_VERSION=8.6 + CUDNN_VERSION=8.8 + shm-size: 4g diff --git a/docker/Dockerfile b/docker/Dockerfile index d16dfc1887..c0dd6d5ef7 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -87,6 +87,9 @@ RUN CUDA_BASE_IMG_VERSION_INTERMEDIATE=`echo ${BASE_IMG#*:}` &&\ ENV CUDA_HOME=/usr/local/cuda +RUN sudo rm -rf "/usr/local/share/boost" +RUN sudo rm -rf "$AGENT_TOOLSDIRECTORY" + # This script builds both libtorchtrt bin/lib/include tarball and the Python wheel, in dist/ RUN bash ./docker/dist-build.sh diff --git a/docker/dist-build.sh b/docker/dist-build.sh index 4c0f4d6b7c..4b4d617fc3 100755 --- a/docker/dist-build.sh +++ b/docker/dist-build.sh @@ -10,8 +10,9 @@ fi cd ${TOP_DIR} \ && mkdir -p dist && cd py \ - && pip install -r requirements.txt \ - && pip install wheel + && pip install pip==21.3.1 \ + && pip install wheel \ + && pip install -r requirements.txt # Build Torch-TRT MAX_JOBS=1 LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8 ${BUILD_CMD} $* || exit 1