# Builder stage FROM golang:1.23-bookworm AS builder WORKDIR /app COPY go.mod go.sum ./ RUN go mod download COPY . . # Build with CGO enabled for sqlite RUN CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -o fitness-app ./main.go # Runtime stage FROM debian:bookworm-slim RUN useradd -m appuser WORKDIR /app COPY --from=builder /app/fitness-app /app/fitness-app # External data dir for sqlite db RUN mkdir -p /data && chown -R appuser:appuser /data ENV DATABASE_URL=/data/fitness.db USER appuser EXPOSE 8080 VOLUME ["/data"] CMD ["/app/fitness-app"]