我有一个使用 SMB 驱动器作为卷的 Docker 容器。这是它的 Compose 文件:
name: "audiobookshelf"
services:
audiobookshelf:
container_name: "audiobookshelf"
restart: always
image: ghcr.io/advplyr/audiobookshelf:latest
privileged: false
environment: []
network_mode: bridge
ports:
- "13378:80"
volumes:
- type: bind
source: /media/patataos/barracuda4/audiobooks
target: /audiobooks
- type: bind
source: /app/audiobookshelf/config
target: /config
- type: bind
source: /app/audiobookshelf/metadata
target: /metadata
有问题的 SMB 驱动器在启动时安装:
//192.168.1.2/patataos /media/patataos cifs nofail,x-systemd.automount,vers=3.1.1,credentials=/media/.patataos_credentials
我的问题是,似乎要么是 Docker 容器在实际共享挂载之前尝试启动,因此失败并且不再重试,要么是驱动器被延迟挂载,除非我手动尝试通过终端访问它,否则它不会挂载。我的印象是restart: always
Docker 实际上会继续尝试重新启动它,但尽管手动安装了驱动器,容器似乎并没有自动启动。我相信我需要一种方法来确保驱动器确实已安装,或者了解为什么 Docker 的访问请求不计入延迟安装驱动器。