Fix dockerfile
This commit is contained in:
parent
796660c3cb
commit
7b82d9d71b
22
Dockerfile
22
Dockerfile
|
|
@ -1,18 +1,32 @@
|
||||||
|
# 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
|
FROM debian:bookworm-slim
|
||||||
|
|
||||||
# (optional) install ca-certificates if needed
|
RUN useradd -m appuser
|
||||||
RUN apt-get update && apt-get install -y ca-certificates && rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
COPY --from=builder /app/fitness-app /app/fitness-app
|
COPY --from=builder /app/fitness-app /app/fitness-app
|
||||||
|
|
||||||
# External data dir for sqlite db
|
# External data dir for sqlite db
|
||||||
RUN mkdir -p /data
|
RUN mkdir -p /data && chown -R appuser:appuser /data
|
||||||
|
|
||||||
ENV DATABASE_URL=/data/fitness.db
|
ENV DATABASE_URL=/data/fitness.db
|
||||||
|
|
||||||
# DO NOT switch user -> run as root
|
USER appuser
|
||||||
|
|
||||||
EXPOSE 8080
|
EXPOSE 8080
|
||||||
VOLUME ["/data"]
|
VOLUME ["/data"]
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue