Docker-compose认为文件是一个目录

5

有什么想法吗?

这个服务以前是可以启动的,但现在我收到了“/etc/Caddyfile: is a directory”这个消息并且服务退出了。

$ docker-compose -f docker-compose-linux.yml up caddy
Starting server_applications_1 ... done
server_workspace_1 is up-to-date
server_php-fpm_1 is up-to-date
Starting server_caddy_1        ... done
Attaching to server_caddy_1
caddy_1         | http plugins loaded: git
caddy_1         | 2020/06/22 06:22:18 loading Caddyfile via flag: read /etc/Caddyfile: is a directory
server_caddy_1 exited with code 1

关于 caddy 服务的 Dockerfile:

FROM zuohuadong/caddy:alpine
MAINTAINER Huadong Zuo <admin@zuohuadong.cn>
ARG plugins="cors"
WORKDIR /var/www/platform/public
CMD ["/usr/bin/caddy", "-conf", "/etc/Caddyfile"]

Caddy服务容器的yml文件: 其中CADDY_CUSTOM_CADDYFILE=./caddy/Caddyfile

      volumes:
        - ${CADDY_CUSTOM_CADDYFILE}:/etc/Caddyfile

Caddyfile在正确的目录中

...server/caddy$ ll
total 16
drwxrwxr-x  2 ubuntu ubuntu 4096 Jun 22 17:44 ./
drwxrwxr-x 11 ubuntu ubuntu 4096 Jun 22 15:55 ../
-rw-r--r--  1 ubuntu ubuntu 1452 Jun 11 10:54 Caddyfile
-rw-r--r--  1 ubuntu ubuntu  268 Jun 22 18:13 Dockerfile

$ docker-compose -f docker-compose-linux.yml up caddy

开始启动 server_applications_1 ... 完成 server_workspace_1 已经是最新的 server_php-fpm_1 已经是最新的 正在启动 server_caddy_1 ... 完成 附加到 server_caddy_1 caddy_1 | 已加载 http 插件: git caddy_1 | 2020/06/22 06:22:18 通过标志加载 Caddyfile: 读取 /etc/Caddyfile: 是一个目录 server_caddy_1 退出,返回代码 1


通常情况下,当Docker创建一个目录时,源文件可能只是缺失了。我建议您将卷定义中的变量替换为绝对路径,然后再尝试一次。同时要注意文件所有权和权限。如果我理解正确,您是以ubuntu用户身份执行此操作的? - olidem
1个回答

0

你可以尝试在Docker Compose中挂载目录而不是文件。

      volumes:
        - ${CADDY_CUSTOM_CADDYFILE}:/etc

CADDY_CUSTOM_CADDYFILE=full_Path_to/caddy/

即使如此,您仍然可以使用它。

CMD ["/usr/bin/caddy", "-conf", "/etc/Caddyfile"]

谢谢。我尝试过了,结果一样:docker-compose配置报告: - Simon P
谢谢。我已经这样做了,并删除并重建了。奇怪的是它似乎不尊重yml/env:docker-compose config:... caddy: 上下文:/home/ubuntu/Development/platform/server/caddy
  • /home/ubuntu/Development/platform/server/caddy:/etc/Caddyfile:rw
  • /home/ubuntu/.laradock/data:/root/.caddy:rw
- Simon P
也尝试了普通样式的文件名:volumes: docker-compose config
  • /home/ubuntu/Development/platform/server/caddy/caddyfile.txt:/etc/caddyfile.txt:rw
- Simon P
仍然出现相同的错误:caddy_1 | 2020/06/23 02:51:40 通过标志加载Caddyfile:读取/etc/caddyfile.txt:是一个目录。 - Simon P

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接