如何使用授权的 io.fabric8 maven 插件将 docker 图像推送到 Amazon ECR
How to push docker image to Amazon ECR using io.fabric8 maven plugin with authorization
我有一个创建图像的插件,创建后需要将其推送到亚马逊 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>
`
我已经尝试使用上面的插件将授权令牌作为 authtoken 。当我 运行 maven 构建未获得授权时。
帮助将不胜感激
谢谢,
达莫达尔
您可以使用 AWS ECR credential helper
请阅读文档以获取更多详细信息,但这里是使其正常工作的主要步骤:
- AWS 凭据已设置(例如 ~/.aws/credentials)
- 安装 ECR 凭证助手
- 调整您的 ~/.docker/config.json(对我们来说,它是第二个提到的具有特定 aws 帐户 ID 的选项)
{
"credHelpers": {
"accountID.dkr.ecr.us-east-1.amazonaws.com": "ecr-login"
},
... (already existing stuff in my setup)
}
- 在执行fabric8 maven-docker-插件的shell中使用正确的环境变量:
AWS_SDK_LOAD_CONFIG=true
AWS_PROFILE=your_aws_profile
也许您还需要将 AWS_REGION 定义为环境变量。
现在,当 运行 maven 构建时,ECR 凭证助手应该负责身份验证过程,因此可以删除问题中配置的 "authConfig" 部分。
我有一个创建图像的插件,创建后需要将其推送到亚马逊 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>
`
我已经尝试使用上面的插件将授权令牌作为 authtoken 。当我 运行 maven 构建未获得授权时。
帮助将不胜感激
谢谢, 达莫达尔
您可以使用 AWS ECR credential helper
请阅读文档以获取更多详细信息,但这里是使其正常工作的主要步骤:
- AWS 凭据已设置(例如 ~/.aws/credentials)
- 安装 ECR 凭证助手
- 调整您的 ~/.docker/config.json(对我们来说,它是第二个提到的具有特定 aws 帐户 ID 的选项)
{
"credHelpers": {
"accountID.dkr.ecr.us-east-1.amazonaws.com": "ecr-login"
},
... (already existing stuff in my setup)
}
- 在执行fabric8 maven-docker-插件的shell中使用正确的环境变量:
AWS_SDK_LOAD_CONFIG=true
AWS_PROFILE=your_aws_profile
也许您还需要将 AWS_REGION 定义为环境变量。
现在,当 运行 maven 构建时,ECR 凭证助手应该负责身份验证过程,因此可以删除问题中配置的 "authConfig" 部分。