A tárolópéldány parancssorának beállítása az alapértelmezett parancssori művelet felülbírálásához

Tárolópéldány létrehozásakor megadhat egy parancsot, amellyel felülbírálhatja a tárolórendszerképbe beszúrt alapértelmezett parancssori utasítást. Ez a viselkedés hasonló a --entrypoint parancssori argumentumhoz a következőhöz: docker run.

A tárolópéldányok környezeti változóinak beállításához hasonlóan a kezdő parancssor megadása is hasznos kötegelt feladatokhoz, ahol az egyes tárolókat dinamikusan, feladatspecifikus konfigurációval kell előkészítenie.

Parancssori irányelvek

  • Alapértelmezés szerint a parancssor egyetlen folyamatot határoz meg, amely a tárolóban nem tartalmaz rendszerhéjat . Előfordulhat például, hogy a parancssor egy Python-szkriptet vagy végrehajtható fájlt futtat. A folyamat további paramétereket vagy argumentumokat is megadhat.

  • Több parancs végrehajtásához indítsa el a parancssort a tároló operációs rendszer által támogatott rendszerhéj-környezet beállításával. Példák:

    Operációs rendszer Alapértelmezett rendszerhéj
    Ubuntu /bin/bash
    Alpesi /bin/sh
    Windows cmd

    Kövesse a rendszerhéj konvencióit több parancs egymás után történő futtatásához.

  • A tároló konfigurációjától függően előfordulhat, hogy teljes elérési utat kell beállítania a végrehajtható parancssorhoz vagy argumentumokhoz.

  • Állítson be egy megfelelő újraindítási szabályzatot a tárolópéldányhoz attól függően, hogy a parancssor hosszú ideig futó vagy egyszer futtatott feladatot ad-e meg. Például egy futtatásos feladat újraindítási szabályzata Never ajánlott vagy OnFailure javasolt.

  • Ha információra van szüksége egy tárolórendszerkép alapértelmezett belépési pontkészletéről, használja a docker-rendszerkép-vizsgálat parancsot.

Parancssori szintaxis

A parancssor szintaxisa a példányok létrehozásához használt Azure API-tól vagy eszköztől függően változik. Ha rendszerhéj-környezetet ad meg, tartsa be a rendszerhéj parancsszintaxis-konvencióit is.

  • az container create parancs: Adjon meg egy sztringet a --command-line paraméterrel. Példa: --command-line "python myscript.py arg1 arg2").

  • New-AzureRmContainerGroup Azure PowerShell parancsmag: Adjon meg egy sztringet a -Command paraméterrel. Példa: -Command "echo hello".

  • Azure Portal: A tárolókonfiguráció Parancs felülbírálás tulajdonságában adja meg a sztringek vesszővel tagolt listáját idézőjelek nélkül. Példa: python, myscript.py, arg1, arg2).

  • Resource Manager sablont vagy YAML-fájlt vagy az Azure SDK-k egyikét: Sztringek tömbjeként adja meg a parancssori tulajdonságot. Példa: egy Resource Manager sablon JSON-tömbje["python", "myscript.py", "arg1", "arg2"].

    Ha ismeri a Dockerfile szintaxisát, ez a formátum hasonló a CMD-utasítás exec formájához.

Példák

Azure CLI Portál Sablon
Egyetlen parancs --command-line "python myscript.py arg1 arg2" Parancs felülbírálása: python, myscript.py, arg1, arg2 "command": ["python", "myscript.py", "arg1", "arg2"]
Több parancs --command-line "/bin/bash -c 'mkdir test; touch test/myfile; tail -f /dev/null'" Parancs felülbírálása: /bin/bash, -c, mkdir test; touch test/myfile; tail -f /dev/null "command": ["/bin/bash", "-c", "mkdir test; touch test/myfile; tail -f /dev/null"]

Azure CLI-példa

Példaként módosítsa a microsoft/aci-wordcount tárolórendszerkép viselkedését, amely Shakespeare Hamletjében elemzi a szöveget, hogy megtalálja a leggyakrabban előforduló szavakat. A Hamlet elemzése helyett beállíthat egy olyan parancssort, amely egy másik szövegforrásra mutat.

A microsoft/aci-wordcount tároló kimenetének megtekintéséhez az alapértelmezett szöveg elemzésekor futtassa az alábbi az container create paranccsal. Nincs megadva kezdő parancssor, ezért az alapértelmezett tárolóparancs fut. Szemléltetés céljából ez a példa a környezeti változókat úgy állítja be, hogy megkeresse a legalább öt betűből álló első 3 szót:

az container create \
    --resource-group myResourceGroup \
    --name mycontainer1 \
    --image mcr.microsoft.com/azuredocs/aci-wordcount:latest \
    --environment-variables NumWords=3 MinLength=5 \
    --restart-policy OnFailure

Ha a tároló állapota Leállítva állapotúként jelenik meg (az az container show használatával ellenőrizze az állapotot), a kimenet megtekintéséhez jelenítse meg a naplót az az container logs paranccsal.

az container logs --resource-group myResourceGroup --name mycontainer1
[('HAMLET', 386), ('HORATIO', 127), ('CLAUDIUS', 120)]

Most állítson be egy második példatárolót a különböző szövegek elemzéséhez egy másik parancssor megadásával. A tároló wordcount.py által végrehajtott Python-szkript argumentumként fogad el egy URL-címet, és az alapértelmezett helyett feldolgozza a lap tartalmát.

Például a Rómeóban és Júliában legalább öt betűből álló első 3 szó meghatározásához:

az container create \
    --resource-group myResourceGroup \
    --name mycontainer2 \
    --image mcr.microsoft.com/azuredocs/aci-wordcount:latest \
    --restart-policy OnFailure \
    --environment-variables NumWords=3 MinLength=5 \
    --command-line "python wordcount.py http://shakespeare.mit.edu/romeo_juliet/full.html"

A tároló leállása után is tekintse meg a kimenetet a tároló naplóinak megjelenítésével:

az container logs --resource-group myResourceGroup --name mycontainer2
[('ROMEO', 177), ('JULIET', 134), ('CAPULET', 119)]

Következő lépések

A feladatalapú forgatókönyvek, például a több tárolóval rendelkező nagy adathalmaz kötegelt feldolgozása, futásidőben kihasználhatják az egyéni parancssorokat. A feladatalapú tárolók futtatásával kapcsolatos további információkért lásd: Tárolóalapú tevékenységek futtatása újraindítási szabályzatokkal.