本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
CodeBuild 自訂映像範例中的 Docker
下列範例會使用 和自訂 Docker 建置映像 (docker:dind在 Docker Hub 中) 來建置 AWS CodeBuild 和執行 Docker 映像。
若要了解如何使用 CodeBuild 提供的建置映像搭配 Docker 支援來建置 Docker 映像,請參閱我們的 「將 Docker 映像發佈至 Amazon ECR」範例。
重要
執行此範例可能會導致 AWS 您的帳戶產生費用。這包括 CodeBuild 和與 Amazon S3 相關的 AWS 資源和動作 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 協助程式。如果您想要使用 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"