Пишу приложение для себя, оно должно создавать файл с настройками по умолчанию, пусть будет myapp.cfg. Эти настройки должны лежать по пути /var/lib/myapp/, что я указываю в compose.yaml:
services:
myapp:
image: java.myapp:arm64-1.0.2
ports:
- '47500:47500'
volumes: #также испробовал более простой метод с комбинацией абсолютных или относительных путей, результат такой же
- type: bind
source: ./
target: /var/lib/myapp
pull_policy: never
при запуске командой docker compose -f /home/radxa/DockerImages/docker-compose.yaml up упорно создаётся файл где угодно, но не там где нужно. Папка myapp создана с chmod 777:
:~$ sudo find / -name "myapp.cfg"
/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/119/fs/myapp.cfg
/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/117/fs/myapp.cfg
Вопрос к знатокам как заставить докер смонтировать требуемую папку? Мне не нужна папка overlayfs потому что конфиг должен подтягиваться даже если контейнер был удалён и создан заново а как видно из цифр после snapshots при создании путь постоянно меняется и не может быть постоянным. Команда docker inspect показывает отсутствие раздела mount а гугл завален однотипными рекомендациями нейрослопа, которые у меня почему-то не работают
UPD в docker config непонятно откуда взялось поле bind, что с ним делать я не понимаю. Compose чистый, после установке через apt get я ничего в нём не менял
name: dockerimages
services:
myapp:
image: java.myapp:1.0.2
networks:
default: null
ports:
- mode: ingress
target: 47500
published: "47500"
protocol: tcp
pull_policy: never
volumes:
- type: bind
source: /
target: /home/radxa/data
bind: {} # <- Вот это поле я не понимаю откуда берётся и что с ним делать
networks:
default:
name: dockerimages_default