Skip to content

Commit

Permalink
Fix docker build issue (#3070)
Browse files Browse the repository at this point in the history
  • Loading branch information
lanluo-nvidia authored Aug 16, 2024
1 parent efd1df0 commit b8ff2d5
Show file tree
Hide file tree
Showing 6 changed files with 92 additions and 94 deletions.
14 changes: 11 additions & 3 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -67,9 +67,13 @@ RUN apt-get update &&\

FROM torch-tensorrt-builder-base as torch-tensorrt-builder

RUN curl -L https://github.com/a8m/envsubst/releases/download/v1.2.0/envsubst-`uname -s`-`uname -m` -o envsubst &&\
chmod +x envsubst && mv envsubst /usr/local/bin

COPY . /workspace/torch_tensorrt/src
WORKDIR /workspace/torch_tensorrt/src
RUN cp ./docker/WORKSPACE.docker WORKSPACE

RUN cat ./docker/MODULE.bazel.docker | envsubst > MODULE.bazel

# Symlink the path pyenv is using for python with the /opt directory for package sourcing
RUN mkdir -p "/opt/python3/" &&\
Expand Down Expand Up @@ -99,8 +103,12 @@ RUN mkdir -p "/opt/python3/" &&\

COPY --from=torch-tensorrt-builder /workspace/torch_tensorrt/src/dist/ .

RUN cp /opt/torch_tensorrt/docker/WORKSPACE.docker /opt/torch_tensorrt/WORKSPACE &&\
pip install -r /opt/torch_tensorrt/py/requirements.txt &&\
RUN curl -L https://github.com/a8m/envsubst/releases/download/v1.2.0/envsubst-`uname -s`-`uname -m` -o envsubst &&\
chmod +x envsubst && mv envsubst /usr/local/bin

RUN cat ./docker/MODULE.bazel.docker | envsubst > MODULE.bazel

RUN pip install -r /opt/torch_tensorrt/py/requirements.txt &&\
# Install all dependency wheel files and user-specified TensorRT
pip install *.whl &&\
pip install tensorrt==${TENSORRT_VERSION}.* &&\
Expand Down
77 changes: 77 additions & 0 deletions docker/MODULE.bazel.docker
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
module(
name = "torch_tensorrt",
repo_name = "org_pytorch_tensorrt",
version = "${BUILD_VERSION}"
)

bazel_dep(name = "googletest", version = "1.14.0")
bazel_dep(name = "platforms", version = "0.0.10")
bazel_dep(name = "rules_cc", version = "0.0.9")
bazel_dep(name = "rules_python", version = "0.34.0")

python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
ignore_root_user_error = True,
python_version = "3.11",
)

bazel_dep(name = "rules_pkg", version = "1.0.1")
git_override(
module_name = "rules_pkg",
commit = "17c57f4",
remote = "https://github.com/narendasan/rules_pkg",
)

local_repository = use_repo_rule("@bazel_tools//tools/build_defs/repo:local.bzl", "local_repository")


new_local_repository = use_repo_rule("@bazel_tools//tools/build_defs/repo:local.bzl", "new_local_repository")

# CUDA should be installed on the system locally
new_local_repository(
name = "cuda",
build_file = "@//third_party/cuda:BUILD",
path = "/usr/local/cuda",
)

http_archive = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

####################################################################################
# Locally installed dependencies (use in cases of custom dependencies or aarch64)
####################################################################################

# NOTE: In the case you are using just the pre-cxx11-abi path or just the cxx11 abi path
# with your local libtorch, just point deps at the same path to satisfy bazel.

# NOTE: NVIDIA's aarch64 PyTorch (python) wheel file uses the CXX11 ABI unlike PyTorch's standard
# x86_64 python distribution. If using NVIDIA's version just point to the root of the package
# for both versions here and do not use --config=pre-cxx11-abi

new_local_repository(
name = "libtorch",
path = "/opt/python3/site-packages/torch/",
build_file = "third_party/libtorch/BUILD"
)

new_local_repository(
name = "libtorch_pre_cxx11_abi",
path = "/opt/python3/site-packages/torch/",
build_file = "third_party/libtorch/BUILD"
)

new_local_repository(
name = "tensorrt",
path = "/usr/",
build_file = "@//third_party/tensorrt/local:BUILD"
)

pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")

pip.parse(
download_only = True,
hub_name = "pypi",
python_version = ${PYTHON_VERSION},
requirements_lock = "//:requirements_dev.txt",
)

use_repo(pip, "pypi")
89 changes: 0 additions & 89 deletions docker/WORKSPACE.docker

This file was deleted.

2 changes: 2 additions & 0 deletions docker/dist-build.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
#!/bin/bash

set -x

TOP_DIR=$(cd $(dirname $0); pwd)/..

if [[ -z "${USE_CXX11}" ]]; then
Expand Down
2 changes: 1 addition & 1 deletion py/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ packaging
pybind11==2.6.2
--extra-index-url https://download.pytorch.org/whl/nightly/cu124
torch>=2.5.0.dev,<2.6.0
torchvision>=0.19.0.dev,<0.20.0
torchvision>=0.20.0.dev,<0.21.0
--extra-index-url https://pypi.ngc.nvidia.com
pyyaml
tensorrt==10.1.0
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ dependencies = [
dynamic = ["version"]

[project.optional-dependencies]
torchvision = ["torchvision >=0.18.dev,<0.19.0"]
torchvision = ["torchvision >=0.20.dev,<0.21.0"]

[project.urls]
Homepage = "https://pytorch.org/tensorrt"
Expand Down

0 comments on commit b8ff2d5

Please sign in to comment.