在使用npm的时候,ssl证书选择使用Use a DNS Challenge进行认证的时候会有下面这个错误。
ModuleNotFoundError: No module named 'zope'
大概意思是缺少zope这个包,官方的issue可以看出来很多人遇到这个问题:https://github.com/NginxProxyManager/nginx-proxy-manager/issues?q=zope
尝试在容器里面执行 pip install zope之后发现可以解决问题
还希望可以讲这个解决方案固定到镜像里面,因为不知道哪天容器可能就被重新创建了。
FROM jc21/nginx-proxy-manager:latest RUN pip install zope -i https://pypi.tuna.tsinghua.edu.cn/simple && python -c "import zope"
尝试使用这个dockerfile来构建镜像,但是执行的时候发现还是缺少zope包。
尝试与chatgpt多轮对话之后,最终(不太优雅的方式)解决了问题。
version: '3.2' services: app: image: jc21/nginx-proxy-manager:latest restart: unless-stopped entrypoint: bash -c "pip install zope -i https://pypi.tuna.tsinghua.edu.cn/simple && exec /init"
通过增加entrypoint启动脚本的方式。