У меня проблема, которую я просто не могу понять. Я использую докер для запуска определенных контейнеров, но у меня есть проблемы по крайней мере с одним томом, где я не люблю спрашивать, может ли кто-нибудь дать мне подсказку, что я делаю неправильно. В качестве примера я использую Nifi-Ingestion, но он затрагивает еще больше объемов контейнеров.
Во-первых, давайте поговорим о версиях, которые я использую:
- Докер версии 19.03.8, сборка afacb8b7f0
- docker-compose версии 1.27.4, сборка 40524192
- Убунту 20.04.1 ЛТС
Теперь давайте покажем объем в моем рабочем файле docker-compose-file:
В моем контейнере он настроен следующим образом:
volumes:
- nifi-ingestion-conf:/opt/nifi/nifi-current/conf
Ниже моего файла docker-compose он определяется как обычный именованный том:
volumes:
nifi-ingestion-conf:
Это фрагмент из docker-compose, который я хотел бы заставить работать
В моем контейнере он настроен в этом случае следующим образом (мой STORAGE_VOLUME_PATH определен как /mnt/storage/docker_data):
volumes:
- ${STORAGE_VOLUME_PATH}/nifi-ingestion-conf:/opt/nifi/nifi-current/conf
Внизу, я думаю, есть что делать, но я не знаю, что мне нужно делать здесь. В данном случае так же, как и в рабочем docker-compose:
volumes:
nifi-ingestion-conf:
Итак, в чем моя проблема?
У меня есть два файла docker-compose. Один использует обычные именованные тома, а другой использует тома в моем дополнительном пути монтирования. Когда я запускаю контейнеры, кажется, что тома работают по-разному, так как файлы пишутся в первом стиле, а не во втором. Мои пути монтирования генерируются во второй версии, поэтому с моими переменными среды в .env-файле все в порядке.
Подсказка: /mnt/storage/docker_data — это монтирование NFS, но моя машина имеет полные права на этот общий ресурс.
Вот моя запись fstab для монтирования этого тома (возможно, мне нужно установить другие параметры):
10.1.0.2:/docker/data /mnt/storage/docker_data nfs auto,rw
Большие фрагменты
Вот более крупный фрагмент, если docker-compose (мне нужно вырезать и удалить достоверные данные, моя проблема не в том, что он не работает, а только в том, что том действует по-другому. Все для этого одного тома есть в коде.) :
version: "3"
services:
nifi-ingestion:
image: my image on my personal repo
container_name: nifi-ingestion
ports:
- 0000
labels:
- app-specivic
volumes:
- ${STORAGE_VOLUME_PATH}/nifi-ingestion-conf:/opt/nifi/nifi-current/conf
#working: - nifi-ingestion-conf:/opt/nifi/nifi-current/conf
environment:
- app-specivic
networks:
- cnetwork
volumes:
nifi-ingestion-conf:
networks:
cnetwork:
external: false
ipam:
driver: default
config:
- subnet: 192.168.1.0/24
А вот env (только значение, которое мы используем)
STORAGE_VOLUME_PATH=/mnt/storage/docker_data