alpineベースのDockerイメージだとlocaledefが動かない

@iwasaki 111views 更新:2017年4月20日

PostgresのDockerイメージ

https://hub.docker.com/_/postgres/

対応する言語を変更する場合には

You can also extend the image with a simple Dockerfile to set a different locale. The following example will set the default locale to de_DE.utf8:

FROM postgres:9.4
RUN localedef -i de_DE -c -f UTF-8 -A /usr/share/locale/locale.alias de_DE.UTF-8
ENV LANG de_DE.utf8
Since database initialization only happens on container startup, this allows us to set the language before it is created.

のように書いてありますが、 alpineベースのイメージだと

/bin/sh: localedef: not found
ERROR: Service 'db' failed to build: The command '/bin/sh -c localedef -i ja_JP -c -f UTF-8 -A /usr/share/locale/locale.alias ja_JP.UTF-8' returned a non-zero code: 127

のようなエラーが出て動作しないので注意が必要です。

どうやらサポートされていない模様。glibc関連っぽいですが。。。

https://github.com/gliderlabs/docker-alpine/issues/145

強引に動かす方法としては以下がありそうです。

http://qiita.com/skame/items/12d12fef0902d162279e

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません