Docker: Exe c команда на запуск консоли в контейнере - PullRequest
1 голос
/ 28 апреля 2020

Подводя итог, проблема, которую я имею: Я хочу выполнить команду на консоли minecraft, которая работает в контейнере, как при подключении к нему в интерактивном режиме, но без необходимости подключения к нему.

docker attach container_name

command

detach_from_contaienr

Как и при выполнении docker exe c, но она помещает команду в стандартный поток работающей программы внутри контейнера как в docker attach.

Я просто ищу тот, кто делает то же самое. Как в этом вопросе

Редактировать: echo 'say test' | docker attach <container id>

Выдает ошибку:

the input device is not a TTY

Редактировать2: после удаления флаг -t на линке контейнера в этой записи

echo 'say test' | docker attach <container id>

команда попадает на сервер по мере появления журнала, но после выполнения, что я застрял в пустой ввод, потому что команда как-то не останавливается

Если я сейчас сделаю двойной ctrl + c, контейнер остановится ...

Edit3: я пытаюсь выполнить эти команды на docker хост и выполнить команду на работающем сервере spigot minecraft

1 Ответ

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

Очевидно, вы можете использовать именованный канал для этого, как показано здесь: { ссылка }

# in the Docker container
$ mkfifo myfifo
$ java -jar minecraft_server.jar nogui < myfifo

# via your `docker exec`
$ echo 'say test' > myfifo

Как уже было отмечено, будьте осторожны, чтобы случайно не отправить EOF характер.

...