Skip to content
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

Closed
wants to merge 5 commits into from
Closed

crossbuild dockerhub #1982

wants to merge 5 commits into from

Conversation

sgermanserrano
Copy link

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

Servando German and others added 4 commits February 11, 2019 14:02
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>
@maximosipov
Copy link

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

@sgermanserrano
Copy link
Author

@maximosipov This branch is not ready yet, I have added the missing variable that was causing the failure so you can build locally

@maximosipov
Copy link

@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.

@sgermanserrano
Copy link
Author

@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

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?

@gbiggs gbiggs added type:new-feature New functionalities or additions, feature requests. in review and removed in review labels Mar 18, 2019
@gbiggs
Copy link

gbiggs commented Mar 18, 2019

@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.

@sgermanserrano
Copy link
Author

@gbiggs The PR is not going to make it for v1.11 but is on a fork already

@gbiggs
Copy link

gbiggs commented Mar 19, 2019

You're right; sorry, I missed that.

@gbiggs gbiggs added this to the v1.12 milestone Mar 19, 2019
@gbiggs gbiggs changed the title [DO NOT MERGE YET] Feature/crossbuild dockerhub Feature/crossbuild dockerhub Mar 27, 2019
@gbiggs gbiggs changed the title Feature/crossbuild dockerhub crossbuild dockerhub Mar 27, 2019
@sgermanserrano
Copy link
Author

Owing to the new repositories structure and the move to Gitlab this PR can be deprecated and the functionality addressed in due course

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type:new-feature New functionalities or additions, feature requests. version:autoware-ai Autoware.AI
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants