From 1ee7c13e5b047652a988efe69e4d7d2c8e7709c6 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sun, 28 Apr 2024 10:00:14 +0200 Subject: [PATCH] Inicial desde GTP --- docker-compose.yml | 40 ++++++++++++++++++++++++++++++++++++++++ flaskimage.txt | 20 ++++++++++++++++++++ frontendimage.txt | 28 ++++++++++++++++++++++++++++ 3 files changed, 88 insertions(+) create mode 100644 docker-compose.yml create mode 100644 flaskimage.txt create mode 100644 frontendimage.txt diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..802fa9d --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,40 @@ +version: '3.8' +services: + db: + image: postgres + volumes: + - db-data:/var/lib/postgresql/data + environment: + POSTGRES_DB: projectbackupdb + POSTGRES_USER: user + POSTGRES_PASSWORD: password + networks: + - backend + + flaskapp: + build: ./flask + ports: + - "5000:5000" + environment: + DATABASE_URL: postgresql://user:password@db/projectbackupdb + depends_on: + - db + networks: + - backend + - frontend + + frontend: + build: ./frontend + ports: + - "80:80" + depends_on: + - flaskapp + networks: + - frontend + +networks: + backend: + frontend: + +volumes: + db-data: diff --git a/flaskimage.txt b/flaskimage.txt new file mode 100644 index 0000000..2a41ad9 --- /dev/null +++ b/flaskimage.txt @@ -0,0 +1,20 @@ +# Usa una imagen base de Python oficial, versión slim para reducir el tamaño +FROM python:3.10-slim + +# Establece el directorio de trabajo +WORKDIR /app + +# Copia el archivo de requerimientos primero, para caché de capas +COPY requirements.txt ./ + +# Instala las dependencias de Python necesarias desde el archivo +RUN pip install --no-cache-dir -r requirements.txt + +# Copia el resto del código de la aplicación al contenedor +COPY . . + +# Expone el puerto que Flask utilizará +EXPOSE 5000 + +# Comando para ejecutar la aplicación +CMD ["flask", "run", "--host=0.0.0.0"] diff --git a/frontendimage.txt b/frontendimage.txt new file mode 100644 index 0000000..44ce3b4 --- /dev/null +++ b/frontendimage.txt @@ -0,0 +1,28 @@ +# Usa una imagen base de Node.js, versión alpine por ser más ligera +FROM node:18-alpine + +# Establece el directorio de trabajo +WORKDIR /usr/src/app + +# Copia el package.json y el package-lock.json (si está disponible) +COPY package*.json ./ + +# Instala las dependencias del proyecto +RUN npm install + +# Copia el resto de los archivos del proyecto +COPY . . + +# Compila la aplicación para producción (ajustar según el framework) +RUN npm run build + +# Usa nginx o similar para servir el contenido estático +# Usa la imagen de nginx para servir los archivos +FROM nginx:alpine +COPY --from=0 /usr/src/app/build /usr/share/nginx/html + +# Expone el puerto 80 para el servidor web +EXPOSE 80 + +# Inicia nginx +CMD ["nginx", "-g", "daemon off;"]