我们有一些带有自定义 docker 图像的 dockerized PHP 应用程序,以便 PHP mail() 函数实际工作。
当我们构建镜像时,我们在构建时将证书复制到镜像中。这很好用...... 90 天。
为了续订,我们必须关闭 Web 应用程序,手动续订 LetsEncrypt,然后重新构建,并使用新证书重新部署新映像。
我觉得我应该能够使用命名容器来做到这一点,这样更新是自动的,但我无法围绕它思考。
有没有人有这方面的工作手册?
我们有一些带有自定义 docker 图像的 dockerized PHP 应用程序,以便 PHP mail() 函数实际工作。
当我们构建镜像时,我们在构建时将证书复制到镜像中。这很好用...... 90 天。
为了续订,我们必须关闭 Web 应用程序,手动续订 LetsEncrypt,然后重新构建,并使用新证书重新部署新映像。
我觉得我应该能够使用命名容器来做到这一点,这样更新是自动的,但我无法围绕它思考。
有没有人有这方面的工作手册?
答案最终是:使用命名卷,并添加一个脚本以将证书从 docker 主机复制到本地磁盘上的卷中。它是这样工作的:
/certs
.这最后一步需要一点努力。第一次创建命名卷后,您必须使用
docker volume ls
并docker volume inspect
找出该卷在主机文件系统上的维护位置。它通常在 /var/lib/docker 下的某个地方。上面第 4 步中的钩子后脚本只是将证书从活动目录直接复制到此 docker 卷,然后重新启动容器。