Разрешение хоста с Docker Compose не работает с пользовательским именем хоста - PullRequest
0 голосов
/ 03 сентября 2018

У меня есть Docker Compose, который при запуске позволяет мне получить доступ к контейнеру непосредственно в браузере, используя порт 80 (например, localhost: 8080), однако я хочу вместо этого добавить свои собственные имена хостов, например backend.local, как мне это сделать в моем файле Docker Compose

Я добавил backend.local в мой файл хостов Windows и выполнил компоновку, но я получаю сообщение об ошибке «Этот сайт недоступен»

# Adopt version 2 syntax:
#   https://docs.docker.com/compose/compose-file/#/versioning
version: '3'

volumes:
    database_data:
        driver: local

services:
###########################
# Setup the Nginx container
###########################
nginx:
    image: nginx:latest
    container_name: nginx-container
    volumes:
        - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
    dns:
        - 192.168.55.10
    dns_search: backend.local

###########################
# Setup the PHP container
###########################
php:
    build: ./docker/php/
    container_name: php-container
    expose:
        - 9000
    volumes:
        - .:/var/www
    hostname: backend.local

###########################
# Setup the Database (MySQL) container
###########################
mysql:
    image: mysql:latest
    container_name: mysql-container
    expose:
      - 3306
    volumes:
      - database_data:/var/lib/mysql
      - ./db/bootstrap.sql.gz:/docker-entrypoint-initdb.d/bootstrap.sql.gz
    environment:
        MYSQL_ROOT_PASSWORD: secret
        MYSQL_DATABASE: project
        MYSQL_USER: project
        MYSQL_PASSWORD: project

1 Ответ

0 голосов
/ 03 сентября 2018

Docker не может влиять на разрешение DNS хоста, поэтому все, что вы можете сделать для достижения вашей цели:

  • Поместить сопоставление в файлы хостов backend.local -> localhost

  • Использование оператора портов для отображения вашего приложения на порту 8080

  • Затем вы можете получить доступ к своему приложению на обоих: localhost: 8080 и backend.local: 8080

...