Alpine Dockerイメージフォント問題解決操作

Alpine Dockerイメージフォント問題解決操作

1. フォントを実行し、フォント フォルダーを開いて、使用するフォント ファイルを見つけます。

2. Dockerfile を変更します。例:

alpine-jdkより 
./test.jar /opt/App/test.jar を追加します。
#フォントファイルをコピーします COPY ./simhei.ttf /usr/share/fonts/simhei.ttf 
#文字セットを設定する ENV LANG en_US.UTF-8
#フォントソフトウェアをインストールし、フォント設定を完了します。RUN apk add --update ttf-dejavu fontconfig && rm -rf /var/cache/apk/* 
ワークディレクトリ /opt/App/ 
エクスポーズ8080 
エントリポイント ["java", "-jar"] 
CMD ["test.jar"]

補足: Dockerfile は Alpine イメージをビルドします/Linux は apk を使用してリソース (フォント パッケージ/その他) をダウンロードして設定します 失敗/困難

構築前の注意事項

このエラーが報告された場合:

OCI ランタイムの作成に失敗しました: systemd cgroup フラグは渡されましたが、cgroup を管理するための systemd サポートは利用できません: 不明

daemon.json の "exec-opts": ["native.cgroupdriver=systemd"] を削除してください

個人的な問題

Dockerfile を使用してイメージをビルドする場合、ベース イメージ パッケージの Alpine バージョンを使用すると、ビルドが常に停止します。

[INFO] http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz を取得します
[INFO] http://dl-cdn.alpinelinux.org/alpine/v3.12/community/x86_64/APKINDEX.tar.gz を取得します

このアドレスからダウンロードしてください。ダウンロードに失敗するとエラーが報告されるようになります。

[エラー] コマンド '/bin/sh -c set -xe && apk --no-cache add ttf-dejavu fontconfig' がゼロ以外のコードを返しました: 2

または

[エラー] コマンド '/bin/sh -c set -xe && apk --no-cache add ttf-dejavu fontconfig' がゼロ以外のコードを返しました: 1

Docker イメージ ソースを変更しようとして失敗した後、他のイメージ ソースを探し始めました。

原因

alpine APK ミラーのソース アドレスは /etc/apk/repositories ファイルにあります。これはダウンロード速度が印象的な外部ミラーです。数百 KB をダウンロードするのに 30 分以上かかります。だから、住所を国内のアリソースに変更する必要があります

デモを解く

adoptopenjdk/openjdk8-openj9:alpine-slim より
メンテナー *************@*****.com
mkdir -p /cim-railway/authを実行します。
#テストには検証コード フォント パッケージを使用します。最初のステップは、apk ソースを国内の Alibaba ソースに置き換えることです。最初のステップがないと、ダウンロードは困難になります。RUN echo -e 'https://mirrors.aliyun.com/alpine/v3.6/main/\nhttps://mirrors.aliyun.com/alpine/v3.6/community/' > /etc/apk/repositories \
 && apk アップデート \
 && apk アップグレード \
 && apk --no-cache ttf-dejavu フォント設定を追加

Dockerを使わずにイメージを構築する場合

/etc/apk/repositoriesファイル内のミラーアドレスの2行を次のアドレスに置き換えるだけです。

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

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

上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。間違いや不備な点がありましたら、遠慮なくご指摘ください。

以下もご興味があるかもしれません:
  • alpineをベースにdockerfileで作成したtomcatイメージの実装
  • alpineをベースにdockerfileで作成したクローラーScrapyイメージの実装
  • Docker で php-nginx-alpine イメージをゼロから構築する方法
  • Docker Alpine イメージのタイムゾーン問題に対する完璧な解決策

<<:  XHTML コードで Marquee タグを使用する方法

>>:  ネイティブ JavaScript を使用した Web 計算機の実装

推薦する

NginxはGzipアルゴリズムを使用してメッセージを圧縮します

HTTP圧縮とは場合によっては、比較的大きなメッセージ データがクライアントとサーバー間で送信され、...

Centos7.6にTomcat-8.5.39をインストールする方法

Centos7.6 に Tomcat-8.5.39 をインストールする方法は次のとおりです。詳細は次...

シンプルなプログレスバーを作成するための HTML+CSS

1. HTMLコードコードをコピーコードは次のとおりです。経験値: <span class=...

JavaScript カラービューア

この記事では、カラービューアを実装するためのJavaScriptの具体的なコードを参考までに紹介しま...

js 実行コンテキストとスコープの概要

目次序文文章1. JavaScriptコードの実行プロセスに関連する概念2. 実行コンテキストと実行...

VMware vSphere 6.7 (ESXI 6.7) のグラフィック インストール手順

環境: VMware VCSA 6.7 (VMware-VCSA-all-6.7.0-8169922...

CSSで半透明の背景色を実現する2つの方法について簡単に説明します。

ページをレイアウトする際、ユーザーに異なる視覚効果を与えるために、div の背景色を半透明の状態に設...

Vue のローカルコンポーネントの紹介

Vueでは、ローカルコンポーネントを自分で定義(登録)することができます。コンポーネント名を定義する...

ウェブページを白黒に変換します(Google、Firefox、IE、その他のブラウザと互換性があります)

CSSファイルに書き込むコードをコピーコードは次のとおりです。 01.html {グレイスケール(1...

HTML印刷関連の操作と実装の詳細な説明

原則的にはwindow.print()メソッドを呼び出すことですが、このメソッドは現在のページ全体を...

JavaScript のショートカットのヒント

目次1. 配列を結合する2. 配列をマージする(最初に) 3. 配列の複製4. 構造化分解割り当て5...

Mysqlのマージ結果と水平スプライシングフィールドの実装手順

序文最近、レポート機能に取り組んでいたのですが、ある月に各部署に入社した人と退職した人の数をカウント...

jQueryカルーセル機能を実装する方法

この記事では、jQueryカルーセル機能の実装コードを参考までに共有します。具体的な内容は次のとおり...

CentOS 7 に mysql5.7 の解凍バージョンをインストールするチュートリアル

1. mysqlの圧縮パッケージを/usr/localフォルダに解凍し、名前をmysqlに変更します...

JavaScript ウェブページ入門開発詳細説明

パート3: ❤バックエンドデータ受信を見落とす3つの方法❤ (おすすめ集)パート 2: Web フォ...