ci: added build and tagging

This commit is contained in:
ITQ
2025-12-14 14:32:35 +03:00
parent fe355677db
commit 98ec96c8aa
3 changed files with 113 additions and 173 deletions
+12 -6
View File
@@ -1,8 +1,8 @@
ARG GOARCH=amd64
ARG GOOS=linux
ARG CGO_ENABLED=0
ARG VERSION=1.0.0
ARG BUILD_TIME=unknown
ARG SERVICE
# Stage 1: Build
FROM docker.io/golang:1.24-alpine AS build
@@ -12,32 +12,38 @@ ARG GOARCH
ARG CGO_ENABLED
ARG VERSION
ARG BUILD_TIME
ARG SERVICE
WORKDIR /src
COPY go.mod go.sum ./
RUN go mod download
RUN --mount=type=cache,target=/root/.cache/go-build \
--mount=type=cache,target=/go/pkg/mod \
go mod download
COPY . .
RUN CGO_ENABLED=${CGO_ENABLED} \
RUN --mount=type=cache,target=/root/.cache/go-build \
--mount=type=cache,target=/go/pkg/mod \
CGO_ENABLED=${CGO_ENABLED} \
GOOS=${GOOS} \
GOARCH=${GOARCH} \
go build -trimpath \
-ldflags="-s -w -X 'main.Version=${VERSION}' -X 'main.BuildTime=${BUILD_TIME}'" \
-o /bin/app ./cmd/server
-ldflags="-s -w -X 'main.BuildTime=${BUILD_TIME}'" \
-o /bin/${SERVICE} ./cmd/${SERVICE}
# Stage 2: Runtime
FROM docker.io/alpine:3.22 AS runtime
ARG VERSION
ARG BUILD_TIME
ARG SERVICE
RUN addgroup -S app && adduser -S -G app app
WORKDIR /app
COPY --from=build /bin/app /app/bin
COPY --from=build /bin/${SERVICE} /app/bin
RUN chown app:app /app/bin && chmod +x /app/bin