在Docker容器中设置区域设置

我使用这个图像:

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" 

但是,当我退出我的容器,并再次input它是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。

在你的Dockerfile中,

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

然后,你必须build立一个新的形象与您的自定义名称。

 docker build -t my_image . 

好的,所以,你应该使用环境,而不是在你的Dockerfile中导出。 这个解决scheme适用于我。

 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 

我从本文中find了解决scheme,并适应了redhat操作系统。 http://jaredmarkell.com/docker-and-locales/