# 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"]
