dockerfile运行多个程序+gunicorn配置+gevent+flask

背景:dockerfile部署Python项目,同时启动web接口服务+定时任务

由于dockerfile中CMD无法同时执行多个程序,故采用sh文件的方式

创建sh文件

在项目目录路径下,编辑.sh文件

#!/bin/sh
gunicorn -c gunicorn.conf es_server:app & 
python time_task.py

注意事项:在windows环境下,编辑sh文件,然后放到linux环境下执行,会报错

-bash: ./start.sh: /bin/sh^M: bad interpreter: No such file or directory

解决方法:这是win的编码引起的,win环境下编辑是doc格式,linux下需要unix格式的文件。

1,window是环境下,使用Notepad++工具

 2,linux环境下,使用vi编辑器

1,vi search.sh
2,查看文件格式
:set ff
3,修改文件格式为Unix
:set ff=unix
4,文件保存
:wq


Gunicorn配置

在项目目录路径下,创建gunicorn.conf文件:

workers = 5
worker_class = "gevent"
bind = "0.0.0.0:6666"

与此同时,flask服务.py文件中,不需要写ip和相应端口:

if __name__ == '__main__':
    app.run()

Dockerfile文件

FROM python:3.6-slim

COPY search /home/search

RUN cd /home/search && \
	pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple && \
	pip install -r requirements.txt && \
	chmod 777 search.sh

EXPOSE 6666

CMD cd /home/search && ./search.sh

注意事项:

        1,修改sh文件权限,可执行;

        2,注意执行文件路径,确保sh文件与sh文件中的执行程序在同一路径下

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值