在 Azure 中,我们尝试使用带有准备好的 YAML 的 Azure 容器实例来创建容器。在我们执行 az container create 命令的机器上,我们可以在输入密码后成功登录到我们的私有注册表(例如 JFrog Artifactory 上的 fa-docker-snapshot-local.docker.comp.dev),我们可以docker 也拉它
docker login fa-docker-snapshot-local.docker.comp.dev -u svc-faselect
Login succeeded
这样我们就可以成功拉取了,图片路径和手动docker pull一样:
image: fa-docker-snapshot-local.docker.comp.dev/fa/ads:test1
我们有用于部署的 YAML 文件,并尝试使用来自同一服务器的 az 命令创建容器。在 YAML 文件中我们设置了相同的注册表信息:服务器、用户名和密码以及相同的图像
az container create --resource-group FRONT-SELECT-NA2 --file ads-azure.yaml
当我们尝试执行此命令时,需要 30 分钟,然后显示该消息:“部署失败。操作失败,状态为 200:资源状态失败”
完整的 Yaml:
apiVersion: '2019-12-01'
location: eastus2
name: ads-test-group
properties:
containers:
- name: front-arena-ads-test
properties:
image: fa-docker-snapshot-local.docker.comp.dev/fa/ads:test1
environmentVariables:
- name: 'DBTYPE'
value: 'odbc'
command:
- /opt/front/arena/sbin/ads_start
- ads_start
- '-unicode'
- '-db_server test01'
- '-db_name HEDGE2_ADM_Test1'
- '-db_user sqldbadmin'
- '-db_password pass'
- '-db_client_user HEDGE2_ADM_Test1'
- '-db_client_password Password55'
ports:
- port: 9000
protocol: TCP
resources:
requests:
cpu: 1.0
memoryInGB: 4
volumeMounts:
- mountPath: /opt/front/arena/host
name: ads-filesharevolume
imageRegistryCredentials: # Credentials to pull a private image
- server: fa-docker-snapshot-local.docker.comp.dev
username: svcacct-faselect
password: test
ipAddress:
type: Private
ports:
- protocol: tcp
port: '9000'
volumes:
- name: ads-filesharevolume
azureFile:
sharename: azurecontainershare
storageAccountName: frontarenastorage
storageAccountKey: kdUDK97MEB308N=
networkProfile:
id: /subscriptions/746feu-1537-1007-b705-0f895fc0f7ea/resourceGroups/SELECT-NA2/providers/Microsoft.Network/networkProfiles/fa-aci-test-networkProfile
osType: Linux
restartPolicy: Always
tags: null
type: Microsoft.ContainerInstance/containerGroups
你能帮我们解释一下为什么会出现这个错误吗? 谢谢
答案 0 :(得分:1)
据我所知,你的 YAML 文件没有问题,我只能给你一些可能的原因。
'9000' into
9000`` 更改,我的意思是删除双引号;