只要是使用任何能建構容器映像檔的工具所建構,且遵守容器合約的容器映像檔,Knative Serving 就會接受。特別是,您的程式碼必須在 PORT
環境變數所定義的連接埠監聽 HTTP 要求。Knative serving 會自動將這個 PORT
環境變數注入容器。
本頁說明幾種建構容器映像檔的方式:
- 使用 Dockerfile
- 使用 Buildpacks
使用 Dockerfile 建構
如果您使用 Dockerfile,可以透過下列任一方法建構:
- 使用 Cloud Build 建構
- 使用 Docker 在本機建構
使用 Cloud Build 進行建構
如要在 Google Cloud上建構映像檔,請按照下列步驟操作:
前往含有來源和 Dockerfile 的資料夾。
執行下列指令:
gcloud builds submit --tag IMAGE_URL
將 IMAGE_URL 替換為容器映像檔的參照,例如
gcr.io/cloudrun/hello
。
如需詳細的 Cloud Build 操作說明,請參閱「部署至 Knative serving」。
如要瞭解改善建構成效的秘訣,請參閱「加速版本建構」
在本機建構並使用 Docker 推送
如果您已在本機安裝 Docker,則可使用 docker build
來取代使用 Cloud Build 或 Buildpacks。
使用 Docker 將來源建構到容器映像檔 (「容器化」) 之前,您必須備妥 Dockerfile 和來源。下列操作說明使用 Container Registry 做為映像檔登錄檔。
如何使用 Docker 建構容器映像檔:
前往含有來源和
Dockerfile
的資料夾。執行下列指令:
docker build . --tag IMAGE_URL
將 IMAGE_URL 替換為容器映像檔的參照,例如
gcr.io/cloudrun/hello
。如果您尚未設定 Docker 使用 Google Cloud CLI 對 Container Registry 驗證要求,請現在就使用指令進行設定:
gcloud auth configure-docker
您必須這樣做,才能使用 Docker 推送或提取映像檔:這項操作只需要執行一次。
將容器映像檔推送到 Container Registry:
docker push IMAGE_URL
將 IMAGE_URL 替換為容器映像檔的參照,例如
gcr.io/cloudrun/hello
。
如要將本機檔案排除在這個程序之外,請按照 .dockerignore
設定檔的操作說明進行。
使用 Buildpacks 建構
如要瞭解 Buildpack 的完整資訊,請參閱 Buildpacks 網站。Google 提供一組與 CNCF 相容的建構包,可將原始碼建構為容器映像檔,以便在 Google Cloud 容器平台 (包括 Knative 服務) 上執行。
目前支援的平台如下:
- Go
- Node.js
- Python
- Java
- .NET Core
使用 Cloud Build 和 Buildpacks 建構
如要使用 Buildpack 建構:
前往含有來源的資料夾。
執行下列指令:
gcloud builds submit --pack image=IMAGE_URL
將 IMAGE_URL 替換為容器映像檔網址,例如
gcr.io/myproject/myservice
。等待建構作業完成。
使用 pack
指令列透過 Buildpack 建構
如要使用 pack 指令建構:
如果尚未安裝 Docker,請先安裝。
如果您尚未設定 Docker 使用 Google Cloud CLI 對 Container Registry 驗證要求,請現在就使用指令進行設定:
gcloud auth configure-docker
您必須這樣做,才能使用 Docker 推送或提取映像檔:這項操作只需要執行一次。
如果尚未安裝
pack
,請先安裝。前往含有來源的資料夾。
執行下列指令,建構並推送至 Container Registry:
pack build --publish IMAGE_URL
將 IMAGE_URL 替換為容器映像檔的參照,例如
gcr.io/cloudrun/hello
。等待
pack
完成。
詳情請參閱「建構應用程式」一節的說明。
後續步驟
如要進一步瞭解將容器成功部署到 Knative 服務時所需遵守的合約,請參閱容器合約。
如要將您建構的容器部署到 Knative serving,請參閱「部署服務」。
如要使用 Cloud Build Triggers 自動執行 Knative 服務的建構和部署作業,請設定持續部署。