Azure экземпляр контейнера выполнить команду bash - PullRequest
0 голосов
/ 18 февраля 2020

Я запускаю приложение R Shiny внутри контейнера в Azure Экземпляре контейнера. С помощью конвейера DevOps всякий раз, когда я изменяю исходный код своего приложения, я воссоздаю контейнер в конвейере сборки и обновляю экземпляр контейнера с помощью команды Azure Cli в линии выпуска с помощью az container create и az container restart.

После его вращения мне нужно выполнить команду bash, а именно, автоматически настроить файл в созданном контейнере. В локальном Docker это будет

docker exec {containerName} /bin/bash -c "echo `"var1 = \`"val1`"`" >> /home/shiny/.Renviron"

Это означает: выполните команду bash в контейнере, чтобы вывести sh некоторый текст в файл .Renviron внутри контейнера.

Теперь экземпляр контейнера Azure говорит, что вы не можете передавать аргументы команды для az container exec: https://docs.microsoft.com/en-us/azure/container-instances/container-instances-exec

Как бы вы тогда работали в автоматическом процессе сборки / выпуска в Azure go для сборки, выпуска и настройки контейнера?

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

Заранее большое спасибо за помощь.

1 Ответ

0 голосов
/ 21 февраля 2020

Я очень плохо знаком с azure экземплярами контейнеров, поэтому, возможно, я не понимаю ваших целей, но мне кажется, что это еще один способ достичь этого:

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

может изменить ваши параметры при создании контейнера, используя флаг --command-line, упомянутый здесь . Что-то вроде

az container create -g MyResourceGroup --name myapp --image myimage:latest --command-line "/bin/sh -c '/path to/myscript.sh val1 val2'"

, в котором myscript.sh запускает ваше приложение с указанными значениями.

...