如何从Docker容器运行Caddy? (443绑定:权限被拒绝)
问题描述:
正如你所说,我刚刚开始与Docker和Caddy合作,但由于出现以下错误,我无法运行它:如何从Docker容器运行Caddy? (443绑定:权限被拒绝)
Could not start HTTPS server for challenge -> listen tcp :443: bind: permission denied
这里是泊坞窗,compose.yml:
webserver:
image: jumanjiman/caddy
depends_on:
- parse-dashboard
- loovus
ports:
- "80:8000"
- "443:443"
links:
- parse-dashboard
- parse-server
volumes:
- ./production:/prod/
- ./dist/:/angular/
command: -port 8000 -host 0.0.0.0 -conf /prod/Caddyfile
这里是Caddyfile:
qa.loovus.mx:8000
tls [email protected]
gzip {
ext .js .css
}
root /angular
proxy /parse parse-server:1337
rewrite/{
if {path} not_match /parse
to {path} /index.html
}
如果你可以给我一个呃提示,我真的很感激它。
预先感谢您!
答
经过这么长时间的努力,我得到了正确的配置。下面是我做的:
- 使用abiosoft/caddy
- 左的默认端口(80和443)
- 修改泊坞窗,撰写文件来使用这个命令:
command: -conf /prod/Caddyfile
因为显然我使用前面的命令覆盖了Caddyfile配置:
command: -port 8000 -host 0.0.0.0 -conf /prod/Caddyfile
使用这些修改,我能够在我的网站上运行HTTPS。
谢谢
你能缩小这个问题吗?如何在Docker Compose之外使用'docker run -it -v ./production:/prod jumanjiman/caddy -port 8000 -host 0.0.0.0 -conf/prod/Caddyfile'运行?你还可以发布'Caddyfile'吗?这里没有足够的信息来重现(图像在本地运行良好)。 –
嗨@AndyShinn我用我的Caddyfile的信息更新了我的问题。我也尝试运行你发送的命令,但是我收到以下消息: ':create ./production:“./production”包含本地卷名称的无效字符,只有“[a-zA-Z0- 9] [a-zA-Z0-9 _.-]“是允许的。如果你打算通过一个主机目录,使用绝对路径。' 我也试过这种方式: 'docker run -it -v production:/prod jumanjiman/caddy -port 8000 -host 0.0.0.0 -conf production/Caddyfile' 'loading Caddyfile via flag:open production/Caddyfile:no such file or directory' 谢谢 – Neoluis10
啊,它需要是完整的路径。你可以使用'-v $ PWD/production:/ prod'来代替。 –