首页 > 解决方案 > 如何使用 AWS Batch 从私有存储库中提取 Docker 映像?

问题描述

我正在使用 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"
}

但是当我应用更改时,参数 credentialsParameter 被删除。我认为它不受支持。

那么如何使用 AWS Batch 从私有存储库中提取图像?可能吗 ?

谢谢你。

标签: amazon-web-servicesdockeraws-batch

解决方案


repositoryCredentials我在批处理作业定义中也没有看到该选项。

一个安全的选择可能是

  1. 为docker login生成 config.json
  2. 将该文件放入 s3
  3. 生成有权访问该文件的 IAM 角色。
  4. 使用启动模板和用户数据创建计算环境以下载 config.json
  5. 使用该计算环境运行作业。

推荐阅读