From adc9501ff20dd7599543bb75cbbeb52bdb2a7634 Mon Sep 17 00:00:00 2001 From: Ben McNicholl Date: Tue, 9 Dec 2025 12:36:42 +1100 Subject: [PATCH] feat: dockerise the cli Signed-off-by: Ben McNicholl --- .dockerignore | 45 +++++++++++++++++++++++++++++++++++++++++++++ Dockerfile | 25 +++++++++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 .dockerignore create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..5b9ceac9 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,45 @@ +# Git files +.git +.github +.gitignore + +# Documentation +*.md +docs/ +images/ +LICENSE.md +CHANGELOG.md +CONTRIBUTING.md +AGENT.md +README.md + +# Build artifacts +dist/ +build-logs-* + +# Test files +*_test.go +fixtures/ +internal/*/resolver/*_test.go +internal/ui/ui_test.go + +# IDE and editor files +.vscode/ +.idea/ +*.swp +*.swo +*~ +.DS_Store + +# CI/CD files +.buildkite/ +buildkite.yaml +.bk.yaml + +# Config files not needed for build +.golangci.yaml +.graphqlrc.yml +genqlient.yaml + +# Dependencies (these will be downloaded during build) +vendor/ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..d1edcae5 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,25 @@ +FROM golang:1.24-alpine AS base + +RUN apk add --no-cache git ca-certificates + +WORKDIR /base + +COPY go.mod go.sum ./ + +RUN go mod download + +COPY . . + +RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s" -o bk . + +FROM alpine:latest + +RUN apk --no-cache add ca-certificates + +WORKDIR /cli + +COPY --from=base /base/bk . + +ENV PATH="/cli:${PATH}" + +ENTRYPOINT ["bk"]