Sdílet prostřednictvím


Připojení svazku gitRepo ve službě Azure Container Instances

Zjistěte, jak připojit svazek gitRepo pro naklonování úložiště Git do vašich instancí kontejneru.

Poznámka:

Připojení svazku GitRepo je aktuálně omezeno na kontejnery Linuxu. Zatímco pracujeme na přenesení všech funkcí do kontejnerů Windows, aktuální rozdíly v platformě najdete v přehledu.

GitRepo svazek

Svazek GitRepo připojí adresář a během vytváření kontejneru do něj naklonuje zadané úložiště Git. Pomocí svazku gitRepo v instancích kontejneru se můžete vyhnout přidání kódu pro účely těchto operací v aplikacích.

Když připojíte svazek GitRepo, můžete nastavit tři vlastnosti pro konfiguraci svazku.

Vlastnost Požadováno Popis
repository Ano Úplná adresa URL úložiště Git, včetně http:// nebo https://, která se má naklonovat.
directory Ne Adresář, do kterého se má úložiště naklonovat. Cesta nesmí obsahovat ani začínat na "..". Pokud zadáte ".", úložiště se naklonuje do adresáře svazku. V opačném případě se úložiště Git naklonuje do podadresáře daného názvu v adresáři svazku.
revision Ne Hash kód verze potvrzení, kterou chcete klonovat. Pokud není zadáno, HEAD revize bude naklonována.

Připojení svazku GitRepo: Azure CLI

Pokud chcete připojit svazek gitRepo při nasazování instancí kontejneru pomocí Azure CLI, zadejte parametry --gitrepo-url a --gitrepo-mount-path k příkazu az container create. Volitelně můžete zadat adresář v rámci svazku, do kterého chcete klonovat (--gitrepo-dir) a hodnotu hash potvrzení revize, která se má naklonovat (--gitrepo-revision).

Tento ukázkový příkaz naklonuje ukázkovou aplikaci Microsoft aci-helloworld do /mnt/aci-helloworld instance kontejneru:

az container create \
    --resource-group myResourceGroup \
    --name hellogitrepo \
    --image mcr.microsoft.com/azuredocs/aci-helloworld \
    --dns-name-label aci-demo \
    --ports 80 \
    --gitrepo-url https://github.com/Azure-Samples/aci-helloworld \
    --gitrepo-mount-path /mnt/aci-helloworld

Chcete-li ověřit, že byl svazek gitRepo připojen, otevřete shell v kontejneru pomocí příkazu az container exec a vypište adresář:

az container exec --resource-group myResourceGroup --name hellogitrepo --exec-command /bin/sh
/usr/src/app # ls -l /mnt/aci-helloworld/
total 16
-rw-r--r--    1 root     root           144 Apr 16 16:35 Dockerfile
-rw-r--r--    1 root     root          1162 Apr 16 16:35 LICENSE
-rw-r--r--    1 root     root          1237 Apr 16 16:35 README.md
drwxr-xr-x    2 root     root          4096 Apr 16 16:35 app

Připojení svazku GitRepo: Resource Manager

Pokud chcete připojit svazek gitRepo při nasazování instancí kontejneru pomocí šablony Azure Resource Manager, nejprve naplňte pole volumes v části skupiny kontejnerů properties šablony. Potom pro každý kontejner ve skupině kontejnerů, kde chcete připojit svazek gitRepo, vyplňte pole volumeMounts v části properties definice kontejneru.

Například následující šablona Resource Manageru vytvoří skupinu kontejnerů skládající se z jednoho kontejneru. Kontejner naklonuje dvě úložiště GitHubu specifikovaná ve svazcích gitRepo. Druhý svazek obsahuje další vlastnosti určující adresář, do kterého se má klonovat, a hodnotu hash potvrzení konkrétní revize, do které se má klonovat.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "variables": {
    "container1name": "aci-tutorial-app",
    "container1image": "mcr.microsoft.com/azuredocs/aci-helloworld"
  },
  "resources": [
    {
      "type": "Microsoft.ContainerInstance/containerGroups",
      "apiVersion": "2021-03-01",
      "name": "volume-demo-gitrepo",
      "location": "[resourceGroup().location]",
      "properties": {
        "containers": [
          {
            "name": "[variables('container1name')]",
            "properties": {
              "image": "[variables('container1image')]",
              "resources": {
                "requests": {
                  "cpu": 1,
                  "memoryInGb": 1.5
                }
              },
              "ports": [
                {
                  "port": 80
                }
              ],
              "volumeMounts": [
                {
                  "name": "gitrepo1",
                  "mountPath": "/mnt/repo1"
                },
                {
                  "name": "gitrepo2",
                  "mountPath": "/mnt/repo2"
                }
              ]
            }
          }
        ],
        "osType": "Linux",
        "ipAddress": {
          "type": "Public",
          "ports": [
            {
              "protocol": "tcp",
              "port": "80"
            }
          ]
        },
        "volumes": [
          {
            "name": "gitrepo1",
            "gitRepo": {
              "repository": "https://github.com/Azure-Samples/aci-helloworld"
            }
          },
          {
            "name": "gitrepo2",
            "gitRepo": {
              "directory": "my-custom-clone-directory",
              "repository": "https://github.com/Azure-Samples/aci-helloworld",
              "revision": "d5ccfcedc0d81f7ca5e3dbe6e5a7705b579101f1"
            }
          }
        ]
      }
    }
  ]
}

Výsledná adresářová struktura dvou naklonovaných úložišť definovaných v předchozí šabloně je:

/mnt/repo1/aci-helloworld
/mnt/repo2/my-custom-clone-directory

Příklad nasazení instance kontejneru pomocí šablony Azure Resource Manageru najdete v tématu Nasazení skupin s více kontejnery ve službě Azure Container Instances.

Ověřování privátního úložiště Git

Pokud chcete připojit svazek GitRepo pro privátní úložiště Git, zadejte přihlašovací údaje v adrese URL úložiště. Přihlašovací údaje jsou obvykle ve formě uživatelského jména a osobního přístupového tokenu (PAT), který uděluje přístup v daném rozsahu k úložišti.

Například parametr Azure CLI --gitrepo-url pro privátní úložiště GitHub by vypadal podobně jako následující (kde "gituser" je uživatelské jméno GitHubu a "abcdef1234fdsa4321abcdef" je osobní přístupový token uživatele):

--gitrepo-url https://gituser:abcdef1234fdsa4321abcdef@github.com/GitUser/some-private-repository

V případě úložiště Git Azure Repos zadejte libovolné uživatelské jméno (můžete použít "azurereposuser" jako v následujícím případě) v kombinaci s platným PAT:

--gitrepo-url https://azurereposuser:abcdef1234fdsa4321abcdef@dev.azure.com/your-org/_git/some-private-repository

Další informace o osobních přístupových tokenech pro GitHub a Azure Repos najdete v následujících pokynech:

GitHub: Vytvoření osobního přístupového tokenu pro příkazový řádek

Azure Repos: Vytvářejte osobní přístupové tokeny pro autentizaci přístupu

Další kroky

Zjistěte, jak připojit jiné typy svazků ve službě Azure Container Instances: