feat: add Dockerfile and build script for multi-stage Docker builds
This commit is contained in:
32
Dockerfile
Normal file
32
Dockerfile
Normal file
@@ -0,0 +1,32 @@
|
||||
# ---------- Builder Stage ----------
|
||||
FROM golang:1.24.2 AS builder
|
||||
ARG GIT_AUTH_TOKEN
|
||||
RUN git config --global url."https://${GIT_AUTH_TOKEN}:x-oauth-basic@git.denco.store/".insteadOf "https://git.denco.store/"
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# copy only go.mod and go.sum first
|
||||
COPY go.mod go.sum ./
|
||||
RUN go mod download
|
||||
|
||||
# now copy the rest of the code
|
||||
COPY . .
|
||||
|
||||
# build binaries
|
||||
RUN CGO_ENABLED=0 GOOS=linux go build -o server ./cmd/server/main.go \
|
||||
&& CGO_ENABLED=0 GOOS=linux go build -o tasks_server ./cmd/tasks_server/main.go
|
||||
|
||||
|
||||
|
||||
# ---------- Final Image: Server ----------
|
||||
FROM gcr.io/distroless/static-debian12 AS server
|
||||
WORKDIR /app
|
||||
COPY --from=builder /app/server .
|
||||
ENTRYPOINT ["./server"]
|
||||
|
||||
|
||||
# ---------- Final Image: Tasks Server ----------
|
||||
FROM gcr.io/distroless/static-debian12 AS tasks_server
|
||||
WORKDIR /app
|
||||
COPY --from=builder /app/tasks_server .
|
||||
ENTRYPOINT ["./tasks_server"]
|
||||
Reference in New Issue
Block a user