From e25b6acae36d6e93fb6529abf5dd42703b4c2986 Mon Sep 17 00:00:00 2001 From: hy Date: Mon, 20 Apr 2026 15:47:04 +0800 Subject: [PATCH] build: add docker image build entrypoint --- .dockerignore | 8 ++++++++ Dockerfile | 22 ++++++++++++++++++++++ ci/build-image.sh | 15 +++++++++++++++ 3 files changed, 45 insertions(+) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100755 ci/build-image.sh diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..b7355c7 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,8 @@ +.git +.gitignore +target +tmp +bin +dist +coverage +**/.DS_Store diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..9e000a3 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,22 @@ +FROM golang:1.24 AS builder + +ARG APP_VERSION="dev" +ENV CGO_ENABLED=0 GOOS=linux GOARCH=amd64 + +WORKDIR /src +COPY . . +RUN go build -trimpath -ldflags="-s -w" -o /out/week-star-job ./cmd/week-star-job + +FROM alpine:3.20 + +ARG APP_VERSION="dev" +RUN apk add --no-cache ca-certificates wget + +WORKDIR /application +COPY --from=builder /out/week-star-job /application/service + +LABEL org.opencontainers.image.version="${APP_VERSION}" + +RUN chmod +x /application/service + +ENTRYPOINT ["/application/service"] diff --git a/ci/build-image.sh b/ci/build-image.sh new file mode 100755 index 0000000..b5a8d82 --- /dev/null +++ b/ci/build-image.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +set -euo pipefail + +ROOT_DIR="$(CDPATH= cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)" +IMAGE_REF="${1:-}" +APP_VERSION="${APP_VERSION:-${2:-dev}}" +DOCKER_PLATFORM="${DOCKER_PLATFORM:-linux/amd64}" + +if [ -z "${IMAGE_REF}" ]; then + echo "usage: ci/build-image.sh [app-version]" >&2 + exit 1 +fi + +cd "${ROOT_DIR}" +docker build --platform "${DOCKER_PLATFORM}" --build-arg "APP_VERSION=${APP_VERSION}" -t "${IMAGE_REF}" .