Memasang volume gitRepo dalam Azure Container Instances
Pelajari cara memasang volume gitRepo untuk mengkloning repositori Git ke dalam instans kontainer Anda.
Catatan
Memasang volume gitRepo saat ini dibatasi untuk kontainer Linux. Saat kita sedang berupaya untuk membawa semua fitur ke kontainer Windows, Anda dapat menemukan perbedaan platform saat ini dalam ikhtisar.
volume gitRepo
Volume gitRepo memasang direktori dan mengkloning repositori Git yang ditentukan ke dalamnya selama pembuatan kontainer. Dengan menggunakan volume gitRepo dalam instans kontainer, Anda dapat menghindari penambahan kode untuk melakukannya di aplikasi Anda.
Saat Anda memasang volume gitRepo, Anda dapat mengatur tiga properti untuk mengonfigurasi volume:
Properti | Wajib | Deskripsi |
---|---|---|
repository |
Ya | URL lengkap, termasuk http:// atau https:// , dari repositori Git yang akan dikloning. |
directory |
No | Direktori tempat repositori harus dikloning. Jalur tidak boleh berisi atau dimulai dengan ".. ". Jika Anda menentukan ". ", repositori dikloning ke direktori volume. Jika tidak, repositori Git dikloning ke subdirektori dari nama yang diberikan dalam direktori volume. |
revision |
No | Hash komit revisi yang akan dikloning. Jika tidak ditentukan, revisi HEAD akan dikloning. |
Memasang volume gitRepo: Azure CLI
Untuk memasang volume gitRepo saat Anda menyebarkan instans kontainer dengan Azure CLI, berikan parameter --gitrepo-url
dan --gitrepo-mount-path
ke perintah az container create. Anda dapat secara opsional menentukan direktori dalam volume untuk mengkloning ke (--gitrepo-dir
) dan hash penerapan revisi yang akan dikloning (--gitrepo-revision
).
Perintah contoh ini mengkloning aplikasi sampel aci-helloworld Microsoft ke /mnt/aci-helloworld
dalam instans kontainer:
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
Untuk memverifikasi volume gitRepo telah dipasang, luncurkan shell di kontainer dengan perintah az container exec dan daftarkan direktori:
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
Memasang volume gitRepo: Resource Manager
Untuk memasang volume gitRepo saat Anda menyebarkan instans kontainer dengan templat Azure Resource Manager, pertama-tama isi array volumes
di bagian properties
grup kontainer templat. Kemudian, untuk setiap kontainer dalam grup kontainer di mana Anda ingin memasang volume gitRepo, isi array volumeMounts
di bagian properties
definisi kontainer.
Misalnya, templat Resource Manager berikut membuat grup kontainer yang terdiri dari satu kontainer. Kontainer mengkloning dua repositori GitHub yang ditentukan oleh blok volume gitRepo. Volume kedua mencakup properti tambahan yang menentukan direktori untuk dikloning, dan hash komit dari revisi tertentu untuk kloning.
{
"$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"
}
}
]
}
}
]
}
Struktur direktori yang dihasilkan dari dua repositori kloning yang didefinisikan dalam templat sebelumnya adalah:
/mnt/repo1/aci-helloworld
/mnt/repo2/my-custom-clone-directory
Untuk melihat contoh penyebaran instans kontainer dengan templat Azure Resource Manager, lihat Menyebarkan grup multi-kontainer di Azure Container Instances.
Autentikasi repositori Git Pribadi
Untuk memasang volume gitRepo untuk repositori Git pribadi, tentukan kredensial di URL repositori. Biasanya, kredensial dalam bentuk nama pengguna dan token akses pribadi (PAT) yang memberikan akses tercakup ke repositori.
Misalnya, parameter --gitrepo-url
Azure CLI untuk repositori GitHub pribadi akan tampak mirip dengan yang berikut (di mana "gituser" adalah nama pengguna GitHub, dan "abcdef1234fdsa4321abcdef" adalah token akses pribadi pengguna):
--gitrepo-url https://gituser:abcdef1234fdsa4321abcdef@github.com/GitUser/some-private-repository
Untuk repositori Azure Repos Git, tentukan nama pengguna apa pun (Anda dapat menggunakan "azurereposuser" seperti dalam contoh berikut) dalam kombinasi dengan PAT yang valid:
--gitrepo-url https://azurereposuser:abcdef1234fdsa4321abcdef@dev.azure.com/your-org/_git/some-private-repository
Untuk informasi selengkapnya tentang token akses pribadi untuk GitHub dan Azure Repos, lihat yang berikut ini:
GitHub: Membuat token akses pribadi untuk baris perintah
Azure Repos: Membuat token akses pribadi untuk mengautentikasi akses
Langkah berikutnya
Pelajari cara memasang jenis volume lainnya di Azure Container Instances: