services: animalia-mysql: image: mysql:8.0 container_name: animalia-mysql restart: always environment: MYSQL_ROOT_PASSWORD: root_password MYSQL_DATABASE: animalia_db MYSQL_USER: animalia_user MYSQL_PASSWORD: animalia_password ports: - "3316:3306" volumes: - mysql_data:/var/lib/mysql - ./mysql/schema.sql:/docker-entrypoint-initdb.d/schema.sql networks: - animalia-network animalia-adminer: image: adminer container_name: animalia-adminer restart: always ports: - "8090:8080" networks: - animalia-network animalia-api: build: context: ./api dockerfile: Dockerfile container_name: animalia-api restart: always ports: - "8010:8000" environment: - DATABASE_URL=mysql+pymysql://animalia_user:animalia_password@animalia-mysql:3306/animalia_db depends_on: - animalia-mysql networks: - animalia-network animalia-web: build: context: ./web dockerfile: Dockerfile container_name: animalia-web restart: always ports: - "5180:5173" depends_on: - animalia-api networks: - animalia-network volumes: mysql_data: networks: animalia-network: driver: bridge