Problemlösungsvorgänge für Alpine Docker-Bildschriftarten

Problemlösungsvorgänge für Alpine Docker-Bildschriftarten

1. Führen Sie Schriftarten aus, öffnen Sie den Schriftartenordner und suchen Sie die Schriftartdatei, die Sie verwenden möchten.

2. Ändern Sie das Dockerfile, zum Beispiel:

VON alpine-jdk 
HINZUFÜGEN ./test.jar /opt/App/test.jar
#Kopieren Sie die Schriftdatei COPY ./simhei.ttf /usr/share/fonts/simhei.ttf 
#Zeichensatz festlegen ENV LANG en_US.UTF-8
#Installieren Sie die Schriftsoftware und schließen Sie die Schriftkonfiguration ab. Führen Sie apk add --update ttf-dejavu fontconfig && rm -rf /var/cache/apk/* aus. 
ARBEITSVERZEICHNIS /opt/App/ 
EXPOSE 8080 
EINSTIEGSPUNKT ["java", "-jar"] 
CMD ["test.jar"]

Ergänzung: Dockerfile erstellt Alpine-Image/Linux verwendet APK zum Herunterladen und Festlegen von Ressourcen (Schriftpaket/anderes) Fehler/Schwierigkeit

Vor dem Bau beachten

Wenn dieser Fehler gemeldet wird:

Erstellen der OCI-Runtime fehlgeschlagen: systemd-cgroup-Flag übergeben, aber systemd-Unterstützung zum Verwalten von cgroups ist nicht verfügbar: unbekannt

Bitte löschen Sie "exec-opts": ["native.cgroupdriver=systemd"] in daemon.json

Persönliche Probleme

Wenn ich Dockerfile zum Erstellen eines Images verwende, verwende ich die Alpine-Version des Basis-Image-Pakets, und der Build bleibt immer hängen.

[INFO] http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz abrufen
[INFO] http://dl-cdn.alpinelinux.org/alpine/v3.12/community/x86_64/APKINDEX.tar.gz abrufen

Laden Sie es hier über diese Adresse herunter. Wenn der Download fehlschlägt, wird ein Fehler gemeldet.

[FEHLER] Der Befehl '/bin/sh -c set -xe && apk --no-cache add ttf-dejavu fontconfig' hat einen Code ungleich Null zurückgegeben: 2

oder

[FEHLER] Der Befehl '/bin/sh -c set -xe && apk --no-cache add ttf-dejavu fontconfig' hat einen Code ungleich Null zurückgegeben: 1

Nachdem der Versuch, die Docker-Image-Quelle zu ändern, fehlgeschlagen war, begann ich mit der Suche nach anderen Image-Quellen.

Ursache

Die Quelladresse des Alpine APK-Mirrors befindet sich in der Datei /etc/apk/repositories. Es handelt sich um einen Fremdspiegel mit einer beeindruckenden Downloadgeschwindigkeit. Für den Download von einigen hundert KB dauert es mehr als eine halbe Stunde. Wir müssen also die Adresse auf die inländische Ali-Quelle ändern

Demo lösen

VON adoptopenjdk/openjdk8-openj9:alpine-slim
WARTUNGSBEDIENER ****************@*****.com
RUN mkdir -p /cim-railway/auth
#Verwenden Sie zum Testen das Bestätigungscode-Schriftartenpaket. Der erste Schritt besteht darin, die APK-Quelle durch die inländische Alibaba-Quelle zu ersetzen. Ohne den ersten Schritt wird der Download schwierig durchzuführen sein: RUN echo -e 'https://mirrors.aliyun.com/alpine/v3.6/main/\nhttps://mirrors.aliyun.com/alpine/v3.6/community/' > /etc/apk/repositories \
 && APK-Update \
 && APK-Upgrade \
 && apk --no-cache füge ttf-dejavu Fontconfig hinzu

Beim Erstellen von Images ohne Docker

Ersetzen Sie einfach die beiden Zeilen der Spiegeladressen in der Datei /etc/apk/repositories durch die folgenden Adressen

https://mirrors.aliyun.com/alpine/v3.6/main/

https://mirrors.aliyun.com/alpine/v3.6/community/

Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Sollten dennoch Fehler oder unvollständige Überlegungen vorliegen, freue ich mich über eine Korrektur.

Das könnte Sie auch interessieren:
  • Implementierung eines Tomcat-Images, das mit Dockerfile basierend auf Alpine erstellt wurde
  • Implementierung eines Crawler-Scrapy-Image, das von Dockerfile basierend auf Alpine erstellt wurde
  • So erstellen Sie ein php-nginx-alpine-Image von Grund auf in Docker
  • Perfekte Lösung für das Zeitzonenproblem des Docker Alpine-Image

<<:  So verwenden Sie das Marquee-Tag im XHTML-Code

>>:  Detaillierte Erläuterung von CSS, um den Effekt der Beleuchtung des Rahmens durch Nachahmung der Windows 10-Maus zu erzielen

Artikel empfehlen

Analyse des Quellcodes des Nginx-Speicherpools

Inhaltsverzeichnis Speicherpoolübersicht 1. Nginx...

Lösung zum Hinzufügen einer iptables-Firewall-Richtlinie zum MySQL-Dienst

Wenn Ihre MySQL-Datenbank auf einem CentOS7-Syste...

Beispiel für eine adaptive CSS-Bildschirmgrößenimplementierung

Um eine CSS-Bildschirmgrößenanpassung zu erreiche...

Zusammenfassung der Vorteile der Bereitstellung von MySQL Delayed Slaves

Vorwort Die Master-Slave-Replikationsbeziehung vo...

Eine einfache und eingehende Studie zu Async und Await in JavaScript

Inhaltsverzeichnis 1. Einleitung 2. Detaillierte ...

JavaScript implementiert coole Mouse-Tailing-Effekte

Nachdem Sie sich das angesehen haben, garantiere ...

Nginx: Ein Domänenname für den Zugriff auf mehrere Projekte – Methodenbeispiel

Hintergrund Kürzlich stieß ich bei der Bereitstel...

innodb_flush_method-Wertmethode (Beispielerklärung)

Mehrere typische Werte von innodb_flush_method fs...

Aggregatabfrage- und Union-Abfragevorgänge für MySQL-Datenbanken

Inhaltsverzeichnis 1. Einfügen der abgefragten Er...

Grafisches Tutorial zur Installation und Konfiguration von CentOS 7

In diesem Artikel wird das ausführliche Installat...