本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
自訂影像範例中的泊塢視窗 CodeBuild
以下示例通過使用和自定義 Docker 構建映像(docker:dind
在 Docker Hub 中)構建 AWS CodeBuild 和運行 Docker 映像。
要了解如何通過使用 Docker 支持提供的構建映像來 CodeBuild 構建 Docker 映像,請參閱我們的. 「將碼頭圖像發佈到 Amazon ECR '樣本
重要
執行此範例可能會導致您的 AWS 帳戶收取費用。其中包括 CodeBuild 與 Amazon S3 相關的 AWS 資源和動作以及 CloudWatch 日誌可能的費用。 AWS KMS如需詳細資訊,請參閱CodeBuild 定價
在自訂映像檔範例中執行 Docker
使用下列程序在自訂映像範例中執行 Docker。如需此範例的詳細資訊,請參閱自訂影像範例中的泊塢視窗 CodeBuild。
若要在自訂映像檔範例中執行 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
" }注意
默認情況下,Docker 守護進程為非VPC構建啟用。如果您想使用 Docker 容器進行VPC構建,請參閱 Docker 文檔網站上的運行時特權和 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"