Fitnes-tracker/Dockerfile

36 lines
564 B
Docker

# Builder stage
FROM golang:1.23-bookworm AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
# Build native for the host architecture (ARM64 on Hetzner)
RUN CGO_ENABLED=1 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"]