Docker,将服务名称从 PHP 更改为不同的 returns 503 服务不可用
Docker, changing service name from PHP to different returns 503 Service Unavailable
我有 docker-compose.yml 看起来像这样。
version: "3.6"
services:
php:
build: './php/'
ports:
- 9000:9000
networks:
- backend
volumes:
- .\puppet_projects\pname\pname:/var/www/html/pname
apache_pname:
build: './apache/'
depends_on:
- php
ports:
- "80:80"
networks:
- frontend
- backend
volumes:
- .\puppet_projects\pname\pname:/var/www/html/pname
networks:
frontend:
backend:
当我开始时 docker-compose up 项目工作正常但是在将 php 更改为 ie 之后。 php_pname 我收到 503 网站不可用
version: "3.6"
services:
php_pname:
build: './php/'
ports:
- 9000:9000
networks:
- backend
volumes:
- .\puppet_projects\pname\pname:/var/www/html/pname
apache_pname:
build: './apache/'
depends_on:
- php_pname
ports:
- "80:80"
networks:
- frontend
- backend
volumes:
- .\puppet_projects\pname\pname:/var/www/html/pname
networks:
frontend:
backend:
什么原因导致错误。我该如何解决?我是否必须将服务名称设置为 php 而不更改它?
我假设您使用 Apache2 作为代理,并且配置为将请求传递给 php
服务。当您更改服务名称时,它在 Docker 中的内部 DNS 记录也会更改,因此 Apache 无法再找到 php
。
您可以在 Apache 配置中反映更改,或者为 php
服务添加一个别名以赋予它第二个名称:
services:
php_pname:
build: './php/'
ports:
- 9000:9000
networks:
backend:
aliases:
- php
这样您就可以使用 php_pname
和 php
从 backend
网络访问服务 php_pname
。
我有 docker-compose.yml 看起来像这样。
version: "3.6"
services:
php:
build: './php/'
ports:
- 9000:9000
networks:
- backend
volumes:
- .\puppet_projects\pname\pname:/var/www/html/pname
apache_pname:
build: './apache/'
depends_on:
- php
ports:
- "80:80"
networks:
- frontend
- backend
volumes:
- .\puppet_projects\pname\pname:/var/www/html/pname
networks:
frontend:
backend:
当我开始时 docker-compose up 项目工作正常但是在将 php 更改为 ie 之后。 php_pname 我收到 503 网站不可用
version: "3.6"
services:
php_pname:
build: './php/'
ports:
- 9000:9000
networks:
- backend
volumes:
- .\puppet_projects\pname\pname:/var/www/html/pname
apache_pname:
build: './apache/'
depends_on:
- php_pname
ports:
- "80:80"
networks:
- frontend
- backend
volumes:
- .\puppet_projects\pname\pname:/var/www/html/pname
networks:
frontend:
backend:
什么原因导致错误。我该如何解决?我是否必须将服务名称设置为 php 而不更改它?
我假设您使用 Apache2 作为代理,并且配置为将请求传递给 php
服务。当您更改服务名称时,它在 Docker 中的内部 DNS 记录也会更改,因此 Apache 无法再找到 php
。
您可以在 Apache 配置中反映更改,或者为 php
服务添加一个别名以赋予它第二个名称:
services:
php_pname:
build: './php/'
ports:
- 9000:9000
networks:
backend:
aliases:
- php
这样您就可以使用 php_pname
和 php
从 backend
网络访问服务 php_pname
。