Files
MonkeyCode/backend/build/Dockerfile

32 lines
859 B
Docker
Raw Normal View History

2025-06-25 15:25:18 +08:00
FROM --platform=$BUILDPLATFORM golang:1.23-alpine AS builder
WORKDIR /src
ENV CGO_ENABLED=0
COPY go.* .
ARG GOMODCACHE
RUN --mount=type=cache,target=${GOMODCACHE} \
go mod download
ARG TARGETOS TARGETARCH GOCACHE
2025-07-21 16:45:39 +08:00
ARG VERSION
ARG BUILD_TIME
ARG GIT_COMMIT
2025-06-25 15:25:18 +08:00
RUN --mount=type=bind,target=. \
--mount=type=cache,target=${GOMODCACHE} \
--mount=type=cache,target=${GOCACHE} \
2025-07-21 16:45:39 +08:00
GOOS=$TARGETOS GOARCH=$TARGETARCH \
go build \
-ldflags "-w -s -X 'github.com/chaitin/MonkeyCode/backend/pkg/version.Version=${VERSION}' -X 'github.com/chaitin/MonkeyCode/backend/pkg/version.BuildTime=${BUILD_TIME}' -X 'github.com/chaitin/MonkeyCode/backend/pkg/version.GitCommit=${GIT_COMMIT}'" \
-o /out/main \
cmd/server/main.go cmd/server/wire_gen.go
2025-06-25 15:25:18 +08:00
FROM alpine:3.21 as binary
WORKDIR /app
ADD migration ./migration
COPY --from=builder /out/main /app/main
CMD [ "./main" ]