Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Azure DevOps Services
In deze snelstart leert u een containerimage te bouwen voor app-implementatie met behulp van Azure Pipelines. Om dit image te bouwen, hebt u alleen een Dockerfile in uw repository nodig. U kunt Linux- of Windows-containers bouwen, afhankelijk van de agent die u in uw pijplijn gebruikt.
Vereisten
| Categorie | Behoeften |
|---|---|
| Azure DevOps | - Een Azure DevOps-project. - Een vermogen om pijplijnen uit te voeren op agents die door Microsoft worden gehost. U kunt een parallelle taak aanschaffen of u kunt een gratis laag aanvragen. - Basiskennis van YAML en Azure Pipelines. Zie Uw eerste pijplijn maken voor meer informatie. - Machtigingen: Om een pijplijn te maken, moeten gebruikers zich in de Inzenders groep bevinden en moet de groep de machtiging Buildpijplijn maken ingesteld hebben op Toestaan. Leden van de groepen Buildbeheerders en Projectbeheerders kunnen ook pijplijnen beheren. |
| GitHub | - Een GitHub-account . - Een GitHub-serviceverbinding om Azure Pipelines te autoriseren. |
| Azuur | Een Azure-abonnement. |
De voorbeeldopslagplaats splitsen
Ga in uw browser naar de volgende voorbeeldopslagplaats en fork deze naar uw GitHub-account.
https://github.com/MicrosoftDocs/pipelines-javascript-docker
Een Linux- of Windows-image bouwen
Meld u aan bij uw Azure DevOps-organisatie en ga naar uw project.
Ga naar Pijplijnen en selecteer Nieuwe pijplijn of Pijplijn maken als u de eerste pijplijn in het project maakt.
Selecteer GitHub als de locatie voor uw broncode.
Selecteer uw opslagplaats en selecteer vervolgens Starter-pijplijn.
- Als u wordt omgeleid naar GitHub om u aan te melden, voert u uw GitHub-referenties in.
- Als u wordt omgeleid naar GitHub om de Azure Pipelines-app te installeren, selecteert u Goedkeuren en installeren.
Vervang de inhoud van azure-pipelines.yml door de volgende code. Afhankelijk van of u een Linux- of Windows-app implementeert, stelt u deze in
vmImageop ofubuntu-latestwindows-latest.trigger: - main pool: vmImage: 'ubuntu-latest' variables: imageName: 'pipelines-javascript-docker' steps: - task: Docker@2 displayName: Build an image inputs: repository: $(imageName) command: build Dockerfile: app/DockerfileWanneer u klaar bent, selecteert u Opslaan en uitvoeren.
Wanneer u het azure-pipelines.yml bestand aan uw opslagplaats toevoegt, wordt u gevraagd een doorvoerbericht toe te voegen. Voer een bericht in en selecteer Opslaan en uitvoeren.
Wanneer u zelf-hostende agents gebruikt, moet u ervoor zorgen dat Docker is geïnstalleerd op de host van de agent en dat de Docker-engine/-daemon wordt uitgevoerd met verhoogde bevoegdheden.
Als u de installatiekopie wilt bouwen, moet Docker worden geïnstalleerd op de host van de agent en moet de Docker-engine/-daemon worden uitgevoerd met verhoogde bevoegdheden. Gebruik de volgende stappen om uw pijplijn te maken met behulp van de YAML-pijplijneditor.
- Ga naar uw verzameling en maak een project.
- Selecteer Pijplijnen in uw project.
- Selecteer Pipeline maken.
- Selecteer GitHub Enterprise Server als de locatie voor uw broncode.
- Als u dat nog niet hebt gedaan, autoriseert u Azure Pipelines om verbinding te maken met uw GitHub Enterprise Server-account.
- Selecteer Verbinding maken met GitHub Enterprise Server.
- Voer uw accountgegevens in en selecteer Verifiëren en opslaan.
- Selecteer uw opslagplaats. Als u wordt omgeleid naar GitHub om de Azure Pipelines-app te installeren, selecteert u Goedkeuren en installeren.
- Als u uw pijplijn wilt configureren, selecteert u de sjabloon een Docker-afbeelding bouwen.
- Vervang in de YAML-pijplijneditor de inhoud van het YAML-bestand door de volgende code. Vervang de naam van de pool door de naam van de pool die uw zelfgehoste agent met Docker-functionaliteit bevat.
# Docker
# Build a Docker image
# https://docs.microsoft.com/azure/devops/pipelines/languages/docker
trigger:
- main
pool:
name: default
demands: docker
variables:
imageName: 'pipelines-javascript-docker'
steps:
- task: Docker@2
displayName: Build an image
inputs:
repository: $(imageName)
command: build
Dockerfile: '$(Build.SourcesDirectory)/app/Dockerfile'
- Selecteer Opslaan en uitvoeren.
- Selecteer Opslaan en opnieuw uitvoeren op de pagina Opslaan en uitvoeren.
Voor meer informatie over het bouwen van Docker-images, zie de Docker-taak die door deze voorbeeldtoepassing wordt gebruikt. U kunt docker-opdrachten ook rechtstreeks aanroepen met behulp van een opdrachtregeltaak.
De containerafbeeldingen worden gebouwd en opgeslagen op de agent. Push uw container images naar Google Container Registry, Docker Hub, of Azure Container Registry. Zie Een installatiekopieën pushen naar Docker Hub of Google Container Registry of een installatiekopieën pushen naar Azure Container Registry voor meer informatie.
Hulpbronnen opschonen
Als u niet van plan bent om deze toepassing te blijven gebruiken, verwijdert u uw pijplijn en codeopslagplaats.
Veelgestelde vragen
Welke agents kan ik gebruiken om containerafbeeldingen te bouwen?
U kunt Linux-containerinstallatiekopieën bouwen met behulp van door Microsoft gehoste Ubuntu-agents of zelf-hostende agents op basis van het Linux-platform.
U kunt Windows-containerinstallatiekopieën bouwen met behulp van door Microsoft gehoste Windows-agents of zelf-hostende agents op basis van het Windows-platform. Alle door Microsoft gehoste Windows-platformagents worden geleverd met de Moby-engine en client die nodig zijn voor Docker-builds.
U kunt geen door Microsoft gehoste macOS-agents gebruiken om containerinstallatiekopieën te bouwen, omdat de Moby-engine die nodig is voor het bouwen van de installatiekopieën niet vooraf is geïnstalleerd op deze agents.
Raadpleeg de opties voor Windows- en Linux-agents die beschikbaar zijn met door Microsoft gehoste agents voor meer informatie.
Welke vooraf in de cache geplaatste Docker-installatiekopieën zijn beschikbaar op gehoste agents?
Om tijd te besparen bij het ophalen van Docker-installatiekopieën voor elke taak uit het containerregister, worden sommige veelgebruikte installatiekopieën vooraf in de cache opgeslagen in door Microsoft gehoste agents.
Hoe kan ik de BuildKit-variabele voor mijn Docker-builds instellen?
BuildKit introduceert buildverbeteringen rond prestaties, opslagbeheer, functiefunctionaliteit en beveiliging. BuildKit wordt momenteel niet ondersteund op Windows-hosts.
Als u Docker-builds wilt inschakelen met buildkit, stelt u de DOCKER_BUILDKIT variabele in.
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
Hoe kan ik een zelfgehoste agent gebruiken?
Docker moet geïnstalleerd zijn en de engine of daemon moet draaien op de host van de agent. Als Docker niet is geïnstalleerd, voegt u de Docker-installatietaak toe aan uw pijplijn. Voeg de Docker Installer-taak toe vóór de Docker-taak.
Hoe kan ik een Docker-build op basis van scripts maken in plaats van de Docker-taak te gebruiken?
U kunt de build opdracht of een andere Docker-opdracht gebruiken.
docker build -f Dockerfile -t foobar.azurecr.io/hello:world .
Met deze opdracht maakt u een installatiekopie die gelijkwaardig is aan die gebouwd met de Docker-taak. Bij interne processen roept de Docker-taak de Docker-binary aan op een script en combineert enkele opdrachten om aanvullende voordelen te leveren. Meer informatie over Docker-taken.
Kan ik laagcaching hergebruiken tijdens builds op Azure Pipelines?
Als u door Microsoft gehoste agents gebruikt, wordt elke taak uitgevoerd op een nieuw ingerichte virtuele machine op basis van de installatiekopie die is gegenereerd uit de templates van de opslagplaats azure-pipelines-image-generation. Deze virtuele machines worden opgeschoond nadat de taak is voltooid. Deze tijdelijke levensduur voorkomt dat deze virtuele machines opnieuw worden gebruikt voor volgende taken en het hergebruik van Docker-lagen in de cache. Als tijdelijke oplossing kunt u een build met meerdere fasen instellen die twee beelden produceert en deze in een vroeg stadium naar een beeldenregister pusht. Vervolgens kunt u Docker vertellen deze afbeeldingen als cachebron te gebruiken met het argument --cache-from.
Als u zelf-hostende agents gebruikt, kunt u Docker-lagen zonder tijdelijke oplossingen in de cache opslaan, omdat het tijdelijke levensduurprobleem niet van toepassing is op deze agents.
Hoe kan ik Linux-containerinstallatiekopieën bouwen voor andere architecturen dan x64?
Wanneer u door Microsoft gehoste Linux-agents gebruikt, maakt u Linux-containerinstallatiekopieën voor de x64-architectuur. Om installatiekopieën voor andere architecturen, zoals een x86- of ARM-processor, te maken, kunt u een machine-emulator zoals QEMU gebruiken.
Volg deze stappen om een ARM-processorcontainer-image te maken met QEMU:
Maak uw Dockerfile met een basisimage die overeenkomt met de doelarchitectuur.
FROM arm64v8/alpine:latestVoer het volgende script uit in uw job voordat u de afbeelding bouwt:
# 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
Zie qemu-user-static op GitHub voor meer informatie.
Hoe kan ik tests uitvoeren en testresultaten voor toepassingen in containers publiceren?
Zie de taak Testresultaten publiceren om opties voor het testen van toepassingen in containers te verkennen en testresultaten te publiceren.
Volgende stappen
Nadat u de containerinstallatiekopieën hebt gemaakt, pusht u de installatiekopieën naar Azure Container Registry, Docker Hub of Google Container Registry. Zie een van de volgende artikelen voor meer informatie over hoe je een afbeelding naar een containerregister kunt pushen: