1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

PythonのDocker公式イメージからLANG=C.UTF-8の環境変数が削除された

Last updated at Posted at 2022-04-16

uWSGI で動かしているアプリケーションが、最新の Docker イメージでビルドしたときに UnicodeDecodeError: 'ascii' codec can't decode byte... のエラーで動かなくなったのでメモ。

更新(2022/4/21)

該当 issue を見てみたら revert されていたので、今は今まで通り使えそう。

要約

以前は Python3 側にバグがあり、環境変数 LANG=C.UTF-8 を指定しないと動かなかったみたいだが、現在は修正されているため最新の Docker イメージではこれが削除された模様。

しかしながら、この環境変数をいくつかのライブラリは見ていたようで、上記 issue には今回の変更による悲鳴が寄せられている。

影響を受けるライブラリの1つが、私も使っている uWSGI で、日本語の文字(非 ascii 文字)を扱おうとすると UnicodeDecodeError が出てしまった。

Dockerfile なり何なりで環境変数 LANG=C.UTF-8 を指定すれば動くので workaround としてはそれで良さそう。 Python 側のバグが直っている以上、再び公式イメージに ENV LANG C.UTF-8 が戻ってくることはなさそうなので、ライブラリ側での根本解決を待つ(もしくは貢献する)方針かな。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?