これは v2 AWS CDK デベロッパーガイドです。旧版の CDK v1 は 2022 年 6 月 1 日にメンテナンスを開始し、2023 年 6 月 1 日にサポートを終了しました。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
を使用してコンテナイメージアセットを構築すると AWS Cloud Development Kit (AWS CDK)、 Dockerはデフォルトでこれらのアクションを実行するために使用されます。別のコンテナ管理ツールを使用する場合は、 CDK_DOCKER
環境変数Dockerを使用して を置き換えることができます。
例: を使用してコンテナイメージアセットを構築して公開する AWS CDK
以下は、Dockerデフォルトで を使用してコンテナアセットを構築して Amazon Elastic Container Registry (Amazon ECR) に発行する AWS CDK アプリケーションの簡単な例です。
プロジェクト構造:
my-cdk-app/ ├── lib/ │ ├── my-stack.ts │ └── docker/ │ ├── Dockerfile │ └── app/ │ └── index.js ├── bin/ │ └── my-cdk-app.ts ├── package.json ├── tsconfig.json └── cdk.json
Dockerfile:
FROM public.ecr.aws/lambda/nodejs:16
# Copy application code
COPY app/ /var/task/
# (Optional) Install dependencies
# RUN npm install
# The AWS Lambda Node.js base image looks for index.handler by default
アプリケーションコード:
lib/docker/app/index.js
に作成
console.log("Hello from inside the container!");
CDK スタック:
import * as cdk from 'aws-cdk-lib';
import { Construct } from 'constructs';
import * as ecr_assets from 'aws-cdk-lib/aws-ecr-assets';
export class MyStack extends cdk.Stack {
constructor(scope: Construct, id: string) {
super(scope, id);
// Define a Docker image asset
const dockerImageAsset = new ecr_assets.DockerImageAsset(this, 'MyDockerImage', {
directory: 'lib/docker', // Path to the directory containing the Dockerfile
});
// Output the ECR URI
new cdk.CfnOutput(this, 'ECRImageUri', {
value: dockerImageAsset.imageUri,
});
}
}
CDK アプリ:
#!/usr/bin/env node
import * as cdk from 'aws-cdk-lib';
import { MyStack } from '../lib/my-stack';
const app = new cdk.App();
new MyStack(app, 'MyStack');
を実行するとcdk deploy
、コマンドラインインターフェイス (CLI) AWS Cloud Development Kit (AWS CDK) は次の処理を行います。
-
Docker イメージの構築 – 指定されたディレクトリ () の に基づいて
docker build
ローカルDockerfile
で を実行しますlib/docker
。 -
イメージにタグを付ける –
docker tag
を実行して、イメージの内容に基づいてビルドされたイメージに一意のハッシュでタグ付けします。 -
Amazon ECR に発行 –
docker push
を実行して、コンテナイメージを Amazon ECR リポジトリに発行します。このリポジトリは既に存在している必要があります。これは、デフォルトのブートストラッププロセス中に作成されます。 -
イメージ URI の出力 – デプロイが成功すると、発行されたコンテナイメージの Amazon ECR URI がコマンドプロンプトに出力されます。これは Amazon ECR のDockerイメージの URI です。
を別のコンテナ管理ツールDockerに置き換える方法
CDK_DOCKER
環境変数を使用して、代替コンテナ管理ツールのバイナリへのパスを指定します。を Dockerに置き換える例を次に示しますFinch。
$ which finch
/usr/local/bin/finch # Locate the path to the binary
$ export CDK_DOCKER='/usr/local/bin/finch' # Set the environment variable
$ cdk deploy # Deploy using the replacement
エイリアスまたはリンクはサポートされていません。を置き換えるにはDocker、 CDK_DOCKER
環境変数を使用する必要があります。
サポートされているDockerドロップイン交換エンジン
Finch はサポートされていますが、使用できないDocker機能や、ツールの進化に応じて動作が異なる機能がある場合があります。Finch の詳細については、AWS オープンソースブログの「Ready for Flight: Announcing Finch 1.0 GA!
他のコンテナ管理ツールが機能する場合があります。CDK は、サポートされているかどうかを判断するために使用しているDocker置換を確認しません。ツールに同等のDockerコマンドがあり、同様に動作する場合は、機能する必要があります。