CodeBuild용 Docker 이미지 빌드 서버 샘플 - AWS CodeBuild

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

CodeBuild용 Docker 이미지 빌드 서버 샘플

다음 샘플은 Docker 빌드를 관리형 이미지 빌드 서버로 오프로드합니다. 이 샘플을 조정하여 CodeBuild 프로젝트 구성에서 전용 관리형 Docker 이미지 빌드 서버를 프로비저닝할 수 있습니다. 프로젝트에 대해 빌드가 적극적으로 실행되는 동안 프로비저닝된 인스턴스가 활성화되고 빌드가 실행되지 않으면 인스턴스가 중지됩니다. 프로비저닝된 인스턴스는 재활용되기 전에 최대 1개월 동안 저장됩니다. 자세한 내용은 CodeBuild Docker Server 기능을 참조하세요.

중요

이 샘플을 실행하면 AWS 계정에 요금이 부과될 수 있습니다. 여기에는 CodeBuild와 Amazon S3 및 CloudWatch Logs와 관련된 AWS 리소스 AWS KMS및 작업에 대해 발생할 수 있는 요금이 포함됩니다. 자세한 내용은 CodeBuild 요금, Amazon S3 요금, AWS Key Management Service 요금Amazon CloudWatch 요금을 참조하세요.

Docker 서버 구성

다음 절차에 따라 Docker 워크로드를 관리하고 Docker 이미지 계층을 저장하는 CodeBuild 프로젝트에 전용 컴퓨팅 환경을 프로비저닝합니다.

Docker 서버를 구성하려면
  1. 이 주제의 디렉터리 구조파일 섹션에 설명된 대로 파일을 생성한 다음 S3 입력 버킷 또는 AWS CodeCommit, GitHub 또는 Bitbucket 리포지토리에 업로드합니다.

    중요

    (root directory name)은 업로드하지 말고, (root directory name) 안에 있는 파일만 업로드하십시오.

    S3 입력 버킷을 사용하고 있는 경우, 파일을 포함하는 ZIP 파일을 생성한 다음, 이를 입력 버킷에 업로드하십시오. (root directory name)을 ZIP 파일에 추가하지 말고, (root directory name) 안에 있는 파일만 추가하십시오.

  2. 빌드 프로젝트를 생성하고, 빌드를 실행하고, 관련 빌드 정보를 봅니다.

    1. 콘솔의 환경 섹션에서 추가 구성을 선택하고 Docker 서버 구성으로 이동한 다음 이 프로젝트에 대해 Docker 서버 활성화를 선택합니다. 그런 다음 Docker 서버 컴퓨팅 유형을 선택하고 레지스트리 자격 증명을 제공할 수 있습니다.

    2. AWS CLI 를 사용하여 빌드 프로젝트를 생성하는 경우 create-project 명령에 대한 JSON 형식의 입력은 이와 비슷할 수 있습니다. (자리 표시자는 사용자의 값으로 바꾸십시오.)

      { "name": "sample-docker-custom-image-project", "source": { "type": "S3", "location": "codebuild-region-ID-account-ID-input-bucket/DockerServerSample.zip" }, "artifacts": { "type": "NO_ARTIFACTS" }, "environment": { "type": "LINUX_CONTAINER", "image": "aws/codebuild/amazonlinux-x86_64-standard:5.0", "computeType": "BUILD_GENERAL1_LARGE", "dockerServer": [ { "computeType": "BUILD_GENERAL1_LARGE", "securityGroupIds": [ "security-groups-ID" ] } ] }, "serviceRole": "arn:aws:iam::account-ID:role/role-name" }
      참고

      Docker 서버에 대해 구성된 보안 그룹은 프로젝트에 구성된 VPC의 수신 네트워크 트래픽을 허용해야 합니다. 포트 9876에서 수신을 허용해야 합니다.

  3. 빌드 결과를 확인하려면 빌드 로그에서 Hello, World! 문자열에 대해 찾아보십시오. 자세한 내용은 빌드 세부 정보 보기 단원을 참조하십시오.

디렉터리 구조

이 샘플에서는 다음 디렉터리 구조를 가정합니다.

(root directory name) ├── buildspec.yml └── Dockerfile

파일

이 샘플에 사용되는 운영 체제의 기본 이미지는 Ubuntu입니다. 샘플은 이러한 파일을 사용합니다.

buildspec.yml((root directory name)에 있음)

version: 0.2 phases: build: commands: - docker buildx build . - docker run helloworld echo "Hello, World!"

Dockerfile((root directory name)에 있음)

FROM public.ecr.aws/amazonlinux/amazonlinux:latest RUN echo "Hello World"