发表于|更新于|编程
|总字数:516|阅读时长:2分钟|浏览量:|
此前用 Python 写了一些任务,部署的时候总碰到各种配置问题,索性用docker打包,后面直接一键部署即可。
在此记录打包历程。
¶Dockerfile
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| FROM python:3.10-slim-bullseye as builder
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt --index-url=https://pypi.tuna.tsinghua.edu.cn/simple
WORKDIR /app
RUN rm -rf requirements.txt
COPY app.py /app/app.py COPY tasks /app/tasks
VOLUME /app/data
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime RUN echo 'Asia/Shanghai' > /etc/timezone
CMD ["python", "app.py"]
|
¶交叉编译
采用docker buildx进行交叉编译,构建命令如下。
¶配置多平台编译 buildx
docker自带的builder不支持交叉编译,首次交叉编译需要替换docker自带的builder。
1 2 3 4
| # 安装builder docker buildx create --use --name=mybuilder-cn --driver docker-container --driver-opt image=dockerpracticesig/buildkit:master # 使用bulder docker buildx use mybuilder-cn
|
¶登录阿里云
1
| docker login --username=*****@qq.com registry.cn-hangzhou.aliyuncs.com
|
¶阿里云
直接推送到阿里云Docker Hub下的registry.cn-hangzhou.aliyuncs.com/dorad/rrrcn_auto_collecter镜像仓库。
1
| docker buildx build --platform linux/amd64,linux/arm64 -t registry.cn-hangzhou.aliyuncs.com/dorad/rrrcn_auto_collecter -o type=registry .
|
采用platform 参数控制需要发布的平台,这里主要支持arm和x86-64平台。