Для компании, в которой я работаю, я настраиваю среду docker, используя docker - composer и несколько контейнеров, чтобы мы могли извлечь выгоду из одной среды. Я создал DNS-запись субдомена (dev.company.com), указывающую на 127.0.0.1. Это прекрасно работает для достижения проектов из браузера до соответствующих Apache vhosts. Однако проблема в том, что мы не можем разрешить этот домен в контейнере PHP, поскольку DNS указывает на 127.0.0.1, как я могу добавить пользовательскую запись в контейнер docker php для разрешения * .dev.company.com в контейнер Apache?
Также добавить это в / etc / hosts не очень удобно, потому что мы выполняем более 50 проектов.
В сети я нашел несколько решений, в которых просто сказано добавить php к тому же контейнеру, но этот тип побеждает цель иметь отдельные контейнеры для каждой услуги. Добавлен docker - composer файл для справки.
Примечание: я единственный, кто использует Linux в офисе, другие коллеги используют Docker на Windows или Ma c, так что Linux единственное решение не поможет:)
version: "3.7"
services:
php:
build: php
env_file:
- ./conf/php.config.env
volumes:
- ./htdocs:/htdocs
expose:
- "9000"
links:
- mysql
- mssql
- mail
restart: always
init: true
apache:
build: apache
volumes:
- ./htdocs:/htdocs:ro
ports:
- "80:80"
- "443:443"
links:
- php
restart: always
init: true
mysql:
build: mysql
env_file:
- ./conf/mysql.config.env
volumes:
- ./mysql/data:/var/lib/mysql
ports:
- "3306:3306"
restart: always
mssql:
image: microsoft/mssql-server-linux
env_file:
- ./conf/mssql.config.env
volumes:
- ./mssql/data:/var/opt/mssql/data
ports:
- "1433:1433"
restart: always
mail:
image: schickling/mailcatcher
ports:
- "1080:1080"
restart: always
init: true
redis:
image: redis
expose:
- "6379"
links:
- php
restart: always
init: true