Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So lösen Sie verstümmelten chinesischen Docker-Code

So lösen Sie verstümmelten chinesischen Docker-Code

PHPz
PHPzOriginal
2023-04-04 10:43:285452Durchsuche

Mit der Entwicklung der Technologie erhält die Containerisierungstechnologie immer mehr Aufmerksamkeit und Beliebtheit. Als eine der derzeit bekanntesten Containerisierungsplattformen ist Docker für verschiedene Unternehmen zu einem wichtigen Werkzeug geworden, um eine schnelle Anwendungsbereitstellung, kontinuierliche Integration, schnelle Iteration und Stabilität der Produktionsumgebung zu erreichen. Bei der Verwendung von Docker werden wir jedoch unweigerlich auf einige Probleme stoßen, darunter verstümmelte chinesische Zeichen, ein Problem, auf das jeder häufig stößt.

Das Problem verstümmelter chinesischer Zeichen tritt auf

Wenn der Docker-Container ausgeführt wird, müssen wir aufgrund unterschiedlicher Container-Images, Systeme, Umgebungen und Dienste zunächst die chinesische Schriftartdatei in das Docker-Image importieren und die Schriftart hinzufügen Pfad zur Umgebungsvariablen, um Chinesisch anzuzeigen. Andernfalls werden chinesische Schriftzeichen verstümmelt angezeigt.

Lösung 1:

Manuell die chinesische Schriftartdatei importieren:

Kopieren Sie die chinesische Schriftartdatei von Windows in den Docker-Container:

  1. Suchen Sie unter Windows nach der chinesischen Schriftart (normalerweise im Verzeichnis C:WindowsFonts), z als simkai.ttf und simfang.ttf;
  2. Kopieren Sie die Schriftartdatei in den Docker-Container, zum Beispiel:

docker cp C:WindowsFontssimkai.ttf mycontainer:/usr/share/fonts

docker cp C:WindowsFontssimfang.ttf mycontainer:/usr/ share/fonts

  1. Installieren Sie Schriftartdateien in der Schriftartbibliothek des Containers:

docker exec mycontainer apk add fontconfig

docker exec mycontainer fc-cache -fv

  1. Fügen Sie den Schriftartpfad in der Umgebungsvariablen hinzu :

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

Lösung 2:

Verwenden Sie die voreingestellte Vorlage, um ein neues Docker-Image zu erstellen:

Wir können die Dockerfile-Datei verwenden, um ein neues Bild zu erstellen und chinesische Schriftarten hinzuzufügen Dateien direkt darauf, Dinge wie Schriftartenbibliotheken und Umgebungsvariablen.

Das Folgende ist ein Beispiel:

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"]

Im obigen Code haben wir Beginnen Sie mit Alpine Ausgehend vom Basis-Image von Linux 3.11 haben wir zunächst die ttf-dejavu-Schriftartenbibliothek und das Fontconfig-Plug-in installiert und dann unsere benutzerdefinierte chinesische Schriftartendatei zum Image hinzugefügt. Führen Sie abschließend den Befehl fc-cache aus, um die Schriftartenbibliothek zu aktualisieren und sicherzustellen, dass der Container Chinesisch korrekt verwenden kann.

Zusammenfassung

Das Problem der verstümmelten chinesischen Zeichen ist ein häufiges Problem bei der Verwendung von Docker. Bevor wir Docker verwenden, müssen wir zunächst den Zweck und die Anforderungen klären und unser Bestes geben, um das Problem der verstümmelten chinesischen Zeichen während der Bildproduktion zu lösen . Bei bestehenden Docker-Containern können wir die Anforderung einer normalen chinesischen Anzeige auch erfüllen, indem wir chinesische Schriftartdateien manuell importieren oder ein neues Bild einer voreingestellten Vorlage erstellen.

Das obige ist der detaillierte Inhalt vonSo lösen Sie verstümmelten chinesischen Docker-Code. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn