Udostępnij za pośrednictwem


Zainstaluj wolumin gitRepo w usłudze Azure Container Instances

Dowiedz się, jak zamontować wolumin gitRepo w celu sklonowania repozytorium Git do instancji kontenera.

Uwaga

Instalowanie woluminu gitRepo jest obecnie ograniczone do kontenerów systemu Linux. Pracujemy nad wprowadzeniem wszystkich funkcji do kontenerów systemu Windows, a aktualne różnice platformowe znajdziesz w omówieniu.

wolumin GitRepo

Wolumin gitRepo instaluje katalog i klonuje do niego określone repozytorium Git podczas tworzenia kontenera. Korzystając z woluminu gitRepo w instancjach kontenera, można uniknąć dodawania tego kodu w swoich aplikacjach.

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

Właściwości Wymagane opis
repository Tak Pełny adres URL repozytorium Git do sklonowania, zawierający http:// lub https://.
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.

Montowanie wolumenu gitRepo: Azure CLI

Aby zamontować wolumin gitRepo podczas wdrażania wystąpień kontenera za pomocą Azure CLI, podaj parametry --gitrepo-url 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ł zamontowany, uruchom powłokę w kontenerze za pomocą 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 Azure CLI --gitrepo-url dla prywatnego repozytorium GitHub będzie wyglądać podobnie do następującego (gdzie "gituser" jest nazwą użytkownika GitHub, a "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 wskazówki:

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: