다음 샘플은 AWS CodeBuild 및 사용자 지정 Docker 빌드 이미지(Docker Hub의 docker:dind
)를 사용하여 도커 이미지를 빌드하고 실행합니다.
대신, Docker 지원을 통해 CodeBuild에서 제공하는 빌드 이미지를 사용하여 도커 이미지를 빌드하는 방법을 알아보려면 'Amazon ECR에 Docker 이미지 게시' 샘플 섹션을 참조하세요.
중요
이 샘플을 실행하면 AWS 계정에 요금이 발생할 수 있습니다. 여기에는 CodeBuild 및 AWS 리소스에 대한 가능한 요금 및 Amazon S3, AWS KMS, CloudWatch Logs와 관련된 작업이 포함됩니다. 자세한 내용은 CodeBuild 요금
사용자 지정 이미지 샘플의 Docker 실행
다음 절차에 따라 사용자 지정 이미지 샘플에서 Docker를 실행합니다. 이 샘플에 대한 자세한 내용은 CodeBuild용 Docker 사용자 지정 이미지 샘플 섹션을 참조하세요.
사용자 지정 이미지 샘플에서 Docker를 실행하려면
-
이 주제의 디렉터리 구조 및 파일 섹션에 설명된 대로 파일을 생성한 다음, 이를 S3 입력 버킷이나 AWS CodeCommit, GitHub 또는 Bitbucket 리포지토리에 업로드합니다.
중요
은 업로드하지 말고,(root directory name)
안에 있는 파일만 업로드하십시오.(root directory name)
S3 입력 버킷을 사용하고 있는 경우, 파일을 포함하는 ZIP 파일을 생성한 다음, 이를 입력 버킷에 업로드하십시오.
을 ZIP 파일에 추가하지 말고,(root directory name)
안에 있는 파일만 추가하십시오.(root directory name)
-
빌드 프로젝트를 생성하고, 빌드를 실행하고, 관련 빌드 정보를 확인합니다.
AWS CLI를 사용하여 빌드 프로젝트를 생성하는 경우,
create-project
명령에 JSON 형식으로 입력하면 다음과 같이 표시될 수 있습니다. (자리 표시자는 사용자의 값으로 바꾸십시오.){ "name": "sample-docker-custom-image-project", "source": { "type": "S3", "location": "codebuild-
region-ID
-account-ID
-input-bucket/DockerCustomImageSample
.zip" }, "artifacts": { "type": "NO_ARTIFACTS" }, "environment": { "type": "LINUX_CONTAINER", "image": "docker:dind", "computeType": "BUILD_GENERAL1_SMALL", "privilegedMode": false }, "serviceRole": "arn:aws:iam::account-ID
:role/role-name
", "encryptionKey": "arn:aws:kms:region-ID
:account-ID
:key/key-ID
" }참고
기본적으로 비 VPC 빌드에는 Docker 데몬이 활성화됩니다. VPC 빌드에 Docker 컨테이너를 사용하려면 Docker Docs 웹 사이트의 런타임 권한 및 Linux 기능
을 참조하고 권한 부여 모드를 활성화합니다. 또한 Windows는 권한 모드를 지원하지 않습니다. -
빌드 결과를 확인하려면 빌드 로그에서
Hello, World!
문자열에 대해 찾아보십시오. 자세한 내용은 빌드 세부 정보 보기 단원을 참조하십시오.
디렉터리 구조
이 샘플에서는 다음 디렉터리 구조를 가정합니다.
(root directory name)
├── buildspec.yml
└── Dockerfile
파일
이 샘플에 사용되는 운영 체제의 기본 이미지는 Ubuntu입니다. 샘플은 이러한 파일을 사용합니다.
buildspec.yml
(
에 있음)(root directory
name)
version: 0.2
phases:
pre_build:
commands:
- docker build -t helloworld .
build:
commands:
- docker images
- docker run helloworld echo "Hello, World!"
Dockerfile
(
에 있음)(root directory
name)
FROM maven:3.3.9-jdk-8
RUN echo "Hello World"