【问题标题】:How to set timezone and locale on a Wildfly Docker image?如何在 Wildfly Docker 映像上设置时区和语言环境?
【发布时间】:2019-08-17 07:19:01
【问题描述】:

Docker Hub 上可用的The official Wildfly image 将时区设置为 UTC,并且不存在区域设置配置。

图像具有以下依赖树:

jboss/wildfly
└── jboss/base-jdk:11
    └── jboss/base
        └── centos:7

基于此,我使用以下命令检查了时区/语言环境配置:

docker exec -t <id> locale
docker exec -t <id> cat /etc/localtime

如何在 Dockerfile 上设置适当的时区和语言环境信息?

【问题讨论】:

    标签: docker jboss centos dockerfile wildfly


    【解决方案1】:

    这是我在检查了基础镜像的 Dockerfiles 和 CentOS 文档后提出的解决方案:

    以下 Dockerfile 示例将圣保罗、巴西时区和巴西葡萄牙语设置为区域设置,您可以更改时区/区域设置以适应自己的需要:

    FROM jboss/wildfly:10.1.0.Final
    
    USER root
    
    RUN localedef -i pt_BR -f UTF-8 pt_BR.UTF-8
    RUN echo "LANG=\"pt_BR.UTF-8\"" > /etc/locale.conf
    RUN ln -s -f /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime
    
    USER jboss
    
    ENV LANG pt_BR.UTF-8
    ENV LANGUAGE pt_BR.UTF-8
    ENV LC_ALL pt_BR.UTF-8
    ...
    

    【讨论】:

      【解决方案2】:

      在大多数情况下,您可以使用标准 Linux 环境变量 TZ、LANG 和 LANGUAGE 调整语言和时区。请参阅以下示例:

      docker run -e TZ="America/Sao_Paulo" \
         -e LANG="pt_BR.UTF-8" \
         -e LANGUAGE="pt_BR.UTF-8" \
         -e LC_ALL="pt_BR.UTF-8" \
         -it jboss/wildfly
      

      这将在运行时更改语言和时区。如果你想改变语言和时区,你也可以像 Fábio 提到的那样改变 Dockerfile

      【讨论】:

        猜你喜欢
        • 2015-11-26
        • 2015-04-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-04
        • 2019-08-27
        • 2019-08-27
        • 1970-01-01
        相关资源
        最近更新 更多