Я пытаюсь развернуть Mon go на Azure Экземпляры контейнера как часть группы контейнеров. Для этого я использую учетную запись хранения с общей папкой для сохранения данных mon go. Невозможно смонтировать том в папке /data/db
по умолчанию, поэтому я монтирую его в другом месте и запускаю mongod
, используя флаг --db-path
. Все это прекрасно работает с помощью CLI, полная команда приведена ниже.
Однако, когда я хочу перевести все эти команды в мой файл конфигурации YAML, это не работает. Mon go вылетает с ошибкой unknown file or directory
. Если я запускаю контейнер без флага --db-path
, но все еще монтирую том, я могу запустить c в работающий контейнер и увидеть, что том есть и подключен. Я даже могу вручную создавать папки в общем ресурсе через портал Azure и видеть, что они появляются в контейнере.
Документация и примеры немного тонкие на местах, особенно примеры на основе YAML. Самым большим отличием от группы контейнеров является необходимость определения именованного тома отдельно от контейнера, который используется свойством volumeMounts
. Это просто синтаксическая ошибка? Являются ли команда CLI и YAML каким-либо образом не эквивалентными?
Команда CLI
az container create
--resource-group rsenu-hassPilots-group
--name mongo
--image mongo
--azure-file-volume-account-name <account>
--azure-file-volume-account-key "<key>" --azure-file-volume-share-name mongodata
--azure-file-volume-mount-path "/data/mongoaz"
--ports 27017
--cpu 1
--ip-address public
--memory 1.5
--os-type Linux
--protocol TCP
--command-line "mongod --dbpath=/data/mongoaz"
Конфигурация YAML
apiVersion: 2018-10-01
location: uksouth
name: trustNewArtGroup
properties:
containers:
- name: mongo
properties:
image: mongo:4.2.3
resources:
requests:
cpu: 1
memoryInGb: 1.5
ports:
- port: 27017
volumeMounts:
- name: database
mountPath: /data/azstorage
environmentVariables:
- name: 'MONGO_INITDB_DATABASE'
value: 'trust-new-art-db'
command:
- "mongod --dbpath=/data/azstorage"
osType: Linux
ipAddress:
type: Public
dnsNameLabel: trustnewart
ports:
- protocol: tcp
port: '27017'
volumes:
- name: database
azureFile:
sharename: mongodata
storageAccountName: <account>
storageAccountKey: <key>
tags: null
type: Microsoft.ContainerInstance/containerGroups