go-clean-template
/
Dockerfile
21 строка · 582.0 Байт
1# Step 1: Modules caching
2FROM golang:1.17.1-alpine3.14 as modules
3COPY go.mod go.sum /modules/
4WORKDIR /modules
5RUN go mod download
6
7# Step 2: Builder
8FROM golang:1.17.1-alpine3.14 as builder
9COPY --from=modules /go/pkg /go/pkg
10COPY . /app
11WORKDIR /app
12RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 \
13go build -tags migrate -o /bin/app ./cmd/app
14
15# Step 3: Final
16FROM scratch
17COPY --from=builder /app/config /config
18COPY --from=builder /app/migrations /migrations
19COPY --from=builder /bin/app /app
20COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
21CMD ["/app"]