python 的env 项目创建docker 镜像 demo

2024-05-08 18:08

本文主要是介绍python 的env 项目创建docker 镜像 demo,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

python 的env 项目创建docker 镜像 demo

文章目录

    • 1. 准备虚拟python 虚拟环境和demo 项目
    • 2. 准备docker 镜像环境前提
    • 3. 生成镜像&&测试
    • 关键点:

1. 准备虚拟python 虚拟环境和demo 项目

  1. 安装python env 环境python3 -m venv flask_env3

  2. 启动虚拟环境cd flask_env3 && source bin/active

  3. 编写demo脚本

    #encoding:utf8
    import os
    from flask import Flask, request, jsonify
    import sys
    import requests
    app = Flask(__name__)
    @app.route("/index", methods=["GET"])
    def index():return "hello\r\n"
    if __name__ == "__main__":app.run(debug=True, host="0.0.0.0", port="8101")
    
  4. 依赖两个模块,安转部署

    pip install requests
    pip install flask
    pip freeze > require.txt 
    

2. 准备docker 镜像环境前提

  1. 删除bin 底下的python 软链,复制python解释器到对应位置
    在这里插入图片描述
    删除python3 的原因是因为这个软链在docker容器中没法使用,具体原因未知
    错误提示为:
    如果python 使用软链的话:启动容器的报错为:在这里插入图片描述
  2. 修改pip 的路径为docker 内的路径:
    #!/app/bin/python3  #此为部署docker 容器后python3 的绝对路径,和Dockerfile 文件中的WORKDIR 相关
    # -*- coding: utf-8 -*-
    import re
    import sysfrom pip import mainif __name__ == '__main__':sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])sys.exit(main())
    
    注意 以上如果不修改会出现以下的错误:
    rong
  3. 编写Dockerfile
    FROM centos
    WORKDIR /app
    ADD . /app
    ENV PYTHONPATH /app/bin
    CMD /app/bin/python app.py
    

3. 生成镜像&&测试

  1. 编译命令:
    编译镜像:docker build -t pythonenvdocker:v3 .
    启动容器:run -d -p 8088:8101 pythonenvdocker:v3
    查看状态:docker ps -a (确定是启动状态)
    执行命令:
    [work@*** ~]$ curl http://localhost:8098/index
    hello
    You have mail in /var/spool/mail/work
    进入容器:docker exec -it 23916ad83854 /bin/bash
    

关键点:

  1. virturl env 构建
  2. 删除env 环境中的解释器的软链,复制解释器到对应目录(解释器软链到容器中不可用,原因未知有知道的同学可以解释下)
  3. 修改env 中pip 文件中指向为镜像部署后容器位置,否则pip 可能失败
  4. 在Dockerfile 中指定PYTHONPATH 好像无效(具体原因未知,有知道的同学可以解释下),所以Dockerfile 中的cmd 解释器物使用了绝对路径

这篇关于python 的env 项目创建docker 镜像 demo的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/971049

相关文章

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

Docker镜像pull失败两种解决办法小结

《Docker镜像pull失败两种解决办法小结》有时候我们在拉取Docker镜像的过程中会遇到一些问题,:本文主要介绍Docker镜像pull失败两种解决办法的相关资料,文中通过代码介绍的非常详细... 目录docker 镜像 pull 失败解决办法1DrQwWCocker 镜像 pull 失败解决方法2总

python+opencv处理颜色之将目标颜色转换实例代码

《python+opencv处理颜色之将目标颜色转换实例代码》OpenCV是一个的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上,:本文主要介绍python+ope... 目录下面是代码+ 效果 + 解释转HSV: 关于颜色总是要转HSV的掩膜再标注总结 目标:将红色的部分滤

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

在C#中调用Python代码的两种实现方式

《在C#中调用Python代码的两种实现方式》:本文主要介绍在C#中调用Python代码的两种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#调用python代码的方式1. 使用 Python.NET2. 使用外部进程调用 Python 脚本总结C#调

Python下载Pandas包的步骤

《Python下载Pandas包的步骤》:本文主要介绍Python下载Pandas包的步骤,在python中安装pandas库,我采取的方法是用PIP的方法在Python目标位置进行安装,本文给大... 目录安装步骤1、首先找到我们安装python的目录2、使用命令行到Python安装目录下3、我们回到Py

Python GUI框架中的PyQt详解

《PythonGUI框架中的PyQt详解》PyQt是Python语言中最强大且广泛应用的GUI框架之一,基于Qt库的Python绑定实现,本文将深入解析PyQt的核心模块,并通过代码示例展示其应用场... 目录一、PyQt核心模块概览二、核心模块详解与示例1. QtCore - 核心基础模块2. QtWid

Python实现自动化接收与处理手机验证码

《Python实现自动化接收与处理手机验证码》在移动互联网时代,短信验证码已成为身份验证、账号注册等环节的重要安全手段,本文将介绍如何利用Python实现验证码的自动接收,识别与转发,需要的可以参考下... 目录引言一、准备工作1.1 硬件与软件需求1.2 环境配置二、核心功能实现2.1 短信监听与获取2.

使用Python实现获取网页指定内容

《使用Python实现获取网页指定内容》在当今互联网时代,网页数据抓取是一项非常重要的技能,本文将带你从零开始学习如何使用Python获取网页中的指定内容,希望对大家有所帮助... 目录引言1. 网页抓取的基本概念2. python中的网页抓取库3. 安装必要的库4. 发送HTTP请求并获取网页内容5. 解