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

feat: added arm v8 to docker build and push #441

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

JamesMarino
Copy link

Added ARM v8 Docker architecture to both build and push scripts.

This has been tested using a personal repo.

Copy link
Member

@djfarrelly djfarrelly left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @JamesMarino - I'd love to support this change, but my latest Docker for Mac doesn't have linux/arm/v8 support and I'd like to test this myself before merging (so I can also publish the images). Do you have any information on how one needs to install the v8 support to build these images? I spent some time trying to sort this out and I couldn't find anything that worked for me - Also I'd like to include that info within the dockerBuild.sh file for future devs that need to run that script!

@JamesMarino
Copy link
Author

Thanks for the review @djfarrelly - what error were you getting when trying to run the build locally? I'm not sure there is anything I needed to do in particular to support linux/arm/v8 on my Mac. I'm able to run the command on Docker Desktop 4.15.0, Engine 20.10.21 and BuildX 0.9.1 and on a MacBook Pro with Intel and Apple Silicon chips.

Addressing the issue higher, how would you feel about running a GitHub Action that would automatically Docker build and push to the maildev/maildev Docker Hub when run on master? This would take out the problem for issues arising when building and pushing multiple platforms on individual devices locally.

@djfarrelly
Copy link
Member

Hi @JamesMarino, my Docker for mac gives me these options for buildx:

docker run --privileged --rm tonistiigi/binfmt --install all
{
  "supported": [
    "linux/arm64",
    "linux/amd64",
    "linux/riscv64",
    "linux/ppc64le",
    "linux/s390x",
    "linux/386",
    "linux/mips64le",
    "linux/mips64",
    "linux/arm/v7",
    "linux/arm/v6"
  ],
  "emulators": [
    "qemu-arm",
    "qemu-i386",
    "qemu-mips64",
    "qemu-mips64el",
    "qemu-ppc64le",
    "qemu-riscv64",
    "qemu-s390x",
    "qemu-x86_64"
  ]
}

I would be up for automating pushing to Docker hub, the only challenges are with QA on the image (less needed if there are automated integration tests with the container image. I think the image release can be run on Github actions, but should still be triggered for a particular release tag then just push to "latest" (I've also seen that having version tags on Docker images are best if a regression sneaks into master it might break people's setup). Would you be interested in writing that Github action for this repo?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants