Home  >  Article  >  Operation and Maintenance  >  How to solve docker Chinese garbled code

How to solve docker Chinese garbled code

PHPz
PHPzOriginal
2023-04-04 10:43:285518browse

With the development of technology, containerization technology has received more and more attention and favor. As one of the most famous containerization platforms currently, Docker has become an important tool for various enterprises to achieve rapid application deployment, continuous integration, rapid iteration and production environment stability. However, in the process of using Docker, we will inevitably encounter some problems, among which Chinese garbled characters are a problem that everyone often encounters.

The problem of Chinese garbled characters

When the Docker container is running, due to different container images, systems, environments and services, we need to import the Chinese font file into the Docker image first, and Add the font path to the environment variable to display Chinese. Otherwise, Chinese characters will appear garbled.

Solution 1:

Manually import the Chinese font file:

Copy the Chinese font file from Windows to the Docker container:

  1. Find Windows Chinese fonts on the computer (usually located in the C:\Windows\Fonts directory), such as simkai.ttf and simfang.ttf;
  2. Copy the font files to the Docker container, for example:

docker cp C:\Windows\Fonts\simkai.ttf mycontainer:/usr/share/fonts

docker cp C:\Windows\Fonts\simfang.ttf mycontainer:/usr/share/fonts

  1. Install font files into the container's font library:

docker exec mycontainer apk add fontconfig

docker exec mycontainer fc-cache -fv

  1. Add the font path in the environment variable:

docker exec mycontainer export LANG=zh_CN.UTF-8

docker exec mycontainer export LANGUAGE=zh_CN.UTF-8

docker exec mycontainer export LC_ALL=zh_CN.UTF-8

docker exec mycontainer export FONT_HOME=/usr/share/fonts

docker exec mycontainer export JAVA_HOME=/usr

Solution 2:

Use the preset template to create a new Docker image:

We can use the Dockerfile file to create a new image and add the Chinese font file directly to it , font libraries and environment variables, etc.

The following is an example:

FROM alpine:3.11

RUN apk --no-cache add ttf-dejavu fontconfig && rm -rf /var/cache/apk/ *

ENV LANG=zh_CN.UTF-8 \

LANGUAGE=zh_CN.UTF-8 \
LC_ALL=zh_CN.UTF-8 \
FONT_HOME=/usr/share/fonts \
JAVA_HOME=/usr

ADD ./fonts/* ${FONT_HOME}/

RUN fc-cache -fv

CMD ["tail", "-f", "/dev/null"]

In the above code, we start from the base image of Alpine Linux 3.11 and first install the ttf-dejavu font library and fontconfig plug-in, and then ADD our custom Chinese font file into the mirror. Finally, run the fc-cache command to refresh the font library to ensure that the container can use Chinese correctly.

Summary

The problem of Chinese garbled characters is a common problem in the use of Docker. Before using Docker, we need to clarify the purpose and requirements first, and try our best to solve the problem of Chinese garbled characters during image production. . For existing Docker containers, we can also meet the requirement for normal Chinese display by manually importing Chinese font files or creating a new image of a preset template.

The above is the detailed content of How to solve docker Chinese garbled code. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn