Docker Multi Arch (esp. ARM) builds: Improving Build File (#1451)
Co-authored-by: David Lorenz <david@wahnsinn.design>
This commit is contained in:
parent
2b95c88188
commit
9423c74d96
2 changed files with 91 additions and 85 deletions
4
.github/workflows/release.yml
vendored
4
.github/workflows/release.yml
vendored
|
@ -41,6 +41,10 @@ jobs:
|
|||
run: |
|
||||
make dist
|
||||
|
||||
- name: Check Docker Version
|
||||
run: |
|
||||
docker version
|
||||
|
||||
- name: Run GoReleaser
|
||||
uses: goreleaser/goreleaser-action@v4
|
||||
with:
|
||||
|
|
172
.goreleaser.yml
172
.goreleaser.yml
|
@ -1,6 +1,8 @@
|
|||
env:
|
||||
- GO111MODULE=on
|
||||
- CGO_ENABLED=0
|
||||
- GITHUB_ORG=knadh
|
||||
- DOCKER_ORG=listmonk
|
||||
|
||||
before:
|
||||
hooks:
|
||||
|
@ -10,9 +12,9 @@ builds:
|
|||
- binary: listmonk
|
||||
main: ./cmd
|
||||
goos:
|
||||
- linux
|
||||
- windows
|
||||
- darwin
|
||||
- linux
|
||||
- freebsd
|
||||
- openbsd
|
||||
- netbsd
|
||||
|
@ -41,123 +43,123 @@ dockers:
|
|||
goos: linux
|
||||
goarch: amd64
|
||||
ids:
|
||||
- listmonk
|
||||
- listmonk
|
||||
image_templates:
|
||||
- "listmonk/{{ .ProjectName }}:latest-amd64"
|
||||
- "listmonk/{{ .ProjectName }}:{{ .Tag }}-amd64"
|
||||
- "ghcr.io/knadh/{{ .ProjectName }}:latest-amd64"
|
||||
- "ghcr.io/knadh/{{ .ProjectName }}:{{ .Tag }}-amd64"
|
||||
- "{{ .Env.DOCKER_ORG }}/{{ .ProjectName }}:latest-amd64"
|
||||
- "{{ .Env.DOCKER_ORG }}/{{ .ProjectName }}:{{ .Tag }}-amd64"
|
||||
- "ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:latest-amd64"
|
||||
- "ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:{{ .Tag }}-amd64"
|
||||
build_flag_templates:
|
||||
- --platform=linux/amd64
|
||||
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
||||
- --label=org.opencontainers.image.description={{ .ProjectName }}
|
||||
- --label=org.opencontainers.image.url=https://github.com/knadh/{{ .ProjectName }}
|
||||
- --label=org.opencontainers.image.source=https://github.com/knadh/{{ .ProjectName }}
|
||||
- --label=org.opencontainers.image.version={{ .Version }}
|
||||
- --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
|
||||
- --label=org.opencontainers.image.revision={{ .FullCommit }}
|
||||
- --label=org.opencontainers.image.licenses=AGPL-3.0
|
||||
- --platform=linux/amd64
|
||||
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
||||
- --label=org.opencontainers.image.description={{ .ProjectName }}
|
||||
- --label=org.opencontainers.image.url=https://github.com/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}
|
||||
- --label=org.opencontainers.image.source=https://github.com/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}
|
||||
- --label=org.opencontainers.image.version={{ .Version }}
|
||||
- --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
|
||||
- --label=org.opencontainers.image.revision={{ .FullCommit }}
|
||||
- --label=org.opencontainers.image.licenses=AGPL-3.0
|
||||
dockerfile: Dockerfile
|
||||
extra_files:
|
||||
- config.toml.sample
|
||||
- config-demo.toml
|
||||
- config.toml.sample
|
||||
- config-demo.toml
|
||||
- use: buildx
|
||||
goos: linux
|
||||
goarch: arm64
|
||||
ids:
|
||||
- listmonk
|
||||
- listmonk
|
||||
image_templates:
|
||||
- "listmonk/{{ .ProjectName }}:latest-arm64v8"
|
||||
- "listmonk/{{ .ProjectName }}:{{ .Tag }}-arm64v8"
|
||||
- "ghcr.io/knadh/{{ .ProjectName }}:latest-arm64v8"
|
||||
- "ghcr.io/knadh/{{ .ProjectName }}:{{ .Tag }}-arm64v8"
|
||||
- "{{ .Env.DOCKER_ORG }}/{{ .ProjectName }}:latest-arm64v8"
|
||||
- "{{ .Env.DOCKER_ORG }}/{{ .ProjectName }}:{{ .Tag }}-arm64v8"
|
||||
- "ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:latest-arm64v8"
|
||||
- "ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:{{ .Tag }}-arm64v8"
|
||||
build_flag_templates:
|
||||
- --platform=linux/arm64/v8
|
||||
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
||||
- --label=org.opencontainers.image.description={{ .ProjectName }}
|
||||
- --label=org.opencontainers.image.url=https://github.com/knadh/{{ .ProjectName }}
|
||||
- --label=org.opencontainers.image.source=https://github.com/knadh/{{ .ProjectName }}
|
||||
- --label=org.opencontainers.image.version={{ .Version }}
|
||||
- --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
|
||||
- --label=org.opencontainers.image.revision={{ .FullCommit }}
|
||||
- --label=org.opencontainers.image.licenses=AGPL-3.0
|
||||
- --platform=linux/arm64/v8
|
||||
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
||||
- --label=org.opencontainers.image.description={{ .ProjectName }}
|
||||
- --label=org.opencontainers.image.url=https://github.com/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}
|
||||
- --label=org.opencontainers.image.source=https://github.com/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}
|
||||
- --label=org.opencontainers.image.version={{ .Version }}
|
||||
- --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
|
||||
- --label=org.opencontainers.image.revision={{ .FullCommit }}
|
||||
- --label=org.opencontainers.image.licenses=AGPL-3.0
|
||||
dockerfile: Dockerfile
|
||||
extra_files:
|
||||
- config.toml.sample
|
||||
- config-demo.toml
|
||||
- config.toml.sample
|
||||
- config-demo.toml
|
||||
- use: buildx
|
||||
goos: linux
|
||||
goarch: arm
|
||||
goarm: 6
|
||||
ids:
|
||||
- listmonk
|
||||
- listmonk
|
||||
image_templates:
|
||||
- "listmonk/{{ .ProjectName }}:latest-armv6"
|
||||
- "listmonk/{{ .ProjectName }}:{{ .Tag }}-armv6"
|
||||
- "ghcr.io/knadh/{{ .ProjectName }}:latest-armv6"
|
||||
- "ghcr.io/knadh/{{ .ProjectName }}:{{ .Tag }}-armv6"
|
||||
- "{{ .Env.DOCKER_ORG }}/{{ .ProjectName }}:latest-armv6"
|
||||
- "{{ .Env.DOCKER_ORG }}/{{ .ProjectName }}:{{ .Tag }}-armv6"
|
||||
- "ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:latest-armv6"
|
||||
- "ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:{{ .Tag }}-armv6"
|
||||
build_flag_templates:
|
||||
- --platform=linux/arm/v6
|
||||
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
||||
- --label=org.opencontainers.image.description={{ .ProjectName }}
|
||||
- --label=org.opencontainers.image.url=https://github.com/knadh/{{ .ProjectName }}
|
||||
- --label=org.opencontainers.image.source=https://github.com/knadh/{{ .ProjectName }}
|
||||
- --label=org.opencontainers.image.version={{ .Version }}
|
||||
- --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
|
||||
- --label=org.opencontainers.image.revision={{ .FullCommit }}
|
||||
- --label=org.opencontainers.image.licenses=AGPL-3.0
|
||||
- --platform=linux/arm/v6
|
||||
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
||||
- --label=org.opencontainers.image.description={{ .ProjectName }}
|
||||
- --label=org.opencontainers.image.url=https://github.com/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}
|
||||
- --label=org.opencontainers.image.source=https://github.com/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}
|
||||
- --label=org.opencontainers.image.version={{ .Version }}
|
||||
- --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
|
||||
- --label=org.opencontainers.image.revision={{ .FullCommit }}
|
||||
- --label=org.opencontainers.image.licenses=AGPL-3.0
|
||||
dockerfile: Dockerfile
|
||||
extra_files:
|
||||
- config.toml.sample
|
||||
- config-demo.toml
|
||||
- config.toml.sample
|
||||
- config-demo.toml
|
||||
- use: buildx
|
||||
goos: linux
|
||||
goarch: arm
|
||||
goarm: 7
|
||||
ids:
|
||||
- listmonk
|
||||
- listmonk
|
||||
image_templates:
|
||||
- "listmonk/{{ .ProjectName }}:latest-armv7"
|
||||
- "listmonk/{{ .ProjectName }}:{{ .Tag }}-armv7"
|
||||
- "ghcr.io/knadh/{{ .ProjectName }}:latest-armv7"
|
||||
- "ghcr.io/knadh/{{ .ProjectName }}:{{ .Tag }}-armv7"
|
||||
- "{{ .Env.DOCKER_ORG }}/{{ .ProjectName }}:latest-armv7"
|
||||
- "{{ .Env.DOCKER_ORG }}/{{ .ProjectName }}:{{ .Tag }}-armv7"
|
||||
- "ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:latest-armv7"
|
||||
- "ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:{{ .Tag }}-armv7"
|
||||
build_flag_templates:
|
||||
- --platform=linux/arm/v7
|
||||
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
||||
- --label=org.opencontainers.image.description={{ .ProjectName }}
|
||||
- --label=org.opencontainers.image.url=https://github.com/knadh/{{ .ProjectName }}
|
||||
- --label=org.opencontainers.image.source=https://github.com/knadh/{{ .ProjectName }}
|
||||
- --label=org.opencontainers.image.version={{ .Version }}
|
||||
- --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
|
||||
- --label=org.opencontainers.image.revision={{ .FullCommit }}
|
||||
- --label=org.opencontainers.image.licenses=AGPL-3.0
|
||||
- --platform=linux/arm/v7
|
||||
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
||||
- --label=org.opencontainers.image.description={{ .ProjectName }}
|
||||
- --label=org.opencontainers.image.url=https://github.com/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}
|
||||
- --label=org.opencontainers.image.source=https://github.com/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}
|
||||
- --label=org.opencontainers.image.version={{ .Version }}
|
||||
- --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
|
||||
- --label=org.opencontainers.image.revision={{ .FullCommit }}
|
||||
- --label=org.opencontainers.image.licenses=AGPL-3.0
|
||||
dockerfile: Dockerfile
|
||||
extra_files:
|
||||
- config.toml.sample
|
||||
- config-demo.toml
|
||||
- config.toml.sample
|
||||
- config-demo.toml
|
||||
|
||||
docker_manifests:
|
||||
- name_template: listmonk/{{ .ProjectName }}:latest
|
||||
- name_template: "{{ .Env.DOCKER_ORG }}/{{ .ProjectName }}:latest"
|
||||
image_templates:
|
||||
- listmonk/{{ .ProjectName }}:latest-amd64
|
||||
- listmonk/{{ .ProjectName }}:latest-arm64v8
|
||||
- listmonk/{{ .ProjectName }}:latest-armv6
|
||||
- listmonk/{{ .ProjectName }}:latest-armv7
|
||||
- name_template: listmonk/{{ .ProjectName }}:{{ .Tag }}
|
||||
- "{{ .Env.DOCKER_ORG }}/{{ .ProjectName }}:latest-amd64"
|
||||
- "{{ .Env.DOCKER_ORG }}/{{ .ProjectName }}:latest-arm64v8"
|
||||
- "{{ .Env.DOCKER_ORG }}/{{ .ProjectName }}:latest-armv6"
|
||||
- "{{ .Env.DOCKER_ORG }}/{{ .ProjectName }}:latest-armv7"
|
||||
- name_template: "{{ .Env.DOCKER_ORG }}/{{ .ProjectName }}:{{ .Tag }}"
|
||||
image_templates:
|
||||
- listmonk/{{ .ProjectName }}:{{ .Tag }}-amd64
|
||||
- listmonk/{{ .ProjectName }}:{{ .Tag }}-arm64v8
|
||||
- listmonk/{{ .ProjectName }}:{{ .Tag }}-armv6
|
||||
- listmonk/{{ .ProjectName }}:{{ .Tag }}-armv7
|
||||
- name_template: ghcr.io/knadh/{{ .ProjectName }}:latest
|
||||
- "{{ .Env.DOCKER_ORG }}/{{ .ProjectName }}:{{ .Tag }}-amd64"
|
||||
- "{{ .Env.DOCKER_ORG }}/{{ .ProjectName }}:{{ .Tag }}-arm64v8"
|
||||
- "{{ .Env.DOCKER_ORG }}/{{ .ProjectName }}:{{ .Tag }}-armv6"
|
||||
- "{{ .Env.DOCKER_ORG }}/{{ .ProjectName }}:{{ .Tag }}-armv7"
|
||||
- name_template: ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:latest
|
||||
image_templates:
|
||||
- ghcr.io/knadh/{{ .ProjectName }}:latest-amd64
|
||||
- ghcr.io/knadh/{{ .ProjectName }}:latest-arm64v8
|
||||
- ghcr.io/knadh/{{ .ProjectName }}:latest-armv6
|
||||
- ghcr.io/knadh/{{ .ProjectName }}:latest-armv7
|
||||
- name_template: ghcr.io/knadh/{{ .ProjectName }}:{{ .Tag }}
|
||||
- ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:latest-amd64
|
||||
- ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:latest-arm64v8
|
||||
- ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:latest-armv6
|
||||
- ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:latest-armv7
|
||||
- name_template: ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:{{ .Tag }}
|
||||
image_templates:
|
||||
- ghcr.io/knadh/{{ .ProjectName }}:{{ .Tag }}-amd64
|
||||
- ghcr.io/knadh/{{ .ProjectName }}:{{ .Tag }}-arm64v8
|
||||
- ghcr.io/knadh/{{ .ProjectName }}:{{ .Tag }}-armv6
|
||||
- ghcr.io/knadh/{{ .ProjectName }}:{{ .Tag }}-armv7
|
||||
- ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:{{ .Tag }}-amd64
|
||||
- ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:{{ .Tag }}-arm64v8
|
||||
- ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:{{ .Tag }}-armv6
|
||||
- ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:{{ .Tag }}-armv7
|
||||
|
|
Loading…
Reference in a new issue