Docker compose 0x5000:不是目录:未知:您是否正在尝试将目录挂载到文件上(或反之亦然)?

问题描述 投票:0回答:1

我正在尝试获取一个配置文件并替换 nginx 中已存在的default.conf。

我的超级简单的 Docker 组合:

version: '3.3'
services:
  qwc-api-gateway:
    image: nginx:1.19
    volumes:
      - ./default.conf:/etc/nginx/conf.d/default.conf

为了方便起见,我什至在这里发布了这两个文件: https://github.com/Xentraxx/qwc-docker

问题:如果我尝试在 portainer 中从此存储库构建堆栈,则会失败并显示错误消息:

Error response from daemon: 
failed to create shim: 
OCI runtime create failed: 
runc create failed: 
unable to start container process:
error during container init: 
error mounting "/data/compose/7/default.conf" to rootfs at "/etc/nginx/conf.d/default.conf": 
mount /data/compose/7/default.conf:/etc/nginx/conf.d/default.conf (via /proc/self/fd/6), 
flags: 0x5001: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? 
Check if the specified host path exists and is the expected type

如果我在本地运行

docker-compose up -d
,容器就会启动,我可以在日志中看到 default.conf 具有我想要的值。

我在网上找不到任何对此有帮助的信息,只有人们说源文件可能不存在。 因此,请随意使用我的存储库,尝试在 Portainer 中从中创建一个堆栈,并让我知道我做错了什么。因为我已经不知道了。

另外请忽略容器启动后崩溃的情况。这没有关系。

docker nginx containers portainer
1个回答
0
投票

我在 gitlab-runner 上也遇到了同样的问题。我使用 dind,解决方案是共享将在容器之间安装的文件夹:在 gitlab-runner 和 docker-with-socket 容器之间:

/etc/gitlab-runner/config.toml

...
volumes = ["/cache","/opt"]
...

在你的情况下有错误

安装“/data/compose/7/default.conf”时出错

您应该共享 /data 文件夹。

© www.soinside.com 2019 - 2024. All rights reserved.