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 計算機の実装

推薦する

Vue での this.$set の動的データバインディングのケーススタディ

インターネット上の this.$set の説明はわかりにくいと感じます。単一データ、オブジェクト、配...

Flex モバイルレイアウトにおけるシングルラインレイアウトとダブルラインレイアウトの違いと使い方

レイアウトにul>liを使用した単一行レイアウトを以下に示します。 <ul class=...

IE7でソースファイルを含むページを開くとページが空白になる問題の解決方法

質問:私のブログのエンコーディングは utf-8 です。ページを開くと空白になっていることもあります...

nginx+WordPressで個人ブログを構築するプロセス全体の詳細な説明

0x00 はじめにWordPress は、世界で最も人気のある CMS システムです。PHP と M...

MySQL 完全折りたたみクエリ正規マッチングの詳細な説明

概要前の章では、クエリのフィルター条件について学習しました。MySQL では、like % ワイルド...

JSのバイナリファミリーについての簡単な説明

目次概要ブロブBlob の動作BLOB ダウンロード ファイルブロブ画像のローカル表示BLOB ファ...

さまざまな種類のMySQLインデックス

インデックスとは何ですか?インデックスは、データベース ストレージ エンジンが指定されたデータをすば...

Linuxプロセスネットワークトラフィック統計の実装プロセス

序文Linux には、ネットワーク接続、プロセス、およびその他の情報をリアルタイムで収集するための対...

Linux で文字列を整理するためのヒント

Linuxの操作では、ファイル内の文字列を置換したりカウントしたりすることが多いです。ここでまとめを...

vue cli で env を使用するガイド

目次序文紹介-公式設定例序文vueCli を使用してプロジェクトを開発したことのある方は、少しがっか...

ユニークインデックスの S ロックと X ロックによる MySQL デッドロック ルーチンの理解

「初心者向けソースコードからの MySQL デッドロック問題の理解」では、MySQL ソースコードを...

Vue3.0 異なる解像度のコンピュータの適応操作

まず依存関係をインストールする必要があります npm i lib-flexible-computer...

Docker を使用してコンテナ内のルート パスワードを変更する方法

1. dockerfileを作成するときにsshパスワードを設定するには、次のコマンドを使用します。...

Linux yum コマンドを使用して mysql8.0 をインストールする方法の詳細なチュートリアル

1. 設置前によく掃除する rpm -pa | grep mysql または rpm -qa | g...

Dockerはコード検出プラットフォームSonarQubeを構築し、Mavenプロジェクトのプロセスを検出します

1 はじめに優れたコーディング習慣は優れたプログラマーが備えるべき資質ですが、コードの品質を保証する...