feat(deploy): Dockerfile + Helm chart for k3s homelab deployment

Pattern adapted from arcodange-org/webapp.

Degraded mode : no DB / no SMTP / no Vault yet, just serves the binary +
swagger + healthz. Subsequent PRs will add Vault auth + Postgres dynamic
credentials + SMTP config.

Ingress route : dancecoachlessons.arcodange.lab (homelab internal).
This commit is contained in:
2026-05-06 06:50:46 +02:00
parent 02bafbb0e2
commit 6c23298625
11 changed files with 432 additions and 0 deletions

36
Dockerfile Normal file
View File

@@ -0,0 +1,36 @@
# Build dance-lessons-coach Docker image
FROM golang:1.26-alpine AS builder
# Install git (required for go mod download)
RUN apk add --no-cache git
# Set working directory
WORKDIR /app
# Copy go module files and download dependencies
COPY go.mod go.sum ./
RUN go mod download
# Copy entire source code
COPY . .
# Build the server binary
RUN go build -o app ./cmd/server
# Final lightweight stage
FROM alpine:latest
# Install CA certificates for HTTPS
RUN apk --no-cache add ca-certificates
# Set working directory
WORKDIR /root/
# Copy binary from builder stage
COPY --from=builder /app/app .
# Expose port 8080
EXPOSE 8080
# Start the server
CMD ["./app"]