在我的个人电脑上,该应用程序运行良好,但是当它部署到 Docker 中时,由于存在无效字符,它会失败。我正在使用 "ubuntu:latest" 容器以及 Python3、Java 和 Ruby。
您需要正确设置语言环境。
这是最基本的正确Dockerfile:
FROM ubuntu
RUN apt update && apt -y install locales && locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
locale
命令,就会看到这一点。sudo docker exec -i -t yowsup3 bash
Sources:
RUN apt-get update && apt-get install -y locales && locale-gen en_US.UTF-8
现在这将会起作用。
其次,ENV LC_ALL en_US.UTF-8就足以设置大多数变量,但是还剩下两个空的,所以我们需要全部3个来设置。
docker ubuntu 18.04 镜像使用 Unicode 修复
FROM ubuntu:18.04
ENV LANG=C.UTF-8
在 Docker 文件中添加此环境变量
FROM centos:7
ENV LANG=en_US.UTF-8
在 Docker 文件中添加上述一行对我有用
locale-gen
并设置LC_ALL
就足够了。 - Ilia BarahovskyRUN apt update && apt -y install locales
。ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
。 - bathyscapher