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: add multiarch docker build support #1344

Merged
merged 4 commits into from
Jul 18, 2023

Conversation

Thunderbottom
Copy link
Contributor

  • Added docker build support for the following platforms:
    • amd64 (default)
    • arm64v8
    • armv6
    • armv7
  • Added GOOS and GOARCH information to the buildString
  • Added docker manifest details to store image architecture metadata
  • Updated docker/login-action from v1 to v2
  • Updated goreleaser/goreleaser-action from v2 to v4

Tested the images locally, built with goreleaser and seems to be working fine. Screenshots:

Build Images

image

Running Containers

image

Container Binary Build Info

image

adds docker build support for the following platforms:
- amd64 (default)
- arm64v8
- armv6
- armv7

also adds GOOS and GOARCH information to the buildString

utilizes docker manifest to store image architecture metadata
.goreleaser.yml Show resolved Hide resolved
@activenode
Copy link
Contributor

This is desperately needed :)

Thanks for the PR. Wanted to do the exact same thing <3

Can we have this merged soon?

@knadh knadh merged commit 3663a8b into knadh:master Jul 18, 2023
@knadh
Copy link
Owner

knadh commented Jul 18, 2023

Done. Thanks @Thunderbottom!

@activenode
Copy link
Contributor

Neat. One quick question. I am not seeing auto-releases for main pushes. Only for v* tags. So do you have in mind when to push the next tag so that it gets pushed to DockerHub? :)

Thanks a bunch @knadh for this great piece.

@knadh
Copy link
Owner

knadh commented Jul 18, 2023

Hi @activenode. I don't think it's ideal for the entire package to be built and pushed on every commit, where some commits may be trivial. A better approach would be to have an automated monthly RC release or something along those lines.

@activenode
Copy link
Contributor

Sure that's fine. I just wanted to ask basically when the next version release is expected. Until then I can build it on my own, all good

@dandry
Copy link

dandry commented Jul 26, 2023

Adding to what @activenode asked. @knadh is there any schedule for the release? I am so eager to try listmonk on my ARM VPS. Great project by the way. Thank you all for contributing to it.

@activenode
Copy link
Contributor

@dandry I created an arm64 build because I wouldn't want to wait. If you wanna try it. It's the exact latest version. https://hub.docker.com/repository/docker/activenode/listmonk-arm64/tags?page=1&ordering=last_updated

@dandry
Copy link

dandry commented Jul 26, 2023

@activenode thank you, will give it a try!

@activenode
Copy link
Contributor

Coming back to this thread, I was forking the newest main and seeing that goreleaser wouldn't do all the builds now as it fails with darwin and windows . Which is totally okay because who wants that anyway :D buuuut it breaks the build really.

I'm working on that in my fork and will provide a PR back.

@activenode
Copy link
Contributor

Little Update:

I'm still working on my branch, multiple errors occur of which one is that syscall.Utsname isn't available on all platforms. I am trying to find a more fitting/generic solution

@activenode
Copy link
Contributor

activenode commented Jul 28, 2023

#1414

(also @dandry I have now recreated all builds until my new PR is properly merged so feel free to use https://hub.docker.com/r/activenode/listmonk/tags)

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.

4 participants