Docker DNS несколько контейнеров с apache vhosts (подстановочный домен) - PullRequest
0 голосов
/ 24 апреля 2020

Для компании, в которой я работаю, я настраиваю среду 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
...