自訂影像範例中的泊塢視窗 CodeBuild - AWS CodeBuild

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

自訂影像範例中的泊塢視窗 CodeBuild

以下示例通過使用和自定義 Docker 構建映像(docker:dind在 Docker Hub 中)構建 AWS CodeBuild 和運行 Docker 映像。

要了解如何通過使用 Docker 支持提供的構建映像來 CodeBuild 構建 Docker 映像,請參閱我們的. 「將碼頭圖像發佈到 Amazon ECR '樣本

重要

執行此範例可能會導致您的 AWS 帳戶收取費用。其中包括 CodeBuild 與 Amazon S3 相關的 AWS 資源和動作以及 CloudWatch 日誌可能的費用。 AWS KMS如需詳細資訊,請參閱CodeBuild 定價Amazon S3 定AWS Key Management Service價、定價Amazon CloudWatch 定價

在自訂映像檔範例中執行 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. 建立組建專案、執行組建,以及檢視相關的組建資訊。

    如果您使用 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" }
    注意

    默認情況下,Docker 守護進程為非VPC構建啟用。如果您想使用 Docker 容器進行VPC構建,請參閱 Docker 文檔網站上的運行時特權和 Linux 功能並啟用特權模式。此外,Windows 不支援特殊權限模式。

  3. 若要查看組建結果,請在組建的日誌中尋找 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"