在docker(Python、Java、Ruby等)中使用Ubuntu容器(ascii、utf-8)运行应用程序时出现编码问题
在我自己的PC上,应用程序运行良好,但当它部署到docker中时,由于无效字符而失败在docker(Python、Java、Ruby等)中使用Ubuntu容器(ascii、utf-8)运行应用程序时出现编码问题,java,python,ruby,docker,locale,Java,Python,Ruby,Docker,Locale,在我自己的PC上,应用程序运行良好,但当它部署到docker中时,由于无效字符而失败 我使用的是ubuntu:lastest容器和python3,java和ruby,您需要正确设置区域设置 这是最小的正确Dockerfile: FROM ubuntu:latest RUN locale-gen en_US.UTF-8 ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-8 通常的docker映像不指定区域设置。如果您
我使用的是
ubuntu:lastest
容器和python3
,java
和ruby
,您需要正确设置区域设置
这是最小的正确Dockerfile:
FROM ubuntu:latest
RUN locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
通常的docker映像不指定区域设置。如果您猛击它并执行locale
,您就会看到它:
sudo docker exec -i -t yowsup3 bash
资料来源:
RUN apt-get update && apt-get install -y locales && locale-gen en_US.UTF-8
现在这将起作用
第二个ENV LC_ALL en_US.UTF-8足以设置大部分变量,但它留下了两个空变量,所以我们需要全部3个来设置
FROM centos:7
ENV LANG=en_US.UTF-8
在docker文件中添加上述一行对我很有用在某些情况下运行
locale gen
并设置LC\u ALL
就足够了。1。您可以省略“:latest”,因为它是2。ubuntu容器缺少包含locale gen
命令的locales包,因此第二行应该是:RUN apt update&&apt-y install locales