docker使用alpine镜像生成python项目镜像快速模板

该文描述了如何定义变量并用它们创建Dockerfile,从Alpine镜像开始,配置镜像源,添加Python依赖,并自定义pip源。然后,它构建Docker镜像并提供了一个快速测试容器运行的命令,包括设置工作目录、暴露端口和时区配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

定义部分变量

a=test_image
v=alpine:3.18.2
p=8080

# 工作目录
mkdir -p /opt/$a && cd /opt/$a

获取alpine镜像

docker pull $v

写入alpine源

cat > repositories << EOF
#/media/cdrom/apks
http://mirrors.ustc.edu.cn/alpine/v3.18/main
http://mirrors.ustc.edu.cn/alpine/v3.18/community
#http://mirrors.ustc.edu.cn/alpine/edge/main
#http://mirrors.ustc.edu.cn/alpine/edge/community
#http://mirrors.ustc.edu.cn/alpine/edge/testing
EOF

写入Dockerfile

cat > Dockerfile << EOF
from $v
copy repositories /etc/apk/repositories

RUN apk add --no-cache mysql-dev py3-numpy py3-pandas py3-pip py3-mysqlclient py3-wheel
RUN pip config set global.index-url http://custom_pypi_source/simple/ \
 && pip config set global.trusted-host custom_pypi_source \
 && pip config set global.extra-index-url https://pypi.tuna.tsinghua.edu.cn/simple/ \
 && pip config set global.no-cache-dir true \
 && pip config set global.disable-pip-version-check true \
 && pip install custom_library

RUN pip install custom_library>=0.1.1 

WORKDIR /opt/$a
EXPOSE $p

CMD sh
EOF
  • alpine提供了很多python库的编译包,可以直接安装无需编译;
  • 第二次pip install是为了更新方便

build image

docker build -t $a .

快速测试命令

docker rm -f $a
docker run -itd \
 --restart=always \
 --name $a \
 -v /opt/$a:/opt/$a \
 -w /opt/$a \
 -p $p:$p \
 -e TZ=Asia/Shanghai \
$v
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值