Replies: 2 comments 6 replies
-
@oguzkaganozt @xmfcx @mitsudome-r Do you have any feedback for this proposal? |
Beta Was this translation helpful? Give feedback.
-
While I agree that locking versions to ensure stable builds is a valid approach, the added redundancy of creating multiple base images and the increased complexity it introduces to the overall build pipeline do not, in my opinion, justify the trade-off. |
Beta Was this translation helpful? Give feedback.
-
Recently there ware unintended build failures of Autoware due to the update of the dependency packages.
morai_msgs
version #5105These issues could have been resolved if the version control of the dependency packages had been properly managed. However, since the dependency packages for Autoware are numerous, ensuring thorough version control is extremely challenging.
Therefore, I propose creating a base image with all of Autoware's dependency packages pre-installed and using it to build the Autoware container image. If the base image is created at the appropriate time and its version is fixed inside Dockerfile, it will be possible to prevent Autoware's build from failing due to updates of the dependency packages.
The proof-of-concept code already exists as follows.
autoware-base
images youtalk/autoware#92autoware-base
imagesThere are four images for the base image,
autoware-base
, as follows:autoware-core-base
: Image with dependencies ofautoware-core
installedautoware-universe-base
: Image with dependencies ofautoware-universe
installedautoware-universe-cuda-base
: Image with CUDA drivers additionally installed on top ofautoware-universe-base
runtime-base
: Image with dependencies ofruntime
installedruntime-cuda-base
: Image with CUDA drivers additionally installed on top ofruntime-base
By installing the CUDA drivers in the base image as well, a layer cache of over 4GB remains valid even after running
colcon build
.docker/Dockerfile
using theautoware-base
imagesBy introducing the
autoware-base
images, the Dockerfile will be simplified to just the runningcolcon build
and the copying of the artifacts. Additionally, theautoware-universe
image is created with the base image without CUDA drivers first, and then theautoware-universe-cuda
image is created using the base image with CUDA drivers. This eliminates the need to run two separate but almost duplicate CI runners,-cuda
and-no-cuda
.Beta Was this translation helpful? Give feedback.
All reactions