У меня есть два тома: repo
и cache
. Я хочу смонтировать repo
только для чтения в /repo
и хочу смонтировать cache
в режиме чтения-записи в /repo/cache
. Когда приложение пишет в /repo/cache
, я ожидаю, что записи перейдут на том cache
, в то время как том /repo
не изменится;однако, когда я запускаю docker run -it -v repo:/repo:ro -v cache:/repo/cache alpine
, я получаю docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused "process_linux.go:430: container init caused \"rootfs_linux.go:58: mounting \\\"/var/lib/docker/volumes/cache/_data\\\" to rootfs \\\"/var/lib/docker/overlay2/9f1dfff7f943921fd2da278d357bec88007d7fcb41eb9bc34fc0e728c459ad73/merged\\\" at \\\"/var/lib/docker/overlay2/9f1dfff7f943921fd2da278d357bec88007d7fcb41eb9bc34fc0e728c459ad73/merged/repo/cache\\\" caused \\\"mkdir /var/lib/docker/overlay2/9f1dfff7f943921fd2da278d357bec88007d7fcb41eb9bc34fc0e728c459ad73/merged/repo/cache: read-only file system\\\"\"": unknown.
Есть ли лучший способ достичь этого результата? Мне нужно, чтобы том repo
был ro
, чтобы приложение не записывало в него, и мне нужно, чтобы cache
был доступен для записи и монтирования "внутри" /repo
, потому что именно там приложение ожидает его (и яне могу изменить приложение, чтобы искать в другом месте).