当前位置: 首页 > 工具软件 > docker-alpine > 使用案例 >

alpine容器开发——Docker-Python-Alpine的踩坑日记

公良征
2023-12-01

前言

实验环境
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:…

 类似资料: