Не могу увидеть результаты команды cat в контейнере - PullRequest
0 голосов
/ 03 ноября 2019

Я пишу сценарий brigade.js , чтобы войти в кластер Azure kubernetes и затем извлечь теги изображения из acr (реестр контейнера Azure). Код для этого выглядит следующим образом:


var job = new Job("fetch-tag", "microsoft/azure-cli") // pulling img -> microsoft/azure-cli
    job.storage.enabled = true // enables a shared storage b/w different jobs
    job.tasks = [ // list of tasks to be performed or rather the commands to run in the pulled image
      `az login --service-principal -u ${project.secrets.azure_client_id} -p ${project.secrets.azure_client_secret} --tenant ${project.secrets.azure_tenant_id} 2>&1`, // logging into auzre kubernetes cluster
      `az acr repository show-tags -n nxvishal --repository tests | grep -E '\b[0-9]\.[0-9]\.[0-9]' -o | tail -1 > /mnt/brigade/share/image_version.txt`, // pulling the tags of tests repo, applying some regex to fiter out unwanted tags and use tail to get one tag from last
      "cat /mnt/brigade/share/image_version.txt 2>&1", // here comes the problem, it doesn't show any output
      "az account show" // shows if i logged in correctly ( and yes i get output for this which is my details which shows I am logged in and code has reached till here) 
    ]
job.run();

Итак, я вытащил одно и то же изображение вручную (microsoft / azure-cli) и попробовал те же команды

`${project.secrets.azure_client_id} -p ${project.secrets.azure_client_secret} --tenant ${project.secrets.azure_tenant_id} 2>&1`, // I didn't forgot to replace the secrets with appropriate string
`az acr repository show-tags -n nxvishal --repository tests | grep -E '\b[0-9]\.[0-9]\.[0-9]' -o | tail -1

Он показывает вывод, что составляет 0,0,4 в этом случае. Но я не получаю вывод, когда делаю то же самое с brigade.js

1 Ответ

0 голосов
/ 04 ноября 2019

В соответствии с описанием ваших требований, вы хотите получить последний из тегов, которые соответствуют вашему шаблону.

Во-первых, вам нужно знать вывод команды az acr repository show-tags -n nxvishal --repository tests | grep -E '\b[0-9]\.[0-9]\.[0-9]' -o. С тестом, думаю, вам нужно отменить параметр -o. Таким образом, результат будет выглядеть так:

enter image description here

Затем вы можете выбрать последний, но он будет содержать запятую.

Наконец, вся команда здесь:

az acr repository show-tags -n nxvishal --repository tests | grep -E '\b[0-9]\.[0-9]\.[0-9]' | tail -1
...