Не удается получить Docker-контейнеры для связи на локальном хосте в MacOS - PullRequest
0 голосов
/ 12 января 2019

Я потратил много времени, пытаясь заставить NGINX + Sinatra общаться на локальном хосте на моем Mac. Контейнер Docker для Sinatra, определенный с помощью файла Docker, может загружаться на localhost: 3000 без проблем. Контейнер NGINX (с пользовательским файлом default.conf) не может связываться с моим приложением. Файл docker-compose находится ниже:

version: '3'
services:
  sinatra:
    build: app/
    ports: 
      - "3000:3000"

  nginx: 
    image: nginx:latest
    container_name: production_nginx
    volumes:
      - ./nginx/default.conf:/etc/nginx/default.conf
    ports:
      - "80:80"
      - "443:443"
    depends_on:
      - sinatra
    links:
      - sinatra

В default.conf для nginx у меня есть следующее:

server {
    listen 80 default_server;

    access_log  /var/log/nginx/host.access.log  main;

    location / {
       proxy_pass http://sinatra:3000;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }    
}

Насколько я понимаю, директива 'link' позволит мне так обращаться к службе синатры. Тем не менее, это не работает. Мой общий ресурс с моим локальным mac, настроенным в Docker, позволит использовать файлы из всех этих источников, и я могу видеть их при выполнении в отдельных контейнерах. Есть идеи, почему это не сработает? Опять же, служба sinatra отвечает на localhost: 3000, так что это должно быть что-то с частью NGINX. Спасибо за любое направление.

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