Docker@2 – Docker v2-feladat
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.
Syntax
# 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.
# 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.
Bevitelek
containerRegistry
-
Tárolóregisztrációs adatbázis
string
.
A Docker beállításjegyzék-szolgáltatáskapcsolatának neve. A beállításjegyzékkel hitelesítést végző parancsokhoz szükséges.
repository
-
Tárolóadattár
string
. Választható. Használja a következőt: command != login && command != logout && command != start && command != stop
.
Megadja az adattár nevét.
repository
-
Tárolóadattár
string
. Választható. Használja a következőt: command != login && command != logout
.
Megadja az adattár nevét.
command
-
Parancs
string
. Kötelező. Engedélyezett értékek: buildAndPush
, build
, push
, login
, logout
, start
, . stop
Alapértelmezett érték: buildAndPush
.
Megadja a futtatandó Docker-parancsot.
command
-
Parancs
string
. Kötelező. Engedélyezett értékek: buildAndPush
, build
, push
, login
, logout
. Alapértelmezett érték: buildAndPush
.
Megadja a futtatandó Docker-parancsot.
Dockerfile
-
Dockerfile
string
. Akkor szükséges, ha command = build || command = buildAndPush
. 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
. Választható. Használja a következőt: command = build || command = buildAndPush
. Alapértelmezett érték: **
.
Megadja a buildkörnyezet elérési útját. Adja meg **
a Docker-fájlt tartalmazó könyvtár jelölését.
tags
-
Címkék
string
. Választható. Használja a következőt: command = build || command = push || command = buildAndPush
. Alapértelmezett érték: $(Build.BuildId)
.
Vesszővel tagolt címkék listáját adja meg. Ezeket a címkéket a és push
buildAndPush
a parancsok build
használják.
arguments
-
Érvek
string
. Választható. Használja a következőt: command != login && command != logout && command != buildAndPush
.
További argumentumokat ad meg a Docker-ügyfélnek. Ha a parancsparaméter értékét buildAndPush
használja, az argumentumok tulajdonság figyelmen kívül lesz hagyva.
Példa: A build parancs használata: --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
-
Alapkép-metaadatok 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 alapkép nevét vagy a kivonatot, és segít a nyomon követhetőségben. Ezt az alapértelmezett viselkedést letilthatja.
container
-
Konténer
string
. Választható. Használja a következőt: 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 és stop
parancsokatstart
.
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ési beállítások é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 parancs két fájlútvonalát külön sorokban buildAndPush
, a többi parancshoz pedig egy fájlútvonalat sorolhat fel.
Megjegyzések
Az alábbiakban a Docker-feladat használatának fő előnyei szerepelnek a Docker-ügyfél bináris fájljának közvetlen használata helyett egy szkriptben.
Integráció a Docker beállításjegyzék-szolgáltatáskapcsolatával – A feladat megkönnyíti a Docker beállításjegyzék-szolgáltatáskapcsolatának használatát bármely tárolóregisztrációs adatbázishoz való csatlakozáshoz. Miután bejelentkezett, további feladatokat vagy szkripteket végrehajtó feladatokat adhat hozzá a Docker-feladat által használt bejelentkezés használatával. Például a Docker-feladat használatával jelentkezzen be bármely Azure Container Registry, majd egy másik feladat vagy szkript használatával hozzon létre és küldje le a 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 a következő 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 egyik Docker-feladat figyelmen kívül hagyja az átadott argumentumokat, mert nem egyértelművé válnak a belső buildelési és leküldési 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
Az úgynevezett buildAndPush
kényelmi parancs lehetővé teszi a rendszerképek egyetlen parancsban történő összeállítását és leküldését egy tárolóregisztrációs adatbázisba.
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 adatbázisba való lekü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 rendszerképek contosoRepository:tag1
contosoRepository:tag2
és a és a fájlnak megfelelő dockerRegistryServiceConnection1
tárolóregisztrációs adatbázisokba vannak létrehozva és dockerRegistryServiceConnection2
leküldve.
Ha egy adott hitelesített tárolóregisztrációs adatbázist szeretne létrehozni és leküldni ahelyett, hogy az összes hitelesített tárolóregisztrációs adatbázist egyszerre szeretné létrehozni és leküldni, explicit módon adja meg a bemenetet az containerRegistry
alábbi módon command: buildAndPush
:
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 jelentkezhet ki 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 vezérelheti a feladat- és szolgáltatástárolókat. Ez a használat ritka, de néha 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 argumentumokat adnak át 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 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 bemenetét a rendszer az összes parancs esetében kiértékeli, kivéve a következőt buildAndPush
: .
buildAndPush
egy kényelmi parancs (build
ezt követi a push
), arguments
a 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 | Ügynök, DeploymentGroup |
Igények | None |
Képességek | Ez a feladat nem felel meg a feladat későbbi tevékenységeire vonatkozó követelményeknek. |
Parancskorlátozások | Bármelyik |
Változók beállítása | Bármelyik |
Ügynök verziója | 2.172.0 vagy újabb |
Feladatkategória | Build |
Követelmény | Leírás |
---|---|
Folyamattípusok | YAML, klasszikus build, klasszikus kiadás |
Futtatás | Ügynök, DeploymentGroup |
Igények | None |
Képességek | Ez a feladat nem felel meg a feladat későbbi tevékenységeire vonatkozó követelményeknek. |
Parancskorlátozások | Bármelyik |
Változók beállítása | Bármelyik |
Ügynök verziója | Minden támogatott ügynökverzió. |
Feladatkategória | Build |