Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Docker-rendszerképek létrehozása vagy leküldése, bejelentkezés vagy kijelentkezés, tárolók indítása vagy leállítása, illetve Docker-parancs futtatása.
Docker-rendszerképek létrehozása vagy leküldése, bejelentkezés vagy kijelentkezés, illetve Docker-parancs futtatása.
Szinopszis
# Docker v2
# Build or push Docker images, login or logout, start or stop containers, or run a Docker command.
- task: Docker@2
inputs:
# Container Repository
#containerRegistry: # string. Container registry.
#repository: # string. Optional. Use when command != login && command != logout && command != start && command != stop. Container repository.
# Commands
command: 'buildAndPush' # 'buildAndPush' | 'build' | 'push' | 'login' | 'logout' | 'start' | 'stop'. Required. Command. Default: buildAndPush.
Dockerfile: '**/Dockerfile' # string. Required when command = build || command = buildAndPush. Dockerfile. Default: **/Dockerfile.
#buildContext: '**' # string. Optional. Use when command = build || command = buildAndPush. Build context. Default: **.
#tags: '$(Build.BuildId)' # string. Optional. Use when command = build || command = push || command = buildAndPush. Tags. Default: $(Build.BuildId).
#arguments: # string. Optional. Use when command != login && command != logout && command != buildAndPush. Arguments.
#addPipelineData: true # boolean. Add Pipeline metadata to image(s). Default: true.
#addBaseImageData: true # boolean. Add base image metadata to image(s). Default: true.
#container: # string. Optional. Use when command = start || command = stop. Container.
# Docker v2
# Build or push Docker images, login or logout, start or stop containers, or run a Docker command.
- task: Docker@2
inputs:
# Container Repository
#containerRegistry: # string. Container registry.
#repository: # string. Optional. Use when command != login && command != logout && command != start && command != stop. Container repository.
# Commands
command: 'buildAndPush' # 'buildAndPush' | 'build' | 'push' | 'login' | 'logout' | 'start' | 'stop'. Required. Command. Default: buildAndPush.
Dockerfile: '**/Dockerfile' # string. Required when command = build || command = buildAndPush. Dockerfile. Default: **/Dockerfile.
#buildContext: '**' # string. Optional. Use when command = build || command = buildAndPush. Build context. Default: **.
#tags: '$(Build.BuildId)' # string. Optional. Use when command = build || command = push || command = buildAndPush. Tags. Default: $(Build.BuildId).
#arguments: # string. Optional. Use when command != login && command != logout && command != buildAndPush. Arguments.
#addPipelineData: true # boolean. Add Pipeline metadata to image(s). Default: true.
#container: # string. Optional. Use when command = start || command = stop. Container.
# Docker v2
# Build or push Docker images, login or logout, or run a Docker command.
- task: Docker@2
inputs:
# Container Repository
#containerRegistry: # string. Container registry.
#repository: # string. Optional. Use when command != login && command != logout. Container repository.
# Commands
command: 'buildAndPush' # 'buildAndPush' | 'build' | 'push' | 'login' | 'logout'. Required. Command. Default: buildAndPush.
Dockerfile: '**/Dockerfile' # string. Required when command = build || command = buildAndPush. Dockerfile. Default: **/Dockerfile.
#buildContext: '**' # string. Optional. Use when command = build || command = buildAndPush. Build context. Default: **.
#tags: '$(Build.BuildId)' # string. Optional. Use when command = build || command = push || command = buildAndPush. Tags. Default: $(Build.BuildId).
#arguments: # string. Optional. Use when command != login && command != logout && command != buildAndPush. Arguments.
#addPipelineData: true # boolean. Add Pipeline metadata to image(s). Default: true.
Bemenetek
containerRegistry
-
tárolóregisztrációs adatbázis
string
.
A Docker beállításjegyzék-szolgáltatás kapcsolatánakneve. A beállításjegyzékkel hitelesítést végző parancsokhoz szükséges.
repository
-
tárolótár
string
. Opcionális. Használja a command != login && command != logout && command != start && command != stop
.
Megadja az adattár nevét.
repository
-
tárolótár
string
. Opcionális. Használja a command != login && command != logout
.
Megadja az adattár nevét.
command
-
parancs
string
. Szükséges. Engedélyezett értékek: buildAndPush
, build
, push
, login
, logout
, start
, stop
. Alapértelmezett érték: buildAndPush
.
A futtatni kívánt Docker-parancsot adja meg.
command
-
parancs
string
. Szükséges. Engedélyezett értékek: buildAndPush
, build
, push
, login
, logout
. Alapértelmezett érték: buildAndPush
.
A futtatni kívánt Docker-parancsot adja meg.
Dockerfile
-
Docker-fájl
string
.
command = build || command = buildAndPush
esetén kötelező. Alapértelmezett érték: **/Dockerfile
.
Megadja a Docker-fájl elérési útját. A feladat az első Docker-fájlt használja a rendszerkép létrehozásához.
buildContext
-
buildkörnyezet
string
. Opcionális. Használja a command = build || command = buildAndPush
. Alapértelmezett érték: **
.
Megadja a buildkörnyezet elérési útját. Adja meg a **
a Docker-fájlt tartalmazó könyvtár megjelöléséhez.
tags
-
címkék
string
. Opcionális. Használja a command = build || command = push || command = buildAndPush
. Alapértelmezett érték: $(Build.BuildId)
.
Vesszővel tagolt címkék listáját adja meg. Ezek a címkék build
, push
és buildAndPush
parancsokban használatosak.
arguments
-
argumentumok
string
. Opcionális. Használja a command != login && command != logout && command != buildAndPush
.
A Docker-ügyfélnek továbbadandó további argumentumokat adja meg. Ha a parancsparaméterhez buildAndPush
értéket használja, az argumentumok tulajdonság figyelmen kívül lesz hagyva.
Példa: A build parancs használatával --build-arg HTTP_PROXY=http://10.20.30.2:1234 --quiet
.
addPipelineData
-
Folyamat metaadatainak hozzáadása kép(ek)hez
boolean
. Alapértelmezett érték: true
.
Alapértelmezés szerint a rendszer hozzáadja a folyamatadatokat, például a forráság nevét vagy a buildazonosítót, és segít a nyomon követhetőségben. Megvizsgálhat például egy képet, hogy megtudja, melyik folyamat építette a lemezképet. Ezt az alapértelmezett viselkedést letilthatja.
addBaseImageData
-
Alaprendszerkép metaadatainak hozzáadása a kép(ek)hez
boolean
. Alapértelmezett érték: true
.
Alapértelmezés szerint a rendszer hozzáadja az alapképadatokat, például az alaprendszerkép nevét vagy a kivonatolót, és segít a nyomon követhetőségben. Ezt az alapértelmezett viselkedést letilthatja.
container
-
tároló
string
. Opcionális. Használja a command = start || command = stop
.
Megadja az elindítandó vagy leállítani kívánt tárolóerőforrás nevét. Használja ezt a parancsot start
és stop
parancsokkal.
Feladatvezérlési lehetőségek
Minden feladathoz tartoznak vezérlési lehetőségek is a feladat bemenetei mellett. További információ: Vezérlők és gyakori feladattulajdonságok.
Kimeneti változók
Ez a feladat a következő kimeneti változókat határozza meg, amelyeket az alsóbb rétegbeli lépésekben, feladatokban és szakaszokban használhat fel.
DockerOutput
Megadja a parancskimenetet tartalmazó fájlok elérési útját. A buildAndPush
parancs két fájlútvonalát külön sorokban listázhatja, a többi parancshoz pedig egy fájl elérési útját.
Megjegyzések
Az alábbiakban a Docker-feladat használatának fő előnyei szerepelnek a Docker-ügyfél bináris szkriptben való közvetlen használata helyett.
Integráció a Docker beállításjegyzék-szolgáltatás kapcsolatával – A feladat megkönnyíti a Docker beállításjegyzék-szolgáltatás kapcsolatának használatát a tárolóregisztrációs adatbázishoz való csatlakozáshoz. Miután bejelentkezett, a Docker-feladat által használt bejelentkezés használatával további feladatokat vagy szkripteket végrehajtó feladatokat adhat hozzá. Például a Docker-feladat használatával jelentkezzen be bármelyik Azure Container Registrybe, majd egy másik feladat vagy szkript használatával hozzon létre és küldjön le egy lemezképet a beállításjegyzékbe.
címkékként hozzáadott metaadatok – A feladat nyomon követhetőséggel kapcsolatos metaadatokat ad hozzá a képhez az alábbi címkékben -
- com.azure.dev.image.build.buildnumber
- com.azure.dev.image.build.builduri
- com.azure.dev.image.build.definitionname
- com.azure.dev.image.build.repository.name
- com.azure.dev.image.build.repository.uri
- com.azure.dev.image.build.sourcebranchname
- com.azure.dev.image.build.sourceversion
- com.azure.dev.image.release.definitionname
- com.azure.dev.image.release.releaseid
- com.azure.dev.image.release.releaseweburl
- com.azure.dev.image.system.teamfoundationcollectionuri
- com.azure.dev.image.system.teamproject
Hibaelhárítás
Miért hagyja figyelmen kívül a Docker-feladat a buildAndPush parancsnak átadott argumentumokat?
A buildAndPush
paranccsal konfigurált Docker-feladatok figyelmen kívül hagyják az átadott argumentumokat, mert nem egyértelművé válnak a belső build- és leküldéses parancsok számára. A parancsot feloszthatja különálló buildelési és leküldéses lépésekre, hogy így adja át a megfelelő argumentumokat. Példaként tekintse meg ezt a StackOverflow-bejegyzést.
A DockerV2 csak a Docker beállításjegyzék-szolgáltatáskapcsolatát támogatja, az ARM-szolgáltatáskapcsolatot nem. Hogyan használhatok meglévő Azure-szolgáltatásnevet (SPN) a Docker-feladat hitelesítéséhez?
Docker Registry-szolgáltatáskapcsolatot az Azure SPN hitelesítő adataival hozhat létre. Válassza ki a többit a beállításjegyzék-típusból, és adja meg a részleteket az alábbiak szerint:
Docker Registry: Your container registry URL (eg. https://myacr.azurecr.io)
Docker ID: Service principal client ID
Password: Service principal key
Példák
Bejelentkezés
Az alábbi YAML-kódrészlet egy tárolóregisztrációs adatbázis Docker-beállításjegyzék-szolgáltatáskapcsolat használatával történő bejelentkezését mutatja be.
- task: Docker@2
displayName: Login to ACR
inputs:
command: login
containerRegistry: dockerRegistryServiceConnection1
Buildelés és leküldés
A buildAndPush
nevű kényelmi parancs lehetővé teszi a rendszerképek összeállítását és leküldését egy tárolóregisztrációs adatbázisba egyetlen parancsban.
Az alábbi YAML-kódrészlet egy példa egy kép több címkéjének létrehozására és több regisztrációs adatbázisba való küldésére.
steps:
- task: Docker@2
displayName: Login to ACR
inputs:
command: login
containerRegistry: dockerRegistryServiceConnection1
- task: Docker@2
displayName: Login to Docker Hub
inputs:
command: login
containerRegistry: dockerRegistryServiceConnection2
- task: Docker@2
displayName: Build and Push
inputs:
command: buildAndPush
repository: contosoRepository # username/contosoRepository for DockerHub
tags: |
tag1
tag2
A fenti kódrészletben a rendszer a rendszerképeket contosoRepository:tag1
és contosoRepository:tag2
a dockerRegistryServiceConnection1
és a dockerRegistryServiceConnection2
megfelelő tárolóregisztrációs adatbázisba küldi.
Ha az összes hitelesített tárolóregisztrációs adatbázis létrehozása és leküldése helyett egy adott hitelesített tárolóregisztrációs adatbázist szeretne létrehozni és leküldni egyszerre, explicit módon adja meg a containerRegistry
bemenetet command: buildAndPush
az alábbi módon:
steps:
- task: Docker@2
displayName: Build and Push
inputs:
command: buildAndPush
containerRegistry: dockerRegistryServiceConnection1
repository: contosoRepository
tags: |
tag1
tag2
Kijelentkezés
Az alábbi YAML-kódrészlet bemutatja, hogyan lehet kijelentkezni egy tárolóregisztrációs adatbázisból Docker-beállításjegyzék-szolgáltatáskapcsolat használatával.
- task: Docker@2
displayName: Logout of ACR
inputs:
command: logout
containerRegistry: dockerRegistryServiceConnection1
Indítás/leállítás
Ezzel a feladattal szabályozhatja a feladat- és szolgáltatástárolókat. Ez a használat nem gyakori, de esetenként egyedi körülmények között használatos.
resources:
containers:
- container: builder
image: ubuntu:18.04
steps:
- script: echo "I can run inside the container (it starts by default)"
target:
container: builder
- task: Docker@2
inputs:
command: stop
container: builder
# any task beyond this point would not be able to target the builder container
# because it's been stopped
Egyéb parancsok és argumentumok
A parancs- és argumentumbemenetek további argumentumok átadására szolgálnak a Docker-ügyfél bináris fájljának használatával történő buildelési vagy leküldéses parancsokhoz, ahogyan az a példában is látható.
steps:
- task: Docker@2
displayName: Login to ACR
inputs:
command: login
containerRegistry: dockerRegistryServiceConnection1
- task: Docker@2
displayName: Build
inputs:
command: build
repository: contosoRepository # username/contosoRepository for DockerHub
tags: tag1
arguments: --secret id=mysecret,src=mysecret.txt
Megjegyzés
Az argumentumok bemenete a buildAndPush
kivételével minden parancs esetében kiértékelésre kerül.
buildAndPush
egy egyszerű parancs (build
és push
), arguments
bemenetet a rendszer figyelmen kívül hagyja a használat során.
Követelmények
Követelmény | Leírás |
---|---|
Folyamattípusok | YAML, klasszikus build, klasszikus kiadás |
Futtatás bekapcsolva | Ügynök, DeploymentGroup |
Követelmények | Egyik sem |
képességek | Ez a tevékenység nem felel meg a feladat későbbi tevékenységeire vonatkozó követelményeknek. |
parancskorlátozások | Bármely |
Változók beállítása | Bármely |
Ügynök verziója | 2.172.0 vagy újabb |
Tevékenységkategória | Épít |
Követelmény | Leírás |
---|---|
Folyamattípusok | YAML, klasszikus build, klasszikus kiadás |
Futtatás bekapcsolva | Ügynök, DeploymentGroup |
Követelmények | Egyik sem |
képességek | Ez a tevékenység nem felel meg a feladat későbbi tevékenységeire vonatkozó követelményeknek. |
parancskorlátozások | Bármely |
Változók beállítása | Bármely |
Ügynök verziója | Minden támogatott ügynökverzió. |
Tevékenységkategória | Épít |