Files

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"]