我在一个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
没有显示任何内容。
我想以双重方式解决这个问题:
echo
?)成功的qazxsw poi修改我的qazxsw poi?请不要建议Docker Compose。
感谢您的关注。
好的,我搞定了。我将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;"'
关于配置重新加载的问题。