# Usa una imagen base de Go FROM golang:1.23 AS builder # Establece el directorio de trabajo WORKDIR /app # Establece las variables de entorno necesarias para la construcción ENV GO111MODULE=on \ CGO_ENABLED=0 \ GOOS=linux \ GOARCH=amd64 # Copia los archivos de módulo y descarga las dependencias COPY go.mod go.sum ./ RUN go mod download # Copia el resto de los archivos y compila la aplicación COPY . . RUN go build -o main ./cmd/main.go # Usa una imagen base más ligera para ejecutar FROM alpine:latest # Copia el ejecutable desde la etapa de compilación WORKDIR /root/ COPY --from=builder /app/main . # Expone el puerto que usará la aplicación EXPOSE 8080 # Comando para ejecutar la aplicación CMD ["./main"]