Docker 卷未正确安装

Docker 卷未正确安装

我的docker-compose.yml(对于 Immich 来说,如果它很重要)包含以下内容:

volumes:
  - ${UPLOAD_LOCATION}:/usr/src/app/upload
  - /etc/localtime:/etc/localtime:ro
  - /data/NAS_Photos:/mnt/NAS_Photos:ro   # <-- The one I'm having trouble with

目的(为避免疑问)是为了/data/NAS_Photos从我的主机在容器内提供/mnt/NAS_Photos

当我docker-compose up -d相关容器有一个目录/mnt/NAS_Photosmount | grep -i mnt显示

none on /mnt/NAS_Photos type tmpfs (ro,relatime,inode64)

此外,该目录几乎是空的。它不包含我的 的内容。(它确实包含以前尝试调试时留下的一些文件,如果我将安装移动到容器内的其他位置,剩余的文件也会出现在那里。如果我和/data/NAS_Photos,这些文件会保留下来。)docker compose downdocker compose up

为什么无法安装?或者,我该如何调试无法安装的原因?我没有看到任何错误消息。

使用 Ubuntu Server 22.04.3 LTS。

我检查过的内容:

  • /data由我的用户拥有,并且对其具有权限,并且/data/NAS_Photos都是 777。

  • docker-compose.yml我可以毫无问题地将目录挂载到相同的位置。

  • 的输出docker inspect -f '{{ .Mounts }}' immich_microservices为:

    [{bind /home/mark/Immich/library /usr/src/app/upload rw true rprivate} {bind /etc/localtime /etc/localtime ro false rprivate} {bind /data/NAS_Photos /mnt/NAS_Photos ro false rprivate}]

提前致谢!

答案1

最终发现问题出在 Snapd 上。

Docker 是以 Snap 形式安装的,Snap 对主机文件系统的访问权限有限(已讨论这里)。我的媒体位于 Snaps 无法访问的目录中,因此 Docker(作为 snap 安装)无法看到它。

我的解决方法(有点粗暴)是将媒体绑定到我的主目录中。

相关内容