在Ubuntu 16.04的Dockerfile中設定locale

會需要在Ubuntu 16.04的Dockerfile中設定locale,是因為打包image為了確保指令正常,需要在en_US.UTF-8環境下。



FROM ubuntu:16.04

RUN apt-get update && apt-get install -y locales
RUN locale-gen en_US.UTF-8
ENV LC_ALL=en_US.UTF-8

上面的內容放置到locale.dockerfile檔案中


1. 建置docker image

docker build -t mine/img:latest . -f locale.dockerfile

2. 跑起container

docker run --rm -it --name my_container mine/img:latest

3. 測試結果

$ locale

LANG=
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8


對比原本的Ubuntu 16.04的locale
docker run -it --rm ubuntu:16.04

root@9971aced7094:/# locale
LANG=
LANGUAGE=
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=


留言