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

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

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

Для получения дополнительной информации об устранении неполадок перейдите по адресу 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 Ответ

0 голосов
/ 08 сентября 2018

Если у кого-то еще возникла эта проблема, проект успешно собран в 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:
...