как использовать узел Azure SDK для создания контейнера с частным образом ACR Azure - PullRequest
0 голосов
/ 27 июня 2018

У меня есть следующий фрагмент кода, пытающийся создать экземпляр контейнера Azure с частным образом ACR с использованием узла Azure sdk.

            let container = new client.models.Container();
            let acrcredentials = new client.models.ImageRegistryCredential();
            acrcredentials.server = '<acrreponame>.azurecr.io';
            acrcredentials.username = 'username';
            acrcredentials.password = 'password';
            acrcredentials.password = 'password';
            console.log('Launching a container for client', client);

            container.name = 'testcontainer';
            container.environmentVariables = [
                {
                    name: 'SOME_ENV_VAR',
                    value: 'test'
                }
            ];
            container.image = '<acrreponame>.azurecr.io/<image>:<tag>';
            container.ports = [{port: 80}];
            container.resources = {
                requests: {
                    cpu: 1,
                    memoryInGB: 1
                }
            };
            container.imageRegistryCredentials = acrcredentials;
            console.log('Provisioning a container', container);

            client.containerGroups.createOrUpdate(group, containerGroup,
                {
                    containers: [container],
                    osType: 'linux',
                    location: 'eastus',
                    restartPolicy: 'never'
                }
            ).then((r) => {
                console.log('Launched:', r);
            }).catch((r) => {
                console.log('Finished up with error', r);
            });

Это дает мне ошибку ниже:

  code: 'InaccessibleImage',
  body: 
   { code: 'InaccessibleImage',
     message: 'The image \'<acrreponame>.azurecr.io/<image>:<tag>\' in container group \'testgroup\' is not accessible. Please check the image and registry credential.' } 
   }

1 Ответ

0 голосов
/ 02 августа 2018

Вы должны создать группу контейнеров, поэтому вам нужно установить imageRegistryCredentials в методе createOrUpdate. Контейнер не имеет свойства imageRegistryCredentials.

Удалить недействительно container.imageRegistryCredentials = acrcredentials;.

И добавить imageRegistryCredentials:[acrcredentials], к createOrUpdate.

{
      containers: [container],
      imageRegistryCredentials:[acrcredentials],
      osType: 'linux',
      location: 'eastus',
      restartPolicy: 'never'
}
...