33 lines
558 B
Docker
33 lines
558 B
Docker
FROM golang:1.26-alpine AS builder
|
|
|
|
WORKDIR /app
|
|
|
|
COPY go.mod go.sum ./
|
|
RUN go mod download
|
|
|
|
COPY . .
|
|
|
|
# All dependencies (pgx, the SQLite importer) are pure Go, so build a static binary
|
|
ENV CGO_ENABLED=0
|
|
|
|
RUN go build -trimpath -ldflags="-s -w" -o app ./cmd/server
|
|
|
|
FROM alpine:3.22
|
|
|
|
WORKDIR /app
|
|
|
|
RUN apk add --no-cache ca-certificates tzdata \
|
|
&& adduser -D appuser \
|
|
&& mkdir -p /app/uploads /app/tmp /app/data \
|
|
&& chown -R appuser:appuser /app
|
|
|
|
COPY --from=builder /app/app .
|
|
|
|
USER appuser
|
|
|
|
ENV GIN_MODE=release
|
|
|
|
EXPOSE 3000
|
|
|
|
CMD ["./app"]
|