Azure Container Apps'te depolama bağlantı noktalarını kullanın.

Kapsayıcı uygulamasının farklı depolama türlerine erişimi vardır. Gerekirse tek bir uygulama birden fazla depolama türünden yararlanabilir.

Uyarı

Dağıtım hatalarını önlemek için birim adlarında özel karakterler kullanmaktan kaçının. Örneğin, adlı credentials.json bir birim özel bir karakter (.) içerir ve bu da dağıtım hatasıyla sonuçlanır.

Depolama türü Açıklama Kalıcılık Kullanım örneği
Kapsayıcı kapsamında depolama Çalışan bir kapsayıcı için geçici depolama mevcut Kapsayıcı kapatana kadar veriler kullanılabilir Yerel uygulama önbelleği yazma.
Replika kapsamında depolama Aynı çoğaltmadaki kapsayıcılar arasında dosya paylaşımı için geçici depolama Replika kapanana kadar veriler kullanılabilir Ana uygulama kapsayıcısı, bir sidecar kapsayıcısının işlediği günlük dosyalarını yazar.
Azure Dosyalar Kalıcı depolama Veriler Azure Dosyalar'a kalıcı olarak kaydedilir Verileri diğer sistemler tarafından erişilebilir hale getirmek için dosya paylaşımına dosya yazma.

Uyarı

Azure Container Apps, Azure NetApp Files veya Azure Blob Depolama dosya paylaşımlarını bağlamayı desteklemez.

Geçici depolama

Kapsayıcı uygulaması geçici verileri kısa süreli depolama alanına okuyabilir ve yazabilir. Kısa süreli depolama bir kapsayıcı veya çoğaltma ile sınırlanabilir. Her bir çoğaltma için kullanılabilir toplam kapsayıcı odaklı ve çoğaltma odaklı depolama alanı, çoğaltmaya tahsis edilen toplam vCPU sayısına bağlıdır.

vCPU'ler Toplam geçici depolama
0,25 veya daha düşük 1 GiB
0,5 veya daha düşük 2 GiB
1 veya daha düşük 4 GiB
1'den fazla 8 GiB

Kapsayıcı kapsamlı depolama

Kapsayıcı kendi dosya sistemine yazabilir.

Kapsayıcı dosya sistemi depolama aşağıdaki özelliklere sahiptir:

  • Depolama geçicidir ve kapsayıcı kapatıldığında veya yeniden başlatıldığında kaybolur.
  • Yalnızca geçerli kapsayıcıda çalışan işlemler bu depolama alanına yazılan dosyaları görebilir.

Replika kapsamlı depolama

Kubernetes'te EmptyDir (boş dizin) ile eşdeğer kısa ömürlü, geçici bir birim bağlayabilirsiniz. Bu depolama bir tekil çoğaltmayla sınırlıdır. Birim EmptyDir kullanarak aynı çoğaltmadaki kapsayıcılar arasında veri paylaşın.

Replika kapsamlı depolama aşağıdaki özelliklere sahiptir:

  • Dosyalar, repli̇kanın ömrü boyunca muhafaza edilir.
    • Çoğaltmadaki bir kapsayıcı yeniden başlatılırsa, birimdeki dosyalar kalır.
  • Çoğaltmadaki tüm init veya uygulama kapsayıcıları aynı birimi bağlayabilir.
  • Kapsayıcı birden çok EmptyDir birimi bağlayabilir.

Çoğaltma kapsamlı depolamayı yapılandırmak için önce sürümde bir EmptyDir birim tanımlayın. Ardından, düzeltmedeki bir veya daha fazla kapsayıcıda birim bağlaması tanımlayın.

Önkoşullar

Gereksinim Yönergeler
Azure hesabı Hesabınız yoksa ücretsiz bir hesap oluşturun.
Azure Container Apps ortamı Kapsayıcı uygulamaları için bir ortam oluşturun.
Yönetilen kimlik yapılandırması Azure Dosyalar'a erişmek için Container Apps ortamınızla ilişkili yönetilen kimliğe uygun roller atandığından emin olun.

Yapılandırma

Azure CLI kullanarak çoğaltma-odaklı depolamayı yapılandırırken, kapsayıcı uygulamanızı oluşturmak veya güncellemek için bir YAML tanımı kullanmanız gerekir.

  1. Mevcut kapsayıcı uygulamasını replica kapsamlı depolama kullanacak şekilde güncellemek için uygulamanızın özelliklerini app.yaml adlı bir YAML dosyasına aktarın.

    az containerapp show -n <APP_NAME> -g <RESOURCE_GROUP_NAME> -o yaml > app.yaml
    
  2. Kapsayıcı uygulama belirtiminizde aşağıdaki değişiklikleri yapın.

    • Kapsayıcı uygulama tanımınızın `volumes` bölümüne bir `template` dizisi ekleyin ve bir birim tanımlayın. Zaten bir volumes diziniz varsa, diziye yeni bir birim ekleyin.
      • name birim için bir tanımlayıcıdır.
      • olarak EmptyDirkullanınstorageType.
    • Şablondaki her kapsayıcı için, birimi bağlamak üzere kapsayıcı tanımındaki volumeMounts dizisinde bir birim montajı tanımlayın.
      • volumeName, volumes dizisinde tanımlanmış addır.
      • mountPath, birimi bağlamak için kapsayıcıdaki yoldur.
    properties:
      managedEnvironmentId: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP_NAME>/providers/Microsoft.App/managedEnvironments/<ENVIRONMENT_NAME>
      configuration:
        activeRevisionsMode: Single
      template:
        containers:
        - image: <IMAGE_NAME1>
          name: my-container-1
          volumeMounts:
          - mountPath: /myempty
            volumeName: myempty
        - image: <IMAGE_NAME_2>
          name: my-container-2
          volumeMounts:
          - mountPath: /myempty
            volumeName: myempty
        volumes:
        - name: myempty
          storageType: EmptyDir
    
  3. YAML dosyasını kullanarak kapsayıcı uygulamanızı güncelleştirin.

    az containerapp update --name <APP_NAME> --resource-group <RESOURCE_GROUP_NAME> \
        --yaml app.yaml
    

Tam bir örnek için YAML belirtimine bakın.

Çoğaltma kapsamlı bir birim oluşturmak ve bunu bir kapsayıcıya bağlamak için, ARM şablonundaki kapsayıcı uygulamaları kaynağında aşağıdaki değişiklikleri yapın:

  • Kapsayıcı uygulama tanımınızın `volumes` bölümüne bir `template` dizisi ekleyin ve bir birim tanımlayın. Zaten bir volumes diziniz varsa, diziye yeni bir birim ekleyin.
    • name birim için bir tanımlayıcıdır.
    • olarak EmptyDirkullanınstorageType.
  • Şablondaki her kapsayıcı için, birimi bağlamak üzere kapsayıcı tanımındaki volumeMounts dizisinde bir birim montajı tanımlayın.
    • volumeName, volumes dizisinde tanımlanmış addır.
    • mountPath, birimi bağlamak için kapsayıcıdaki yoldur.

Örnek ARM şablonu parçacığı:

{
  "apiVersion": "2022-03-01",
  "type": "Microsoft.App/containerApps",
  "name": "[parameters('containerappName')]",
  "location": "[parameters('location')]",
  "properties": {

    ...

    "template": {
      "revisionSuffix": "myrevision",
      "containers": [
        {
          "name": "main",
          "image": "[parameters('container_image')]",
          "resources": {
            "cpu": 0.5,
            "memory": "1Gi"
          },
          "volumeMounts": [
            {
              "mountPath": "/myempty",
              "volumeName": "myempty"
            }
          ]
        },
        {
          "name": "sidecar",
          "image": "[parameters('sidecar_image')]",
          "resources": {
            "cpu": 0.5,
            "memory": "1Gi"
          },
          "volumeMounts": [
            {
              "mountPath": "/myempty",
              "volumeName": "myempty"
            }
          ]
        }
      ],
      "scale": {
        "minReplicas": 1,
        "maxReplicas": 3
      },
      "volumes": [
        {
          "name": "myempty",
          "storageType": "EmptyDir"
        }
      ]
    }
  }
}

Tam bir örnek için ARM şablonu API belirtimine bakın.

Kapsamı yeniden eşleme üzerine kurulu bir birim oluşturmak ve bunu bir kapsayıcıya bağlamak için Azure portalını kullanarak kapsayıcı uygulamanızın yeni bir sürümünü dağıtın.

  1. Azure portalında kapsayıcı uygulamanıza gidin.

  2. Soldaki menüden Düzeltme yönetimi'ni seçin.

  3. Yeni düzeltme oluştur'u seçin.

  4. Birimi bağlamak istediğiniz kapsayıcıyı seçin.

  5. Kapsayıcı bağlamını düzenle bölmesinde Birim bağlamaları sekmesini seçin.

  6. Kısa ömürlü depolama bölümünde aşağıdaki bilgileri içeren yeni bir birim oluşturun:

    • Birim adı: Kısa ömürlü birimin adı.
    • Bağlama yolu: Birimi bağlamak için kapsayıcıdaki mutlak yol.
  7. Değişiklikleri kaydetmek ve bağlam bölmesinden çıkmak için Kaydet'i seçin.

  8. Yeni düzeltmeyi oluşturmak için Oluştur'u seçin.

Azure Dosyalar birimi

Azure Dosyalar'tan dosya paylaşımını birim olarak bir kapsayıcıda bağlayabilirsiniz.

Azure Dosyalar depolama aşağıdaki özelliklere sahiptir:

  • Bağlama konumu altında yazılan dosyalar dosya paylaşımında kalıcı olarak kalır.
  • Paylaşımdaki dosyalar bağlama konumu üzerinden kullanılabilir.
  • Başka bir çoğaltma, düzeltme veya kapsayıcı uygulamasında bulunanlar da dahil olmak üzere birden çok kapsayıcı aynı dosya paylaşımını bağlayabilir.
  • Paylaşımı monte eden tüm kapsayıcılar, başka bir kapsayıcı veya yöntem ile yazılan dosyalara erişebilir.
  • Tek bir kapsayıcıya birden fazla Azure Dosyalar birimi bağlanabilir.

Azure Dosyalar hem SMB (Sunucu İleti Bloğu) hem de NFS (Ağ Dosya Sistemi) protokollerini destekler. Bir Azure Dosyalar paylaşımını iki protokolden birini kullanarak bağlayabilirsiniz. Ortamda tanımladığınız dosya paylaşımı, depolama hesabındaki dosya paylaşımı tarafından kullanılan protokolle yapılandırılmalıdır.

Kapsayıcınızda Azure Dosyalar depolamayı etkinleştirmek için ortamınızı ve kapsayıcı uygulamanızı aşağıdaki gibi ayarlamanız gerekir:

Azure portalında Container Uygulamanızı açın.
Sol gezinti bölmesindeki Ayarlar'ın altında Depolama bağlamaları'nı seçin.

Buradan yeni bir bağlama ekleyebilirsiniz:

  1. Depolama türünü seçin (Azure Dosya paylaşımı veya Azure Blob).
  2. Gerekli yapılandırmayı (depolama hesabı, paylaşım adı, erişim modu) sağlayın.
  3. Bağlamayı kaydedin.
  4. Değişiklikleri uygulamak için kapsayıcı uygulamanızın yeni bir düzeltmesini oluşturun ve dağıtın .
  • Container Apps ortamında bir depolama tanımı oluşturun.
  • NFS kullanıyorsanız ortamınızın özel bir sanal ağ ile yapılandırılması ve depolama hesabının sanal ağdan erişime izin verecek şekilde yapılandırılması gerekir. Daha fazla bilgi için bkz. Azure Dosyalar NFS dosya paylaşımları.
  • Ortamınız özel bir sanal ağ ile yapılandırılmışsa, alt ağ ile ilişkili ağ güvenlik grubunda (NSG) 445 ve 2049 bağlantı noktalarına izin vermelisiniz.
  • Bir düzeltmede tür AzureFile (SMB) veya NfsAzureFile (NFS) birimi tanımlayın.
  • Revizyondaki bir veya daha fazla kapsayıcıda birim bağlamasını tanımlayın.
  • Kullanılan Azure Dosyalar depolama hesabına kapsayıcı uygulamanızın sanal ağından erişilebilir olmalıdır. Daha fazla bilgi için bkz. Sanal ağdan erişim verme.

Önkoşullar

Gereksinim Yönergeler
Azure hesabı Hesabınız yoksa ücretsiz bir hesap oluşturun.
Azure Depolama hesabı Depolama hesabı oluşturun.
Azure Container Apps ortamı Kapsayıcı uygulamaları için bir ortam oluşturun.

Yapılandırma

Kapsayıcı uygulamasını Azure CLI kullanarak bir Azure Dosyalar birimi bağacak şekilde yapılandırdığınızda, kapsayıcı uygulamanızı oluşturmak veya güncelleştirmek için YAML tanımı kullanmanız gerekir.

SMB dosya paylaşımını bağlama konusunda adım adım bir öğretici için Azure Container Apps'te Azure Dosyalar depolama bağlantısı oluşturma başlıklı bölüme bakın.

  1. Container Apps ortamınıza bir depolama tanımı ekleyin.

    az containerapp env storage set --name my-env --resource-group my-group \
        --storage-name mystorage \
        --storage-type AzureFile \
        --azure-file-account-name <STORAGE_ACCOUNT_NAME> \
        --azure-file-account-key <STORAGE_ACCOUNT_KEY> \
        --azure-file-share-name <STORAGE_SHARE_NAME> \
        --access-mode ReadWrite
    

    <STORAGE_ACCOUNT_NAME> ve <STORAGE_ACCOUNT_KEY> değerlerini, depolama hesabınızın adı ve anahtarı ile değiştirin. Depolama hesabındaki dosya paylaşımının adıyla <STORAGE_SHARE_NAME> değerini değiştirin.

    için --access-mode geçerli değerler şunlardır ReadWrite : ve ReadOnly.

  2. Mevcut bir kapsayıcı uygulamasını dosya paylaşımını bağacak şekilde güncelleştirmek için uygulamanızın belirtimini app.yaml adlı bir YAML dosyasına aktarın.

    az containerapp show -n <APP_NAME> -g <RESOURCE_GROUP_NAME> -o yaml > app.yaml
    
  3. Kapsayıcı uygulama belirtiminizde aşağıdaki değişiklikleri yapın.

    • Kapsayıcı uygulama tanımınızın `volumes` bölümüne bir `template` dizisi ekleyin ve bir birim tanımlayın. Zaten bir volumes diziniz varsa, diziye yeni bir birim ekleyin.
      • name birim için bir tanımlayıcıdır.
      • storageType için SMB kullanın veya NFS için AzureFile kullanın. Bu değer, ortamda tanımladığınız depolama türüyle eşleşmelidir.
      • için storageName, ortamda tanımladığınız depolama alanının adını kullanın.
      • mountOptions, bağlama seçeneklerinin virgülle ayrılmış bir dizesidir. Daha fazla bilgi için bkz. Azure Dosyalar'da mountOptions ayarlarını kullanma.
      • secrets listesi, birime bağlanacak gizli ögelerin listesidir. Daha fazla bilgi için Bir birime gizli bilgileri bağlama bölümüne bkz.
    • Azure Dosyalar depolamasını bağlamak istediğiniz her kapsayıcı için, kapsayıcı tanımının volumeMounts dizisinde bir birim bağlaması tanımlayın.
      • volumeName, volumes dizisinde tanımlanmış addır.
      • mountPath, birimi bağlamak için kapsayıcıdaki yoldur.
      • subPath, birimde bağlanacak yoldur. Bu değeri belirtmezseniz, kök birim montaj edilir. Daha fazla bilgi için bakınız (#alt yol).
    properties:
      managedEnvironmentId: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP_NAME>/providers/Microsoft.App/managedEnvironments/<ENVIRONMENT_NAME>
      configuration:
      template:
        containers:
        - image: <IMAGE_NAME>
          name: my-container
          volumeMounts:
          - volumeName: azure-files-volume
            mountPath: /my-files
            subPath: my-sub-path
        volumes:
        - name: azure-files-volume
          storageType: AzureFile
          storageName: mystorage
    
  4. YAML dosyasını kullanarak kapsayıcı uygulamanızı güncelleştirin.

    az containerapp update --name <APP_NAME> --resource-group <RESOURCE_GROUP_NAME> \
        --yaml app.yaml
    

Tam bir örnek için YAML belirtimine bakın.

Aşağıdaki ARM şablonu parçacıkları, Container Apps ortamına bir Azure Dosyalar paylaşımı eklemeyi ve bunu bir kapsayıcı uygulamasında kullanmayı gösterir.

  1. Container Apps ortamına bir storages alt kaynak ekleyin.

    {
      "type": "Microsoft.App/managedEnvironments",
      "apiVersion": "2022-03-01",
      "name": "[parameters('environment_name')]",
      "location": "[parameters('location')]",
      "properties": {
        "daprAIInstrumentationKey": "[parameters('dapr_ai_instrumentation_key')]",
        "appLogsConfiguration": {
          "destination": "log-analytics",
          "logAnalyticsConfiguration": {
            "customerId": "[parameters('log_analytics_customer_id')]",
            "sharedKey": "[parameters('log_analytics_shared_key')]"
          }
        }
      },
      "resources": [
        {
          "type": "storages",
          "name": "myazurefiles",
          "apiVersion": "2022-03-01",
          "dependsOn": [
            "[resourceId('Microsoft.App/managedEnvironments', parameters('environment_name'))]"
          ],
          "properties": {
            "azureFile": {
              "accountName": "[parameters('storage_account_name')]",
              "accountKey": "[parameters('storage_account_key')]",
              "shareName": "[parameters('storage_share_name')]",
              "accessMode": "ReadWrite"
            }
          }
        }
      ]
    }
    
  2. Birim ve birim bağlama eklemek için kapsayıcı uygulama kaynağını güncelleştirin.

    {
      "apiVersion": "2023-05-01",
      "type": "Microsoft.App/containerApps",
      "name": "[parameters('containerappName')]",
      "location": "[parameters('location')]",
      "properties": {
    
        ...
    
        "template": {
          "revisionSuffix": "myrevision",
          "containers": [
            {
              "name": "main",
              "image": "[parameters('container_image')]",
              "resources": {
                "cpu": 0.5,
                "memory": "1Gi"
              },
              "volumeMounts": [
                {
                  "mountPath": "/myfiles",
                  "volumeName": "azure-files-volume",
                  "subPath": "my-sub-path"
                }
              ]
            }
          ],
          "scale": {
            "minReplicas": 1,
            "maxReplicas": 3
          },
          "volumes": [
            {
              "name": "azure-files-volume",
              "storageType": "AzureFile",
              "storageName": "myazurefiles"
            }
          ]
        }
      }
    }
    
    • Kapsayıcı uygulama tanımınızın `volumes` bölümüne bir `template` dizisi ekleyin ve bir birim tanımlayın. Zaten bir volumes diziniz varsa, diziye yeni bir birim ekleyin.
      • name birim için bir tanımlayıcıdır.
      • storageType için SMB kullanın veya NFS için AzureFile kullanın. Bu değer, ortamda tanımladığınız depolama türüyle eşleşmelidir.
      • için storageName, ortamda tanımladığınız depolama alanının adını kullanın.
      • mountOptions, bağlama seçeneklerinin virgülle ayrılmış bir dizesidir. Daha fazla bilgi için bkz. Azure Dosyalar'da mountOptions ayarlarını kullanma.
      • secrets listesi, birime bağlanacak gizli ögelerin listesidir. Daha fazla bilgi için Bir birime gizli bilgileri bağlama bölümüne bkz.
    • Azure Dosyalar depolamasını bağlamak istediğiniz her kapsayıcı için, kapsayıcı tanımının volumeMounts dizisinde bir birim bağlaması tanımlayın.
      • volumeName, volumes dizisinde tanımlanmış addır.
      • mountPath, birimi bağlamak için kapsayıcıdaki yoldur.
      • subPath (isteğe bağlı) birim içinde bağlanacak dizinin yolunu temsil eder. Belirtmezseniz birim kökü bağlanır. Daha fazla bilgi için bakınız (#alt yol).

Tam bir örnek için ARM şablonu API belirtimine bakın.

Azure portalında Azure Dosyalar depolaması için birim bağlamasını yapılandırmak üzere, Container Uygulama ortamınıza bir dosya paylaşımı ekleyin ve ardından yeni bir revizyon oluşturarak kapsayıcı uygulamanıza birim bağlamasını ekleyin.

  1. Azure portalında Container Apps ortamınıza gidin.

  2. Gezinti bölmesinde, Ayarlar'ın altında Birim bağlamaları'nı seçin.

  3. Ekle'yi seçin.

  4. Dosya paylaşımınız tarafından kullanılan protokole bağlı olarak Sunucu İleti Bloğu (SMB) veya Ağ Dosya Sistemi (NFS) seçeneğini belirleyin.

  5. Dosya paylaşımı bağlamı ekle bölmesine aşağıdaki bilgileri girin:

    • Ad: Dosya paylaşımı için bir ad.
    • Depolama hesabı adı: Dosya paylaşımını içeren depolama hesabının adı.
    • Depolama hesabı anahtarı: Depolama hesabının erişim anahtarı.
    • Dosya paylaşımı: Dosya paylaşımının adı.
    • Erişim modu: Dosya paylaşımının erişim modu. Geçerli değerler Okuma/Yazma ve Salt okunur değerlerdir.
  6. Bağlam bölmesinden çıkmak için Ekle'yi seçin.

  7. Değişiklikleri kaydetmek için Kaydet'i seçin.

  8. Container uygulamanıza gidin.

  9. Gezinti bölmesindeki Uygulama'nın altında Düzeltmeler ve çoğaltmalar'ı seçin.

  10. Yeni düzeltme oluştur'u seçin.

  11. Yeni düzeltme oluştur ve dağıt sayfasında Birimler sekmesini seçin.

  12. Ekle'yi seçin.

  13. Birim bağlamı ekle bölmesinde aşağıdaki değerleri ayarlayın.

    • Hacim türü: Azure dosya birimi.
    • Ad: Bir birim adı girin.
    • Dosya paylaşımı adı: Daha önce oluşturduğunuz dosya paylaşımını seçin.
    • Bağlama seçenekleri: İsteğe bağlı olarak, virgülle ayrılmış bağlama seçenekleri dizesi girin. Daha fazla bilgi için bkz. Azure Dosyalar'da mountOptions ayarlarını kullanma.
  14. Bağlam bölmesinden çıkmak için Ekle'yi seçin.

  15. Yeni düzeltme oluştur ve yeniden dağıt sayfasında Kapsayıcı sekmesini seçin.

  16. Hacmi bağlamak istediğiniz kapsayıcıyı seçin.

  17. Kapsayıcı bağlamını düzenle bölmesinde Birim bağlamaları sekmesini seçin.

  18. Birim adı'nın altında, daha önce oluşturduğunuz birimi seçin.

  19. Bağlama yolu alanına, birimi monte etmek için kapsayıcıda mutlak yolu girin.

  20. Alt yol (isteğe bağlı) bölümünde, bağlanacak birimdeki yolu girin. Bu değeri belirtmezseniz, kök birim montaj edilir. Daha fazla bilgi için bakınız (#alt yol).

  21. Değişiklikleri kaydetmek ve bağlam bölmesinden çıkmak için Kaydet'i seçin.

  22. Yeni düzeltmeyi oluşturmak için Oluştur'u seçin.

Alt yol

Azure Dosyalar dosya paylaşımını bağladığınızda, hem bağlama yolu hem de alt yol belirtebilirsiniz.

  • Bağlama yolu: Kapsayıcıda birimi bağlamak istediğiniz yol.
  • Alt yol: Bağlanacak birimdeki alt yol.

Alt yol isteğe bağlıdır. Bir alt yol belirtmezseniz birim kökü bağlanır.

Alt yol, birim kökünden göreli bir yoldur. Alt Yolu / ile başlatmayın. ile /başlayan bir alt yol belirtirseniz kapsayıcı uygulamanız başlatılamayabilir. Örneğin, my-volume-folder geçerli bir alt yoldur, ancak /my-volume-folder değildir.

Alt yol, birimdeki bir klasöre veya dosyaya başvurabilir.

  • Alt yol bir klasöre başvuruyorsa, bağlama yolu kapsayıcıdaki boş bir klasöre başvurmalıdır.

  • Alt yol bir dosyaya başvuruyorsa, bağlama yolu kapsayıcıda henüz var olmayan bir dosyaya başvurmalıdır.

    Örneğin, alt yolun my-volume-folder/my-volume-file.txt ve bağlama yolunun /my-container-folder/my-container-file.txt olduğunu varsayalım. Klasör /my-container-folder kapsayıcıda zaten bulunmalı, ancak henüz dosyasını my-container-file.txtiçermemelidir.

Sistem, alt yolların sonundaki eğik çizgileri yoksayar.