services: app: build: context: . dockerfile: Dockerfile expose: - "80" volumes: - app_uploads:/var/www/html/05/uploads environment: DB_HOST: db DB_PORT: 3306 DB_DATABASE: webgis_spbu DB_USERNAME: webgis_user DB_PASSWORD: webgis_password depends_on: migrate: condition: service_completed_successfully restart: unless-stopped db: build: context: . dockerfile: Dockerfile.db image: webgis-db environment: MYSQL_DATABASE: webgis_spbu MYSQL_USER: webgis_user MYSQL_PASSWORD: webgis_password MYSQL_ROOT_PASSWORD: root_password expose: - "3306" volumes: - webgis_db_data:/var/lib/mysql restart: unless-stopped migrate: image: mysql:8.4 environment: MYSQL_PWD: root_password depends_on: - db command: > sh -c " until mysqladmin ping -h db -uroot --password=$$MYSQL_PWD --silent 2>/dev/null; do echo 'Waiting for database...'; sleep 2; done; echo 'Database is ready, all internal migrations done.'; " restart: "no" phpmyadmin: image: phpmyadmin:latest expose: - "80" environment: PMA_HOST: db PMA_PORT: 3306 depends_on: - db restart: unless-stopped volumes: webgis_db_data: app_uploads: