FROM python:3.9-slim

# Instalar dependencias del sistema necesarias para Go
RUN apt-get update && apt-get install -y wget tar gcc git fonts-liberation && rm -rf /var/lib/apt/lists/*

# Definir la versión de Go a instalar
ENV GO_VERSION=1.21.0

# Descargar e instalar Go
RUN wget https://golang.org/dl/go${GO_VERSION}.linux-amd64.tar.gz && \
    tar -C /usr/local -xzf go${GO_VERSION}.linux-amd64.tar.gz && \
    rm go${GO_VERSION}.linux-amd64.tar.gz

# Agregar el directorio de binarios de Go y de Go install al PATH
ENV PATH="/usr/local/go/bin:/root/go/bin:${PATH}"

# Instalar awsdac utilizando go install
RUN go install github.com/awslabs/diagram-as-code/cmd/awsdac@latest

# Establecer el directorio de trabajo
WORKDIR /app

# Copiar e instalar las dependencias de Python
COPY requirements.txt .
RUN pip install --upgrade pip && pip install -r requirements.txt

# Copiar el resto del código de la aplicación
COPY . .

# Exponer el puerto 16000
EXPOSE 16000

# Iniciar la aplicación utilizando gunicorn
CMD ["gunicorn", "--timeout", "1000", "-b", "0.0.0.0:16000", "app:app"]
