Как запустить несколько команд при развертывании группы контейнеров? - PullRequest
0 голосов
/ 17 января 2019

Я развертываю группу контейнеров с шаблоном https://docs.microsoft.com/en-us/azure/templates/microsoft.containerinstance/2018-10-01/containergroups

У него есть параметр команды, но это всего лишь строка и выполняется одна команда. Я хотел бы запустить несколько команд при развертывании. Возможно ли это?

Если нет, есть ли способ запустить эти команды в контейнере после его развертывания, используя PowerShell?

Мой вариант использования: Мне нужен SFTP-сервер в Azure, чтобы клиенты могли отправлять нам данные. Затем я опрашиваю это с помощью приложения логики.

Что я сделал: Я обнаружил, что этот шаблон подходит для моих нужд, так как проще опрашивать общий ресурс хранилища Azure.

https://github.com/Azure/azure-quickstart-templates/blob/master/201-aci-sftp-files

Моя проблема в том, что у меня несколько пользователей. Каждому нужны свое имя пользователя / пароль и собственный файловый ресурс или подкаталог в этом общем ресурсе. Я также не могу понять, как настроить несколько пользователей с помощью переменной среды. Я пытался разделить их с; Он развертывается, но сервер вообще не отвечает на запросы.

Я могу развернуть несколько контейнеров, по одному для каждого пользователя, но это не очень хорошая идея, когда число клиентов увеличивается.

1 Ответ

0 голосов
/ 17 января 2019

К сожалению, кажется, что вы не можете запустить несколько команд одновременно. См. Ограничения команды exec для ACI :

Экземпляры контейнера Azure в настоящее время поддерживают запуск одного обработать с помощью контейнера z exec, и вы не можете передать аргументы команды Например, вы не можете объединять команды как в sh -c "echo FOO && echo БАР ", или выполнить эхо FOO.

Я полагаю, что вы можете запустить команду для создания интерактивного сеанса с экземпляром контейнера для непрерывного выполнения команды после создания ACI.

Для Linux:

az container exec -g groupName -n containerName --exec-command "/bin/bash"

Для Windows:

az container exec -g groupName -n containerName --exec-command "cmd.exe"

...