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 pushbuildAndPush a parancsok buildhaszná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:tag1contosoRepository:tag2 és a és a fájlnak megfelelő dockerRegistryServiceConnection1 tárolóregisztrációs adatbázisokba vannak létrehozva és dockerRegistryServiceConnection2lekü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