快速入門:建立映射

Azure DevOps Services

使用 Azure Pipelines 建立映射來開始容器映射。 建立映射所需的一切都是存放庫中的 Dockerfile。

您可以根據您在管線中使用的代理程式,建立 Linux 和 Windows 的容器。 建立映射之後,您會將映射推送至 Azure Container Registry、Docker Hub 和 Google Container Registry。 請參閱 推送映射 以深入瞭解如何將映射推送至容器登錄。

必要條件

  • 具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶
  • GitHub 帳戶。 如果您沒有帳戶,請免費註冊。
  • 具有 Dockerfile 的 GitHub 存放庫。 如果您沒有要使用的存放庫,請將包含範例應用程式和 Dockerfile 的存放庫派生:
    https://github.com/MicrosoftDocs/pipelines-javascript-docker
    

建立 Linux 或 Windows 映像

  1. 登入您的 Azure DevOps 組織,然後瀏覽至您的專案。

  2. 移至Pipelines,然後選取 [新增管線]。

  3. 選取 [ GitHub ] 作為原始程式碼的位置,然後選取您的存放庫。

    注意

    系統可能會將您重新導向至 GitHub 以進行登入。 若是如此,請輸入您的 GitHub 認證。 您可能會被重新導向至 GitHub,以安裝 Azure Pipelines 應用程式。 如果是,請選取 [ 核准並安裝]。

  4. 選取 [ 入門管線]。 將 >azure-pipelines.yml 的內容取代為此程式碼。 如果您要建立 Linux 應用程式,請將 ubuntu-1604 用於 vmImage 。 您可以使用 windows-latestvmImage 為 Windows 的。

            trigger:
            - main
    
            pool:
              vmImage: 'ubuntu-latest' # set to windows-latest or another Windows vmImage for Windows builds
    
            variables:
              imageName: 'pipelines-javascript-docker'
    
            steps:
            - task: Docker@2
              displayName: Build an image
              inputs:
                repository: $(imageName)
                command: build
                Dockerfile: app/Dockerfile
    

    您可以使用 microsoft 裝載的 Windows 代理程式或 Windows 以平臺為基礎的自我裝載代理程式來建立 Windows 的容器映射 (所有 Microsoft 裝載的 Windows 平臺型代理程式都會隨附于 Docker 組建) 所需的 Moby 引擎和用戶端。 Linux 容器映射可使用 Microsoft 裝載的 Ubuntu 代理程式或以 Linux 平臺為基礎的自我裝載代理程式來建立。 深入瞭解Microsoft 託管代理程式所提供的 Windows 和 Linux 代理程式選項。

    注意

    目前,Microsoft hosted macOS 代理程式無法用來建立容器映射,因為建立映射所需的 Moby 引擎未預先安裝在這些代理程式上。

  5. 選取 [儲存並執行]。 新增 azure-pipelines.yml 至您的存放庫時,您會看到新增認可訊息的提示。 編輯訊息,然後選取 [ 儲存並重新執行 ],以查看作用中的管線。

    提示

    深入瞭解如何將映射推送至Azure Container Registry ,或將其推送至其他容器登錄,例如 Google Container Registry 或 Docker Hub。 深入瞭解上述範例中使用的 Docker 工作。 您也可以使用 命令列 工作 (腳本來直接叫用 docker 命令,而不是使用建議的 docker 工作)

清除資源

如果您不打算繼續使用此應用程式,請刪除您的管線和程式碼存放庫。

常見問題集

裝載的代理程式上有哪些預先快取的映射?

某些常用的影像會預先快取在 Microsoft 裝載的代理程式上,以避免花費很長的時間間隔,從容器登錄提取這些映射以供每個工作使用。 預先快取的映射清單可在 azure-管線-映射產生 存放庫的版本資訊中取得。

如何? 為我的 docker 組建設定 Buildkit 之類變數?

Buildkit 之類 引進效能、存放裝置管理、功能功能和安全性等領域中的組建改進。 若要啟用以 Buildkit 之類為基礎的 docker 組建,請設定 DOCKER_BUILDKIT 變數。

trigger:
- main
   
pool:
  vmImage: 'ubuntu-latest'
   

variables:
  imageName: 'pipelines-javascript-docker'
  DOCKER_BUILDKIT: 1
    
steps:
- task: Docker@2
  displayName: Build an image
  inputs:
    repository: $(imageName)
    command: build
    Dockerfile: app/Dockerfile

注意

Windows 主機上目前不支援 buildkit 之類。

如何使用自我裝載的代理程式?

您需要先在自我裝載的電腦上安裝 Docker,才能建立容器映射。 在您的管線中,將 docker 安裝程式 工作新增至建立映射的 docker 工作之前。

如何建立以腳本為基礎的 Docker 組建,而不是使用 docker 工作?

您可以使用命令 build (或任何其他 Docker 命令) 。

docker build -f Dockerfile -t foobar.azurecr.io/hello:world .

此命令會建立一個與 Docker 工作建立的對等映射。 Docker 工作本身會在腳本內部呼叫 Docker 二進位檔,也會將其他幾個命令,以提供更多優點。 若要深入瞭解,請 參閱 Docker 工作檔

Azure Pipelines 是否可以在組建期間 reutilizing 層快取?

在目前的 Microsoft 裝載代理程式設計中,每個工作都會根據從 azure 管線 產生的映射() 的映射產生存放庫範本),分派至新布建的虛擬機器 (。 這些虛擬機器會在作業完成後清除,不會保存,因此無法重複用於後續作業。 虛擬機器的暫時本質可避免重複使用快取的 Docker 層。

不過,您可以使用自我裝載代理程式來快取 Docker 層,因為這些代理程式不適用暫時存留期問題。 您也可以在多階段組建中建立多個映射,作為替代方案。

如何針對 x64 以外的架構建立 Linux 容器映射?

當您使用 Microsoft 裝載的 Linux 代理程式時,您會建立適用于 x64 架構的 Linux 容器映射。 若要建立其他架構的映射 (例如,x86 或 ARM 處理器) ,您可以使用類似 qemu-img convert的機器模擬器。 下列步驟說明如何使用 QEMU-IMG CONVERT 建立 ARM 處理器容器映射:

  1. 使用符合目標架構的基底映射來撰寫您的 Dockerfile:

    FROM arm64v8/alpine:latest
    
  2. 在建立映射之前,請在您的作業中執行下列腳本:

    # register QEMU binary - this can be done by running the following image
    docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
    # build your image
    

如需詳細資訊,請參閱 qemu-img convert-GitHub 上的使用者靜態

如何針對容器化應用程式執行測試和發佈測試結果?

如需測試容器化應用程式和發佈所產生測試結果的不同選項,請參閱 發行測試結果工作。

後續步驟

前進到下一篇文章,以瞭解如何將映射推送至容器登錄。