目录
- 1.创建requirements.txt
- 2.创建dockerfile
- 3.创建.dockeri编程客栈gnore文件
- 4.构建Docker镜像
- 5.运行容器
- 6.方法补充
众所周知,python是解释型脚本语言,无需编译即可运行,但是同时也强依赖于运行环境,而将运行环境和项目程序一同打包到docker镜像中,可以方便快速的移植部署。(以下方法为手动拷贝项目到linux服务器,如果编程需要可以使用git对代码进行管理)
假设你的项目目录结构如下:
1.创建requirements.txt
在项目根目录下创建requirements.txt文件,用于记录项目运行所需的所有第三方库及其精确版本。
Logbook==1.7.0.post0 pandas==2.0.3 Pymysql==1.1.1 Requests==2.32.3 Flask==2.0.3 werkzeug==2.0.3
2.创建Dockerfile
在项目根目录创建Dockerfile文件。
# Python基础镜像 FROM docker.m.daocloud.io/library/python:3.8-slim # 设置工作目录 WORKDIR / # 复制requirements.txt文件 COPY /requirements.txt . # 安装依赖(官方源速度较慢,使用阿里源) RUN pip install --no-cache-dir -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ # 复制应用程序代码 COPY ./ . # 暴露端口(如果你的应用需要) EXPOSE 5000 # 定义环境变量(可选) # ENV FLASK_APP=main.py # ENV FLASK_ENV=production # 运行命令 CMD ["python", "app.py"]
3.创建.dockerignore文件
防止不必要的文件被复制到镜像中,在根目录下创建.dockphperignore文件
__pycache__ *.pyc *.pyo *.pyd .Python env venv .venv .git .DS_Store
4.构建Docker镜像
docker build -t zhgc-tools .
5.运行容器
docker run -d -p 5000:5000 --name zhgc-tools phpzhgc-tools
查看容器运行情况,说明服务正常部署
6.方法补充
python 项目打包 docker镜像
1.Dockerfile
这是创建容器的启动和编译的脚本(项目内的文件路径最好用全路径)
# 将官方 Python 运行时用作父镜像 FROM python:3.8-alpine # 设置时区 ENV TZ Asia/Shanghai RUN apk --update add tzdata && \ cp /usr/share/zoneinfo/${TZ} /etc/localtime && \ echo ${TZ} > /etc/timezone && \ apk del tzdata # 工程文件导入到容器中 ADD ./CloudSimPy-master /code # 依赖文件导入 COPY requirements.txt ./ # 安装 requirements.txt 中指定的任何所需软件包 RUN pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple # 将工作目录设置为 /myapps WORKDIR /code # 定义环境变量 ENV PYTHONPATH /code # 在容器启动时运行 app.py CMD ["python", "/code/playground/Non_DAG/launch_scripts/state-makespan_list-50.py"]
2.requirements.txt
这是python 项目需要的依赖的版本对应
simpy==3.0.javascript11 tensorflow==1.12.0 numpy=1.15.3 pandas==0.23.4 colorlog
构建镜像
# 名称必须小写 docker build -t flask_Redis_env0 .
导出编译好的镜像
经过编译没有错误后,可以将镜像导出本地
# 打一个tag 方便后续load 时候有版本等相关信息 docker tag 7ed7399ab6fc wordhot:v1 # 打包一个,f299f501774c 是对应的 image id docker save f299f501774c > hangger_server.tar # 打包多个 docker save -o images.tar postgres:9.6 mongo:3.4
导入镜像
docker load < hangge_server.tar
到此这篇关于python项目打包成docker镜像并运行的完整指南的文章就介绍到这了,更多相关python打包成docker镜像内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!
精彩评论