# syntax=docker/dockerfile:1
# Build stage
FROM golang:1.21-alpine3.19 AS builder

# Instalar dependencias necesarias
RUN apk add --no-cache gcc musl-dev sqlite-dev

# Establecer el directorio de trabajo
WORKDIR /app

# Copiar todo el código fuente primero
COPY . .

# Movernos al directorio de la aplicación golang
WORKDIR /app/apps/monitoring

# Descargar dependencias
RUN go mod download

# Compilar la aplicación
RUN CGO_ENABLED=1 GOOS=linux go build -o main main.go

# Etapa final
FROM alpine:3.19

# Instalar SQLite y otras dependencias necesarias
RUN apk add --no-cache sqlite-libs docker-cli

WORKDIR /app

# Copiar el binario compilado y el archivo monitor.go
COPY --from=builder /app/apps/monitoring/main ./main
COPY --from=builder /app/apps/monitoring/main.go ./monitor.go

# COPY --from=builder /app/apps/golang/.env ./.env

# Exponer el puerto
ENV PORT=3001
EXPOSE 3001

# Ejecutar la aplicación
CMD ["./main"]