Docker-compose 在 MacOS Ventura (13.1) 上的卷都是空的。

3
我在MacOS Ventura上遇到一个问题,即由于使用docker-compose创建的所有绑定卷(将主机机器上的目录链接到容器上的目录),均为空。我已在MacOS 12.4和12.6上测试了相同的脚本,并按预期工作,在容器中给我与主机上相同的目录内容,因此看起来v13更改了某些权限。
docker-compose.yml文件:
version: "3"

services:
  bash:
    image: ubuntu:latest
    stdin_open: true
    tty: true
    volumes:
      - ./:/app
    command: "/bin/bash"

因此,这应该在容器中创建一个名为/app的目录,并将其链接到compose文件所在的主机目录。

但是当我启动容器时:

❯ docker-compose up --build
[+] Running 1/0
 ⠿ Container ruby-docker-bash-1  Created                                                             0.0s
Attaching to ruby-docker-bash-1

登录后,/app 目录为空:

❯ docker exec -it ruby-docker-bash-1 /bin/bash
root@9644de175d48:/# cd app/
root@9644de175d48:/app# ls -la
total 4
drwxr-xr-x 2 root root   40 Feb  1 09:59 .
drwxr-xr-x 1 root root 4096 Feb  1 09:39 ..

total 4 在这里看起来真的很奇怪,因为应该有4个文件在那里,但是无法访问:

root@9644de175d48:/app# cat Gemfile
cat: Gemfile: No such file or directory

这是主机上的目录内容:

❯ ls -la
.rw-r--r-- 2.7k paul  1 Feb 09:31 Dockerfile
.rw-r--r-- 3.9k paul  1 Feb 09:32 Gemfile
.rw-r--r--  27k paul  1 Feb 09:32 Gemfile.lock
.rw-r--r--  149 paul  1 Feb 10:00 docker-compose.yml

如果有人对可能出现的问题有任何经验,或者知道如何解决这个绝对耗费时间的问题,请告诉我,我将不胜感激。

谢谢!

1个回答

4
我弄明白了。我在MacOS上使用Colima,因为docker没有MacOS虚拟机。
然后我在Colima存储库问题中找到了这个评论https://github.com/abiosoft/colima/issues/500#issuecomment-1343103477,其中一个用户提到他们无法同步目录。
为了修复MacOS上的卷,使用Colima,我做了以下操作:
colima delete # reset
colima start --mount-type 9p

这似乎没有在任何地方有记录。我已经浏览了网站和自述文件。
我使用的是MacOS 13,所以看起来在virtiofs上存在问题,而不是在旧的9p挂载类型上。

1
谢谢!经过几天的努力尝试找出我做错了什么,这终于解决了我的问题! - Deniss M.
1
谢谢!在经过几天的努力尝试弄清楚我做错了什么之后,这终于解决了我的问题! - undefined
我遇到了同样的问题(卷没有被创建或者对Colima不可见),你们需要编辑配置文件中的“mounts”部分吗? - undefined
1
@NourSIDAOUI 我不需要编辑挂载配置。只需指定挂载类型即可。顺便说一下,我切换到了Docker Desktop(我使用的是Mac),因为我在Colima上遇到了许多同步速度问题。 - undefined

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