version: '3.8' services: nginx: build: context: . dockerfile: Dockerfile.nginx ports: - "8080:80" depends_on: - php volumes: - ./storage/uploads:/var/www/html/storage/uploads:ro networks: - inventory-network php: build: context: . dockerfile: Dockerfile.php volumes: - ./storage/uploads:/var/www/html/storage/uploads - ./storage/logs:/var/www/html/storage/logs depends_on: db: condition: service_healthy environment: - DB_HOST=${DB_HOST} - DB_PORT=${DB_PORT} - DB_NAME=${DB_NAME} - DB_USER=${DB_USER} - DB_PASS=${DB_PASS} - APP_ENV=${APP_ENV} - APP_URL=${APP_URL} - SESSION_SECURE=${SESSION_SECURE} networks: - inventory-network db: image: mysql:8.0 environment: MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASS} MYSQL_DATABASE: ${DB_NAME} MYSQL_USER: ${DB_USER} MYSQL_PASSWORD: ${DB_PASS} volumes: - mysql_data:/var/lib/mysql - ./database/init:/docker-entrypoint-initdb.d ports: - "3306:3306" healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${DB_ROOT_PASS}"] timeout: 20s retries: 10 networks: - inventory-network phpmyadmin: image: phpmyadmin/phpmyadmin:latest environment: PMA_HOST: db PMA_PORT: 3306 PMA_USER: ${DB_USER} PMA_PASSWORD: ${DB_PASS} ports: - "8081:80" depends_on: - db networks: - inventory-network volumes: mysql_data: networks: inventory-network: driver: bridge