From 62114ff6c58dccb070270393c622d1e04f80c0be Mon Sep 17 00:00:00 2001 From: Marques Johansson Date: Thu, 23 Feb 2023 09:51:59 -0500 Subject: [PATCH] add a ghcr.io container artifact for metal-cli relesaes Signed-off-by: Marques Johansson --- .github/workflows/release.yml | 2 +- .goreleaser.yml | 14 ++++++++++++++ Dockerfile | 25 +++++++++++++++++++++++++ 3 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 Dockerfile diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4218933f..787dac98 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -24,7 +24,7 @@ jobs: uses: goreleaser/goreleaser-action@v5 with: version: latest - args: release --rm-dist + args: release --clean env: # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # diff --git a/.goreleaser.yml b/.goreleaser.yml index c9d7afee..c4b25831 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -57,3 +57,17 @@ brews: tap: owner: equinix name: homebrew-tap + +dockers: + - image_templates: + - 'ghcr.io/{{ .Env.GITHUB_REPOSITORY }}:{{ .Tag }}-{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}' + dockerfile: Dockerfile + use: buildx + 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}}" + - "--label=org.opencontainers.image.source={{.GitURL}}" + - "--platform=linux/{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}" diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..31034098 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,25 @@ +# syntax=docker/dockerfile:1 + +## Build +FROM golang:1.19-alpine AS build + +WORKDIR /app + +COPY go.mod ./ +COPY go.sum ./ +RUN go mod download + +COPY ./cmd/. ./cmd/ +COPY ./internal/. ./internal/ +RUN go build -o /metal ./cmd/metal + +## Image +FROM scratch + +WORKDIR / + +COPY --from=build /metal /metal + +USER nonroot:nonroot + +ENTRYPOINT ["/metal"]