利用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镜像的主要内容,如果未能解决你的问题,请参考以下文章

客快物流大数据项目(十五):DockeFile常用命令

Python利用pyinstaller工具将py文件打包成.exe可执行文件

客快物流大数据项目(十五):DockeFile常用命令

利用Pycharm + Django搭建一个简单Python Web项目

利用sphinx为python项目生成API文档

如何向IPython Notebook中导入.py文件