Kiedy próbuję
apt-get install -y tzdata
pojawi się opcja wiersza poleceń do wybrania strefy czasowej. Próbuję użyć tego w skrypcie, aby przeprowadzić konfigurację, jak mogę uruchomić apt-get bez udziału użytkownika?
Wiem, aby zmienić konfigurację tzdata, którą mogę zrobić
echo "America/New_York" > /etc/timezone
dpkg-reconfigure -f noninteractive tzdata
Ale podczas instalacji potrzebuję, aby działał w pełni, nawet jeśli nie ustawia właściwej strefy czasowej, zawsze mogę to zmienić.
próbowałem
echo 5 | apt-get install -y tzdata
ale nie działa zgodnie z oczekiwaniami.
DEBIAN_FRONTEND=noninteractive apt-get install -y tzdata
ln -fs /usr/share/zoneinfo/America/New_York /etc/localtime
wcześniejszego krokuDEBIAN_FRONTEND=noninteractive apt-get install -y tzdata
było jedynym sposobem, w jaki mogłem zainstalować to bez monitu.Jeśli ktoś chce to osiągnąć w
Dockerfile
, użyj jak poniżej.źródło
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends ...
DEBIAN_FRONTEND
install
&&
update
Wszystkie zasługi za to powinny trafić do @PYA, ale właściwa kolejność powinna być:
ln -fs /usr/share/zoneinfo/America/New_York /etc/localtime export DEBIAN_FRONTEND=noninteractive apt-get install -y tzdata dpkg-reconfigure --frontend noninteractive tzdata
źródło
Niedawno znalazłem następujące rozwiązanie w pliku Dockerfile budującym bibliotekę Cingulata FHE:
Zasadniczo używa interfejsu API dostarczonego przez ipapi.co do pobierania informacji o strefie czasowej. Spowoduje to automatyczne skonfigurowanie strefy czasowej w prawidłowy sposób zamiast pomijania okna dialogowego i używania domyślnej wartości (UTC).
źródło
Oto jak to zrobiłem:
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
Pierwsze dwie instrukcje echo tworzą plik tekstowy, który zawiera numery wyboru dla menu obszaru geograficznego i menu miasta / regionu. Ten plik jest następnie używany do dostarczania danych wejściowych do polecenia apt-get install. Pakiet tzdata zostanie zainstalowany bez pytania użytkownika o wprowadzenie danych. Strefa czasowa zostanie ustawiona na Afryka / Abidżan, tak jakbyś wpisał 1 i 1 w odpowiedzi na komunikaty, które normalnie otrzymujesz. Następnie zmieniam strefę czasową na to, co chcę, za pomocą ostatnich dwóch poleceń.
Zamiast 1 i 1 możesz użyć rzeczywistych liczb dla wybranego obszaru geograficznego i miasta / regionu, ale wydaje mi się, że te liczby mogą się zmienić.
źródło