Подтвердить что ты не робот

Интерактивная докерная сборка из dockerfile?

Я хочу использовать Dockerfile для создания изображения. Тем не менее, команды будут нуждаться в пользовательском вводе при их запуске. В настоящее время сборка не выполняется, поскольку докер выходит из пользовательского ввода. Я знаю, что я могу использовать опции -i -t для команды запуска docker, но я хочу сделать это в файле Docker. Как это возможно?

4b9b3361

Ответ 1

Вы можете попробовать expect или аналогичный инструмент.

Самый простой способ его настройки - использовать инструмент autoexpect, который позволяет запускать команды в интерактивном режиме и создает для вас ожидаемый script.

Я не мог заставить работать rvmsudo (я не использовал его и не хотел тратить на него слишком много времени), поэтому я решил использовать vi. Первый запуск autoexpect

$ autoexpect vi test

Откроется vi, и вы можете создать или отредактировать файл и сохранить его. После выхода из vi вы увидите файл test, а также ожидаете script script.exp.

Затем вы можете удалить тестовый файл и выполнить script.exp. Он будет воссоздавать один и тот же файл, используя те же шаги.

Инструмент autoexpect замечательный, но вам может понадобиться создать script с нуля, если вам нужно больше контролировать, что происходит. Например. если вы не хотите, чтобы script работал с точным ожидаемым входом.