Alpine Docker鏡像字體的問題解決操作
1、運(yùn)行 fonts ,打開字體文件夾,找到要用的字體文件;
2、修改Dockerfile,例如:
FROM alpine-jdk ADD ./test.jar /opt/App/test.jar #拷貝字體文件 COPY ./simhei.ttf /usr/share/fonts/simhei.ttf #設(shè)置字符集 ENV LANG en_US.UTF-8 #安裝字體軟件,完成字體配置 RUN apk add --update ttf-dejavu fontconfig && rm -rf /var/cache/apk/* WORKDIR /opt/App/ EXPOSE 8080 ENTRYPOINT ["java", "-jar"] CMD ["test.jar"]
補(bǔ)充:Dockerfile構(gòu)建Alpine鏡像/Linux使用apk下載設(shè)置資源(字體包/其他)失敗/難產(chǎn)
進(jìn)行構(gòu)建之前注意
如果報(bào)這個(gè)錯誤:
OCI runtime create failed: systemd cgroup flag passed, but systemd support for managing cgroups is not available: unknown
請將daemon.json中的"exec-opts": ["native.cgroupdriver=systemd"]刪掉
個(gè)人問題
我使用Dockerfile構(gòu)建鏡像時(shí),使用Alpine版本的基礎(chǔ)鏡像包,進(jìn)行構(gòu)建一直會卡到
[INFO] fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz [INFO] fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/community/x86_64/APKINDEX.tar.gz
通過這個(gè)地址下載這里,然后下載不下來就開始報(bào)錯。
[ERROR] The command '/bin/sh -c set -xe && apk --no-cache add ttf-dejavu fontconfig' returned a non-zero code: 2
或者
[ERROR] The command '/bin/sh -c set -xe && apk --no-cache add ttf-dejavu fontconfig' returned a non-zero code: 1
嘗試修改Docker鏡像源無效之后開始尋找其他鏡像源問題
問題原因
alpine本身APK鏡像源地址在/etc/apk/repositories文件中,是一個(gè)國外鏡像,下載速度感人,幾百KB下載半個(gè)多小時(shí)。所以我們要將該地址更換為國內(nèi)的阿里源
解決Demo
FROM adoptopenjdk/openjdk8-openj9:alpine-slim MAINTAINER ****************@*****.com RUN mkdir -p /cim-railway/auth #使用驗(yàn)證碼字體包進(jìn)行測試。第一步將apk源替換為國內(nèi)阿里源。沒有第一步將下載難產(chǎn) 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 add ttf-dejavu fontconfig
在不使用Docker構(gòu)建鏡像時(shí)
只需要將/etc/apk/repositories文件中的兩行鏡像地址更換為下面地址即可
https://mirrors.aliyun.com/alpine/v3.6/main/
https://mirrors.aliyun.com/alpine/v3.6/community/
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
使用Docker?Compose搭建部署ElasticSearch的配置過程
Elasticsearch使用的是一種名為倒排索引的數(shù)據(jù)結(jié)構(gòu),這一結(jié)構(gòu)的設(shè)計(jì)可以允許十分快速地進(jìn)行全文本搜索,本文重點(diǎn)給大家介紹使用Docker?Compose搭建部署ElasticSearch的配置過程,感興趣的朋友一起看看吧2022-02-02docker-compose如何定義一個(gè)橋接網(wǎng)絡(luò),并為該網(wǎng)絡(luò)配置一個(gè)IP地址池
在DockerCompose中定義橋接網(wǎng)絡(luò)并配置IP地址池,可以實(shí)現(xiàn)服務(wù)的自動IP地址分配,通過定義網(wǎng)絡(luò)、指定子網(wǎng)范圍、設(shè)置網(wǎng)關(guān)和啟用自動分配功能,可以輕松管理服務(wù)的網(wǎng)絡(luò)配置,確保IP地址在子網(wǎng)范圍內(nèi)且不與其他網(wǎng)絡(luò)沖突,以避免網(wǎng)絡(luò)沖突2025-01-01Docker 跨主機(jī)容器間相互訪問的實(shí)現(xiàn)
本文主要介紹了Docker 跨主機(jī)容器間相互訪問的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01詳解docker中使用systemctl啟動服務(wù)報(bào)錯的解決辦法
這篇文章主要介紹了詳解docker中使用systemctl啟動服務(wù)報(bào)錯的解決辦法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08