chore: add docker

This commit is contained in:
Kevin Franklin Kim 2025-09-10 16:13:51 +02:00
parent c3a1a68c9b
commit df04a14c25
No known key found for this signature in database
7 changed files with 107 additions and 8 deletions

2
.dockerignore Normal file
View File

@ -0,0 +1,2 @@
sesamy
dist

View File

@ -22,15 +22,22 @@ jobs:
check-latest: true
go-version-file: go.mod
- uses: docker/setup-qemu-action@v3
- uses: docker/setup-buildx-action@v3
- id: app_token
uses: tibdex/github-app-token@v2
with:
app_id: ${{ secrets.TOKEN_APP_ID }}
private_key: ${{ secrets.TOKEN_APP_PRIVATE_KEY }}
- name: Login to docker.io
run: docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_TOKEN }}
- uses: goreleaser/goreleaser-action@v6
with:
version: latest
version: '~> v2'
args: release --clean
env:
GITHUB_TOKEN: ${{ steps.app_token.outputs.token }}

9
.gitignore vendored
View File

@ -16,13 +16,18 @@
## Editorconfig
!.editorconfig
## Ownbrew
!.ownbrew.yaml
## Docker
!.dockerignore
## Husky
!.husky/
!.husky.yaml
## Golang
go.work
go.work.sum
!.golangci.yml
!.goreleaser.yml
## Ownbrew
!.ownbrew.yaml

View File

@ -41,3 +41,74 @@ brews:
description: "CLI utitlity to manage Server Side Tag Management"
test: |
system "#{bin}/sesamy --version"
dockers:
- use: buildx
goos: linux
goarch: amd64
dockerfile: Dockerfile
image_templates:
- '{{ if eq .Prerelease "" }}foomo/sesamy:latest-amd64{{ end }}'
- 'foomo/sesamy:{{ .Version }}-amd64'
- '{{ if eq .Prerelease "" }}foomo/sesamy:{{ .Major }}-amd64{{ end }}'
- '{{ if eq .Prerelease "" }}foomo/sesamy:{{ .Major }}.{{ .Minor }}-amd64{{ end }}'
build_flag_templates:
- '--pull'
# https://github.com/opencontainers/image-spec/blob/main/annotations.md#pre-defined-annotation-keys
- '--label=org.opencontainers.image.title={{.ProjectName}}'
- '--label=org.opencontainers.image.description=CLI utility manage infrastructure as code with helm'
- '--label=org.opencontainers.image.source={{.GitURL}}'
- '--label=org.opencontainers.image.url={{.GitURL}}'
- '--label=org.opencontainers.image.documentation={{.GitURL}}'
- '--label=org.opencontainers.image.created={{.Date}}'
- '--label=org.opencontainers.image.revision={{.FullCommit}}'
- '--label=org.opencontainers.image.version={{.Version}}'
- '--platform=linux/amd64'
- use: buildx
goos: linux
goarch: arm64
dockerfile: Dockerfile
image_templates:
- '{{ if eq .Prerelease "" }}foomo/sesamy:latest-arm64{{ end }}'
- 'foomo/sesamy:{{ .Version }}-arm64'
- '{{ if eq .Prerelease "" }}foomo/sesamy:{{ .Major }}-arm64{{ end }}'
- '{{ if eq .Prerelease "" }}foomo/sesamy:{{ .Major }}.{{ .Minor }}-arm64{{ end }}'
build_flag_templates:
- '--pull'
# https://github.com/opencontainers/image-spec/blob/main/annotations.md#pre-defined-annotation-keys
- '--label=org.opencontainers.image.title={{.ProjectName}}'
- '--label=org.opencontainers.image.description=CLI utility manage infrastructure as code with helm'
- '--label=org.opencontainers.image.source={{.GitURL}}'
- '--label=org.opencontainers.image.url={{.GitURL}}'
- '--label=org.opencontainers.image.documentation={{.GitURL}}'
- '--label=org.opencontainers.image.created={{.Date}}'
- '--label=org.opencontainers.image.revision={{.FullCommit}}'
- '--label=org.opencontainers.image.version={{.Version}}'
- '--platform=linux/arm64'
docker_manifests:
# basic
- name_template: 'foomo/sesamy:latest'
image_templates:
- 'foomo/sesamy:latest-amd64'
- 'foomo/sesamy:latest-arm64'
skip_push: auto
- name_template: 'foomo/sesamy:{{ .Version }}'
image_templates:
- 'foomo/sesamy:{{ .Version }}-amd64'
- 'foomo/sesamy:{{ .Version }}-arm64'
skip_push: auto
- name_template: 'foomo/sesamy:{{ .Major }}'
image_templates:
- 'foomo/sesamy:{{ .Major }}-amd64'
- 'foomo/sesamy:{{ .Major }}-arm64'
skip_push: auto
- name_template: 'foomo/sesamy:{{ .Major }}.{{ .Minor }}'
image_templates:
- 'foomo/sesamy:{{ .Major }}.{{ .Minor }}-amd64'
- 'foomo/sesamy:{{ .Major }}.{{ .Minor }}-arm64'
skip_push: auto

12
Dockerfile Normal file
View File

@ -0,0 +1,12 @@
FROM alpine:latest
RUN apk --no-cache add ca-certificates
RUN adduser -D -u 1001 -g 1001 sesamy
COPY sesamy /usr/bin/
USER sesamy
WORKDIR /home/sesamy
ENTRYPOINT ["sesamy"]

View File

@ -19,11 +19,6 @@ PATH:=bin:$(PATH)
### Tasks
.PHONY: brew
## Install project binaries
brew:
@ownbrew install
.PHONY: doc
## Open go docs
doc:
@ -75,6 +70,11 @@ install.debug:
### Utils
.PHONY: brew
## Install project binaries
brew:
@ownbrew install
.PHONY: help
## Show help text
help:

View File

@ -350,6 +350,8 @@ func diff(ctx context.Context, l *slog.Logger, tm *tagmanager.TagManager) (strin
return "", err
}
res = append(res, d...)
default:
l.Warn("unknown entity type", "entity", entity)
}
}
return strings.Join(res, " ---\n"), nil