Я пытаюсь смонтировать файл в свой контейнер в моем файле docker-compose.yaml
следующим образом:
version: "3"
services:
data-service:
volumes:
- /path/to/file.js:/usr/src/app/file.js
Но я допустил ошибку. В первый раз, когда я сделал docker-compose up
, файл не существовал на моей хост-машине. Что бы ни случилось во время этого прогона, произошло какое-то постоянное изменение, потому что я поместил файл в правильное место, но когда я делаю docker-compose up
, я все равно получаю следующую ошибку:
ERROR: for data-service Cannot start service data-service: OCI runtime create failed: container_linux.go:345: starting container process caused "process_linux.go:424: container init caused \"rootfs_linux.go:58: mounting \\\"/path/to/file.js\\\" to rootfs \\\/var/lib/docker/overlay2/{really long hash}/merged\\\" at \\\"/var/lib/docker/overlay2/{same hash}/merged/usr/src/app/file.js\\\ caused \\\"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 -композитный файл отлично работает для всей моей команды, кроме меня и еще одного члена команды, который допустил ошибку при запуске его до того, как файл появился в первый раз.
Поскольку добавление файла не исправляет проблема, кажется, что проблема так или иначе становится "кэшированной" (из-за отсутствия лучшего термина). Я подумал, что, возможно, мне поможет обрезка томов (в случае создания поддельного тома с именем пути к файлу). Но это не помогло.
У кого-нибудь есть идеи, что может послужить причиной сохранения проблемы для нас?