2017-05-31 622 views
0

正如你所说,我刚刚开始与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 
} 

如果你可以给我一个呃提示,我真的很感激它。

预先感谢您!

+0

你能缩小这个问题吗?如何在Docker Compose之外使用'docker run -it -v ./production:/prod jumanjiman/caddy -port 8000 -host 0.0.0.0 -conf/prod/Caddyfile'运行?你还可以发布'Caddyfile'吗?这里没有足够的信息来重现(图像在本地运行良好)。 –

+0

嗨@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

+0

啊,它需要是完整的路径。你可以使用'-v $ PWD/production:/ prod'来代替。 –

回答

0

经过这么长时间的努力,我得到了正确的配置。下面是我做的:

  • 使用abiosoft/caddy
  • 左的默认端口(80和443)
  • 修改泊坞窗,撰写文件来使用这个命令:

command: -conf /prod/Caddyfile

因为显然我使用前面的命令覆盖了Caddyfile配置:

command: -port 8000 -host 0.0.0.0 -conf /prod/Caddyfile

使用这些修改,我能够在我的网站上运行HTTPS。

谢谢