Как я могу устранить ошибку спецификации неверного тома при использовании docker-compose для создания именованного тома для sql db в контейнере Windows?

Я пытаюсь использовать docker-compose для создания именованного тома для sql db в контейнере Windows.

Я получаю сообщение об ошибке: "Тяжесть Код Описание проекта Строка файла Подавление состояние ошибки здания webpresentation Воссоздание dockercompose6946136170613312467_webpresentation_1 ... Создание dockercompose6946136170613312467_db_1 ... Создание dockercompose6946136170613312467_db_1 ... ошибка ERROR: для dockercompose6946136170613312467_db_1 Невозможно создать контейнер для обслуживания БД: неверная спецификация объем: 'dockercompose6946136170613312467_sqlvolume:/var/opt/mssql:rw'Воссоздание dockercompose6946136170613312467_webpresentation_1 ... done ОШИБКА: для базы данных Невозможно создать контейнер для службы, база данных: недопустимая спецификация тома: недопустимая ошибка тома / указателя: проект..

Для получения дополнительной информации об устранении неполадок перейдите по http://aka.ms/DockerToolsTroubleshooting Фонд устранения неполадок docker-compose C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets 363 "

Вот мой файл docker-compose:

    version: '3.4'

services:
  webpresentation:
    image: webpresentation
    build:
      context: .
      dockerfile: WebPresentation\Dockerfile

  db:
    image: microsoft/mssql-server-windows-express
    environment:
      ACCEPT_EULA: Y
      SA_PASSWORD: Test1
    ports:
      - "1433:1433"
    volumes:
      - sqlvolume:/var/opt/mssql

volumes:
  sqlvolume:

Я должен также упомянуть, что я использовал инструменты Docker Visual Studio для настройки этого проекта, здесь также находится файл docker-compose.override.yml:

version: '3.4'

services:
  webpresentation:
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
    ports:
      - "80"
networks:
  default:
    external:
      name: nat

Кто-нибудь может указать мне правильное направление относительно того, как устранить эту ошибку? Спасибо!

1 ответ

Если у кого-то еще есть эта проблема, проект успешно построен в Visual Studio после того, как я сделал docker volume ls и понял, что фактическое имя тома имеет автоматически сгенерированный префикс "dockercompose". Я использовал более прямой путь к папке на жестком диске в определении громкости базы данных. Затем я заменил каждый экземпляр "sqlvolume" новым именем. Мой полный файл docker-compose выглядит следующим образом:

version: '3.4'

services:
  webpresentation:
    image: webpresentation
    build:
      context: .
      dockerfile: WebPresentation\Dockerfile

  db:
    image: microsoft/mssql-server-windows-express
    environment:
      ACCEPT_EULA: Y
      SA_PASSWORD: Test1
    ports:
      - "1433:1433"
    volumes:
      - "C:\\ProgramData\\Docker\\volumes\\dockercompose6946136170613312467_sqlvolume:c:\\mssql"

volumes:
  dockercompose6946136170613312467_sqlvolume:
Другие вопросы по тегам