Контейнер недоступен из сервисов up при использовании docker-compose run - PullRequest
0 голосов
/ 14 декабря 2018

У меня есть конфигурация docker-compose, такая как:

version: '3.7'
services:
  flask:
    command: [python, app.py]
    ports:
      - "127.0.0.1:5000:5000"
  frontend:
    command: [sh, -c, "npm run start"]
    ports:
      - "127.0.0.1:7600:7600"
    links:
      - flask

В контейнере frontend работает сервер разработки веб-пакетов, который передает /api/* запросы пути к flask:5000 для обработки.Это прекрасно работает, когда я использую docker-compose up -d.

Однако, скажем, я хочу отладить что-то в приложении фляги, используя pdb, и вместо этого запускаю его вручную, используя:

docker-compose stop flask 
docker-compose run --rm --service-ports flask python app.py 

Тогда внезапно моя служба frontend не можетзапрос прокси для моей службы flask, и я получаю сообщение об ошибке типа: Error occurred while trying to proxy request /testing from frontend:7600 to http://flask:5000 (ECONNREFUSED) (https://nodejs.org/api/errors.html#errors_common_system_errors)

Что мне не хватает?Как заставить эту конфигурацию работать для интерактивной отладки моего кода на Python?

Редактировать: я бегу Docker version 18.09.0, build 4d60db4 и docker-compose version 1.23.2, build 1110ad01

1 Ответ

0 голосов
/ 14 декабря 2018

Проблема заключается в том, что при запуске вручную имя контейнера больше не flask, это можно увидеть с помощью docker network inspect your_network.

Вам нужно сначала docker-compose rm flask освободить имя flask, затем docker-compose run --service-ports --name flask flask.

Наконец, я не знаю, как вы используете pdb, но вы можете нормальноиспользуйте docker-compose exec flask sh или docker attach container_id для получения интерактивного приглашения.

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