forked from baron/baron-sso
패키징 개선
This commit is contained in:
@@ -1,21 +1,49 @@
|
||||
FROM golang:1.26.2-alpine
|
||||
# syntax=docker/dockerfile:1.7
|
||||
|
||||
FROM golang:1.26.2-alpine AS base
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# Install git for go mod download if needed
|
||||
RUN apk add --no-cache git
|
||||
|
||||
# Pre-copy go.mod/sum to cache dependencies
|
||||
COPY go.mod go.sum ./
|
||||
RUN go mod download
|
||||
|
||||
# Copy source
|
||||
FROM base AS dev
|
||||
|
||||
COPY . .
|
||||
|
||||
# Build for production (optional, can just run go run for dev)
|
||||
RUN go build -o main ./cmd/server
|
||||
RUN --mount=type=cache,target=/root/.cache/go-build \
|
||||
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 \
|
||||
go build -trimpath -ldflags="-s -w" -o /usr/local/bin/baron-backend-dev ./cmd/server
|
||||
|
||||
EXPOSE 3000
|
||||
|
||||
# Default command (can be overridden by compose)
|
||||
CMD ["./main"]
|
||||
CMD ["/usr/local/bin/baron-backend-dev"]
|
||||
|
||||
FROM base AS builder
|
||||
|
||||
ARG TARGETOS=linux
|
||||
ARG TARGETARCH=amd64
|
||||
|
||||
COPY . .
|
||||
|
||||
RUN --mount=type=cache,target=/root/.cache/go-build \
|
||||
CGO_ENABLED=0 GOOS=${TARGETOS} GOARCH=${TARGETARCH} \
|
||||
go build -trimpath -ldflags="-s -w" -o /out/main ./cmd/server && \
|
||||
CGO_ENABLED=0 GOOS=${TARGETOS} GOARCH=${TARGETARCH} \
|
||||
go build -trimpath -ldflags="-s -w" -o /out/healthcheck ./cmd/healthcheck
|
||||
|
||||
FROM gcr.io/distroless/static-debian13:nonroot AS production
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY --from=builder --chown=65532:65532 /out/main ./main
|
||||
COPY --from=builder --chown=65532:65532 /out/healthcheck ./healthcheck
|
||||
COPY --from=builder --chown=65532:65532 /app/docs ./docs
|
||||
|
||||
EXPOSE 3000
|
||||
|
||||
USER 65532:65532
|
||||
|
||||
ENTRYPOINT ["/app/main"]
|
||||
|
||||
Reference in New Issue
Block a user