在Docker容器中设置区域设置

时间:2016-09-22 11:47:29

标签: encoding docker jboss locale

我使用这张图片:

registry.access.redhat.com/jboss-webserver-3/webserver30-tomcat7-openshift

当我运行我的容器时,我的默认语言环境是:

LANG=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=

我需要将其更改为ISO-8859-15 我如何在dockerfile中执行此操作?

我首先在运行时尝试这个:

# localedef -c -i fr_FR -f ISO-8859-15 fr_FR.ISO-8859-15
# export LANG="fr_FR.ISO-8859-15"

但当我退出我的容器并再次输入时,它又回到了POSIX。

更新:我试过了:

FROM registry.access.redhat.com/jboss-webserver-3/webserver30-tomcat7-openshift:1.2-12
USER root
RUN localedef -c -i fr_FR -f ISO-8859-15 fr_FR.ISO-8859-15
RUN export LANG="fr_FR.ISO-8859-15"

但是,当我启动容器并执行locale时,我再次获得POSIX。

1 个答案:

答案 0 :(得分:0)

在你的Dockerfile中,

FROM registry.access.redhat.com/jboss-webserver-3/webserver30-tomcat7-openshift
RUN custom-command_to_change_local.sh

然后,您必须使用自定义名称构建新图像。

docker build -t my_image .

好的,你应该在Dockerfile中使用环境而不是导出。 这个解决方案适合我。

FROM registry.access.redhat.com/jboss-webserver-3/webserver30-tomcat7-openshift:1.2-12

USER root
RUN localedef -c -i fr_FR -f ISO-8859-15 fr_FR.ISO-8859-15

ENV LANG fr_FR.ISO-8859-15
ENV LANGUAGE fr_FR:fr  
ENV LC_ALL fr_FR.ISO-8859-15 

我从本文找到了解决方案并适应了redhat操作系统。 http://jaredmarkell.com/docker-and-locales/