#php #docker #apache #docker-compose
Вопрос:
У меня есть docker-compose.yml, который выглядит так.
version: "3.6"
services:
php:
build: './php/'
ports:
- 9000:9000
networks:
- backend
volumes:
- .puppet_projectspnamepname:/var/www/html/pname
apache_pname:
build: './apache/'
depends_on:
- php
ports:
- "80:80"
networks:
- frontend
- backend
volumes:
- .puppet_projectspnamepname:/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_projectspnamepname:/var/www/html/pname
apache_pname:
build: './apache/'
depends_on:
- php_pname
ports:
- "80:80"
networks:
- frontend
- backend
volumes:
- .puppet_projectspnamepname:/var/www/html/pname
networks:
frontend:
backend:
Что вызывает ошибку. Как я могу это исправить? Нужно ли мне настраивать имя службы на php без его изменения?
Ответ №1:
Я полагаю, вы используете Apache2 в качестве прокси-сервера, и он настроен для передачи запросов в php
службу. При изменении имени службы также изменяется внутренняя DNS-запись в Docker, поэтому Apache больше не может ее найти php
.
Вы можете либо отразить изменение в конфигурации Apache, либо добавить псевдоним в php
службу, чтобы дать ей второе имя:
services:
php_pname:
build: './php/'
ports:
- 9000:9000
networks:
backend:
aliases:
- php
Таким образом, вы можете получить доступ к сервису php_pname
из backend
сети с помощью обоих php_pname
и php
.