我正在使用AWS Batch,并且我的Docker映像托管在私有Nexus存储库中。我正在尝试创建作业定义,但找不到像在ECS中使用任务定义那样指定回购凭证的方法。
我试图像这样在Json中手动指定它:
{
"command": ["aws", "s3", "ls"],
"image": "nexus-docker-repo.xxxxx.xxx/my-image",
"memory": 1024,
"vcpus": 1,
"repositoryCredentials": {
"credentialsParameter": "ARN_OF_CREDENTIALS"
},
"jobRoleArn" : "ARN_OF_THE_JOB"
}
但是当我应用更改时,参数passwordParameter被删除了。我认为不支持。
那么如何使用AWS Batch从私有存储库中提取图像?有可能吗?
谢谢。
答案 0 :(得分:1)
我在批处理作业定义中都没有看到选项repositoryCredentials
。
一个安全选项可能是
答案 1 :(得分:0)
好的,我可以通过修改文件/etc/ecs/ecs.config
来做到这一点。如果文件不存在,则必须创建它。
然后我必须在该文件中添加这两行:
ECS_ENGINE_AUTH_TYPE=docker
ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"username":"admin","password":"admin","email":"admin@example.com "}}
然后我必须重新启动ECS代理:
sudo systemctl restart ecs ## for the Amazon ECS-optimized Amazon Linux 2 AMI
Or
sudo stop ecs && sudo start ecs ## for For the Amazon ECS-optimized Amazon Linux AMI