Docker Compose port mapping: 127.0.0.1 отказался подключиться - PullRequest
0 голосов
/ 14 ноября 2018

В настоящее время я работаю с Docker и простым веб-сайтом Flask, на который я хочу отправлять изображения. Для этого я работаю на порту 8080, но отображение от докера к хосту не работает должным образом, так как я не могу подключиться. Может ли кто-нибудь объяснить мне, что я делаю не так?

docker-compose.yml

version: "2.3"
services:
  dev:
    container_name: xvision-dev
    build:
      context: ./
      dockerfile: docker/dev.dockerfile
    working_dir: /app
    volumes:
      - .:/app
      - /path/to/images:/app/images
    ports:
      - "127.0.0.1:8080:8080"
      - "8080"
      - "8080:8080"

dev.dockerfile

FROM tensorflow/tensorflow:latest

WORKDIR /app

COPY requirements.txt ./
RUN pip install -r requirements.txt

RUN apt update && apt install -y python-tk

EXPOSE 8080

CMD ["python", "-u", "app.py"]

app.py

@APP.route('/test', methods=['GET'])
def hello():
    return "Hello world!"
def main():
    """Start the script"""
    APP.json_encoder = Float32Encoder
    APP.run(host="127.0.0.1", port=os.getenv('PORT', 8080))

Я запускаю свой докер с docker-compose up, это выдает: Running on http://127.0.0.1:8080/ (Press CTRL+C to quit).

Но когда я делаю запрос get на 127.0.0.1:8080/test, я получаю, что ответа нет.

Я также пытался docker-compose run --service-port dev, как некоторые люди предлагали в Интернете, но это говорит о том, что нет сервисного разработчика.

Может ли кто-нибудь помочь мне за то, что я делаю неправильно?

1 Ответ

0 голосов
/ 14 ноября 2018

Использование:

APP.run(host="0.0.0.0", port=os.getenv('PORT', 8080))

Использование только:

ports:

  - "8080:8080"

достаточно

...