PYA*_*PYA 55 bash ubuntu apt-get dockerfile
当我尝试
apt-get install -y tzdata
Run Code Online (Sandbox Code Playgroud)
显示选择时区的命令行选项.我试图在脚本中使用它来进行一些设置,如何在没有用户输入的情况下运行apt-get?
我知道要重新配置我能做的tzdata
echo "America/New_York" > /etc/timezone
dpkg-reconfigure -f noninteractive tzdata
Run Code Online (Sandbox Code Playgroud)
但是在安装时我需要它完全运行,即使它没有设置正确的时区,我总是可以重新配置它.
我试过了
echo 5 | apt-get install -y tzdata
Run Code Online (Sandbox Code Playgroud)
但它没有按预期工作.
PYA*_*PYA 109
这是我使用的脚本
#!/bin/bash
export DEBIAN_FRONTEND=noninteractive
ln -fs /usr/share/zoneinfo/America/New_York /etc/localtime
apt-get install -y tzdata
dpkg-reconfigure --frontend noninteractive tzdata
Run Code Online (Sandbox Code Playgroud)
似乎工作正常.
Pas*_* H. 24
为了避免直接使用符号链接并仅运行配置一次,我建议使用debconf-set-selections
命令:
echo 'tzdata tzdata/Areas select Europe' | debconf-set-selections
echo 'tzdata tzdata/Zones/Europe select Paris' | debconf-set-selections
DEBIAN_FRONTEND="noninteractive" apt install -y tzdata
Run Code Online (Sandbox Code Playgroud)
Pat*_*ick 10
我最近在构建Cingulata FHE 库的 Dockerfile 中找到了以下解决方案:
ln -snf /usr/share/zoneinfo/$(curl https://ipapi.co/timezone) /etc/localtime
Run Code Online (Sandbox Code Playgroud)
它基本上使用 ipapi.co 提供的 API 来检索时区信息。这会自动正确配置时区,而不是跳过对话框并使用默认值 (UTC)。
对此的所有功劳都应该归功于@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
Run Code Online (Sandbox Code Playgroud)
如果有人想在中实现它Dockerfile
,请使用以下方法。
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get -y install tzdata
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
27218 次 |
最近记录: |