Как я могу устранить ошибку спецификации неверного тома при использовании 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: