В Windows 10 Home запуск ddev не запускается - Невозможно создать контейнер для службы db: неверная конфигурация монтирования для типа «bind» - PullRequest
0 голосов
/ 10 октября 2018

Сегодня я попытался настроить ddev на компьютере друга:

ОС Windows 10 Home Docker Toolbox - новая установка Быстрый запуск Docker Toolbox -> указывает, что нам нужно включить виртуализацию

BIOS -> Виртуализация -> isEnabled Docker Toolbox Quickstart запускается.

druds ddev для windows 10 работает новая установленная конфигурация ddev.

snowm @ ThomasWin10HP MINGW64 / c / Data3 / test $ ddev start Запуск тестового запуска... Создание ddev-test-db ... ошибка

ОШИБКА: для ddev-test-db Невозможно создать контейнер для службы db: недопустимая конфигурация монтирования для типа "bind": исходный путь монтирования bind не существует: /c/Data3/test/.ddev

ОШИБКА: для БД Невозможно создать контейнер для службы БД: недопустимая конфигурация монтирования для типа «связывание»: исходный путь монтирования связывания не существует: / c / Data3 / test/.ddev Обнаружены ошибки при запуске проекта.Создание ddev-test-db ... ошибка

ОШИБКА: для ddev-test-db Невозможно создать контейнер для службы db: неверная конфигурация монтирования для типа "bind": исходный путь монтирования bind не существует: / c/Data3/test/.ddev

ОШИБКА: для БД Невозможно создать контейнер для службы. БД: недопустимая конфигурация монтирования для типа «связывание»: исходный путь монтирования связывания не существует: /c/Data3/test/.ddevОбнаружены ошибки при запуске проекта. '


, но для уверенности, что путь существует.: - (


Мы читаем это (делимся дисками с докером), но похоже, что у проекта панели инструментов докера нет этого графического интерфейса: Неверная конфигурация монтирования для типа "bind": источник привязкипуть не существует при попытке запустить контейнер в Docker для Windows

config.yaml выглядит следующим образом:

APIVersion: v1.2.0
Name: test
type: typo3
docroot: www
php_version: "7.2"
webserver_type: nginx-fpm
router_http_port: "80"
router_https_port: "443"
xdebug_enabled: false
additional_hostnames: []
additional_fqdns: []
provider: default

docker-compose.yaml выглядит следующим образом

version: '3.6'
#ddev-generated
services:
  db:
    container_name: ddev-${DDEV_SITENAME}-db
    image: $DDEV_DBIMAGE
    stop_grace_period: 60s
    volumes:
      - type: "volume"
        source: mariadb-database
        target: "/var/lib/mysql"
        volume:
          nocopy: true
      - type: "bind"
        source: "${DDEV_IMPORTDIR}"
        target: "/db"
      - type: "bind"
        source: "."
        target: "/mnt/ddev_config"
    restart: "no"
    user: "$DDEV_UID:$DDEV_GID"
    ports:
      - "3306"
    labels:
      com.ddev.site-name: ${DDEV_SITENAME}
      com.ddev.platform: ddev
      com.ddev.app-type: typo3
      com.ddev.approot: $DDEV_APPROOT
      com.ddev.app-url: $DDEV_URL
    environment:
      - COLUMNS=$COLUMNS
      - LINES=$LINES
    command: "$DDEV_MARIADB_LOCAL_COMMAND"
  web:
    container_name: ddev-${DDEV_SITENAME}-web
    image: $DDEV_WEBIMAGE
    volumes:
      - "../:/var/www/html:cached"
      - ".:/mnt/ddev_config:ro"
    restart: "no"
    user: "$DDEV_UID:$DDEV_GID"
    depends_on:
      - db
    links:
      - db:db
    # ports is list of exposed *container* ports
    ports:
      - "80"
      - "8025"
    working_dir: /var/www/html/${DDEV_DOCROOT}
    environment:
      - DDEV_URL=$DDEV_URL
      - DOCROOT=$DDEV_DOCROOT
      - DDEV_PHP_VERSION=$DDEV_PHP_VERSION
      - DDEV_WEBSERVER_TYPE=$DDEV_WEBSERVER_TYPE
      - DDEV_PROJECT_TYPE=$DDEV_PROJECT_TYPE
      - DDEV_ROUTER_HTTP_PORT=$DDEV_ROUTER_HTTP_PORT
      - DDEV_ROUTER_HTTPS_PORT=$DDEV_ROUTER_HTTPS_PORT
      - DDEV_XDEBUG_ENABLED=$DDEV_XDEBUG_ENABLED
      - DEPLOY_NAME=local
      - VIRTUAL_HOST=$DDEV_HOSTNAME
      - COLUMNS=$COLUMNS
      - LINES=$LINES
      # HTTP_EXPOSE allows for ports accepting HTTP traffic to be accessible from <site>.ddev.local:<port>
      # To expose a container port to a different host port, define the port as hostPort:containerPort
      - HTTP_EXPOSE=${DDEV_ROUTER_HTTP_PORT}:80,8025
      # You can optionally expose an HTTPS port option for any ports defined in HTTP_EXPOSE.
      # To expose an HTTPS port, define the port as securePort:containerPort.
      - HTTPS_EXPOSE=${DDEV_ROUTER_HTTPS_PORT}:80
    labels:
      com.ddev.site-name: ${DDEV_SITENAME}
      com.ddev.platform: ddev
      com.ddev.app-type: typo3
      com.ddev.approot: $DDEV_APPROOT
      com.ddev.app-url: $DDEV_URL
    extra_hosts: ["unneeded:127.0.0.1"]
  dba:
    container_name: ddev-${DDEV_SITENAME}-dba
    image: $DDEV_DBAIMAGE
    restart: "no"
    labels:
      com.ddev.site-name: ${DDEV_SITENAME}
      com.ddev.platform: ddev
      com.ddev.app-type: typo3
      com.ddev.approot: $DDEV_APPROOT
      com.ddev.app-url: $DDEV_URL
    depends_on:
      - db
    links:
      - db:db
    ports:
      - "80"
    environment:
      - PMA_USER=db
      - PMA_PASSWORD=db
      - VIRTUAL_HOST=$DDEV_HOSTNAME
      # HTTP_EXPOSE allows for ports accepting HTTP traffic to be accessible from <site>.ddev.local:<port>
      - HTTP_EXPOSE=8036
networks:
  default:
    external:
      name: ddev_default
volumes:
  mariadb-database:
    name: "${DDEV_SITENAME}-mariadb"

Решение:

Мы удалили все (~ / .ddev ~ / .docker и т. Д.), Удалили панель инструментов docker, ddev и виртуальный ящик, и на этот раз следовали инструкции EXACT this "Шаг за шагом ":

  1. СНАЧАЛА включите виртуализацию в настройках BIOS
  2. , затем установите Docker Toolbox как ADMIN и позвольте Docker Toolbox также установить виртуальную коробку с сетевым драйвером ndis (последний флажок)
  3. Подождите и ничего не делайте, пока не увидите ACL - Вопросы
  4. Запустите virtualbox от имени администратора (теперь сетевой адаптер создан)
  5. Перезапустите Windows, чтобы все было запущено правильно
  6. установите ddev als Administrator, позвольте ему создать ярлык и добавьте себя в путь к Windows
  7. запустите терминал быстрого запуска docker и позвольте Docker Toolbox создать виртуальный контейнер по умолчанию
  8. переключиться наusers home dir

    cd ~ mkdir web cd web mkdir testdomain cd testdomain ddev start

Спасибо Фрай, как и намек, на то, что проект ddev должен находиться под пользователямиДомашний каталог был главной причиной, почему он не работает.

Может быть, один или несколько из вышеперечисленных шагов не важны, но так как он сейчас запущен, я оставлю все как есть :-)

Ответы [ 2 ]

0 голосов
/ 10 декабря 2018

В Docker Toolbox вы не можете монтировать пути вне домашнего каталога без дополнительной настройки.Только домашний каталог является общим в конфигурации по умолчанию.Вы пытаетесь смонтировать /c/Data3/test, который находится за пределами домашнего каталога.

Если вам нужно поработать вне homedir, быстрый поиск «как смонтировать внешний домашний каталог на панели инструментов Docker» приведет вас к ссылкам типа http://support.divio.com/local-development/docker/how-to-use-a-directory-outside-cusers-with-docker-toolboxdocker-for-windows, которые объясняют, как поделиться дополнительными путями, используяVirtualbox UI.

0 голосов
/ 11 октября 2018

У вас установлен брандмауэр или антивирус?Иногда происходит блокировка монтажа привода в докер.Зайдите в настройки вашей службы Docker и попробуйте смонтировать диск вручную в меню «Общие диски».

У меня возникла проблема с антивирусом Касперского, блокирующим доступ к общему диску.Если у вас есть то же самое, вы можете попробовать это:

Откройте PowerShell как администратор и используйте эту команду:

Get-NetConnectionProfile -InterfaceAlias "vEthernet (DockerNAT)"

Если для NetworkCategory задано значение Public, установите для него значение Private:

    Set-NetConnectionProfile -InterfaceAlias "vEthernet (DockerNAT)" -NetworkCategory Private

Теперь вам нужно изменить IP-адреса интерфейсов докера.Зайдите в настройки системы и выберите центр сети.Нажмите «vEthernet (DockerNat)» -> «Свойства», активируйте «Интернет-протокол, версия 4» и нажмите «Свойства».Перейдите в раздел «Дополнительно» и добавьте следующий ip-адрес 10.0.75.254 с маской подсети 255.255.255.0.

Отказ от ответственности: Я использовал его ранее на своем немецком компьютере с Windows 10.Я перевел пункты меню напрямую, потому что перешел на Linux и не вижу реальных названий пунктов меню.

...