我想将 awscli 安装到我的 ubuntu docker 映像上。
这是我使用的命令
apt-get install -y awscli
安装开始后不久,就提示
配置 tzdata
请选择您居住的地理区域。后续的配置问题将通过提供城市列表(代表它们所在的时区)来缩小范围。
- 非洲 2. 美洲 3. 南极洲 4. 澳大利亚 5. 北极 6. 亚洲 7. 大西洋 8. 欧洲 9. 印度 10. 太平洋 11. SystemV 12. 美国 13. 等等 地理区域:
由于我想apt-get
在 Docker 中包含此步骤,因此它不能是交互式的。
我如何将此时区信息传递给apt-get
和/或aws-cli
?
我尝试将“/etc/timezone”的内容设置为Australia/Sydney
,但仍然出现提示。如果我此时终止进程,我可以看到文件“/etc/timezone”的内容更改为Etc/UTC
答案1
所选的解决方案不适合我,所以我使用了这个:
- 出口 TZ=欧洲/巴黎
- ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
- apt安装-y awscli
以下资源对我有帮助:https://serverfault.com/questions/683605/docker-container-time-timezone-will-not-reflect-changes
答案2
在运行之前将以下行添加到 aws 配置文件(例如/root/.aws/credentials
)pip install awscli
region = us-west-2
当然,您应该将区域设置为对您的项目有意义的任何区域。
答案3
您也可以使用以下命令安装 awscli DEBIAN_FRONTEND=noninteractive
:
DEBIAN_FRONTEND=noninteractive apt-get install -y awscli
它只会选择 tzdata 的默认时区,安装过程打印时似乎是 UTC
Current default time zone: 'Etc/UTC'
Local time is now: Fri Feb 23 18:12:49 UTC 2024.
Universal Time is now: Fri Feb 23 18:12:49 UTC 2024.
Run 'dpkg-reconfigure tzdata' if you wish to change it.
非交互式意味着:
noninteractive
This is the anti-frontend. It never interacts with you at all,
and makes the default answers be used for all questions. It
might mail error messages to root, but that's it; otherwise it
is completely silent and unobtrusive, a perfect frontend for
automatic installs. If you are using this front-end, and require
non-default answers to questions, you will need to preseed the
debconf database; see the section below on Unattended Package
Installation for more details.