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

alpine linux是一個最小化linux系統,經常使用做docker基礎鏡像。能夠有效減少鏡像體積html

可是天朝網絡很。。。。因此常常容易安裝軟件失敗(apk update && apk --no-cache add ...)linux

利用國內鏡像源

清華鏡像nginx

中科大鏡像git

阿里雲鏡像github

三個都用過,可是都會出現安裝軟件失敗的狀況(須要屢次從新構建),嚴重影響效率。docker

境外服務器作反代

若是有幸有臺境外(東京,香港等)服務器,又不想鏡像站(所有鏡像下載),能夠考慮使用nginx反代國外鏡像(找一個近源高質量鏡像,別三天兩頭老崩潰的那種)bash

自建鏡像站

截止 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…

相關文章
相關標籤/搜索