Docker Создать прикрепить один сервис к stdin и stdout - PullRequest
1 голос
/ 02 мая 2020

Что-то, что я пытаюсь сделать, это создать docker -компонентное приложение, которое имеет один сервисный акт в качестве REPL, который может взаимодействовать с остальными сервисами. Я пробовал разные способы привязать только этот сервис к stdin и stdout, но я не нашел ничего элегантного, что бы работало. Ответ на этот стековый поток сказал, что stdin_open: true и tty: true будут работать, и вот что я сделал с ним:

version: '3'
services:

  redis:
    image: redis

  python:
    image: python
    entrypoint: /bin/sh
    stdin_open: true
    tty: true

Запуск docker-compose up все еще отправляет журнал обеих служб и docker-compose up -d отделяет обе услуги. В этом примере есть ли элегантный способ получить интерактивную оболочку для службы python, когда выполняется только docker-compose up ... (то есть не работает docker exec, et c)?

1 Ответ

0 голосов
/ 03 мая 2020

Вы можете docker-compose run альтернативную команду, используя image: и другие настройки в Docker Создать файл YAML. Если этот сервис depends_on: других сервисов, он запустит их. Следует помнить одну вещь: по умолчанию она не публикует sh объявленную ports:.

docker-compose run python /bin/sh

(установка Docker имеет тенденцию быть немного более оптимизированной в долгосрочной перспективе). процессы сетевого сервера, такие как установка Redis здесь, и меньше для «команд», которые полагаются на их стандартный ввод для ввода. Рассмотрим упаковку вашего приложения в образ , но обычно с использованием хост-инструментов для изучения языка и Современная разработка. В частности, Python, виртуальная среда предоставляет автономную игровую площадку, на которой вы можете устанавливать пакеты под своей учетной записью без вмешательства в систему Python.)

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