34 lines
561 B
Docker
34 lines
561 B
Docker
# Builder stage
|
|
FROM golang:1.2-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"]
|