本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
CodeBuild 的 Docker 映像建置伺服器範例
下列範例會將 Docker 組建卸載至受管映像組建伺服器。您可以調整此範例,在 CodeBuild 專案組態中佈建專用且受管的 Docker 映像建置伺服器。請注意,在為專案主動執行組建時,佈建的執行個體處於作用中狀態,而當組建未執行時,執行個體會停止。佈建的執行個體在回收前會儲存長達一個月。如需詳細資訊,請參閱 CodeBuild Docker 伺服器功能
重要
執行此範例可能會導致 AWS 您的帳戶產生費用。這包括 CodeBuild 和與 Amazon S3 相關的 AWS 資源和動作 AWS KMS,以及 CloudWatch Logs 的可能費用。如需詳細資訊,請參閱 CodeBuild 定價
設定 Docker 伺服器
使用下列程序為管理 Docker 工作負載和存放 Docker 映像層的 CodeBuild 專案佈建專用運算環境。
設定 Docker 伺服器
-
如本主題的 目錄結構和 檔案章節所述建立檔案,然後將其上傳至 S3 輸入儲存貯體或 AWS CodeCommit、GitHub 或 Bitbucket 儲存庫。
重要
請勿上傳
,僅上傳(root directory name)
內的檔案即可。(root directory name)
如果您使用的是 S3 輸入儲存貯體,請務必建立包含這些檔案的 ZIP 檔案,然後將其上傳至輸入儲存貯體。請勿將
新增至 ZIP 檔案,僅新增(root directory name)
內的檔案即可。(root directory name)
-
建立組建專案、執行組建,以及檢視相關的組建資訊:
-
在主控台的環境區段中,選擇其他組態,導覽至 Docker 伺服器組態,然後選取為此專案啟用 Docker 伺服器。然後,您可以選擇 Docker 伺服器運算類型並提供登錄檔登入資料。
-
如果您使用 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 上的輸入。
-
-
若要查看組建結果,請在組建的日誌中尋找
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"