From 9ab67f42f9807ac96e0b0f615f12c510b1932b09 Mon Sep 17 00:00:00 2001 From: Shark Liu Date: Mon, 20 Feb 2023 18:17:36 +0800 Subject: [PATCH] fix(docker): install ros-base according to option --no-dev Signed-off-by: Shark Liu --- .../workflows/docker-build-and-push-main-self-hosted.yaml | 1 + .github/workflows/docker-build-and-push-main.yaml | 1 + amd64.env | 6 +++--- ansible/playbooks/universe.yaml | 1 - docker/autoware-universe/Dockerfile | 7 ++++--- docker/build.sh | 2 +- setup-dev-env.sh | 6 +----- 7 files changed, 11 insertions(+), 13 deletions(-) diff --git a/.github/workflows/docker-build-and-push-main-self-hosted.yaml b/.github/workflows/docker-build-and-push-main-self-hosted.yaml index e6e78011179..e2c435fc0ee 100644 --- a/.github/workflows/docker-build-and-push-main-self-hosted.yaml +++ b/.github/workflows/docker-build-and-push-main-self-hosted.yaml @@ -54,6 +54,7 @@ jobs: *.platform=linux/arm64 *.args.ROS_DISTRO=${{ env.rosdistro }} *.args.BASE_IMAGE=${{ env[format('{0}', matrix.base_image_env)] }} + *.args.PREBUILT_BASE_IMAGE=${{ env.prebuilt_base_image }} *.args.SETUP_ARGS=${{ matrix.setup-args }} tag-prefix: ${{ env.rosdistro }}- tag-suffix: ${{ matrix.additional-tag-suffix }}-arm64 diff --git a/.github/workflows/docker-build-and-push-main.yaml b/.github/workflows/docker-build-and-push-main.yaml index 85da95d6d81..6f71ac71560 100644 --- a/.github/workflows/docker-build-and-push-main.yaml +++ b/.github/workflows/docker-build-and-push-main.yaml @@ -49,6 +49,7 @@ jobs: *.platform=linux/amd64 *.args.ROS_DISTRO=${{ env.rosdistro }} *.args.BASE_IMAGE=${{ env[format('{0}', matrix.base_image_env)] }} + *.args.PREBUILT_BASE_IMAGE=${{ env.prebuilt_base_image }} *.args.SETUP_ARGS=${{ matrix.setup-args }} tag-prefix: ${{ env.rosdistro }}- tag-suffix: ${{ matrix.additional-tag-suffix }}-amd64 diff --git a/amd64.env b/amd64.env index 226e5ee51b5..afa17255034 100644 --- a/amd64.env +++ b/amd64.env @@ -1,8 +1,8 @@ rosdistro=humble rmw_implementation=rmw_cyclonedds_cpp -base_image=ubuntu:20.04 -cuda_base_image=nvidia/cuda:11.6.2-devel-ubuntu20.04 -cuda_runtime_base_image=nvidia/cuda:11.6.2-runtime-ubuntu20.04 +base_image=ubuntu:22.04 +cuda_base_image=ubuntu:22.04 +prebuilt_base_image=ubuntu:22.04 cuda_version=11.6 cudnn_version=8.4.1.50-1+cuda11.6 tensorrt_version=8.4.2-1+cuda11.6 diff --git a/ansible/playbooks/universe.yaml b/ansible/playbooks/universe.yaml index 3c79e2db9c3..e062a29308b 100644 --- a/ansible/playbooks/universe.yaml +++ b/ansible/playbooks/universe.yaml @@ -37,7 +37,6 @@ when: install_devel == 'true' - role: autoware.dev_env.ros2 - role: autoware.dev_env.ros2_dev_tools - when: install_devel == 'true' - role: autoware.dev_env.rmw_implementation # Universe diff --git a/docker/autoware-universe/Dockerfile b/docker/autoware-universe/Dockerfile index 5496980a944..45051d7f2c1 100644 --- a/docker/autoware-universe/Dockerfile +++ b/docker/autoware-universe/Dockerfile @@ -1,4 +1,6 @@ +# Image args should come at the beginning. ARG BASE_IMAGE +ARG PREBUILT_BASE_IMAGE # hadolint ignore=DL3006 FROM $BASE_IMAGE as devel SHELL ["/bin/bash", "-o", "pipefail", "-c"] @@ -66,9 +68,8 @@ RUN source /opt/ros/"$ROS_DISTRO"/setup.bash \ && colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release \ && find /autoware/install -type d -exec chmod 777 {} \; -ARG CUDA_RUNTIME_BASE_IMAGE # hadolint ignore=DL3006 -FROM $CUDA_RUNTIME_BASE_IMAGE as prebuilt +FROM $PREBUILT_BASE_IMAGE as prebuilt SHELL ["/bin/bash", "-o", "pipefail", "-c"] @@ -95,7 +96,7 @@ RUN mkdir -p ~/.ssh \ ## Set up runtime environment RUN --mount=type=ssh \ - ./setup-dev-env.sh -y $SETUP_ARGS --no-cuda-drivers --no-dev --runtime --ros-install-base universe \ + ./setup-dev-env.sh -y $SETUP_ARGS --no-cuda-drivers --no-dev universe \ && pip uninstall -y ansible ansible-core \ && mkdir src \ && vcs import src < autoware.repos \ diff --git a/docker/build.sh b/docker/build.sh index 9a7e581aefd..1648ab62080 100755 --- a/docker/build.sh +++ b/docker/build.sh @@ -69,8 +69,8 @@ docker buildx bake --no-cache --load --progress=plain -f "$SCRIPT_DIR/autoware-u --set "*.platform=$platform" \ --set "*.args.ROS_DISTRO=$rosdistro" \ --set "*.args.BASE_IMAGE=$base_image" \ + --set "*.args.PREBUILT_BASE_IMAGE=$prebuilt_base_image" \ --set "*.args.SETUP_ARGS=$setup_args" \ - --set "*.args.CUDA_RUNTIME_BASE_IMAGE=$cuda_runtime_base_image" \ --set "devel.tags=ghcr.io/autowarefoundation/autoware-universe:$rosdistro-latest$image_name_suffix" \ --set "prebuilt.tags=ghcr.io/autowarefoundation/autoware-universe:$rosdistro-latest-prebuilt$image_name_suffix" \ "$targets" diff --git a/setup-dev-env.sh b/setup-dev-env.sh index e217fd7a42d..53d16ad4d72 100755 --- a/setup-dev-env.sh +++ b/setup-dev-env.sh @@ -31,10 +31,6 @@ while [ "$1" != "" ]; do # Disable installation dev package of role 'cuda' and 'tensorrt'. option_runtime=true ;; - --runtime) - # Disable installation dev package of role 'cuda' and 'tensorrt'. - option_runtime=true - ;; *) args+=("$1") ;; @@ -86,7 +82,7 @@ if [ "$option_no_cuda_drivers" = "true" ]; then fi # Check installation of dev package -if [ "$option_runtime" = "true" ]; then +if [ "$option_no_dev" = "true" ]; then ansible_args+=("--extra-vars" "install_devel=false") # ROS installation type, default "desktop" ansible_args+=("--extra-vars" "installation_type=ros-base")