# Build environment Dockerfile with pre-installed Go tools and dependencies
# Optimized for CI/CD pipeline speed

FROM golang:1.26.1-alpine AS builder

# Install build dependencies
RUN apk add --no-cache \
    git \
    bash \
    curl \
    make \
    gcc \
    musl-dev \
    bc \
    grep \
    sed \
    jq \
    ca-certificates

# Set up Go environment
ENV GOPATH=/go
ENV PATH=$GOPATH/bin:/usr/local/go/bin:/usr/local/bin:/usr/bin:/bin
WORKDIR /go/src/dance-lessons-coach

# Install common Go tools
RUN go install github.com/swaggo/swag/cmd/swag@latest && \
    go install golang.org/x/tools/cmd/goimports@latest && \
    go install honnef.co/go/tools/cmd/staticcheck@latest

# Copy only go.mod and go.sum first for dependency caching
COPY go.mod go.sum ./
RUN go mod download && go mod verify

# Simple build environment - source code is mounted at runtime
WORKDIR /workspace

# Pre-download common Go tools (already installed in base)
# RUN go install github.com/swaggo/swag/cmd/swag@latest