version: '3.8' services: php: build: context: . dockerfile: Dockerfile container_name: php_app ports: - "8080:80" volumes: - ./src:/var/www/html - ./tests:/var/www/tests - ./composer.json:/var/www/composer.json - ./composer.lock:/var/www/composer.lock - ./phpstan.neon:/var/www/phpstan.neon - ./phpcs.xml:/var/www/phpcs.xml - ./config/nginx/default.conf:/etc/nginx/conf.d/default.conf depends_on: - mariadb networks: - app-network mariadb: image: mariadb:11.5 container_name: mariadb_db restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: root_password MYSQL_DATABASE: app_database MYSQL_USER: app_user MYSQL_PASSWORD: app_password ports: - "3307:3306" volumes: - mariadb_data:/var/lib/mysql - ./init.sql:/docker-entrypoint-initdb.d/init.sql networks: - app-network phpmyadmin: image: phpmyadmin:latest container_name: phpmyadmin restart: unless-stopped environment: PMA_HOST: mariadb PMA_PORT: 3306 MYSQL_ROOT_PASSWORD: root_password ports: - "8081:80" depends_on: - mariadb networks: - app-network networks: app-network: driver: bridge volumes: mariadb_data: driver: local