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: |
|
run: |
|
||||||
make dist
|
make dist
|
||||||
|
|
||||||
|
- name: Check Docker Version
|
||||||
|
run: |
|
||||||
|
docker version
|
||||||
|
|
||||||
- name: Run GoReleaser
|
- name: Run GoReleaser
|
||||||
uses: goreleaser/goreleaser-action@v4
|
uses: goreleaser/goreleaser-action@v4
|
||||||
with:
|
with:
|
||||||
|
|
172
.goreleaser.yml
172
.goreleaser.yml
|
@ -1,6 +1,8 @@
|
||||||
env:
|
env:
|
||||||
- GO111MODULE=on
|
- GO111MODULE=on
|
||||||
- CGO_ENABLED=0
|
- CGO_ENABLED=0
|
||||||
|
- GITHUB_ORG=knadh
|
||||||
|
- DOCKER_ORG=listmonk
|
||||||
|
|
||||||
before:
|
before:
|
||||||
hooks:
|
hooks:
|
||||||
|
@ -10,9 +12,9 @@ builds:
|
||||||
- binary: listmonk
|
- binary: listmonk
|
||||||
main: ./cmd
|
main: ./cmd
|
||||||
goos:
|
goos:
|
||||||
|
- linux
|
||||||
- windows
|
- windows
|
||||||
- darwin
|
- darwin
|
||||||
- linux
|
|
||||||
- freebsd
|
- freebsd
|
||||||
- openbsd
|
- openbsd
|
||||||
- netbsd
|
- netbsd
|
||||||
|
@ -41,123 +43,123 @@ dockers:
|
||||||
goos: linux
|
goos: linux
|
||||||
goarch: amd64
|
goarch: amd64
|
||||||
ids:
|
ids:
|
||||||
- listmonk
|
- listmonk
|
||||||
image_templates:
|
image_templates:
|
||||||
- "listmonk/{{ .ProjectName }}:latest-amd64"
|
- "{{ .Env.DOCKER_ORG }}/{{ .ProjectName }}:latest-amd64"
|
||||||
- "listmonk/{{ .ProjectName }}:{{ .Tag }}-amd64"
|
- "{{ .Env.DOCKER_ORG }}/{{ .ProjectName }}:{{ .Tag }}-amd64"
|
||||||
- "ghcr.io/knadh/{{ .ProjectName }}:latest-amd64"
|
- "ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:latest-amd64"
|
||||||
- "ghcr.io/knadh/{{ .ProjectName }}:{{ .Tag }}-amd64"
|
- "ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:{{ .Tag }}-amd64"
|
||||||
build_flag_templates:
|
build_flag_templates:
|
||||||
- --platform=linux/amd64
|
- --platform=linux/amd64
|
||||||
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
||||||
- --label=org.opencontainers.image.description={{ .ProjectName }}
|
- --label=org.opencontainers.image.description={{ .ProjectName }}
|
||||||
- --label=org.opencontainers.image.url=https://github.com/knadh/{{ .ProjectName }}
|
- --label=org.opencontainers.image.url=https://github.com/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}
|
||||||
- --label=org.opencontainers.image.source=https://github.com/knadh/{{ .ProjectName }}
|
- --label=org.opencontainers.image.source=https://github.com/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}
|
||||||
- --label=org.opencontainers.image.version={{ .Version }}
|
- --label=org.opencontainers.image.version={{ .Version }}
|
||||||
- --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
|
- --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
|
||||||
- --label=org.opencontainers.image.revision={{ .FullCommit }}
|
- --label=org.opencontainers.image.revision={{ .FullCommit }}
|
||||||
- --label=org.opencontainers.image.licenses=AGPL-3.0
|
- --label=org.opencontainers.image.licenses=AGPL-3.0
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
extra_files:
|
extra_files:
|
||||||
- config.toml.sample
|
- config.toml.sample
|
||||||
- config-demo.toml
|
- config-demo.toml
|
||||||
- use: buildx
|
- use: buildx
|
||||||
goos: linux
|
goos: linux
|
||||||
goarch: arm64
|
goarch: arm64
|
||||||
ids:
|
ids:
|
||||||
- listmonk
|
- listmonk
|
||||||
image_templates:
|
image_templates:
|
||||||
- "listmonk/{{ .ProjectName }}:latest-arm64v8"
|
- "{{ .Env.DOCKER_ORG }}/{{ .ProjectName }}:latest-arm64v8"
|
||||||
- "listmonk/{{ .ProjectName }}:{{ .Tag }}-arm64v8"
|
- "{{ .Env.DOCKER_ORG }}/{{ .ProjectName }}:{{ .Tag }}-arm64v8"
|
||||||
- "ghcr.io/knadh/{{ .ProjectName }}:latest-arm64v8"
|
- "ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:latest-arm64v8"
|
||||||
- "ghcr.io/knadh/{{ .ProjectName }}:{{ .Tag }}-arm64v8"
|
- "ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:{{ .Tag }}-arm64v8"
|
||||||
build_flag_templates:
|
build_flag_templates:
|
||||||
- --platform=linux/arm64/v8
|
- --platform=linux/arm64/v8
|
||||||
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
||||||
- --label=org.opencontainers.image.description={{ .ProjectName }}
|
- --label=org.opencontainers.image.description={{ .ProjectName }}
|
||||||
- --label=org.opencontainers.image.url=https://github.com/knadh/{{ .ProjectName }}
|
- --label=org.opencontainers.image.url=https://github.com/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}
|
||||||
- --label=org.opencontainers.image.source=https://github.com/knadh/{{ .ProjectName }}
|
- --label=org.opencontainers.image.source=https://github.com/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}
|
||||||
- --label=org.opencontainers.image.version={{ .Version }}
|
- --label=org.opencontainers.image.version={{ .Version }}
|
||||||
- --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
|
- --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
|
||||||
- --label=org.opencontainers.image.revision={{ .FullCommit }}
|
- --label=org.opencontainers.image.revision={{ .FullCommit }}
|
||||||
- --label=org.opencontainers.image.licenses=AGPL-3.0
|
- --label=org.opencontainers.image.licenses=AGPL-3.0
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
extra_files:
|
extra_files:
|
||||||
- config.toml.sample
|
- config.toml.sample
|
||||||
- config-demo.toml
|
- config-demo.toml
|
||||||
- use: buildx
|
- use: buildx
|
||||||
goos: linux
|
goos: linux
|
||||||
goarch: arm
|
goarch: arm
|
||||||
goarm: 6
|
goarm: 6
|
||||||
ids:
|
ids:
|
||||||
- listmonk
|
- listmonk
|
||||||
image_templates:
|
image_templates:
|
||||||
- "listmonk/{{ .ProjectName }}:latest-armv6"
|
- "{{ .Env.DOCKER_ORG }}/{{ .ProjectName }}:latest-armv6"
|
||||||
- "listmonk/{{ .ProjectName }}:{{ .Tag }}-armv6"
|
- "{{ .Env.DOCKER_ORG }}/{{ .ProjectName }}:{{ .Tag }}-armv6"
|
||||||
- "ghcr.io/knadh/{{ .ProjectName }}:latest-armv6"
|
- "ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:latest-armv6"
|
||||||
- "ghcr.io/knadh/{{ .ProjectName }}:{{ .Tag }}-armv6"
|
- "ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:{{ .Tag }}-armv6"
|
||||||
build_flag_templates:
|
build_flag_templates:
|
||||||
- --platform=linux/arm/v6
|
- --platform=linux/arm/v6
|
||||||
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
||||||
- --label=org.opencontainers.image.description={{ .ProjectName }}
|
- --label=org.opencontainers.image.description={{ .ProjectName }}
|
||||||
- --label=org.opencontainers.image.url=https://github.com/knadh/{{ .ProjectName }}
|
- --label=org.opencontainers.image.url=https://github.com/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}
|
||||||
- --label=org.opencontainers.image.source=https://github.com/knadh/{{ .ProjectName }}
|
- --label=org.opencontainers.image.source=https://github.com/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}
|
||||||
- --label=org.opencontainers.image.version={{ .Version }}
|
- --label=org.opencontainers.image.version={{ .Version }}
|
||||||
- --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
|
- --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
|
||||||
- --label=org.opencontainers.image.revision={{ .FullCommit }}
|
- --label=org.opencontainers.image.revision={{ .FullCommit }}
|
||||||
- --label=org.opencontainers.image.licenses=AGPL-3.0
|
- --label=org.opencontainers.image.licenses=AGPL-3.0
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
extra_files:
|
extra_files:
|
||||||
- config.toml.sample
|
- config.toml.sample
|
||||||
- config-demo.toml
|
- config-demo.toml
|
||||||
- use: buildx
|
- use: buildx
|
||||||
goos: linux
|
goos: linux
|
||||||
goarch: arm
|
goarch: arm
|
||||||
goarm: 7
|
goarm: 7
|
||||||
ids:
|
ids:
|
||||||
- listmonk
|
- listmonk
|
||||||
image_templates:
|
image_templates:
|
||||||
- "listmonk/{{ .ProjectName }}:latest-armv7"
|
- "{{ .Env.DOCKER_ORG }}/{{ .ProjectName }}:latest-armv7"
|
||||||
- "listmonk/{{ .ProjectName }}:{{ .Tag }}-armv7"
|
- "{{ .Env.DOCKER_ORG }}/{{ .ProjectName }}:{{ .Tag }}-armv7"
|
||||||
- "ghcr.io/knadh/{{ .ProjectName }}:latest-armv7"
|
- "ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:latest-armv7"
|
||||||
- "ghcr.io/knadh/{{ .ProjectName }}:{{ .Tag }}-armv7"
|
- "ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:{{ .Tag }}-armv7"
|
||||||
build_flag_templates:
|
build_flag_templates:
|
||||||
- --platform=linux/arm/v7
|
- --platform=linux/arm/v7
|
||||||
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
||||||
- --label=org.opencontainers.image.description={{ .ProjectName }}
|
- --label=org.opencontainers.image.description={{ .ProjectName }}
|
||||||
- --label=org.opencontainers.image.url=https://github.com/knadh/{{ .ProjectName }}
|
- --label=org.opencontainers.image.url=https://github.com/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}
|
||||||
- --label=org.opencontainers.image.source=https://github.com/knadh/{{ .ProjectName }}
|
- --label=org.opencontainers.image.source=https://github.com/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}
|
||||||
- --label=org.opencontainers.image.version={{ .Version }}
|
- --label=org.opencontainers.image.version={{ .Version }}
|
||||||
- --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
|
- --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
|
||||||
- --label=org.opencontainers.image.revision={{ .FullCommit }}
|
- --label=org.opencontainers.image.revision={{ .FullCommit }}
|
||||||
- --label=org.opencontainers.image.licenses=AGPL-3.0
|
- --label=org.opencontainers.image.licenses=AGPL-3.0
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
extra_files:
|
extra_files:
|
||||||
- config.toml.sample
|
- config.toml.sample
|
||||||
- config-demo.toml
|
- config-demo.toml
|
||||||
|
|
||||||
docker_manifests:
|
docker_manifests:
|
||||||
- name_template: listmonk/{{ .ProjectName }}:latest
|
- name_template: "{{ .Env.DOCKER_ORG }}/{{ .ProjectName }}:latest"
|
||||||
image_templates:
|
image_templates:
|
||||||
- listmonk/{{ .ProjectName }}:latest-amd64
|
- "{{ .Env.DOCKER_ORG }}/{{ .ProjectName }}:latest-amd64"
|
||||||
- listmonk/{{ .ProjectName }}:latest-arm64v8
|
- "{{ .Env.DOCKER_ORG }}/{{ .ProjectName }}:latest-arm64v8"
|
||||||
- listmonk/{{ .ProjectName }}:latest-armv6
|
- "{{ .Env.DOCKER_ORG }}/{{ .ProjectName }}:latest-armv6"
|
||||||
- listmonk/{{ .ProjectName }}:latest-armv7
|
- "{{ .Env.DOCKER_ORG }}/{{ .ProjectName }}:latest-armv7"
|
||||||
- name_template: listmonk/{{ .ProjectName }}:{{ .Tag }}
|
- name_template: "{{ .Env.DOCKER_ORG }}/{{ .ProjectName }}:{{ .Tag }}"
|
||||||
image_templates:
|
image_templates:
|
||||||
- listmonk/{{ .ProjectName }}:{{ .Tag }}-amd64
|
- "{{ .Env.DOCKER_ORG }}/{{ .ProjectName }}:{{ .Tag }}-amd64"
|
||||||
- listmonk/{{ .ProjectName }}:{{ .Tag }}-arm64v8
|
- "{{ .Env.DOCKER_ORG }}/{{ .ProjectName }}:{{ .Tag }}-arm64v8"
|
||||||
- listmonk/{{ .ProjectName }}:{{ .Tag }}-armv6
|
- "{{ .Env.DOCKER_ORG }}/{{ .ProjectName }}:{{ .Tag }}-armv6"
|
||||||
- listmonk/{{ .ProjectName }}:{{ .Tag }}-armv7
|
- "{{ .Env.DOCKER_ORG }}/{{ .ProjectName }}:{{ .Tag }}-armv7"
|
||||||
- name_template: ghcr.io/knadh/{{ .ProjectName }}:latest
|
- name_template: ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:latest
|
||||||
image_templates:
|
image_templates:
|
||||||
- ghcr.io/knadh/{{ .ProjectName }}:latest-amd64
|
- ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:latest-amd64
|
||||||
- ghcr.io/knadh/{{ .ProjectName }}:latest-arm64v8
|
- ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:latest-arm64v8
|
||||||
- ghcr.io/knadh/{{ .ProjectName }}:latest-armv6
|
- ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:latest-armv6
|
||||||
- ghcr.io/knadh/{{ .ProjectName }}:latest-armv7
|
- ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:latest-armv7
|
||||||
- name_template: ghcr.io/knadh/{{ .ProjectName }}:{{ .Tag }}
|
- name_template: ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:{{ .Tag }}
|
||||||
image_templates:
|
image_templates:
|
||||||
- ghcr.io/knadh/{{ .ProjectName }}:{{ .Tag }}-amd64
|
- ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:{{ .Tag }}-amd64
|
||||||
- ghcr.io/knadh/{{ .ProjectName }}:{{ .Tag }}-arm64v8
|
- ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:{{ .Tag }}-arm64v8
|
||||||
- ghcr.io/knadh/{{ .ProjectName }}:{{ .Tag }}-armv6
|
- ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:{{ .Tag }}-armv6
|
||||||
- ghcr.io/knadh/{{ .ProjectName }}:{{ .Tag }}-armv7
|
- ghcr.io/{{ .Env.GITHUB_ORG }}/{{ .ProjectName }}:{{ .Tag }}-armv7
|
||||||
|
|
Loading…
Reference in a new issue