關於Alpine的相關知識,可以參考下邊的鏈接
一. alpinedocker容器里邊運行hello也會報錯/bin/sh:hello:notfound
Alpine docker容器里邊運行hello也會報錯/bin/sh: hello: not found
而同樣的hello可執行程序,在Ubuntu系統中是可以正常運行的。
解決方法,參考下邊鏈接里最后的內容。
gnu libc和musl libc的爭論
而這些終於在這個issue中給得到了解決,由於沒有熱鬧可看,請讀者自行閱讀
https://github.com/ibmdb/node-ibm_db/issues/217
使用的相關內容在這里:
https://github.com/sgerrand/alpine-pkg-glibc
簡單來說,
解決的方法就是在Alpine里面安裝glibc,讓Alpine不再是Alpine
驗證
看完熱鬧,現在花1分鍾快速解決一下遺留問題。重新回到問題現場。按照如下三步驟進行安裝
步驟1: 下載key
~ # wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub ~ # echo $? 0 ~ # ls /etc/apk/keys/sgerrand.rsa.pub /etc/apk/keys/sgerrand.rsa.pub ~ #
步驟2: 下載apk安裝文件
~ # wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.29-r0/glibc-2.29-r0.apk Connecting to github.com (13.229.188.59:443) Connecting to github-production-release-asset-2e65be.s3.amazonaws.com (52.216.176.203:443) glibc-2.29-r0.apk 100% |****************************************************************************************| 2006k 0:00:00 ETA ~ # ls glibc-2.29-r0.apk
步驟3: 安裝
~ # apk add glibc-2.29-r0.apk (1/1) Installing glibc (2.29-r0) OK: 9 MiB in 15 packages
二、更改鏡像倉庫
目前Docker鏡像越來越傾向於使用Alpine系統作為基礎的系統鏡像,alpine3.4為例修改
# 備份原始文件
cp /etc/apk/repositories /etc/apk/repositories.bak
# 修改為國內鏡像
echo "http://mirrors.aliyun.com/alpine/v3.4/main/" > /etc/apk/repositories