From ec3ce1534442c4814f2fd8a4923c614f0c7d04f8 Mon Sep 17 00:00:00 2001 From: Joona Hoikkala Date: Thu, 5 Feb 2026 17:30:09 +0200 Subject: [PATCH] Build and push a new docker image to Docker Hub when a release is triggered --- .github/workflows/release.yml | 6 ++++++ .goreleaser.yml | 13 +++++++++++++ Dockerfile.release | 12 ++++++++++++ 3 files changed, 31 insertions(+) create mode 100644 Dockerfile.release diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8a630a4..76fc482 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -26,8 +26,14 @@ jobs: with: gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }} passphrase: ${{ secrets.GPG_PASSPHRASE }} + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} - name: Run GoReleaser uses: goreleaser/goreleaser-action@v6 + with: distribution: goreleaser version: latest diff --git a/.goreleaser.yml b/.goreleaser.yml index 9fccd73..9f68c51 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -20,3 +20,16 @@ archives: signs: - artifacts: checksum args: ["--batch", "-u", "{{ .Env.GPG_FINGERPRINT }}", "--output", "${signature}", "--detach-sign", "${artifact}"] + +dockers: + - image_templates: + - "joohoi/acme-dns:{{ .Tag }}" + - "joohoi/acme-dns:latest" + dockerfile: Dockerfile.release + build_flag_templates: + - "--pull" + - "--label=org.opencontainers.image.created={{.Date}}" + - "--label=org.opencontainers.image.name={{.ProjectName}}" + - "--label=org.opencontainers.image.revision={{.FullCommit}}" + - "--label=org.opencontainers.image.version={{.Version}}" + diff --git a/Dockerfile.release b/Dockerfile.release new file mode 100644 index 0000000..7998991 --- /dev/null +++ b/Dockerfile.release @@ -0,0 +1,12 @@ +FROM alpine:latest + +RUN apk --no-cache add ca-certificates && update-ca-certificates +RUN mkdir -p /etc/acme-dns +RUN mkdir -p /var/lib/acme-dns + +COPY acme-dns /usr/local/bin/acme-dns + +VOLUME ["/etc/acme-dns", "/var/lib/acme-dns"] +ENTRYPOINT ["acme-dns"] +EXPOSE 53 80 443 +EXPOSE 53/udp