Почему я не могу подключиться к этой docker услуге создания? - PullRequest
1 голос
/ 13 апреля 2020

Итак, у меня есть этот docker файл композиции

version: "2.1"
services:
  nginx:
    image: pottava/proxy
    ports:
      - 8080:80
    environment:
        - PROXY_URL=http://transmission-container:5080/
        - BASIC_AUTH_USER=admin
        - BASIC_AUTH_PASS=admin
        - ACCESS_LOG=true
  transmission:
    image: linuxserver/transmission
    container_name: transmission-container
    ports:
      - 5080:9091
    restart: unless-stopped

Я новичок в docker композиции и пробую в первый раз. Мне нужно иметь доступ к службе передачи через http://localhost:8080, но nginx возвращает 502.

  1. Как мне изменить файл композиции, чтобы http://localhost:8080 подключился к службе передачи ?
  2. Как сделать службу передачи недоступной через http://localhost:5080 и доступной только через http://localhost:8080 с помощью docker compose?

Ответы [ 2 ]

0 голосов
/ 13 апреля 2020

Я проверил приведенный ниже код, он работает

version: "2.1"
services:
  nginx:
    image: pottava/proxy
    ports:
      - 8080:80
    environment:
        - PROXY_URL=http://transmission-container:9091/
        - BASIC_AUTH_USER=admin
        - BASIC_AUTH_PASS=admin
        - ACCESS_LOG=true
  transmission:
    image: linuxserver/transmission
    container_name: transmission-container
    expose:
      - "9091"
    restart: unless-stopped

Вам не нужно выставлять порт 5080 для хоста, контейнер Nginx может напрямую обращаться к порту контейнера. URL прокси должен указывать на порт 9091. Теперь вы не можете получить прямой доступ к услуге передачи, но вам нужно go через прокси-сервер.

0 голосов
/ 13 апреля 2020

Вы должны иметь доступ к другому контейнеру, используя имя службы и порт контейнера:

 - PROXY_URL=http://transmission:9091/

Если вы не хотите получать доступ к службе передачи из locahost, не объявляйте порт хоста:

   ports:
      - 9091
...