-
Notifications
You must be signed in to change notification settings - Fork 3.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
crossbuild dockerhub #1982
crossbuild dockerhub #1982
Conversation
Unify docker support with a new (and more generic) set of docker files. Two main images are created: - Base image containing an Ubuntu installation with all dependencies - Build image containing a pre-built Autoware When Cuda support is enabled, there is a further Base+Cuda support image. These Dockerfiles can be used for both AArch64 and x86_64 images. Co-authored-by: Filipe Rinaldi <filipe.rinaldi@arm.com>
An attempt to cross-build locally according to readme instructions fails with: docker/crossbuild$ ./build_cross_image.sh generic-aarch64 Using generic-aarch64 as the target architecture Setting /usr/bin/qemu-alpha-static as binfmt interpreter for alpha Setting /usr/bin/qemu-arm-static as binfmt interpreter for arm Setting /usr/bin/qemu-armeb-static as binfmt interpreter for armeb Setting /usr/bin/qemu-sparc32plus-static as binfmt interpreter for sparc32plus Setting /usr/bin/qemu-ppc-static as binfmt interpreter for ppc Setting /usr/bin/qemu-ppc64-static as binfmt interpreter for ppc64 sh: write error: File exists sh: write error: File exists sh: write error: File exists sh: write error: File exists sh: write error: File exists sh: write error: File exists sh: write error: File exists Setting /usr/bin/qemu-ppc64le-static as binfmt interpreter for ppc64le sh: write error: File exists Setting /usr/bin/qemu-m68k-static as binfmt interpreter for m68k sh: write error: File exists Setting /usr/bin/qemu-mips-static as binfmt interpreter for mips sh: write error: File exists Setting /usr/bin/qemu-mipsel-static as binfmt interpreter for mipsel sh: write error: File exists Setting /usr/bin/qemu-mipsn32-static as binfmt interpreter for mipsn32 Setting /usr/bin/qemu-mipsn32el-static as binfmt interpreter for mipsn32el sh: write error: File exists Setting /usr/bin/qemu-mips64-static as binfmt interpreter for mips64 sh: write error: File exists Setting /usr/bin/qemu-mips64el-static as binfmt interpreter for mips64el Setting /usr/bin/qemu-sh4-static as binfmt interpreter for sh4 sh: write error: File exists sh: write error: File exists sh: write error: File exists sh: write error: File exists Setting /usr/bin/qemu-sh4eb-static as binfmt interpreter for sh4eb Setting /usr/bin/qemu-s390x-static as binfmt interpreter for s390x Setting /usr/bin/qemu-aarch64-static as binfmt interpreter for aarch64 sh: write error: File exists Setting /usr/bin/qemu-aarch64_be-static as binfmt interpreter for aarch64_be sh: write error: File exists Setting /usr/bin/qemu-hppa-static as binfmt interpreter for hppa sh: write error: File exists Setting /usr/bin/qemu-riscv32-static as binfmt interpreter for riscv32 sh: write error: File exists Setting /usr/bin/qemu-riscv64-static as binfmt interpreter for riscv64 sh: write error: File exists Setting /usr/bin/qemu-xtensa-static as binfmt interpreter for xtensa sh: write error: File exists Setting /usr/bin/qemu-xtensaeb-static as binfmt interpreter for xtensaeb sh: write error: File exists sh: write error: File exists sh: write error: File exists Setting /usr/bin/qemu-microblaze-static as binfmt interpreter for microblaze Setting /usr/bin/qemu-microblazeel-static as binfmt interpreter for microblazeel sh: write error: File exists Setting /usr/bin/qemu-or1k-static as binfmt interpreter for or1k invalid argument ":local-kinetic" for "-t, --tag" flag: invalid reference format See 'docker image build --help'. Setting /usr/bin/qemu-alpha-static as binfmt interpreter for alpha Setting /usr/bin/qemu-arm-static as binfmt interpreter for arm Setting /usr/bin/qemu-armeb-static as binfmt interpreter for armeb Setting /usr/bin/qemu-sparc32plus-static as binfmt interpreter for sparc32plus Setting /usr/bin/qemu-ppc-static as binfmt interpreter for ppc Setting /usr/bin/qemu-ppc64-static as binfmt interpreter for ppc64 Setting /usr/bin/qemu-ppc64le-static as binfmt interpreter for ppc64le Setting /usr/bin/qemu-m68k-static as binfmt interpreter for m68k Setting /usr/bin/qemu-mips-static as binfmt interpreter for mips Setting /usr/bin/qemu-mipsel-static as binfmt interpreter for mipsel Setting /usr/bin/qemu-mipsn32-static as binfmt interpreter for mipsn32 Setting /usr/bin/qemu-mipsn32el-static as binfmt interpreter for mipsn32el Setting /usr/bin/qemu-mips64-static as binfmt interpreter for mips64 Setting /usr/bin/qemu-mips64el-static as binfmt interpreter for mips64el Setting /usr/bin/qemu-sh4-static as binfmt interpreter for sh4 Setting /usr/bin/qemu-sh4eb-static as binfmt interpreter for sh4eb Setting /usr/bin/qemu-s390x-static as binfmt interpreter for s390x Setting /usr/bin/qemu-aarch64-static as binfmt interpreter for aarch64 Setting /usr/bin/qemu-aarch64_be-static as binfmt interpreter for aarch64_be Setting /usr/bin/qemu-hppa-static as binfmt interpreter for hppa Setting /usr/bin/qemu-riscv32-static as binfmt interpreter for riscv32 Setting /usr/bin/qemu-riscv64-static as binfmt interpreter for riscv64 Setting /usr/bin/qemu-xtensa-static as binfmt interpreter for xtensa Setting /usr/bin/qemu-xtensaeb-static as binfmt interpreter for xtensaeb Setting /usr/bin/qemu-microblaze-static as binfmt interpreter for microblaze Setting /usr/bin/qemu-microblazeel-static as binfmt interpreter for microblazeel Setting /usr/bin/qemu-or1k-static as binfmt interpreter for or1k |
@maximosipov This branch is not ready yet, I have added the missing variable that was causing the failure so you can build locally |
@sgermanserrano Thanks! I just use it as a base branch for ament integration. I think we are also missing IMAGE_NAME variable in the same script. |
@maximosipov Thanks for the heads up, I'll fix that also |
@@ -115,7 +75,7 @@ COPY --from=sysroot /usr/share/pkgconfig ${AUTOWARE_SYSROOT}/usr/share/pkgconfig | |||
COPY --from=sysroot /opt ${AUTOWARE_SYSROOT}/opt | |||
COPY --from=sysroot /etc/alternatives ${AUTOWARE_SYSROOT}/etc/alternatives | |||
RUN echo "deb http://packages.ros.org/ros/ubuntu xenial main" | tee /etc/apt/sources.list.d/ros-latest.list | |||
RUN apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116 | |||
RUN apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
From @JWhitleyAStuff - Is there a reason for this change? The ha pool isn't listed here: https://sks-keyservers.net/overview-of-pools.php and, since we are using port 80 to avoid Dockerhub restrictions, doesn't p80 make more sense?
@sgermanserrano Please update us on the status of this PR. If it won't make it into 1.11, then fork and do the PR from there. |
@gbiggs The PR is not going to make it for v1.11 but is on a fork already |
You're right; sorry, I missed that. |
Owing to the new repositories structure and the move to Gitlab this PR can be deprecated and the functionality addressed in due course |
Status
PRODUCTION / DEVELOPMENT
Description
Addition of dockerhub hooks for automatic generation of cross-build images.
Related PRs
autowarefoundation/autoware_ai#530 #1946 autowarefoundation/autoware_ai#551