Linux Debian利用Dockefile将Python的py文件项目代码打包为Docker Podman镜像

Posted 皓月盈江

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux Debian利用Dockefile将Python的py文件项目代码打包为Docker Podman镜像相关的知识,希望对你有一定的参考价值。

1.创建PyCharm工程

使用PyCharm创建testHelloWorld工程,如下图所示:

2.选择本项目下的Python解释器

通过File -> Setting…选择解释器为本工程下的Python解释器。

【备注:一定要将项目python环境依赖存至本项目下,默认依赖本机python环境(会造成依赖包过多)】


3.代码编辑

创建main.py文件和test.html文件,代码如下:

main.py

"""=== coding: UTF8 ==="""
from lxml import etree


"""
========================================
主函数功能测试
========================================
"""
if __name__ == '__main__':
    parser = etree.HTMLParser(encoding='utf-8')
    tree = etree.parse("test.html", parser=parser)
    # result = tree.xpath("/html")  # /表示层级关系,第一个/是根节点
    # result = tree.xpath("/html/body/ul/li/a/text()")  # text()拿文本
    # result = tree.xpath("/html/body/ul/li[1]/a/text()")  # xpath的顺序是从1开始数的,[]表示索引
    # result = tree.xpath("/html/body/ol/li/a[@href='dapao']/text()")  # @xxx=xxx表示属性的筛选
    # print(result)
    ol_li_list = tree.xpath("/html/body/ol/li")

    for li in ol_li_list:
        # 从每一个li中提取到文字信息
        result = li.xpath("./a/text()")  # 在li中继续查找,相对查找
        print(result)
        result = li.xpath("./a/@href")  # 拿到属性值: @属性
        print(result)

    print(tree.xpath("/html/body/ul/li/a/@href"))
    print(tree.xpath("/html/body/div[1]/text()"))
    print(tree.xpath("/html/body/ol/li/a/text()"))


test.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试</title>
</head>
<body>
    <ul>
        <li><a href="http://www.baidu.com">百度</a></li>
        <li><a href="http://www.google.com">谷歌</a></li>
        <li><a href="http://www.sogou.com">搜狗</a></li>
    </ul>
    <ol>
        <li><a href="feiji">飞机</a></li>
        <li><a href="dapao">大炮</a></li>
        <li><a href="huoche">火车</a></li>
    </ol>
    <div class="job">高凡尔</div>
    <div class="common">刘珂</div>
</body>
</html>

安装lxml模块后,编译运行,效果如下:

4.导出本项目程序依赖

在项目main.py界面鼠标右键,选择菜单Open in Terminal,打开Shell面板。

输入以下命令导出本项目依赖至requirements文件:

pip freeze > requirements.txt


5.打包前准备

下载的testHelloWorld文件夹下面创建docker_test文件夹,同级目录下创建Dockerfile文件,在docker_test文件夹下面添加main.py源代码和requirements.txt文件。


6.创建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镜像

在testHelloWorld文件夹下,打开命令终端,使用root权限打包即可;我使用的是SecureCRT远程连接虚拟机Debian系统。

输入以下命令打包为mypythontest镜像:(最后有一个点)

podman build -t mypythontest .

打包镜像完毕后,使用下面命令查看镜像:

podman images

使用下面命令运行打包成功的mypythontest镜像,成功出现预期结果!!!

podman run mypythontest


获取更多技术干货,请访问大土土随笔

如果本文对您有所帮助,请关注微信公众号“捷创源科技”。

以上是关于Linux Debian利用Dockefile将Python的py文件项目代码打包为Docker Podman镜像的主要内容,如果未能解决你的问题,请参考以下文章

Dockefile配置jdk

Linux debian利用ifconfig查看IP地址

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

linux debian 文件系统根目录空间不足。

debian桌面环境下利用wine怎么运行exe?求详细图解

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