Синопсис
Я пытаюсь создать образ Docker, но он терпит неудачу, потому что один из пакетов, которые я пытаюсь получить с помощью apt install
, запрашивает пользователя во время процесса установки. Я хотел бы ответить на это приглашение, но не могу понять, как это сделать не в интерактивном режиме.
Описание
Я создаю образ Docker, и мой Dockerfile имеет следующую строку:
RUN apt install -y texlive-latex-extra
(В этом пакете есть несколько библиотек LaTeX, которые мне нужны.)
Во время установки останавливается с помощью:
Setting up tzdata (2018d-1) ...
debconf: unable to initialize frontend: Dialog
debconf: (TERM is not set, so the dialog frontend is not usable.)
debconf: falling back to frontend: Readline
Configuring tzdata
------------------
Please select the geographic area in which you live. Subsequent configuration
questions will narrow this down by presenting a list of cities, representing
the time zones in which they are located.
1. Africa 6. Asia 11. System V timezones
2. America 7. Atlantic Ocean 12. US
3. Antarctica 8. Europe 13. None of the above
4. Australia 9. Indian Ocean
5. Arctic Ocean 10. Pacific Ocean
Geographic area:
На данный момент он ожидает некоторого ввода. (После этого появляется другое приглашение для выбора часового пояса - я полагаю, это важно знать для директивы \today
в файлах LaTeX. ¯ \ _ (ツ) _ / ¯)
Как я могу ответить на это не в интерактивном режиме?
Что я пробовал до сих пор
Я пытался сделать это:
apt install -y texlive-latex-extra <(echo 12 && echo 2)
и это:
echo 12 && echo 2 | apt install -y texlive-latex-extra
Первый умер с этой ошибкой:
apt install -y texlive-latex-extra <(echo 12 && echo 9)
а второй, похоже, не дал эффекта.
Для справки, вот мой Dockerfile до этого момента:
FROM ubuntu:latest
RUN apt update && apt upgrade -y && apt install -y curl bzip2 tar make gcc wget gnupg unzip
RUN apt install -y texlive
RUN apt install -y nodejs npm git
RUN npm install -g bower
RUN apt install -y texlive-latex-extra
UPDATE
Я нашел что-то близкое здесь , которое предлагало запустить apt install
с DEBIAN_FRONTEND=noninteractive
. Это решило мою проблему достаточно. :) Однако , я все еще хотел бы знать, как реагировать на запросы, поскольку предлагаемое там решение предлагает только то, как их подавить.