利用Dockefile将Python的py文件项目代码打包为Docker镜像
Posted 皓月盈江
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用Dockefile将Python的py文件项目代码打包为Docker镜像相关的知识,希望对你有一定的参考价值。
1.创建python项目
【备注:一定要将项目python环境依赖存至本项目下,默认依赖本机python环境(会造成依赖包过多)】
2.创建main.py文件,完成程序代码
主要功能就是获取"https://www.hao123.com/"网址页面源代码,并存储到"myGetFile.html"文件中
main.py
#! python
# -*- coding: utf-8 -*-
from urllib.request import urlopen
url = "https://www.hao123.com/"
if __name__ == '__main__':
resp = urlopen(url)
# 把读取到网页的页面源代码写入myGetFile.html文件
with open("myGetFile.html", mode="w", encoding='utf-8') as f:
f.write(resp.read().decode('utf-8'))
f.close() # 关闭文件
resp.close() # 关闭resp响应
print("结束")
3.导出程序依赖
在项目目录下,打开shell面板
在打开的终端中,输入pip freeze > requirements.txt
回车,生成requirements.txt文件
4.打包前准备
在新建文件夹下面创建docker_test文件夹,同级目录下创建Dockerfile文件,在docker_test文件夹下面添加main.py源代码和requirements.txt文件
5.创建Dockerfile文件,添加内容
在Dockerfile文件中输入以下内容:
# python版本,可根据需求进行修改
FROM python:3.8-alpine
RUN mkdir /code
# 将代码和项目依赖添加到code文件夹
ADD ./docker_test /code
# 设置code文件夹是工作目录
WORKDIR /code
RUN pip install -r requirements.txt
# 镜像运行时执行的命令,这里的配置等于 python main.py
ENTRYPOINT ["python","main.py"]
7.打包Docker镜像
docker build -t imagename Dockerfilepath
Dockerfilepath:Dockerfile 所在文件夹名称,当前目录为 “.”
在弹出的终端中输入docker build -t mypythontest:1.0 .
回车。
打包成功后,利用命令docker images
可以验证mypythontest镜像
8.运行镜像
#docker run --name c_name imagename
#c_name为容器名 imagename为打包的镜像名
docker run -it --name pythontest mypythontest:1.0
9.把docker镜像中的文件复制到宿主机上来
本例,在终端中运行docker cp pythontest:/code ./
看到已生成code文件夹
生成的网页源代码文件
如果本文对您有所帮助,请关注微信公众号“捷创源科技”。
获取更多资料,请访问我的博客
以上是关于利用Dockefile将Python的py文件项目代码打包为Docker镜像的主要内容,如果未能解决你的问题,请参考以下文章
Python利用pyinstaller工具将py文件打包成.exe可执行文件