我想为同一网络下的多个项目设置本地 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。
您还需要确保这两个服务都在同一个项目中运行,以便它们使用相同的网络。您可以使用-pdocker-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 关注
- 246 浏览
添加回答
举报
0/150
提交
取消
