如何在使用Packer构buildUbuntu Docker镜像时设置语言环境?

我使用Packer来构build一个基于Ubuntu 14.04的Docker镜像,也就是在我的Packer模板中:

"builders": [{ "type": "docker", "image": "ubuntu", "commit": true }], 

我使用以下方式构build它:

 $ packer build my.json 

当我随后运行以下内容时,需要在模板中放置什么特定的语言环境(比如en_GB )?

 $ sudo docker run %IMAGE_ID% locale 

附加信息

现在,我得到:

 LANG= LANGUAGE= LC_CTYPE="POSIX" LC_NUMERIC="POSIX" LC_TIME="POSIX" ... LC_IDENTIFICATION="POSIX" LC_ALL= 

这会导致我想要做的下一个问题的一些问题,如安装某些Python包。

我试过添加:

 { "type": "shell", "inline": [ "locale-gen en_GB.UTF-8", "update-locale LANG=en_GB.UTF-8 LANGUAGE=en_GB.UTF-8 LC_ALL=en_GB.UTF-8" ] } 

但是,虽然这确实设置了语言环境configuration,但并不影响docker run使用的env。 即使我添加额外的出口线如:

 { "type": "shell", "inline": [ ... "export LANG=en_GB.UTF-8" ] } 

它们没有任何作用,大概是因为在使用docker run ,最初运行这些命令时,它不是命令packer build使用的subprocess。

作为一种解决方法,我可以将env vars传递给docker run ,但不希望每次都这样做,例如:

 sudo docker run -e LANG=en_GB.UTF-8 -e LANGUAGE=en_GB.UTF-8 -e LC_ALL=en_GB.UTF-8 %IMAGE_ID% locale