三種方法解決docker構建失敗(alpine)

趙安家發表於2019-02-27

alpine linux是一個最小化linux系統,常用作docker基礎映象。可以有效減小映象體積

但是天朝網路很。。。。所以經常容易安裝軟體失敗(apk update && apk --no-cache add ...)

利用國內映象源

清華映象

中科大映象

阿里雲映象

三個都用過,但是都會出現安裝軟體失敗的情況(需要多次重新構建),嚴重影響效率。

境外伺服器做反代

如果有幸有臺境外(東京,香港等)伺服器,又不想映象站(全部映象下載),可以考慮使用nginx反代國外映象(找一個近源高質量映象,別三天兩頭老崩潰的那種)

自建映象站

截止 20170510 官方給出的全部映象的磁碟使用量

edge v2.4 v2.5 v2.6 v2.7 v3.0 v3.1 v3.2 v3.3 v3.4 v3.5 v3.6 Total
53.1G 18.8G 10.4G 13.0G 16.5G 16.5G 17.5G 14.5G 19.0G 23.2G 32.5G 34.4G 269.5G

一般自用的話,只會用有限幾個版本,比如v3.6x86_64 ?那麼其餘的完全可以忽略,這麼一來會小很多,大約11G左右。

核心命令是

rsync.sh

src=rsync://rsync.alpinelinux.org/alpine/ 
dest=/usr/share/nginx/html

/usr/bin/rsync -prua 
    --exclude-from /etc/rsync/exclude.txt 
    --delete 
    --timeout=600 
    --delay-updates 
    --delete-after 
    "$src" "$dest"複製程式碼

/etc/rsync/exclude.txt

edge/
v2.*/
v3.0/
v3.1/
v3.2/
v3.3/
v3.4/
v3.5/
aarch64/
armhf/
ppc64le/
s390x/
x86/複製程式碼

解釋一下,edge+v. 是版本號,其餘的是不同cpu架構的不同版本。x86是intel 的32位

lscpu | grep Architecture複製程式碼

根據實際情況,自行加減

詳細情況,詳見專案 anjia0532/alpine-package-mirror

部落格 anjia.ml/2017/08/23/…
掘金 juejin.im/post/599b1b…
簡書 www.jianshu.com/p/36396a20e…

相關文章