我正在尝试获取一个配置文件并替换 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 中从中创建一个堆栈,并让我知道我做错了什么。因为我已经不知道了。
另外请忽略容器启动后崩溃的情况。这没有关系。
我在 gitlab-runner 上也遇到了同样的问题。我使用 dind,解决方案是共享将在容器之间安装的文件夹:在 gitlab-runner 和 docker-with-socket 容器之间:
在
/etc/gitlab-runner/config.toml
...
volumes = ["/cache","/opt"]
...
在你的情况下有错误
安装“/data/compose/7/default.conf”时出错
您应该共享 /data 文件夹。