

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 步驟 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
   ```

   這會建立包含 `target`目錄中所有相依性`JAR`的檔案。

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，並將 設定為 `my-ecr-repository` Amazon ECR 儲存庫所在的 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
   ```