services: nginx: build: context: . dockerfile: docker/Dockerfile.nginx args: HTTP_PROXY: ${HTTP_PROXY} HTTPS_PROXY: ${HTTPS_PROXY} container_name: nginx ports: - "80:80" - "443:443" volumes: - ./docker/nginx/nginx.conf.template:/etc/nginx/nginx.conf.template - ./${APP_HOST_DIR}:/var/www/app - ./certs:/etc/nginx/certs - ./docker/nginx/nginx-logs:/var/log/nginx environment: - DNS=${DNS} - SSL_MODE=${SSL_MODE} - HTTP_PROXY=${HTTP_PROXY} - HTTPS_PROXY=${HTTPS_PROXY} - NO_PROXY=${NO_PROXY} depends_on: - php networks: - laravel-net php: build: context: . dockerfile: docker/Dockerfile.php args: HTTP_PROXY: ${HTTP_PROXY} HTTPS_PROXY: ${HTTPS_PROXY} container_name: php restart: unless-stopped user: "${UID}:${GID}" volumes: - ./${APP_HOST_DIR}:/var/www/app expose: - "9000" environment: - HTTP_PROXY=${HTTP_PROXY} - HTTPS_PROXY=${HTTPS_PROXY} - NO_PROXY=${NO_PROXY} networks: - laravel-net mariadb: image: mariadb:latest container_name: mariadb environment: - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} - MYSQL_DATABASE=${MYSQL_DATABASE} - MYSQL_USER=${MYSQL_USER} - MYSQL_PASSWORD=${MYSQL_PASSWORD} volumes: - ./mariadb-data:/var/lib/mysql ports: - "3306:3306" networks: - laravel-net phpmyadmin: image: phpmyadmin/phpmyadmin container_name: phpmyadmin environment: - PMA_HOST=${PMA_HOST} - PMA_PORT=${PMA_PORT} - HTTP_PROXY=${HTTP_PROXY} - HTTPS_PROXY=${HTTPS_PROXY} - NO_PROXY=${NO_PROXY} ports: - "8080:80" depends_on: - mariadb networks: - laravel-net redis: image: redis:latest container_name: redis restart: unless-stopped environment: - HTTP_PROXY=${HTTP_PROXY} - HTTPS_PROXY=${HTTPS_PROXY} - NO_PROXY=${NO_PROXY} networks: - laravel-net mailhog: image: mailhog/mailhog:latest container_name: mailhog ports: - "8025:8025" environment: - HTTP_PROXY=${HTTP_PROXY} - HTTPS_PROXY=${HTTPS_PROXY} - NO_PROXY=${NO_PROXY} networks: - laravel-net # --------------------------------- # 👀 File Watcher (auto rebuild) # --------------------------------- watch: user: "${UID}:${GID}" build: context: . dockerfile: docker/Dockerfile.watch args: HTTP_PROXY: ${HTTP_PROXY} HTTPS_PROXY: ${HTTPS_PROXY} container_name: watch restart: unless-stopped volumes: - ./${APP_HOST_DIR}:/app - /var/run/docker.sock:/var/run/docker.sock environment: - HTTP_PROXY=${HTTP_PROXY} - HTTPS_PROXY=${HTTPS_PROXY} - NO_PROXY=${NO_PROXY} networks: - laravel-net networks: laravel-net: driver: bridge