首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Docker容器中运行Nginx并将其设置为每6h重新加载其配置?

如何在Docker容器中运行Nginx并将其设置为每6h重新加载其配置?
EN

Stack Overflow用户
提问于 2019-03-23 21:11:17
回答 1查看 699关注 0票数 1

我正在一个Docker容器中运行NGINX,我试图找到一种使用docker run启动它的方法,这种方式可以命令我的NGINX每6h重新加载它的配置。我需要这样做,因为我还在另一个容器中使用Certbot,我希望SSL证书更新过程能够自动化并应用,为此,我将按照计划重新加载它的配置。

此时,我使用了折叠docker run序列(或多或少):

docker run --restart=always -d -p 80:80 -p 443:443 \ --name=nginx_RevPr nginx:latest \ /bin/bash -c 'while :; do sleep 6h & wait ${!}; nginx -s reload; done & nginx -g "daemon off;"'

以这种方式创建的容器运行和工作正常。我唯一的问题是,实际上我不知道NGINX是否真的实现了它的配置。docker logs没有显示任何东西。

我想用两种方式来处理这个问题:

  1. 如何输出到终端/坞日志(echo?)成功的nginx -s reload修改了我的/bin/bash -c 'while :; do sleep 6h & wait ${!}; nginx -s reload; done & nginx -g "daemon off;"'
  2. 如果我错过了一些东西(我是Docker和NGINX的初学者):你能找到一种方法来实现我想以更合理的方式获得的结果吗?

请不要建议码头工人作曲。

感谢您的关注。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-24 09:05:31

好吧,我让它起作用了。我将CMD args行更改为:

/bin/sh -c 'while :; do sleep 6h & wait ${!}; nginx -s reload && echo NGINX config reload for Certbot - OK; done & nginx -g "daemon off;"'

我的主要错误是使用/bin/bash输入CMD,在那里我应该做/bin/sh。下面的nginx -s reload && echo NGINX config reload for Certbot - OK解决了配置重新加载相关的docker logs初始化问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55318428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档