Home > Article > Operation and Maintenance > How to solve docker Chinese garbled code
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:
docker cp C:\Windows\Fonts\simkai.ttf mycontainer:/usr/share/fonts
docker cp C:\Windows\Fonts\simfang.ttf mycontainer:/usr/share/fonts
docker exec mycontainer apk add fontconfig
docker exec mycontainer fc-cache -fv
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!