Docker Compose Использовать домен вместо локального хоста - PullRequest
0 голосов
/ 22 февраля 2019

Извините, я новичок в докере и веб-разработке в целом, но я сделал базовый сервер для создания докеров, который содержит мой локальный PHP-файл и отображает некоторый текст.Он хорошо работает с локальным хостом, но я купил несколько доменов и мне было интересно, как я переключаюсь с подключения к localhost на домен, чтобы любой мог подключиться к нему.Мой IP-адрес уже настроен для внешнего подключения и работает для моего сервера SSH, поэтому мне не нужно этого делать.Я просто не могу найти какие-либо результаты, когда я пытаюсь найти его.Так что мне просто нужно знать, что нужно изменить в моем докере, создать файлы или настройки, чтобы вместо этого перейти в домен.

Вот мой файл docker-compose:


services:
  product-service:
    build: ./product
    volumes:
      - ./product:/usr/src/app
    ports: 
      - 5001:80

  website:
      image: php:apache
      volumes:
        - ./website:/var/www/html 
      ports:
        - 5000:80
      depends_on:
        - product-service


1 Ответ

0 голосов
/ 22 февраля 2019

Без дополнительных знаний о вашей логике кода я не уверен, смогу ли я полностью заставить ее работать только этим ответом.Но я думаю, что могу дать абстрактный контрольный список.

Из-за вашей конфигурации docker-compose порт 5001, 5000 уже открыт для localhost.Если эти порты уже настроены для открытия во внешней сети, вы уже можете набрать yourdomain.com:5000 для доступа к нему.

Если вы просто хотите получить доступ, набрав yourdomain.com (без порта).Я предполагаю, что ваша website служба будет обслуживать его:

  • Откройте порт 80 и подключите его к порту 80 службы website:
website:
      image: php:apache
      volumes:
        - ./website:/var/www/html 
      ports:
        - 80:80
      depends_on:
        - product-service
  • Убедитесь, что любой вызов AJAX для product-service API будет вызываться на yourdomain.com:5001:

Изнутри службы website он может вызывать product-serivce API с помощьюlocalhost:5001.Но из пользовательского браузера любой AJAX-вызов будет считаться внешним вызовом, поэтому любой AJAX-вызов этой службы должен быть настроен как yourdomain.com:5001

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...