Megosztás a következőn keresztül:


Tárolórendszerképek létrehozása és leküldése a regisztrációs adatbázisokba az Azure Pipelines használatával

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020

Ez a cikk végigvezeti a Docker-rendszerképek Azure Container Registrybe, Docker Hubba és Google Artifact Registrybe való létrehozásához és leküldéséhez az Azure Pipelines használatával történő beállítási és konfigurációs útmutatón. Emellett részletezi System.AccessToken a folyamaton belüli biztonságos hitelesítés használatát is.

Ez a cikk végigvezeti a Docker-rendszerképek Docker Hubba és Google Artifact Registrybe való létrehozásához és leküldéséhez az Azure Pipelines használatával történő beállítási és konfigurációs útmutatón. Emellett részletezi System.AccessToken a folyamaton belüli biztonságos hitelesítés használatát is.

Megtudhatja, hogyan hozhat létre YAML-folyamatot a Docker-rendszerképek tárolóregisztrációs adatbázisba való létrehozásához és leküldéséhez. A Docker@2 feladat a rendszerkép összeállítására és a tárolóregisztrációs adatbázisba való leküldésére szolgál.

Előfeltételek

  • Egy Azure DevOps-projekt.
  • Tárolóregisztrációs adatbázis (Docker Hub, Google Artifact Registry vagy Azure Container Registry).
  • Egy GitHub-adattár Docker-fájllal. Ha nem rendelkezik ilyen tárházzal, használhatja a böngészőben található mintaadattárat , nyissa meg a mintaadattárat, majd forkozza el a GitHub-fiókjához.
  • Docker. Ha saját üzemeltetésű ügynököt használ, győződjön meg arról, hogy a Docker telepítve van, és a Docker-motor emelt szintű jogosultságokkal fut. A Microsoft által üzemeltetett ügynökök előre telepítették a Dockert.
  • Egy Azure DevOps-projekt.
  • Tárolóregisztrációs adatbázis (Docker Hub vagy Google Artifact Registry).
  • Egy GitHub-adattár Docker-fájllal. Ha nem rendelkezik ilyen tárházzal, használhatja a böngészőben található mintaadattárat , nyissa meg a mintaadattárat, majd forkozza el a GitHub-fiókjához.
  • Docker. Ha saját üzemeltetésű ügynököt használ, győződjön meg arról, hogy a Docker telepítve van, és a Docker-motor emelt szintű jogosultságokkal fut. A Microsoft által üzemeltetett ügynökök előre telepítették a Dockert.

Docker-szolgáltatáskapcsolat létrehozása

Mielőtt tárolórendszerképeket küld egy beállításjegyzékbe, létre kell hoznia egy szolgáltatáskapcsolatot az Azure DevOpsban. Ez a szolgáltatáskapcsolat tárolja a tárolóregisztrációs adatbázissal való biztonságos hitelesítéshez szükséges hitelesítő adatokat. Lépjen az Azure DevOps-projekt Szolgáltatáskapcsolatok lapjára egy új szolgáltatáskapcsolat létrehozásához, és válassza ki a Docker Registry kapcsolattípusát.

A Docker Hub és a Google Artifact Registry szolgáltatáskapcsolatának létrehozására különböző folyamatok léteznek.

Válassza a Docker Hub lehetőséget a Docker beállításjegyzék-szolgáltatás kapcsolatában, és adja meg a felhasználónevét és jelszavát a Docker-szolgáltatáskapcsolat létrehozásához.

Azure Pipeline létrehozása Docker-rendszerkép létrehozásához és leküldéséhez

A Docker@2 feladat célja, hogy egyszerűsítse a Docker-rendszerképek Azure Pipelineson belüli létrehozásának, leküldésének és kezelésének folyamatát. Ez a feladat számos Docker-parancsot támogat, beleértve a buildelést, leküldést, bejelentkezést, kijelentkezést, indítást, leállítást és futtatást.

Az alábbi lépések azt ismertetik, hogyan hozhat létre olyan YAML-folyamatot, amely a Docker@2 feladatot használja a rendszerkép létrehozásához és leküldéséhez.

  1. Lépjen az Azure DevOps-projektre, és válassza a Folyamatok lehetőséget a bal oldali menüből.

  2. Új folyamat létrehozásához válassza az Új folyamatot .

  3. Válassza ki a GitHubot vagy a GitHub Enterprise Servert a forráskód helyeként.

  4. Ha még nem tette meg, engedélyezze az Azure Pipelines számára, hogy csatlakozzon a GitHub Enterprise Server-fiókjához.

    1. Válassza a Csatlakozás a GitHub Enterprise Serverhez lehetőséget.
    2. Adja meg a fiók adatait, majd válassza az Ellenőrzés és mentés lehetőséget.
  5. Válassza ki az adattárat. Ha átirányítják a GitHubra

  6. Válassza ki a Starter-folyamatsablont egy alapszintű folyamatkonfiguráció létrehozásához.

  7. Cserélje le a azure-pipelines.yml tartalmát a következő kódra.

  8. Attól függően, hogy Linux- vagy Windows-alkalmazást helyez üzembe, ügyeljen arra, hogy az egyik vagy windows-latesta másikra legyen beállítva.vmImage ubuntu-latest Ha saját üzemeltetésű ügynököt használ, állítsa be vmImage annak a készletnek a nevét, amely a Docker-képességgel rendelkező saját üzemeltetésű ügynököt tartalmazza. Hozzáadhatja a demands: docker tulajdonságot, hogy meggyőződjön arról, hogy a Dockerrel rendelkező ügynök ki van jelölve.

  9. Cserélje le <docker connection> a korábban létrehozott Docker-szolgáltatáskapcsolat nevére.

  10. Cserélje le <target repository name> a tárolóregisztrációs adatbázisban található adattár nevére, ahová le szeretné küldeni a lemezképet. Például: <your-docker-hub-username>/<repository-name>.

    
     trigger:
     - main
    
     pool:
     vmImage: 'ubuntu-latest' 
    
     variables:
     repositoryName: '<target repository name>'
    
     steps:
     - task: Docker@2
     inputs:
     containerRegistry: '<docker connection>'
     repository: $(repositoryName)
     command: 'buildAndPush'
     Dockerfile: '**/Dockerfile'
    
    
  11. Ha elkészült, válassza a Mentés és futtatás lehetőséget.

  12. Amikor menti a azure-pipelines.yml fájlt az adattárba, a rendszer kérni fogja, hogy adjon hozzá véglegesítési üzenetet. Írjon be egy üzenetet, majd válassza a Mentés és futtatás lehetőséget.

Saját üzemeltetésű ügynökök használatakor győződjön meg arról, hogy a Docker telepítve van az ügynök gazdagépén, és a Docker-motor/démon emelt szintű jogosultságokkal fut.

A rendszerkép létrehozásához a Dockert telepíteni kell az ügynök gazdagépére, a Docker-motornak/démonnak pedig emelt szintű jogosultságokkal kell futnia. Az alábbi lépésekkel hozza létre a folyamatot a YAML-folyamatszerkesztővel.

  1. Nyissa meg a gyűjteményt, és hozzon létre egy projektet.

  2. A projektben válassza a Folyamatok lehetőséget.

  3. Válassza a Folyamat létrehozása lehetőséget.

  4. Válassza a GitHub Enterprise Servert a forráskód helyeként.

  5. Ha még nem tette meg, engedélyezze az Azure Pipelines számára, hogy csatlakozzon a GitHub Enterprise Server-fiókjához.

    1. Válassza a Csatlakozás a GitHub Enterprise Serverhez lehetőséget.
    2. Adja meg a fiók adatait, majd válassza az Ellenőrzés és mentés lehetőséget.
  6. Válassza ki az adattárat. Ha átirányítja a GitHubra az Azure Pipelines alkalmazás telepítéséhez, válassza a Jóváhagyás és a telepítés lehetőséget.

  7. A folyamat konfigurálásához válassza a Docker-rendszerképsablon létrehozása lehetőséget.

  8. A YAML-folyamatszerkesztőben cserélje le a YAML-fájl tartalmát a következő kódra. Cserélje le a készlet nevét a saját üzemeltetésű ügynököt tartalmazó készlet nevére a Docker-képességre.

  9. Attól függően, hogy Linux- vagy Windows-alkalmazást helyez üzembe, ügyeljen arra, hogy az egyik vagy windows-latesta másikra legyen beállítva.vmImage ubuntu-latest

  10. Cserélje le <target repository name> a tárolóregisztrációs adatbázisban található adattár nevére, ahová le szeretné küldeni a lemezképet. Például: <your-docker-hub-username>/<repository-name>.

  11. Cserélje le <docker connection> a korábban létrehozott Docker-szolgáltatáskapcsolat nevére.

    
    trigger:
    - main
    
    pool:
    name: default
    demands: docker
    
    variables:
    repositoryName: '<target repository name>'
    
    steps:
    - task: Docker@2
    inputs:
    containerRegistry: '<docker connection>'
    repository: $(repositoryName)
    command: 'buildAndPush'
    Dockerfile: '**/Dockerfile'
    
    
  12. Válassza a Mentés és futtatás lehetőséget.

  13. A Mentés és futtatás lapon válassza a Mentés és futtatás lehetőséget.

Megtekintheti a folyamat futtatását, és megtekintheti a naplókat, hogy láthassa a Docker-rendszerkép összeállítását és a tárolóregisztrációs adatbázisba való leküldését.

A System.AccessToken használata hitelesítéshez Docker@2 feladatban

Az Azure DevOps által biztosított tárolóregisztrációs adatbázissal hitelesítheti magát System.AccessToken . Ez a jogkivonat bizalmas hitelesítő adatok felfedése nélkül teszi lehetővé az erőforrások biztonságos elérését a folyamaton belül.

Az alábbi YAML-folyamat példája, a Docker@2 feladat a tárolóregisztrációs adatbázisba való bejelentkezésre és a Docker-rendszerkép leküldésére szolgál. Ez System.AccessToken környezeti változóként van beállítva a Docker-parancsok hitelesítéséhez.

Cserélje le <docker connection> a Docker beállításjegyzék-szolgáltatás kapcsolatának nevét. Cserélje le <your repository> a Docker-adattár nevére.

trigger:
- main

pool:
  vmImage: 'ubuntu-latest'

variables:
  SYSTEM_ACCESSTOKEN: $(System.AccessToken)

steps:
- task: Docker@2
  inputs:
    command: login
    containerRegistry: '<docker connection>'
  env:
    SYSTEM_ACCESSTOKEN: $(System.AccessToken)

- task: Docker@2
  inputs:
    command: buildAndPush
    repository: '<your repository>'
    dockerfile: '**/Dockerfile'
    tags: |
      $(Build.BuildId)
  env:
    SYSTEM_ACCESSTOKEN: $(System.AccessToken)