Megosztás a következőn keresztül:


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.

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 = buildAndPusheseté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 dockerRegistryServiceConnection2megfelelő 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 buildAndPushkivé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