

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# コンテナイメージの構築、タグ付け、プッシュ
<a name="containers-build-push"></a>

フリートで使用されるプロセッサアーキテクチャのイメージを構築します。Docker ソフトウェアアドオンを使用する Linux サービスマネージドフリートは、 `linux/amd64`プラットフォームを使用します。各イメージバージョンに、アプリケーションバージョンやソースリビジョンなど、コンテンツを識別するタグを付けます。

## 前提条件
<a name="containers-build-prerequisites"></a>

ワークステーション AWS CLI に Dockerと をインストールします。Amazon ECR プライベートリポジトリを作成し、そのリポジトリにイメージをプッシュするアクセス許可を持つ AWS 認証情報を設定します。

## イメージを構築してプッシュする
<a name="containers-build-procedure"></a>

**コンテナイメージを構築してプッシュするには**

1.  AWS アカウント、リージョン、リポジトリ、イメージタグの値を設定します。

   ```
   REGION={{us-west-2}}
   ACCOUNT_ID={{123456789012}}
   REPOSITORY={{portable-job}}
   IMAGE_TAG={{1.0.0}}
   REGISTRY="${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com"
   IMAGE_URI="${REGISTRY}/${REPOSITORY}:${IMAGE_TAG}"
   ```

1. Dockerfile を含むディレクトリから、イメージを構築します。

   ```
   docker build --platform linux/amd64 \
       --tag "${REPOSITORY}:${IMAGE_TAG}" \
       .
   ```

1. アプリケーション固有のコマンドを実行して、イメージをローカルでテストします。

   ```
   docker run --rm "${REPOSITORY}:${IMAGE_TAG}" {{test-command}}
   ```

1. プライベート Amazon ECR レジストリDockerに対して認証します。

   ```
   aws ecr get-login-password --region "${REGION}" | \
       docker login --username AWS --password-stdin "${REGISTRY}"
   ```

1. Amazon ECR イメージタグを適用し、イメージをプッシュします。

   ```
   docker tag "${REPOSITORY}:${IMAGE_TAG}" "${IMAGE_URI}"
   docker push "${IMAGE_URI}"
   ```

1. イメージダイジェストを取得し、ビルド出力に記録します。

   ```
   aws ecr describe-images \
       --region "${REGION}" \
       --repository-name "${REPOSITORY}" \
       --image-ids imageTag="${IMAGE_TAG}" \
       --query 'imageDetails[0].imageDigest' \
       --output text
   ```

反復可能なジョブには、固定バージョンのタグまたはイメージダイジェストを使用します。などの可変タグは、セッション間で異なるイメージコンテンツに解決`latest`できます。