Назад | Перейти на главную страницу

Настройка экземпляра контейнера Azure с несколькими подключениями томов

Я пытаюсь настроить контейнер zookeeper в Azure. Я хочу, чтобы он использовал три разных общих файловых хранилища Azure. Один предназначен для конфигурации zookeeper, один - для данных, а третий - для журналов. Из-за множественных подключений мне приходится использовать шаблон ARM для развертывания.

Кроме того, я не совсем уверен, как я могу заставить контейнер использовать переключатель -v или, если мне нужно, чтобы он смотрел на мою общую папку config как на нужный файл. Вы можете увидеть мою попытку в переопределении команд.

{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"resources": [
    {
        "location": "centralus",
        "name": "redacted",
        "type": "Microsoft.ContainerInstance/containerGroups",
        "apiVersion": "2018-10-01",
        "properties": {
            "containers": [
                {
                    "name": "redacted",
                    "properties": {
                        "image": "zookeeper:latest",
                        "resources": {
                            "requests": {
                                "cpu": "1",
                                "memoryInGB": "1.5"
                            }
                        },
                        "ports": [
                            {
                                "port": "2181",
                                "protocol": "TCP"
                            }
                        ],
                        "command": [
                            "-v/azshare/config/zk/cfg:/conf/zoo.cfg zookeeper"
                        ],
                        "volumeMounts": [
                            {
                                "name": "config",
                                "mountPath": "azshare/config"
                            },
                            {
                                "name": "data",
                                "mountPath": "azshare/data"
                            },
                            {
                                "name": "logs",
                                "mountPath": "azshare/logs"
                            }
                        ]
                    }
                }
            ],
            "restartPolicy": "Always",
            "osType": "Linux",
            "ipAddress": {
                "type": "Public",
                "ports": [
                    {
                        "port": "2181",
                        "protocol": "TCP"
                    }
                ],
                "dnsNameLabel": "redacted"
            },
            "volumes": [
                {
                    "name": "config",
                    "azureFile": {
                        "shareName": "config",
                        "storageAccountName": "redacted",
                        "storageAccountKey": "redacted"
                    }
                },
                {
                    "name": "data",
                    "azureFile": {
                        "shareName": "data",
                        "storageAccountName": "redacted",
                        "storageAccountKey": "redacted"
                    }
                },
                {
                    "name": "logs",
                    "azureFile": {
                        "shareName": "logs",
                        "storageAccountName": "redacted",
                        "storageAccountKey": "redacted"
                    }
                }
            ]
        },
        "tags": {}
    }
]
}

Получается, что мой путь монтирования должен начинаться с косой черты. Путь должен быть / azshare / config и т. Д.

Что касается передачи команд, похоже, что команда просто заменяет точку входа в докер. Если вы используете формат шаблона, ваши команды разделены пробелами, поэтому каждый пробел представляет собой новую строку.