我想為同一網絡下的多個項目設置本地 DOCKER 環境。我想擁有將創建 Nginx 代理和 PHP 容器的主要 docker-compose 配置文件。還有許多帶有自己的 Nginx 的子 docker-compose 文件。我希望所有子 Nginx 容器都監聽主 PHP 容器。但由于某種原因,子 Nginx 容器因錯誤而失敗host not found in upstream "app-php" in /etc/nginx/vhost.d/site.cong25主要docker-compose:version: '3.5'services: app-nginx_proxy: build: ./nginx-proxy image: app/nginx-proxy:latest container_name: app-nginx_proxy ports: - "80:80" volumes: - /var/run/docker.sock:/tmp/docker.sock:ro networks: - appnetwork app-php: image: app/php:latest container_name: app-php build: context: ./php-fpm dockerfile: Dockerfile expose: - 9000 volumes: - app_volume:/var/www/ networks: - appnetworkvolumes: app_volume: driver: local driver_opts: type: bind device: "$PWD/../services" o: bindnetworks: appnetwork: driver: bridge和孩子docker-compose:version: '3.5'services: app-admin-nginx: build: ./nginx image: app-admin/nginx:latest container_name: app-admin-nginx volumes: - app_admin_volume:/var/www/app-admin networks: appnetwork: aliases: - app-admin.v2.local environment: - VIRTUAL_HOST=app-admin.v2.localvolumes: app_admin_volume: driver: local driver_opts: type: bind device: "$PWD/../services/app-admin" o: bindnetworks: appnetwork: external: true還有,site.conf:server { listen 80; server_name app-admin.v2.local; root /var/www/app-admin/web; index index.html index.htm index.php; charset utf-8; location / { try_files $uri $uri/ /index.php?$query_string; } location = /favicon.ico { access_log off; log_not_found off; } location = /robots.txt { access_log off; log_not_found off; } error_log /var/log/nginx/abboom_admin_error.log; access_log /var/log/nginx/abboom_admin_access.log; error_page 404 /index.php;如果我將所有配置移動到單個docker-compose文件中,一切正常,但使用單個文件并不靈活,因為我想為開發人員添加僅運行他們需要的應用程序而不是我們擁有的所有應用程序的能力
1 回答

千萬里不及你
TA貢獻1784條經驗 獲得超9個贊
您的主nginx
容器依賴于app-php
服務。你需要先app-php
開始nginx
。
您還需要確保這兩個服務都在同一個項目中運行,以便它們使用相同的網絡。您可以使用-p
docker-compose 選項。
https://docs.docker.com/compose/reference/overview/
用法:docker-compose [-f ...] [options] [COMMAND] [ARGS...]
docker-compose -h|--help選項:-f,--file FILE 指定一個替代的撰寫文件(默認:docker-compose.yml)
-p,--project-name NAME 指定一個替代的項目名稱(默認:目錄名稱)
您還可以使用自定義網絡從同一網絡中的不同撰寫文件啟動服務。
https://docs.docker.com/compose/networking/#specify-custom-networks
- 1 回答
- 0 關注
- 154 瀏覽
添加回答
舉報
0/150
提交
取消