建構容器

只要是使用任何能建構容器映像檔的工具所建構,且遵守容器合約的容器映像檔,Knative Serving 就會接受。特別是,您的程式碼必須在 PORT 環境變數所定義的連接埠監聽 HTTP 要求。Knative serving 會自動將這個 PORT 環境變數注入容器。

本頁說明幾種建構容器映像檔的方式:

  • 使用 Dockerfile
  • 使用 Buildpacks

使用 Dockerfile 建構

如果您使用 Dockerfile,可以透過下列任一方法建構:

  • 使用 Cloud Build 建構
  • 使用 Docker 在本機建構

使用 Cloud Build 進行建構

如要在 Google Cloud上建構映像檔,請按照下列步驟操作:

  1. 前往含有來源和 Dockerfile 的資料夾。

  2. 執行下列指令:

    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 建構容器映像檔:

  1. 前往含有來源和 Dockerfile 的資料夾。

  2. 執行下列指令:

    docker build . --tag IMAGE_URL

    IMAGE_URL 替換為容器映像檔的參照,例如 gcr.io/cloudrun/hello

  3. 如果您尚未設定 Docker 使用 Google Cloud CLI 對 Container Registry 驗證要求,請現在就使用指令進行設定:

    gcloud auth configure-docker

    您必須這樣做,才能使用 Docker 推送或提取映像檔:這項操作只需要執行一次。

  4. 將容器映像檔推送到 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 建構:

  1. 前往含有來源的資料夾。

  2. 執行下列指令:

    gcloud builds submit --pack image=IMAGE_URL

    IMAGE_URL 替換為容器映像檔網址,例如 gcr.io/myproject/myservice

  3. 等待建構作業完成。

使用 pack 指令列透過 Buildpack 建構

如要使用 pack 指令建構:

  1. 如果尚未安裝 Docker,請先安裝

  2. 如果您尚未設定 Docker 使用 Google Cloud CLI 對 Container Registry 驗證要求,請現在就使用指令進行設定:

    gcloud auth configure-docker

    您必須這樣做,才能使用 Docker 推送或提取映像檔:這項操作只需要執行一次。

  3. 如果尚未安裝 pack,請先安裝

  4. 前往含有來源的資料夾。

  5. 執行下列指令,建構並推送至 Container Registry:

    pack build --publish IMAGE_URL

    IMAGE_URL 替換為容器映像檔的參照,例如 gcr.io/cloudrun/hello

  6. 等待 pack 完成。

詳情請參閱「建構應用程式」一節的說明。

後續步驟

  • 如要進一步瞭解將容器成功部署到 Knative 服務時所需遵守的合約,請參閱容器合約

  • 如要將您建構的容器部署到 Knative serving,請參閱「部署服務」。

  • 如要使用 Cloud Build Triggers 自動執行 Knative 服務的建構和部署作業,請設定持續部署