docker-compose 通过sh命令启动nginx 容器自动退出exited with code 0

7 篇文章 0 订阅
6 篇文章 0 订阅

docker-compose使用的模板文件中有通过entrypoint或者command参数设置容器启动自动执行sh命令开启nginx服务,但是docker-compose up后容器自动退出了

nginx-web1 exited with code 0
nginx-web2 exited with code 0
nginx-web3 exited with code 0

原因:Docker的机制是让容器后台运行,必须至少有一个前台进程,容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),会自动退出

解决: 可以使用包含 -g “daemon off;” 配置项的sh命令以前台方式开启nginx服务

nginx -c /usr/local/nginx/conf/nginx.conf -g "daemon off;" 
如果容器需要同时启动多个进程,只需要将其中一个挂起到前台即可,例如:
service php-fpm start && nginx -g "daemon off;" 

service php-fpm start && service nginx start &&  tail -f /var/log/nginx/error.log

部分参考:https://blog.csdn.net/u010358168/article/details/81347927
https://blog.csdn.net/meegomeego/article/details/50707532

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值