2026-09-19 20:31:14 +02:00
|
|
|
FROM golang:1.27.1-alpine AS build
|
|
|
|
|
WORKDIR /src
|
|
|
|
|
COPY go.mod go.sum ./
|
|
|
|
|
RUN go mod download
|
|
|
|
|
COPY . .
|
2026-10-02 21:44:26 +02:00
|
|
|
|
|
|
|
|
RUN CGO_ENABLED=0 go build -trimpath -ldflags="-s -w" -o /out/api ./cmd/api/main.go \
|
|
|
|
|
&& CGO_ENABLED=0 go build -trimpath -ldflags="-s -w" -o /out/seed ./cmd/seed/main.go
|
2026-09-19 20:31:14 +02:00
|
|
|
|
|
|
|
|
FROM golang:1.27.1-alpine AS tools
|
|
|
|
|
RUN GOBIN=/out go install github.com/pressly/goose/v3/cmd/goose@v3.26.0
|
|
|
|
|
|
|
|
|
|
FROM alpine:3.22
|
|
|
|
|
RUN addgroup -S app && adduser -S app -G app
|
|
|
|
|
WORKDIR /app
|
|
|
|
|
COPY --from=build /out/api /usr/local/bin/api
|
2026-09-19 21:11:20 +02:00
|
|
|
COPY --from=build /out/seed /usr/local/bin/seed
|
2026-09-19 20:31:14 +02:00
|
|
|
COPY --from=tools /out/goose /usr/local/bin/goose
|
|
|
|
|
COPY migrations ./migrations
|
|
|
|
|
USER app
|
|
|
|
|
EXPOSE 8080
|
2026-09-19 21:11:20 +02:00
|
|
|
CMD ["sh", "-c", "goose -dir migrations postgres \"$DATABASE_URL\" up && seed && exec api"]
|