v AWS CDK 2 개발자 안내서입니다. 이전 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
를 실행하면 AWS Cloud Development Kit (AWS CDK) 명령줄 인터페이스(CLI)가 다음을 수행합니다.
-
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
별칭 지정 또는 연결은 지원되지 않습니다. 를 바꾸려면 CDK_DOCKER
환경 변수를 사용해야 Docker합니다.
지원되는 Docker 드롭인 대체 엔진
Finch는 지원되지 않지만 일부 Docker 기능은 사용할 수 없거나 도구가 발전함에 따라 다르게 작동할 수 있습니다. Finch에 대한 자세한 내용은 AWS 오픈 소스 블로그의 비행 준비 완료: Finch 1.0 GA! 발표
다른 컨테이너 관리 도구가 작동할 수 있습니다. CDK는 지원되는지 확인하기 위해 어떤 Docker 대체를 사용하고 있는지 확인하지 않습니다. 도구에 동등한 Docker 명령이 있고 비슷하게 동작하는 경우 작동해야 합니다.