

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 第 3 步：创建应用程序映像并将 Docker 文件上传到 Amazon ECR 存储库
<a name="EKS-tutorial-step3"></a>

在此步骤中，需要编译示例应用程序，构建 Docker 映像，然后将该映像推送到 Amazon ECR 存储库。

**构建应用程序，构建 Docker 映像，然后将其提交到 Amazon Elastic Container Registry**

1. 为用于定义您 AWS 区域的内部版本设置环境变量。请将示例中的区域替换为您自己的区域。

   ```
   export CASSANDRA_HOST=cassandra.us-east-1.amazonaws.com:9142
   export CASSANDRA_DC=us-east-1
   ```

1. 使用以下命令，通过 Apache Maven 3.6.3 或更高版本编译应用程序。

   ```
   mvn clean install
   ```

   这将创建 `JAR` 文件，其所有依赖项都包含在 `target` 目录中。

1. 使用以下命令检索下一步所需的 ECR 存储库 URI。请务必将区域更新为您一直在使用的区域。

   ```
   aws ecr describe-repositories --region us-east-1
   ```

   输出应与以下示例类似。

   ```
   "repositories": [
    {
    "repositoryArn": "arn:aws:ecr:us-east-1:111122223333:repository/my-ecr-repository",
    "registryId": "111122223333",
    "repositoryName": "my-ecr-repository",
    "repositoryUri": "111122223333.dkr.ecr.us-east-1.amazonaws.com/my-ecr-repository",
    "createdAt": "2023-11-02T03:46:34+00:00",
    "imageTagMutability": "MUTABLE",
    "imageScanningConfiguration": {
    "scanOnPush": false
    },
    "encryptionConfiguration": {
    "encryptionType": "AES256"
    }
    },
   ```

1. 使用上一步中的存储库 URI 从应用程序的根目录构建 Docker 映像。根据需要修改 Docker 文件。在构建命令中，请务必替换您的账户 ID，并将设置为 Amazon ECR 存储库`my-ecr-repository`所在的区域。 AWS 区域 

   ```
   docker build -t 111122223333.dkr.ecr.us-east-1.amazonaws.com/my-ecr-repository:latest .
   ```

1. 检索身份验证令牌，将 Docker 映像推送到 Amazon ECR。可使用以下命令执行此操作。

   ```
   aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 111122223333.dkr.ecr.us-east-1.amazonaws.com
   ```

1. 首先，检查 Amazon ECR 存储库中的现有映像。您可使用以下命令。

   ```
   aws ecr describe-images --repository-name my-ecr-repository --region us-east-1
   ```

   然后，将 Docker 映像推送到存储库。您可使用以下命令。

   ```
   docker push 111122223333.dkr.ecr.us-east-1.amazonaws.com/my-ecr-repository:latest
   ```