From 9c3047e040fbad8af2c95ae6106aa5304b6ec1d9 Mon Sep 17 00:00:00 2001 From: Kenji Miyake <31987104+kenji-miyake@users.noreply.github.com> Date: Mon, 23 May 2022 23:32:25 +0900 Subject: [PATCH] refactor(cuda): use --no-cuda-drivers option to simplify code (#340) * refactor(cuda): use --no-cuda-drivers option to simplify code Signed-off-by: Kenji Miyake * fix base_image Signed-off-by: Kenji Miyake --- .../docker-build-and-push-self-hosted.yaml | 4 +--- .github/workflows/docker-build-and-push.yaml | 4 +--- amd64.env | 2 +- docker/autoware-universe/Dockerfile | 24 ++++--------------- docker/build.sh | 4 +--- 5 files changed, 8 insertions(+), 30 deletions(-) diff --git a/.github/workflows/docker-build-and-push-self-hosted.yaml b/.github/workflows/docker-build-and-push-self-hosted.yaml index f6648f35..ae8f418b 100644 --- a/.github/workflows/docker-build-and-push-self-hosted.yaml +++ b/.github/workflows/docker-build-and-push-self-hosted.yaml @@ -37,9 +37,7 @@ jobs: build-args: | *.platform=linux/arm64 *.args.ROS_DISTRO=${{ env.rosdistro }} - *.args.CUDA_IMAGE_TAG=${{ env.cuda_image_tag }} - *.args.CUDNN_VERSION=${{ env.cudnn_version }} - *.args.TENSORRT_VERSION=${{ env.tensorrt_version }} + *.args.BASE_IMAGE=${{ env.base_image }} tag-prefix: ${{ env.rosdistro }}- tag-suffix: -arm64 diff --git a/.github/workflows/docker-build-and-push.yaml b/.github/workflows/docker-build-and-push.yaml index 69128596..fa4ddb5a 100644 --- a/.github/workflows/docker-build-and-push.yaml +++ b/.github/workflows/docker-build-and-push.yaml @@ -32,9 +32,7 @@ jobs: build-args: | *.platform=linux/amd64 *.args.ROS_DISTRO=${{ env.rosdistro }} - *.args.CUDA_IMAGE_TAG=${{ env.cuda_image_tag }} - *.args.CUDNN_VERSION=${{ env.cudnn_version }} - *.args.TENSORRT_VERSION=${{ env.tensorrt_version }} + *.args.BASE_IMAGE=${{ env.base_image }} tag-prefix: ${{ env.rosdistro }}- tag-suffix: -amd64 diff --git a/amd64.env b/amd64.env index 204d6090..08b7b623 100644 --- a/amd64.env +++ b/amd64.env @@ -1,6 +1,6 @@ rosdistro=galactic rmw_implementation=rmw_cyclonedds_cpp +base_image=ubuntu:20.04 cuda_version=11.4 -cuda_image_tag=11.4.1-devel-ubuntu20.04 cudnn_version=8.2.4.15-1+cuda11.4 tensorrt_version=8.2.4-1+cuda11.4 diff --git a/docker/autoware-universe/Dockerfile b/docker/autoware-universe/Dockerfile index 63f9354a..d1a13f49 100644 --- a/docker/autoware-universe/Dockerfile +++ b/docker/autoware-universe/Dockerfile @@ -1,10 +1,9 @@ -ARG CUDA_IMAGE_TAG -FROM nvidia/cuda:$CUDA_IMAGE_TAG as devel +ARG BASE_IMAGE +# hadolint ignore=DL3006 +FROM $BASE_IMAGE as devel SHELL ["/bin/bash", "-o", "pipefail", "-c"] ARG ROS_DISTRO -ARG CUDNN_VERSION -ARG TENSORRT_VERSION ## Install apt packages # hadolint ignore=DL3008 @@ -26,7 +25,7 @@ RUN mkdir -p ~/.ssh \ ## Set up development environment RUN --mount=type=ssh \ - ./setup-dev-env.sh -y --no-nvidia universe \ + ./setup-dev-env.sh -y --no-cuda-drivers universe \ && pip uninstall -y ansible ansible-core \ && mkdir src \ && vcs import src < autoware.repos \ @@ -35,21 +34,6 @@ RUN --mount=type=ssh \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* -## Install cuDNN and TensorRT -RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends \ - libcudnn8="$CUDNN_VERSION" \ - libcudnn8-dev="$CUDNN_VERSION" \ - libnvinfer8="$TENSORRT_VERSION" \ - libnvinfer-dev="$TENSORRT_VERSION" \ - libnvinfer-plugin8="$TENSORRT_VERSION" \ - libnvinfer-plugin-dev="$TENSORRT_VERSION" \ - libnvonnxparsers8="$TENSORRT_VERSION" \ - libnvonnxparsers-dev="$TENSORRT_VERSION" \ - libnvparsers8="$TENSORRT_VERSION" \ - libnvparsers-dev="$TENSORRT_VERSION" \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/* - ## Clean up unnecessary files RUN rm -rf \ "$HOME"/.cache \ diff --git a/docker/build.sh b/docker/build.sh index b77245e7..e16272f1 100755 --- a/docker/build.sh +++ b/docker/build.sh @@ -18,8 +18,6 @@ docker buildx bake --load --progress=plain -f "$SCRIPT_DIR/autoware-universe/doc --set "*.context=$WORKSPACE_ROOT" \ --set "*.ssh=default" \ --set "*.args.ROS_DISTRO=$rosdistro" \ - --set "*.args.CUDA_IMAGE_TAG=$cuda_image_tag" \ - --set "*.args.CUDNN_VERSION=$cudnn_version" \ - --set "*.args.TENSORRT_VERSION=$tensorrt_version" \ + --set "*.args.BASE_IMAGE=$base_image" \ --set "devel.tags=ghcr.io/autowarefoundation/autoware-universe:$rosdistro-latest" \ --set "prebuilt.tags=ghcr.io/autowarefoundation/autoware-universe:$rosdistro-latest-prebuilt"