Udostępnij za pośrednictwem


Zainstaluj wolumin gitRepo w usłudze Azure Container Instances

Dowiedz się, jak zainstalować wolumin gitRepo , aby sklonować repozytorium Git do wystąpień kontenera.

Uwaga

Instalowanie woluminu gitRepo jest obecnie ograniczone do kontenerów systemu Linux. Podczas pracy nad wprowadzeniem wszystkich funkcji do kontenerów systemu Windows można znaleźć bieżące różnice między platformami w omówieniu.

wolumin gitRepo

Wolumin gitRepo instaluje katalog i klonuje do niego określone repozytorium Git podczas tworzenia kontenera. Używając woluminu gitRepo w wystąpieniach kontenera, można uniknąć dodawania kodu do tego w aplikacjach.

Podczas instalowania woluminu gitRepo można ustawić trzy właściwości, aby skonfigurować wolumin:

Właściwości Wymagania opis
repository Tak Pełny adres URL, w tym http:// lub https://, repozytorium Git do sklonowania.
directory Nie. Katalog, do którego należy sklonować repozytorium. Ścieżka nie może zawierać ani rozpoczynać się od ciągu "..". Jeśli określisz wartość ".", repozytorium zostanie sklonowane do katalogu woluminu. W przeciwnym razie repozytorium Git jest klonowane do podkatalogu podanej nazwy w katalogu woluminów.
revision Nie. Skrót zatwierdzenia poprawki do sklonowania. Jeśli nie określono, HEAD poprawka zostanie sklonowana.

Instalowanie woluminu gitRepo: interfejs wiersza polecenia platformy Azure

Aby zainstalować wolumin gitRepo podczas wdrażania wystąpień kontenera za pomocą interfejsu wiersza polecenia platformy Azure, podaj --gitrepo-url parametry i --gitrepo-mount-path do polecenia az container create . Opcjonalnie można określić katalog w woluminie do sklonowania do (--gitrepo-dir) i skrót zatwierdzenia poprawki do sklonowania (--gitrepo-revision).

To przykładowe polecenie klonuje przykładową aplikację microsoft aci-helloworld do /mnt/aci-helloworld wystąpienia kontenera:

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

Aby sprawdzić, czy wolumin gitRepo został zainstalowany, uruchom powłokę w kontenerze za pomocą polecenia az container exec i wyświetl katalog:

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

Instalowanie woluminu gitRepo: Resource Manager

Aby zainstalować wolumin gitRepo podczas wdrażania wystąpień kontenera za pomocą szablonu usługi Azure Resource Manager, najpierw wypełnij tablicę volumes w sekcji grupy properties kontenerów szablonu. Następnie dla każdego kontenera w grupie kontenerów, w której chcesz zainstalować wolumin gitRepo , wypełnij tablicę volumeMounts w properties sekcji definicji kontenera.

Na przykład poniższy szablon usługi Resource Manager tworzy grupę kontenerów składającą się z jednego kontenera. Kontener klonuje dwa repozytoria GitHub określone przez bloki woluminów gitRepo . Drugi wolumin zawiera dodatkowe właściwości określające katalog do sklonowania oraz skrót zatwierdzenia określonej poprawki do sklonowania.

{
  "$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"
            }
          }
        ]
      }
    }
  ]
}

Wynikowa struktura katalogów dwóch sklonowanych repozytoriów zdefiniowanych w poprzednim szablonie to:

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

Aby zapoznać się z przykładem wdrożenia wystąpienia kontenera przy użyciu szablonu usługi Azure Resource Manager, zobacz Wdrażanie grup z wieloma kontenerami w usłudze Azure Container Instances.

Uwierzytelnianie prywatnego repozytorium Git

Aby zainstalować wolumin gitRepo dla prywatnego repozytorium Git, określ poświadczenia w adresie URL repozytorium. Zazwyczaj poświadczenia są w postaci nazwy użytkownika i osobistego tokenu dostępu (PAT), który udziela dostępu w zakresie do repozytorium.

Na przykład parametr interfejsu wiersza polecenia --gitrepo-url platformy Azure dla prywatnego repozytorium GitHub będzie wyglądać podobnie do następującego (gdzie "gituser" jest nazwą użytkownika usługi GitHub, a ciąg "abcdef1234fdsa4321abcdef" jest osobistym tokenem dostępu użytkownika):

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

W przypadku repozytorium Git usługi Azure Repos określ dowolną nazwę użytkownika (możesz użyć nazwy "azurereposuser", jak w poniższym przykładzie) w połączeniu z prawidłowym identyfikatorem dostępu:

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

Aby uzyskać więcej informacji na temat osobistych tokenów dostępu dla usług GitHub i Azure Repos, zobacz następujące artykuły:

GitHub: tworzenie osobistego tokenu dostępu dla wiersza polecenia

Azure Repos: tworzenie osobistych tokenów dostępu w celu uwierzytelniania dostępu

Następne kroki

Dowiedz się, jak zainstalować inne typy woluminów w usłudze Azure Container Instances: