Когда я пытаюсь
apt-get install -y tzdata
появляется опция командной строки для выбора часового пояса. Я пытаюсь использовать это в сценарии, чтобы выполнить некоторую настройку, как я могу запустить apt-get без ввода данных пользователем?
Я знаю, что могу перенастроить tzdata
echo "America/New_York" > /etc/timezone
dpkg-reconfigure -f noninteractive tzdata
Но при установке мне нужно, чтобы он работал полностью, даже если он не устанавливает правильный часовой пояс, я всегда могу его перенастроить.
Я старался
echo 5 | apt-get install -y tzdata
но он работает не так, как ожидалось.
DEBIAN_FRONTEND=noninteractive apt-get install -y tzdata
ln -fs /usr/share/zoneinfo/America/New_York /etc/localtime
шага до этогоDEBIAN_FRONTEND=noninteractive apt-get install -y tzdata
было единственным способом установить это без приглашения.Если кто-то хочет этого добиться
Dockerfile
, используйте, как показано ниже.источник
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends ...
DEBIAN_FRONTEND
install
&&
update
Вся заслуга в этом должна принадлежать @PYA, но в правильном порядке:
ln -fs /usr/share/zoneinfo/America/New_York /etc/localtime export DEBIAN_FRONTEND=noninteractive apt-get install -y tzdata dpkg-reconfigure --frontend noninteractive tzdata
источник
Недавно я нашел следующее решение в Dockerfile здание в броненосцы библиотеку FHE:
Он в основном использует API, предоставляемый ipapi.co, для получения информации о часовом поясе. Это автоматически настраивает часовой пояс правильно, вместо того, чтобы пропускать диалоговое окно и использовать значение по умолчанию (UTC).
источник
Вот как я это сделал:
echo 1 > input.txt echo 1 >> input.txt apt-get install -y tzdata < input.txt ln -fs /usr/share/zoneinfo/America/Los_Angeles /etc/localtime echo America/Los_Angeles > /etc/timezone
Первые два оператора echo создают текстовый файл, содержащий номера выбора для меню географической области и меню города / региона. Затем этот файл используется для ввода команды установки apt-get. Пакет tzdata будет установлен без запроса пользователя. Часовой пояс будет установлен на Африка / Абиджан, как если бы вы ввели 1 и 1 в ответ на обычные запросы. Затем я изменяю часовой пояс на то, что хочу, с помощью последних двух команд.
Вместо 1 и 1 вы можете использовать фактические числа для географической области и города / региона, которые вам нужны, но мне кажется, что эти числа могут измениться.
источник