Альтернативные имена хостов Docker - PullRequest
0 голосов
/ 12 июня 2018

У меня docker-compose.yml выглядит так:

version: "3.2"

services:
  web:
    build: /Users/marcin/Docker/definitions/php-nginx/php-7.2-ubuntu
    volumes:
      - /some_dir/:/some_dir
    working_dir: /usr/share/nginx/html/
    links:
      - db
    container_name: name.web
    hostname: name.local
    expose:
      - "10015"
    ports:
      - "313:22"
      - "8313:80"
      - "18313:443"
    environment:
      - VIRTUAL_HOST=name.local,name-be.local,name-com.local,subdomain.name-com.local
      - CERT_NAME=default
      - HTTPS_METHOD=noredirect
    networks:
      - default
      - proxy_default
  db:
    build: /Users/marcin/Docker/definitions/mysql/8.0
    environment:
      - MYSQL_ROOT_PASSWORD=pass
      - MYSQL_DATABASE=
      - MYSQL_USER=
      - MYSQL_PASSWORD=
    expose:
      - 3306
    volumes:
      - /Users/marcin/Docker/projects/name.local/mysql/data/:/var/lib/mysql/
      - /Users/marcin/Docker/projects/name.local/mysql/conf.d/:/etc/mysql/conf.d/source
      - /Users/marcin/Docker/projects/name.local/mysql/log/:/var/log/mysql/
    ports:
      - "33313:3306"
    container_name: name.db
    hostname: name.local
    networks:
      proxy_default:
      external:
        name: proxy_default 

Я захожу на этот сайт (в веб-браузере), используя name.local и subdomain.name-com.local доменные имена - без проблем.

Однако сегодня мне пришлось выполнить несколько тестов, и я обнаружил, что при запуске:

wget http://name.local

Я могу получить контент сайта без проблем, но когдаработает

wget http://subdomain.name -com.local

этот хост не может быть разрешен.

Как я могу это сделатьоба домена будут направлять трафик на одни и те же хосты?

То, что я сейчас делал, смотрел на /etc/hosts, и я добавил те же IP-адреса, которые я там нашел, для domain.local ниже

имя хоста: имя.local

строка такая:

extra_hosts:
   - "subdomain.name-com.local:192.168.0.3"
   - "subdomain.name-com.local:172.19.0.3"

и теперь, похоже, работает нормально.Тем не менее, мне не очень нравится это решение (хотя оно, кажется, работает без проблем), потому что мне приходится жестко задавать здесь некоторые IP-адреса, и я не уверен, будут ли они меняться или нет.

Можно ли как-то добавить сюда псевдонимы имени хоста вместо указания некоторых магических IP-адресов?

1 Ответ

0 голосов
/ 12 июня 2018

Чтобы определить псевдонимы хостов, вы должны использовать сетевые псевдонимы :

Псевдонимы Псевдонимы (альтернативные имена хостов) для этой службы в сети.Другие контейнеры в той же сети могут использовать имя службы или этот псевдоним для подключения к одному из контейнеров службы.

В вашем примере это может выглядеть следующим образом:

services:
  web:
    container_name: name.web
    hostname: name.local
    networks:
       default:
         aliases:
           - subdomain.name-com.local
       proxy_default
         aliases:
           - subdomain.name-com.local
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...