V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
estk
V2EX  ›  程序员

certbot renew --post-hook "docker restart 容器 ID",容器没自动重启?

  •  
  •   estk · 2022-12-23 14:53:12 +08:00 · 1011 次点击
    这是一个创建于 701 天前的主题,其中的信息可能已经有所发展或是发生改变。
    定时脚本 2 个月执行一次:
    certbot renew --post-hook "docker restart 容器 ID"

    看了 ssl 证书有更新,但是容器没自动重启,以至于容器里调用的 ssl 证书文件还是旧的,https 网页打开提示证书过期,手动执行一下 docker restart 就可以访问 https 网页

    --post-hook 参数这样用应该没错吧?

    谷歌了一下,貌似这样比较保险:
    certbot renew --pre-hook "docker stop container_id" --post-hook "docker start container_id"
    9 条回复    2022-12-28 16:29:18 +08:00
    markgor
        1
    markgor  
       2022-12-23 16:54:46 +08:00
    我之前也试过很像也是有问题,忘记了是路径还是什么,我不是 docker ,而是直接 nginx reload 。
    后来解决方法是把 nginx reload 还有 CDN 更新的写在 bash 里,通过 post-hook 来调用 bash 就正常
    estk
        2
    estk  
    OP
       2022-12-23 17:07:29 +08:00 via iPhone
    @markgor #1
    你说的有道理,有可能定时任务那个用户没权限
    julyclyde
        3
    julyclyde  
       2022-12-26 12:39:10 +08:00
    容器重启,内容不就复原了吗?
    estk
        4
    estk  
    OP
       2022-12-26 15:31:38 +08:00
    @julyclyde #3
    ssl 证书在宿主机,重启容器才能重新读取 ssl 证书文件,否则上一次启动容器读取的是旧文件
    julyclyde
        5
    julyclyde  
       2022-12-27 15:00:09 +08:00
    @estk 那你应该能收到包含错误信息的邮件
    estk
        6
    estk  
    OP
       2022-12-27 16:04:09 +08:00 via iPhone
    @julyclyde #5
    自签证书,邮件瞎写,而且这个跟 ssl 无关,docker 没被重启而已
    julyclyde
        7
    julyclyde  
       2022-12-28 09:47:30 +08:00
    @estk 你好像没明白我说的邮件是什么意思?
    estk
        8
    estk  
    OP
       2022-12-28 11:46:49 +08:00 via iPhone
    @julyclyde #7
    请教一下,确实没明白
    julyclyde
        9
    julyclyde  
       2022-12-28 16:29:18 +08:00
    @estk 我说的是 crond 发的那个邮件
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2646 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 05:07 · PVG 13:07 · LAX 21:07 · JFK 00:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.