Docker compose MySQL-недопустимые тома, недопустимая спецификация

#docker-compose #volumes

#docker-compose #тома

Вопрос:

Я использую сервис 3, и ниже приведен mycode,

Я попытался добавить переменную- COMPOSE_CONVERT_WINDOWS_PATHS: 1 в environment

он все еще выдает ошибку:

ОШИБКА: для db-on-docker-ms_mysql-dev_1 не удается создать контейнер для службы mysql-dev: недопустимая спецификация тома: ‘/c /Dockerfile/db-on-docker-ms:/var / lib /mysql в разделе volumes:rw’

 version: '3'
services:
  mysql-dev:
    image: mysql:latest
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: blogapp
  ports:
    - "3308:3306"
  volumes:
    - /c/Dockerfile/db-on-docker-ms:/var/lib/mysql
  

Моя версия Docker: 18.09.2

Ответ №1:

Я думаю, вам либо нужно установить COMPOSE_CONVERT_WINDOWS_PATHS переменную окружения из вашей командной строки

 $ export COMPOSE_CONVERT_WINDOWS_PATHS=1
  

Затем измените volumes конфигурацию

 version: '3'
services:
  mysql-dev:
    image: mysql:latest
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: blogapp
  ports:
    - "3308:3306"
  volumes:
    - c:Dockerfiledb-on-docker-ms:/var/lib/mysql
  

Запустите docker compose

 $ docker-compose up
  

Или вы можете попытаться установить volumes следующим образом

 version: '3'
services:
  mysql-dev:
    image: mysql:latest
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: blogapp
  ports:
    - "3308:3306"
  volumes:
    - //c/Dockerfile/db-on-docker-ms:/var/lib/mysql
  

И запустите docker compose

 $ docker-compose up
  

Комментарии:

1. Спасибо за ваш ответ! Но и это не работает:'(

Ответ №2:

Сначала спасибо за ответ от Misantorp!

Я, наконец, понял, как это сделать в контейнере Windows

путь к томам должен быть:

 volumes:
  - C:Dockerfiledb-on-docker-ms:/var/lib/mysql
  

запустите команду в powershell:

COMPOSE_CONVERT_WINDOWS_PATHS=0

затем запустите:

docker-составить