问题描述
在我的起始位置,我有一个 Nginx Docker 服务,该服务根据需要在不同服务器之间进行复制。 (Docker Swarm) 在 glusterfs 的帮助下,可以通过挂载在每个服务器上访问 Nginx 配置。我想我可以在每次使用 inotify 更改配置时重新加载 Nginx。但是,这不起作用,经过研究,我发现 inotify 不适用于安装。是否有解决方法或替代方法?
Dockerfile:
FROM Nginx
copY NginxReloader.sh /usr/local/cloudsys/bin/NginxReloader.sh
copY docker-entrypoint.sh /usr/local/cloudsys/bin/docker-entrypoint.sh
RUN chmod +x /usr/local/cloudsys/bin/NginxReloader.sh; \
chmod +x /usr/local/cloudsys/bin/docker-entrypoint.sh; \
apt-get update && apt-get install -y --no-install-recommends apt-utils; \
apt-get install inotify-tools -y
ENTRYPOINT [ "/usr/local/cloudsys/bin/docker-entrypoint.sh" ]
CMD ["Nginx","-g","daemon off;"]
docker-entrypoint.sh
#!/bin/bash
echo "loading script..."
sh -c "/usr/local/cloudsys/bin/NginxReloader.sh &"
exec "$@"
NginxReloader.sh
#!/bin/bash
while true
do
inotifywait --exclude .swp -e create -e modify -e delete -e move /etc/Nginx/conf.d/
Nginx -t
if [ $? -eq 0 ]
then
echo "Detected Nginx Configuration Change"
echo "Executing: Nginx -s reload"
Nginx -s reload
fi
done
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)