version: "3.8" services: nginx: image: nginx:1.21-alpine container_name: kamilcraft-api_www working_dir: /application ports: - ${EXTERNAL_WEBSERVER_PORT:-80}:80 volumes: - ./environment/dev/nginx/default.conf:/etc/nginx/conf.d/default.conf - .:/application networks: - kamilcraft depends_on: - php - db php: build: context: environment/dev/php container_name: kamilcraft-api_php working_dir: /application user: ${CURRENT_UID:-1000} volumes: - .:/application - ./environment/dev/php/php.ini:/usr/local/etc/php/conf.d/php.ini networks: - kamilcraft extra_hosts: - host.docker.internal:host-gateway restart: unless-stopped npm: build: context: environment/dev/npm container_name: kamilcraft-api_node working_dir: /application entrypoint: [ 'npm' ] ports: - '3000:3000' - '${VITE_PORT:-3001}:${VITE_PORT:-3001}' volumes: - .:/application networks: - kamilcraft db: image: mysql:8.0 container_name: kamilcraft-api_db ports: - '${DB_PORT}:3306' environment: MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}' MYSQL_DATABASE: '${DB_DATABASE}' MYSQL_USER: '${DB_USERNAME}' MYSQL_PASSWORD: '${DB_PASSWORD}' MYSQL_ALLOW_EMPTY_PASSWORD: 'yes' volumes: - 'mysql-db-data:/var/lib/mysql' networks: - kamilcraft restart: unless-stopped networks: kamilcraft: driver: bridge volumes: mysql-db-data: name: kamilcraft-api-mysql-data driver: local