alpine容器開發——Docker-Python-Alpine的踩坑日記

前言

實驗環境
python:3.7-alpine docker container

alpine更換鏡像源

例如修改成阿里鏡像源

sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories

adduser創建一個新用戶

adduser -D [USERNAME]

參數-D表示無密碼

pip install numpy

apk update 
apk add --no-cache g++
pip install numpy

pip install lxml

apk update
apk add --no-cache gcc musl-dev libxslt-dev
pip install lxml

取消文件中^M換行符

dos2unix [FILENAME]

Runtimeerror: generator raised StopIteration

當Python3.7-alpine運行Flask-web服務時,出現 Runtimeerror: generator raised StopIteration 報錯

參考鏈接:

WAF與Python 3.7不兼容
解決方法
放棄Python3.7版本轉用Python3.6版本

#FROM python3.7-alpine
FROM python:3.6-alpine

通過刪除緩存來優化Alpine容器的體積

刪除apk下載緩存

# 安裝包時設置不保留緩存
apk add --no-cache vim
# 亦或者正常下載,最後刪除/var/lib/apk/×即可

刪除pip下載緩存

pip install -r requirement.txt --no-cache-dir

Alpine的shell只有sh並沒有bash

docker exec -it python:3.7-alpine sh
# not 'docker exec -it python:3.7-alpine bash'

不斷更新ing。。。

歡迎評論完善

真正需要注意的事項

Alpine作爲Python部署的基礎鏡像並不是最優解,未來推薦Debian
story:…

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章