ошибка веб-приложения azure для контейнера при попытке подключить хранилище BLOB-объектов

I am working on dockrized app which is deployed in azure with app service "webApp for containers"

я пытаюсь связать учетную запись хранения больших двоичных объектов с моим приложением. Я уже создал учетную запись хранения и связал ее с моим приложением на вкладке «сопоставление путей».

but i keep getting error saying :
 Exception in multi-container config parsing: (Line: 13, Col: 15, Idx: 336) - (Line: 13, Col: 37, Idx: 358): Bind mount must start with ${WEBAPP_STORAGE_HOME}.

я хочу использовать свой собственный том, я не хочу привязывать его к локальному хранилищу хоста.

what am i doing wrong?

ниже конфигурация и ошибка компоновочного файла, я даже удалил все остальные сервисы, чтобы убедиться, что не возникнет непредвиденных проблем

version: '2'
services:     
    app:
        container_name: almaz-backend
        image: 'almazyregistry.azurecr.io/test/alamzo:latest'
        restart: always
        build: .
        ports:
            - '3000:3000'        
        environment:
            - NODE_ENV=production        
        volumes:               
            - AppDataMount/logs:/logs    
            - AppDataMount/public:/public

volumes:
 AppDataMount:   
2019-12-01 19:42:52.559 ERROR - Exception in multi-container config parsing: (Line: 13, Col: 15, Idx: 336) - (Line: 13, Col: 37, Idx: 358): Bind mount must start with ${WEBAPP_STORAGE_HOME}.


person Ananim Kaholim    schedule 01.12.2019    source источник
comment
Каковы ваши настройки сопоставления путей (скрыть имя учетной записи хранения)?   -  person CSharpRocks    schedule 02.12.2019
comment
имя: AppDataMount, путь рта: /var/appdata, тип: azureBlob, AccountName: *****, имя общего ресурса: test-container   -  person Ananim Kaholim    schedule 02.12.2019
comment
Почему бы не дать никакого ответа? Вы действительно хотите решить проблему?!   -  person Charles Xu    schedule 20.12.2019


Ответы (1)


На самом деле то, что вы установили для подключения томов, не соответствует правилам Azure Web App For Container. Если вы хотите использовать файл docker-compose, он должен быть таким:

version: '3'
services:     
    app:
        container_name: almaz-backend
        image: 'almazyregistry.azurecr.io/test/alamzo:latest'
        restart: always
        build: .
        ports:
            - '3000:3000'        
        environment:
            - NODE_ENV=production        
        volumes:               
        - <custom-id1>:/logs/
        - <custom-id2>:/public/

И каждому тому нужен один контейнер в хранилище. Итак, вам нужно два контейнера. Вы можете использовать команду CLI, чтобы установить собственный идентификатор следующим образом:

az webapp config storage-account add --resource-group <group_name> --name <app_name> --custom-id <custom_id> --storage-type AzureBlob --share-name <share_name> --account-name <storage_account_name> --access-key "<access_key>" --mount-path <mount_path_directory>

Дополнительные сведения см. в разделе Обслуживать содержимое из службы хранилища Azure в службе приложений в Linux.

person Charles Xu    schedule 02.12.2019
comment
кажется, что он перестает выдавать предыдущую ошибку, но также, похоже, игнорируется, файлы и журналы не отображаются в учетной записи хранения. - person Ananim Kaholim; 02.12.2019
comment
@AnanimKaholim Существуют ли файлы в пути монтирования в образе или это новые файлы, когда образ попадает в контейнер? - person Charles Xu; 04.12.2019
comment
нет, файлов нет, просто пустая папка, которую я подготовил, и общедоступная, и журналы пусты. - person Ananim Kaholim; 04.12.2019
comment
@AnanimKaholim Можешь поделиться своим изображением? Я мог бы пройти тест. - person Charles Xu; 05.12.2019
comment
@AnanimKaholim На моей стороне все работает отлично, боюсь, вы допустили ошибку. Если вы поделитесь изображением, может быть, я могу проверить для вас. - person Charles Xu; 06.12.2019