services: mysql: image: mysql:8 container_name: mysql_prices restart: always env_file: - .env ports: - "3306:3306" volumes: - mysql_data:/var/lib/mysql - ./backend/db/schema.sql:/docker-entrypoint-initdb.d/schema.sql # init script healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p$$MYSQL_ROOT_PASSWORD"] interval: 10s timeout: 5s retries: 6 start_period: 90s # tiempo de gracia para el init + ejecución del schema app: build: ./backend container_name: pipeline_app profiles: - cron depends_on: mysql: condition: service_healthy # espera a que MySQL esté listo env_file: - .env environment: - DB_HOST=mysql volumes: - ./backend:/app command: ["python", "main.py"] api: build: ./backend container_name: pipeline_api restart: always depends_on: mysql: condition: service_healthy env_file: - .env environment: - DB_HOST=mysql - PORT=5000 ports: - "5000:5000" volumes: - ./backend:/app command: ["python", "api.py"] phpmyadmin: image: phpmyadmin/phpmyadmin container_name: phpmyadmin_prices restart: always ports: - "8080:80" environment: - PMA_HOST=mysql - PMA_USER=root - PMA_PASSWORD=${MYSQL_ROOT_PASSWORD} depends_on: - mysql volumes: mysql_data: