@@ -49,15 +49,15 @@ RUN groupadd bounverif -g 1000 && \
49
49
echo 'bounverif:bounverif' | chpasswd \
50
50
printf "%s ALL= NOPASSWD: ALL\\ n" bounverif >> /etc/sudoers
51
51
52
- ENV \
53
- ROS_DISTRO=humble \
54
- AUTOWARE_ROOT=/root/autoware \
55
- AUTOWARE_SOURCE_DIR=/root/autoware/src \
56
- AUTOWARE_BUILD_DIR=/root/autoware/build \
57
- AUTOWARE_INSTALL_DIR=/opt/autoware \
58
- AUTOWARE_DATA_DIR=/opt/autoware/data
52
+ ENV ROS_DISTRO=humble
53
+ ENV AUTOWARE_DEVEL_ROOT=/root/autoware
54
+ ENV AUTOWARE_DEVEL_SOURCE_DIR=/root/autoware/src
55
+ ENV AUTOWARE_DEVEL_BUILD_DIR=/root/autoware/build
56
+ ENV AUTOWARE_DEVEL_INSTALL_DIR=/root/autoware/autoware
57
+ ENV AUTOWARE_DEVEL_DATA_DIR=/root/autoware/data
59
58
60
59
ARG AUTOWARE_VERSION
60
+ ENV AUTOWARE_VERSION=${AUTOWARE_VERSION:-latest}
61
61
ENV AUTOWARE_DEVEL_VERSION=${AUTOWARE_VERSION:-latest}
62
62
63
63
FROM ${IMAGE_NAME}:${AUTOWARE_VERSION}-base AS autoware-source
@@ -72,9 +72,10 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked,id=${TARGETPLATFORM}
72
72
python3-vcstool \
73
73
&& apt-get autoremove -y && rm -rf /var/lib/apt/lists/*
74
74
75
- RUN --mount=type=bind,source=etc/autoware/autoware.repos.yml,target=/etc/autoware/autoware.repos.yml \
76
- mkdir -p ${AUTOWARE_SOURCE_DIR} && \
77
- vcs import --shallow ${AUTOWARE_SOURCE_DIR} < /etc/autoware/autoware.repos.yml
75
+ COPY etc/autoware/autoware.repos.yml /etc/autoware/autoware.repos.yml
76
+
77
+ RUN mkdir -p ${AUTOWARE_DEVEL_SOURCE_DIR} && \
78
+ vcs import --shallow ${AUTOWARE_DEVEL_SOURCE_DIR} < /etc/autoware/autoware.repos.yml
78
79
79
80
FROM ${IMAGE_NAME}:${AUTOWARE_VERSION}-base AS autoware-builder
80
81
ARG TARGETARCH TARGETOS TARGETPLATFORM TARGETVARIANT
@@ -96,20 +97,6 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked,id=${TARGETPLATFORM}
96
97
ansible-core \
97
98
&& apt-get autoremove -y && rm -rf /var/lib/apt/lists/*
98
99
99
- RUN --mount=type=bind,from=autoware-source,source=${AUTOWARE_SOURCE_DIR},target=${AUTOWARE_SOURCE_DIR} \
100
- --mount=type=cache,target=/var/cache/apt,sharing=locked,id=${TARGETPLATFORM}/var/cache/apt \
101
- mkdir -p /etc/autoware && \
102
- vcs export --exact ${AUTOWARE_SOURCE_DIR} > /etc/autoware/autoware.repos.${AUTOWARE_DEVEL_VERSION}.yml && \
103
- export DEBIAN_FRONTEND=noninteractive && \
104
- apt-get update && \
105
- rosdep init && \
106
- rosdep update -q && \
107
- rosdep install -qy \
108
- --from-paths ${AUTOWARE_SOURCE_DIR} \
109
- --ignore-src \
110
- --rosdistro ${ROS_DISTRO} \
111
- && apt-get autoremove -y && rm -rf /var/lib/apt/lists/*
112
-
113
100
# CUDA Toolkit Installation
114
101
ARG CUDA_TOOLKIT_VERSION_MAJOR=12
115
102
ARG CUDA_TOOLKIT_VERSION_MINOR=6
@@ -131,6 +118,20 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked,id=${TARGETPLATFORM}
131
118
132
119
RUN update-alternatives --set cuda /usr/local/cuda-${CUDA_TOOLKIT_VERSION_MAJOR}.${CUDA_TOOLKIT_VERSION_MINOR}
133
120
121
+ RUN --mount=type=bind,from=autoware-source,source=${AUTOWARE_DEVEL_SOURCE_DIR},target=${AUTOWARE_DEVEL_SOURCE_DIR} \
122
+ --mount=type=cache,target=/var/cache/apt,sharing=locked,id=${TARGETPLATFORM}/var/cache/apt \
123
+ mkdir -p /etc/autoware && \
124
+ vcs export --exact ${AUTOWARE_DEVEL_SOURCE_DIR} > /etc/autoware/autoware.repos.${AUTOWARE_DEVEL_VERSION}.yml && \
125
+ export DEBIAN_FRONTEND=noninteractive && \
126
+ apt-get update && \
127
+ rosdep init && \
128
+ rosdep update -q && \
129
+ rosdep install -qy \
130
+ --from-paths ${AUTOWARE_DEVEL_SOURCE_DIR} \
131
+ --ignore-src \
132
+ --rosdistro ${ROS_DISTRO} \
133
+ && apt-get autoremove -y && rm -rf /var/lib/apt/lists/*
134
+
134
135
# Build environment management
135
136
ENV \
136
137
CMAKE_BUILD_TYPE=Release \
@@ -149,9 +150,9 @@ ARG TARGETARCH TARGETOS TARGETPLATFORM TARGETVARIANT
149
150
# This build is only for producing a build cache to be saved in the image.
150
151
# Hence, we do not want build artifacts and logs.
151
152
#
152
- RUN --mount=type=bind,from=autoware-source,source=${AUTOWARE_SOURCE_DIR },target=${AUTOWARE_SOURCE_DIR } \
153
+ RUN --mount=type=bind,from=autoware-source,source=${AUTOWARE_DEVEL_SOURCE_DIR },target=${AUTOWARE_DEVEL_SOURCE_DIR } \
153
154
mkdir -p /tmp/autoware && \
154
- ln -s ${AUTOWARE_SOURCE_DIR } /tmp/autoware/src && \
155
+ ln -s ${AUTOWARE_DEVEL_SOURCE_DIR } /tmp/autoware/src && \
155
156
. /opt/ros/${ROS_DISTRO}/setup.sh && \
156
157
export CCACHE_BASEDIR=/tmp/autoware && \
157
158
colcon --log-base /dev/null build \
@@ -172,7 +173,8 @@ RUN --mount=type=bind,from=autoware-source,source=${AUTOWARE_SOURCE_DIR},target=
172
173
--cmake-args \
173
174
" -Wno-dev" \
174
175
" --no-warn-unused-cli" \
175
- && rm -rf /tmp/autoware/
176
+ && rm -rf /tmp/autoware/ \
177
+ && ccache --zero-stats
176
178
177
179
FROM ${IMAGE_NAME}:${AUTOWARE_VERSION}-builder-with-cache AS autoware-devel
178
180
ARG TARGETARCH TARGETOS TARGETPLATFORM TARGETVARIANT
0 commit comments