# syntax=docker/dockerfile:1.7 FROM golang:1.26-alpine3.23 AS builder ARG BUILD_TIME=unknown ARG GIT_COMMIT=unknown ARG TARGETOS ARG TARGETARCH WORKDIR /usr/src/ymgb COPY go.mod go.sum ./ RUN --mount=type=cache,target=/go/pkg/mod,sharing=locked \ go mod download COPY . . RUN --mount=type=cache,target=/root/.cache/go-build,sharing=locked \ --mount=type=cache,target=/go/pkg/mod,sharing=locked \ CGO_ENABLED=0 GOOS="${TARGETOS:-linux}" GOARCH="${TARGETARCH:-amd64}" \ go build -trimpath \ -ldflags="-s -w -X 'ymgb/utils.BuildTime=$BUILD_TIME' -X 'ymgb/utils.GitCommit=$GIT_COMMIT'" \ -o /out/ymgb ./ FROM alpine:3.23 AS runner RUN apk add --no-cache ca-certificates tzdata \ && addgroup -S ymgb \ && adduser -S -D -H -G ymgb ymgb WORKDIR /app ENV TZ=Europe/Moscow COPY --from=builder --chown=ymgb:ymgb /out/ymgb /app/ymgb USER ymgb:ymgb ENTRYPOINT ["/app/ymgb"]