amazon-ecs - 如何使用授权的 io.fabric8 maven 插件将 docker 镜像推送到 Amazon ECR

标签 amazon-ecs fabric8

我有一个创建图像的插件,创建后需要将其推送到 amazon ECR 请在下面查看我的插件`

<?xml version="1.0" encoding="UTF-8"?>
<plugin>
   <groupId>io.fabric8</groupId>
   <artifactId>docker-maven-plugin</artifactId>
   <version>0.24.0</version>
   <configuration>
      <dockerHost>https://accountID.dkr.ecr.us-east-1.amazonaws.com</dockerHost>
      <authConfig>
         <authToken>authorization Token</authToken>
         <username>Access Key ID</username>
         <password>Secret Key Id</password>
      </authConfig>
      <images>
         <image>
            <alias>service</alias>
            <name>${project.artifactId}</name>
            <build>
               <from>openjdk:8-jdk-alpine</from>
               <entryPoint>
                  <exec>
                     <arg>java</arg>
                     <arg>-jar</arg>
                     <arg>maven/app.jar</arg>
                  </exec>
               </entryPoint>
               <assembly>
                  <descriptorRef>artifact-with-dependencies</descriptorRef>
               </assembly>
            </build>
         </image>
      </images>
   </configuration>
   <executions>
      <execution>
         <id>docker-build</id>
         <goals>
            <goal>build</goal>
         </goals>
      </execution>
   </executions>
</plugin>

`

我已经尝试使用上面的插件将授权 token 作为 authtoken 。当我运行 maven build 时未获得授权。

帮助将不胜感激

谢谢, 达莫达尔

最佳答案

您可以使用 AWS ECR credential helper

请阅读文档以获取更多详细信息,但这里是使其正常工作的主要步骤:

  1. AWS 凭证已设置(例如 ~/.aws/credentials)
  2. 安装 ECR 凭证助手
  3. 调整您的 ~/.docker/config.json(对我们来说,这是第二个提到的具有特定 aws 帐户 ID 的选项)
{
  "credHelpers": {
    "accountID.dkr.ecr.us-east-1.amazonaws.com": "ecr-login"
  },
  ... (already existing stuff in my setup)
}
  1. 在执行 fabric8 maven-docker-plugin 的 shell 中使用正确的环境变量:
AWS_SDK_LOAD_CONFIG=true
AWS_PROFILE=your_aws_profile

也许您还需要将 AWS_REGION 定义为环境变量。

现在,当运行 Maven 构建时,ECR 凭证助手应该负责身份验证过程,因此可以删除问题中配置的“authConfig”部分。

关于amazon-ecs - 如何使用授权的 io.fabric8 maven 插件将 docker 镜像推送到 Amazon ECR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49378313/

相关文章:

mysql - 从 ECS Fargate WordPress 容器到 RDS MySql 的连接超时

amazon-web-services - Pulumi:如何为 CODE_DEPLOY Controller 配置 ECS 服务

amazon-web-services - 弹性云服务器 "InternalError: failed to normalize image reference"

kubernetes - Kubernetes Fabric8 API

java - Openshift 部署 F8 : Cannot access cluster for detecting mode: sun. security.validator.ValidatorException

node.js - 每个容器需要多少内存以及cpu nginx和nodejs?

amazon-web-services - AWS Fargate 部署 : "Invalid action configuration The AWS ECS container ***** does not exist"

java - 如何使用 Kubernetes 的 Fabric8 java 客户端创建 NetworkPolicy

java - com.spotify.docker.client.DockerRequestException : Request error: DELETE unix://localhost:80/v1. 12/容器/...:409