配置Ubuntu容器镜像的时区和语言
使用容器一段时间后我发现容器默认使用英语,0 时区。这样使用起来不太方便,因此这里记录我配置时区和语言的方法。
Dockerfile 内容:
FROM ubuntu
USER root
RUN DEBIAN_FRONTEND=noninteractive apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y locales tzdata && \
DEBIAN_FRONTEND=noninteractive apt-get autoremove -y && apt-get clean && \
rm /var/lib/apt/lists/* -r && \
sed -i '/zh_CN.UTF-8/s/^# //g' /etc/locale.gen && \
locale-gen &&\
ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
dpkg-reconfigure -f noninteractive tzdata
ENV LANG zh_CN.UTF-8
ENV LANGUAGE zh_CN:zh
ENV LC_ALL zh_CN.UTF-8
ENTRYPOINT [ "/bin/bash" ]
配置语言
参考 Microsoft JDK 的文档为容器配置语言。第 6 行下载 locales,第 9、10、13~15 行配置中文语言。
配置时区
参考《Set timezone in your docker image》配置容器的时区。这里采用链接时区文件方式配置时区。第 6 行下载 tzdata,第 11、12 行链接时区文件。
精简容器层
每一个 RUN 指令会创建一个新的容器层。为了避免创建太多层,我把所有的 Shell 指令放在一个 RUN 指令中。第 7、8 行清理了 apt-get 产生的垃圾文件。13~15 行配置的环境变量会在最终运行的容器中生效。
修订记录
2022-05-07T14:51:14+08:00
- 创建。