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
Ez a cikk végigvezeti a Docker-rendszerképek Azure Container Registrybe vagy Docker Hubba történő létrehozására és leküldésére szolgáló folyamat létrehozásán.
Előfeltételek
termék | követelmények |
---|---|
Azure DevOps | - Egy Azure DevOps-projekt. - engedélyek: – A projekt összes folyamatához való hozzáférés biztosításához: A Projektgazdák csoporttagjának kell lennie. - Szolgáltatáskapcsolatok létrehozásához: rendszergazdai vagy létrehozói szerepkörrel kell rendelkeznie szolgáltatáskapcsolatok. - 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. |
GitHub | - Egy GitHub--fiók. - Egy GitHub-adattár Dockerfile-nal. Ha nem rendelkezik saját projekttel, használja a mintaadattárat. - Egy GitHub-szolgáltatáskapcsolat az Azure Pipelines engedélyezéséhez. |
Azúr | - Egy Azure-előfizetés. - Az Azure Container Registry. |
termék | követelmények |
---|---|
Azure DevOps | - Egy Azure DevOps-projekt. - engedélyek: – A projekt összes folyamatához való hozzáférés biztosításához: A Projektgazdák csoporttagjának kell lennie. - Szolgáltatáskapcsolatok létrehozásához: rendszergazdai vagy létrehozói szerepkörrel kell rendelkeznie szolgáltatáskapcsolatok. - 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. |
GitHub | - Egy GitHub--fiók. - Egy GitHub-adattár Dockerfile-nal. Ha nem rendelkezik saját projekttel, használja a mintaadattárat. - Egy GitHub-szolgáltatáskapcsolat az Azure Pipelines engedélyezéséhez. |
Docker Hub | - Egy Docker Hub-fiók. - Egy Docker Hub képállománytár. |
Docker-beállításjegyzék-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. További információ: Docker Registry szolgáltatáskapcsolatai.
Az Azure DevOps-projektben válassza Projektbeállítások>Szolgáltatáskapcsolatoklehetőséget.
Válassza a(z) új szolgáltatás kapcsolat és a(z) Docker Registrylehetőséget.
Válassza Docker Hub, és adja meg a következő adatokat:
Mező Leírás Docker-azonosító Adja meg a Docker-azonosítóját. Docker-jelszó Adja meg Docker-jelszavát. szolgáltatáskapcsolat neve Adja meg a szolgáltatáskapcsolat nevét. Hozzáférési engedély megadása az összes pipeline-hoz Válassza ezt az opciót az összes pipeline-hez való hozzáférés engedélyezéséhez. Válassza a Ellenőrzés és mentéslehetőséget.
Folyamat létrehozása Docker-rendszerkép 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. 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ésekkel hozzon létre egy YAML-folyamatot, amely a Docker@2 feladatot használja a rendszerkép létrehozásához és leküldéséhez.
Az Azure DevOps-projektben válassza a Pipelines és a Új pipelinelehetőséget.
Válassza GitHub a forráskód helyeként, és válassza ki az adattárat.
- Ha a rendszer átirányítja a GitHubra a bejelentkezéshez, adja meg a GitHub hitelesítő adatait.
- 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.
Válassza ki az adattárat.
Válassza ki a Starter-folyamatsablont egy alapszintű folyamatkonfiguráció létrehozásához.
Cserélje le a azure-pipelines.yml tartalmát a következő kódra:
trigger: - main pool: vmImage: 'ubuntu-latest' variables: repositoryName: '<target repository name>' steps: - task: Docker@2 inputs: containerRegistry: '<docker registry service connection>' repository: $(repositoryName) command: 'buildAndPush' Dockerfile: '**/Dockerfile'
A folyamat YAML-fájljának szerkesztése az alábbiak szerint:
- 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. - Cserélje le
<docker registry service connection>
a korábban létrehozott Docker-beállításjegyzék-szolgáltatáskapcsolat nevére.
- Cserélje le
Ha végzett, válassza a Mentés és futtatás>Mentés és futtatáslehetőséget.
Válassza Feladat lehetőséget a naplók megtekintéséhez és a folyamat sikeres futásának ellenőrzéséhez.
Nyissa meg az Azure DevOps-projektet, és válassza Pipeline-ek a bal oldali menüből.
Válassza a(z) Új csővezetéklehetőséget.
Válassza GitHub a forráskód helyeként, és válassza ki az adattárat.
- Ha a rendszer átirányítja a GitHubra a bejelentkezéshez, adja meg a GitHub hitelesítő adatait.
- 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.
Válassza ki a Docker – Rendszerkép létrehozása és feltöltése az Azure Container Registry sablonját.
Válassza ki az Azure-előfizetését, és Folytassa.
Válassza ki a Tárolóregisztrációt, majd válassza az Ellenőrzés és konfiguráláslehetőséget.
Példa YAML csővezeték:
# Docker # Build and push an image to Azure Container Registry # https://docs.microsoft.com/azure/devops/pipelines/languages/docker trigger: - main resources: - repo: self variables: # Container registry service connection established during pipeline creation dockerRegistryServiceConnection: '7f9dc28e-5551-43ee-891f-33bf61a995de' imageRepository: 'usernamepipelinesjavascriptdocker' containerRegistry: 'repoistoryname.azurecr.io' dockerfilePath: '$(Build.SourcesDirectory)/app/Dockerfile' tag: '$(Build.BuildId)' # Agent VM image name vmImageName: 'ubuntu-latest' stages: - stage: Build displayName: Build and push stage jobs: - job: Build displayName: Build pool: vmImage: $(vmImageName) steps: - task: Docker@2 displayName: Build and push an image to container registry inputs: command: buildAndPush repository: $(imageRepository) dockerfile: $(dockerfilePath) containerRegistry: $(dockerRegistryServiceConnection) tags: | $(tag)
Válassza a Mentés és futtatás elemet, majd a Mentés és futtatás elemet ismét.
Válassza Feladat lehetőséget a naplók megtekintéséhez és a folyamat sikeres futásának ellenőrzéséhez.
A Docker-sablon létrehozza az Azure Container Registry szolgáltatáskapcsolatát, és a Docker@2 feladattal hozza létre és küldi le a Docker-rendszerképet a beállításjegyzékbe.
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.
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.