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

问题描述 投票:-1回答:1

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

此时我使用以下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?)成功的qazxsw poi修改我的qazxsw poi?
  2. 如果我错过了一些东西(我是Docker和NGINX的初学者):你是否看到了一种方法来实现我想以更合理的方式获得的结果?

请不要建议Docker Compose。

感谢您的关注。

linux docker nginx lets-encrypt certbot
1个回答
0
投票

好的,我搞定了。我将CMD args行更改为:

nginx -s reload

我的主要错误是使用qazxsw poi进入CMD,在那里我应该做qazxsw poi。以下/bin/bash -c 'while :; do sleep 6h & wait ${!}; nginx -s reload; done & nginx -g "daemon off;"'解决了/bin/sh -c 'while :; do sleep 6h & wait ${!}; nginx -s reload && echo NGINX config reload for Certbot - OK; done & nginx -g "daemon off;"'关于配置重新加载的问题。

© www.soinside.com 2019 - 2024. All rights reserved.