Para facilitar el despliegue y la gestión de los diferentes componentes de Matchify, se han configurado dos archivos principales de Docker: docker-compose.yml y Dockerfile.
El archivo docker-compose.yml define y orquesta los siguientes servicios necesarios para el funcionamiento de la aplicación:
version: '3'
services:
backend:
build: ./backend
ports:
- "3001:3001"
environment:
- DB_NAME=Matchify
- DB_USER=test
- DB_PASS=test
- DB_HOST=db
volumes:
- ./backend:/usr/src/app
depends_on:
- db
frontend:
build: ./frontend
ports:
- "3000:3000"
volumes:
- ./frontend:/usr/src/app
- /usr/src/app/node_modules
environment:
- CHOKIDAR_USEPOLLING=true
- HOST=0.0.0.0
- PORT=3000
stdin_open: true
tty: true
db:
image: mysql:8.0
restart: always
environment:
MYSQL_DATABASE: Matchify
MYSQL_USER: test
MYSQL_PASSWORD: test
MYSQL_ROOT_PASSWORD: test
ports:
- "3306:3306"
volumes:
- mysql-data:/var/lib/mysql
volumes:
mysql-data:
Descripción de los servicios:
version: '3': Define la versión del archivo de configuración de Docker Compose.
Servicios (services):
backend:
build: ./backend: Define el contexto de construcción del backend en la carpeta ./backend.ports: Expone el puerto 3001 (host).environment: Establece las variables de entorno de la base de datos para el backend: DB_NAME, DB_USER, DB_PASS, DB_HOST: Configuración para conectarse al servicio de base de datos.volumes: Sincroniza la carpeta local ./backend con /usr/src/app en el contenedor, permitiendo cambios en el código en tiempo real.depends_on: Hace que el backend espere hasta que el contenedor de db esté listo antes de iniciar.frontend:
build: ./frontend: Define el contexto de construcción del frontend en la carpeta ./frontend.ports: Expone el puerto 3000 (host).