Fitnes-tracker/Dockerfile

36 lines
564 B
Docker
Raw Normal View History

2025-12-04 18:15:52 +00:00
# Builder stage
2025-12-04 18:16:53 +00:00
FROM golang:1.23-bookworm AS builder
2025-12-04 18:15:52 +00:00
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
2025-12-05 10:11:29 +00:00
# Build native for the host architecture (ARM64 on Hetzner)
RUN CGO_ENABLED=1 go build -o fitness-app ./main.go
2025-12-04 18:15:52 +00:00
# Runtime stage
2025-12-04 17:49:19 +00:00
FROM debian:bookworm-slim
2025-12-04 18:15:52 +00:00
RUN useradd -m appuser
2025-12-04 17:49:19 +00:00
WORKDIR /app
COPY --from=builder /app/fitness-app /app/fitness-app
# External data dir for sqlite db
2025-12-04 18:15:52 +00:00
RUN mkdir -p /data && chown -R appuser:appuser /data
2025-12-04 17:49:19 +00:00
ENV DATABASE_URL=/data/fitness.db
2025-12-04 18:15:52 +00:00
USER appuser
2025-12-04 17:49:19 +00:00
EXPOSE 8080
VOLUME ["/data"]
CMD ["/app/fitness-app"]