linux 环境上部署python服务

95 篇文章 1 订阅
问题

需要在一台新买的 linux 机器上运行一个脚本程序。

  1. 自带的 python 没有 pip 的包安装工具
  2. 安装 pip 需要先安装 setuptools
  3. 安装 setuptools 有需要什么解压软件
  4. 此处省略…,一堆关联的东向都要下载安装
    在这里插入图片描述

解决方法1:
根据报的错误一个一个查找解决
解决方法2:
方式1解决着是在比较困难,而且换个环境还会遇到其它的问题。因此准备使用 docker 搭建一个python 的运行环境环境

docker python环境搭建

  1. 安装 docker, 这个之前有同事安装的有,直接拿来用了(之前我一直没有用过)

  2. 项目的基本结构,测试用的
    在这里插入图片描述

  3. 文件 pip.conf, 配置 pip 镜像源

    [global]
    index-url = https://pypi.tuna.tsinghua.edu.cn
    [install]
    trusted-host = https://pypi.tuna.tsinghua.edu.cn
    
  4. 文件 requirements.txt,需要下载的包

    web.py
    
  5. 文件 hello.py, 复制于演示文件

    import web
    
    urls = (
        '/', 'index'
    )
    
    class index:
        def GET(self):
            return "Hello, world!"
    
    if __name__ == "__main__":
        app = web.application(urls, globals())
        app.run()
    
  6. 文件 Dockerfile,

    FROM python					# 指定镜像基础
    
    WORKDIR /usr/src/app		# 设置工作目录,在那里目录执行下面的命令
    COPY ./pip.conf ~/.pip/pip.conf	# 复制镜像源
    COPY requirements.txt ./		# 复制依赖声明文件
    RUN pip install --no-cache-dir -r requirements.txt	# 执行安装
    ENTRYPOINT [ "python" ]
    CMD [ "hello.py" ]
    
  7. 构建镜像命令

    # 目录 /home/pythoncode
    docker build -t pythonweb .
    
  8. 镜像构建完毕
    在这里插入图片描述

使用构建的docker 环境运行脚本

docker run -p 0.0.0.0:9999:8080 --privileged=true --rm -v /home/pythoncode/code:/usr/src/app pythonweb
  • -p 0.0.0.0:9999:8080, 把docker 的 8080 端口映射到主机的 9999 端口上来
  • --privileged=true ,解决后面 -v 挂载目录的问题,由于 selinux 导致没有权限访问 code 文件。 报错 Permission denied
  • -v /home/pythoncode/code:/usr/src/app, 把主机的 /home/pythoncode/code 目录映射到docker的 /usr/src/app 目录下

测试运行成功
在这里插入图片描述
在这里插入图片描述

问题连接参考

docker端口映射
Docker -v 对挂载的目录没有权限 Permission denied
使用docker部署python运行环境
Collecting requests (from -r requirements.txt (line 1))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值