docker-compose: контейнерный прокси nginx для контейнера couchdb - PullRequest
0 голосов
/ 05 декабря 2018

Попытка собрать композицию с помощью прокси-сервера nginx для couchdb.

Я могу заставить это работать без проблем в среде виртуальных машин, но не могу заставить его работать в докере - с помощью curlна хосте localhost: 8085, я получаю '(52) Пустой ответ от сервера'.Ничего не отображается в выходных данных журнала и ничего не отображается в журналах доступа / ошибок nginx в контейнере.

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

version: "3"
services:
  db.list-2-list:
    container_name: db.list-2-list.lcldev
    build: ./db.list-2-list/dev
    ports:
      - "8085:80"
    networks:
      - backend
      - frontend
    volumes:
      - ./db.list-2-list/dev/conf.d:/etc/nginx/conf.d

  couchdb:
    container_name: "aph-couchdb"
    image: "aph/couchdb"
    networks:
      - backend
    volumes:
      - cb-combined:/opt/couchdb/data

networks:
  backend:
  frontend:

volumes:
  cb-combined:
    external:
      name: "cb-combined"

The 'aph-coucdb 'контейнер получен из образа apache couchdb - он просто содержит мой файл local.ini (замена изображения apache couchdb на конфигурацию по умолчанию показывает те же результаты.)

Порт 5984 открыт в базовом образе,поэтому я не буду показывать это здесь (хотя я пытался это сделать). Если я добавлю запись портов в службу couchdb, экспортирующую 5984: 5984, то я могу напрямую поговорить с контейнером couchdb, и все, похоже, в порядке.Я также могу выполнить в контейнер nginx и ping / curl aph-couchdb с ожидаемыми результатами.

Вот мой конфиг nginx:

server {
  listen 80 default;
# listen [::]:80;
  location / {
    proxy_pass aph-couchdb:5984;
    proxy_redirect off;
#    proxy_set_header Host $host;
#    proxy_set_header X-Real-IP $remote_addr;
#    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#    proxy_set_header X-Forwarded-Host $server_name;
#    proxy_hide_header X-Powered-By;
    if ($request_method = OPTIONS ) {
      add_header 'Access-Control-Allow-Origin' '$http_origin';
      add_header 'Access-Control-Allow-Credentials' 'true';
      add_header 'Access-Control-Allow-Methods' 'GET, PUT, POST, HEAD, DELETE, OPTIONS';
      add_header 'Access-Control-Allow-Headers' 'X-Auth-CouchDB-UserName,X-Auth-CouchDB-Roles,X-Auth-CouchDB-Token,Accept,Authorization,Origin,Referer,X-Csrf-Token,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
      add_header 'Access-Control-Max-Age' 86400;
      add_header 'Content-Type' 'text/plain charset=UTF-8';
      add_header 'Content-Length' 0;
      return 204;
    }
  }

  location ~ ^/(.*)/_changes {
    proxy_pass aph-couchdb:5984;
  }
}

Закомментированные записи - это разные вещи, которые я пробовал, основываясь на других исследованиях - ни одна из них не имеет значения - я все еще получаю (52) Пустой ответс сервера, когда я свернул localhost: 8085 с хоста.

Кажется, я не могу дальше об этом ...

Мысли оценены.rickb

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