docker-compose up не перенаправляющий порт - PullRequest
0 голосов
/ 02 октября 2018

У меня есть следующие файлы.Когда я запускаю docker-compose up -d и exec в контейнер docker, я могу запустить http://127.0.0.1:5000 и получить результаты.С хоста я получаю обратно:

user@ubuntu:~/projects/grip/glm-plotter$ curl -v http://localhost:5000
* Rebuilt URL to: http://localhost:5000/
*   Trying ::1...
* TCP_NODELAY set
* Connected to localhost (::1) port 5000 (#0)
> GET / HTTP/1.1
> Host: localhost:5000
> User-Agent: curl/7.58.0
> Accept: */*
> 
* Empty reply from server
* Connection #0 to host localhost left intact
curl: (52) Empty reply from server

Если я запускаю команду docker-compose без -d, она запускается, но с отдельного терминала я также получаю пустые результаты.

docker ps (при запуске без -d)

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
237b0a7f8710        glm-plotter_web     "python3 glm-plotter…"   16 minutes ago      Up 24 seconds       0.0.0.0:5000->5000/tcp   glm-plotter_web_1

Я не уверен, должен ли процесс быть указан в "docker-proxy":

user@ubuntu:~$ sudo netstat -tulpn | grep 5000 
tcp6       0      0 :::5000                 :::*                    `LISTEN      13785/docker-proxy`  

Dockerfile

FROM library/python:3.6-stretch
RUN apt-get update && apt-get install -y python3
RUN apt-get install -y python3-pip
RUN apt-get install -y build-essential

COPY requirements.txt /
RUN pip3 install --trusted-host pypi.org -r /requirements.txt
RUN pip3 install --upgrade numpy
ADD ./glm-plotter /code
WORKDIR /code
RUN ls .
CMD ["python3", "glm-plotter.py"]

docker-compose.yml

version: "3"
services:
  web:
    volumes:
      - ~/.aws:/root/.aws
    build: .
    ports:
      - "5000:5000"

1 Ответ

0 голосов
/ 02 октября 2018

Ваш glm-plotter.py прослушивает только localhost в контейнере.Ваше приложение должно прослушивать все интерфейсы в контейнере - TCP-хост 0.0.0.0, а не только locahost/127.0.0.1 - вам нужно исправить свой код Python.

Это распространенная проблема - пример колбы: колба работает внутри контейнера, но не когда я перевожу ее вперед

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