# DanceLessonsCoach Docker Image # Multi-stage build for production deployment # Stage 1: Build binary FROM golang:1.26.1-alpine AS builder WORKDIR /app # Copy go mod files COPY go.mod go.sum ./ RUN go mod download # Copy source code COPY . ./ # Build binary RUN CGO_ENABLED=0 GOOS=linux go build -o /dance-lessons-coach ./cmd/server # Stage 2: Final image FROM alpine:3.18 WORKDIR /app # Install dependencies RUN apk add --no-cache ca-certificates tzdata # Copy binary from builder COPY --from=builder /dance-lessons-coach /app/dance-lessons-coach # Copy configuration COPY config.yaml /app/config.yaml # Set permissions RUN chmod +x /app/dance-lessons-coach # Set timezone ENV TZ=UTC # Expose port EXPOSE 8080 # Health check HEALTHCHECK --interval=30s --timeout=3s \ CMD wget -q --spider http://localhost:8080/api/health || exit 1 # Entry point ENTRYPOINT ["/app/dance-lessons-coach"]