Skip to content

Commit

Permalink
Add a Docker image for the CLI binary
Browse files Browse the repository at this point in the history
  • Loading branch information
hansmi committed Oct 1, 2024
1 parent 3c4b8b6 commit c068270
Show file tree
Hide file tree
Showing 4 changed files with 106 additions and 0 deletions.
17 changes: 17 additions & 0 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: Release

on:
workflow_dispatch:
pull_request:
push:

permissions: {}

jobs:
release:
uses: hansmi/ghactions-goreleaser-workflow/.github/workflows/release.yaml@v0.3
permissions:
contents: write
packages: write

# vim: set sw=2 sts=2 et :
51 changes: 51 additions & 0 deletions .goreleaser.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Configuration for GoReleaser
# https://goreleaser.com/
#
# Local test: contrib/build-all
#

version: 2

project_name: dossier

builds:
- id: dossiercli
main: ./cmd/dossiercli/
binary: dossiercli
env:
- CGO_ENABLED=0
targets:
- linux_amd64_v1
flags:
- -trimpath

dockers:
- ids:
- dossiercli
use: buildx
dockerfile: contrib/Dockerfile.goreleaser
extra_files:
- LICENSE
- README.md
- internal/testfiles/acme-invoice-11321-19.pdf
- pkg/sketch/testdata/acme-invoice.textproto
image_templates:
- ghcr.io/hansmi/dossier:{{.Tag}}-cli
- ghcr.io/hansmi/dossier:v{{.Major}}-cli
- ghcr.io/hansmi/dossier:latest-cli
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}}

release:
draft: true
prerelease: auto

snapshot:
version_template: '{{ incpatch .Version }}-snapshot{{ replace (replace .Date ":" "") "-" "" }}+g{{ .ShortCommit }}'

# vim: set sw=2 sts=2 et :
22 changes: 22 additions & 0 deletions contrib/Dockerfile.goreleaser
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
FROM docker.io/library/alpine:latest

RUN apk add --no-cache ca-certificates tzdata mupdf-tools

LABEL org.opencontainers.image.licenses=BSD-3-Clause
LABEL org.opencontainers.image.description="Extract information from PDF documents"

WORKDIR /

COPY LICENSE README.md /
COPY dossiercli /

# Trivial test
RUN --mount=type=bind,source=./,target=/src \
/dossiercli analyze-sketch \
/src/internal/testfiles/acme-invoice-11321-19.pdf \
/src/pkg/sketch/testdata/acme-invoice.textproto | \
grep -q -w -e textMatchGroups

ENTRYPOINT ["/dossiercli"]

# vim: set sw=2 sts=2 et ft=dockerfile :
16 changes: 16 additions & 0 deletions contrib/build-all
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#!/bin/bash

set -e -u -o pipefail

package=github.com/hansmi/dossier
docker_gid=$(getent group docker | cut -d: -f3)

docker run --rm \
--user "$(id -u):$(id -g)" --group-add="$docker_gid" \
--env HOME=/tmp \
-v "${PWD}:/go/src/${package}" \
-v /var/run/docker.sock:/var/run/docker.sock \
-w "/go/src/${package}" \
goreleaser/goreleaser:latest release --snapshot --clean --skip=publish

# vim: set sw=2 sts=2 et :

0 comments on commit c068270

Please sign in to comment.