Я понял синтаксис для монтирования тома (Kubernetes YAML):
apiVersion: v1
kind: Pod
metadata:
...
spec:
containers:
- name: php
volumeMounts:
- mountPath: /app/db_backups
name: db-backups
readOnly: true
volumes:
- hostPath:
path: /mnt/c/Users/Mark/PhpstormProjects/proj/db_backups
type: DirectoryOrCreate
name: db-backups
И громкость отображается, когда я захожу в оболочку:
kubectl --context docker-desktop exec --stdin --tty deploy/app-deployment-development -cphp -nmyns -- /bin/bash
Но каталог db_backups
пуст, поэтому я предполагаю, что том ничем не поддерживается — он не находит том на моем хост-компьютере Windows.
Я пытался установить путь к хосту, например C:\Users\Mark\PhpstormProjects\proj\db_backups
, но если я это сделаю, мое развертывание завершится ошибкой с CreateContainerError
:
Ошибка: ответ об ошибке от демона: неверная спецификация тома: 'C:\Users\Mark\PhpstormProjects\proj\db_backups:/app/db_backups:ro'
Поэтому я думаю, что ему не нравится путь к файлу в стиле Windows.
Что тогда? Если ни один из стилей пути не работает, как мне его смонтировать?
Из здесь ясно, что для WSL2 нам нужно указать конкретный путь, прежде чем мы фактически укажем желаемый путь на хост-компьютере.
В вашем файле вы указываете как path: /mnt/c/Users/Mark/PhpstormProjects/proj/db_backups
, но вам нужно указать такой путь path: /run/desktop/mnt/host/path_of_directory_in_local_machine
. Ключ в том, что нам нужно упомянуть /run/desktop/mnt/host/
, прежде чем мы собираемся указать фактический путь к каталогу.
Вы указали type: DirectoryOrCreate
в приведенном выше файле, так что это создает пустой каталог по указанному вами пути. Потому что на самом деле он не идет по желаемому пути.
Так что попробуй с этим
apiVersion: v1
kind: Pod
metadata:
...
spec:
containers:
- name: php
volumeMounts:
- mountPath: /app/db_backups
name: db-backups
readOnly: true
volumes:
- hostPath:
path: /run/desktop/mnt/host/c/Users/Mark/PhpstormProjects/proj/db_backups
#In my case tested with path: /run/desktop/mnt/host/d/K8-files/voldir
type: DirectoryOrCreate
name: db-backups
В нашем случае это сработало, мы создали каталог на диске «d», поэтому использовали этот path: /run/desktop/mnt/host/d/K8-files/voldir
. Поэтому попробуйте поставить /run/desktop/mnt/host/
перед фактическим путем.
Для получения дополнительной информации перейдите по этой Ссылке