Увеличен объем памяти Docker, и теперь составление Docker работать не будет - PullRequest
0 голосов
/ 02 января 2019

Я увеличил докер для Windows CPU и объем памяти в настройках, и он сделал перезапуск, затем я попытался запустить docker-compose up -d на моем проекте, и я получил следующую ошибку ERROR: Named volume "C:/Users/andersk/sites/sylr:/var/www/html" is used in service "wordpress" but no declaration was found in the volumes section.

ВотМой файл создания докера работал нормально, пока я не увеличил эти настройки в докере.

version: '3.3'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "2000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
     volumes: 
       - C:/Users/andersk/sites/sylr:/var/www/html
volumes:
    db_data: {}

Ответы [ 2 ]

0 голосов
/ 02 января 2019

Если запустить из WSL, можно изменить docker-compose.yml на следующее

version: '3.3'
services:
   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "2000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
     volumes: 
       - /mnt/c/Users/andersk/sites/sylr:/var/www/html

Обратите внимание на префикс /mnt/c вместо C:/

Другой метод - использовать относительный путь или создать именованный том, например:

version: '3.3'
services:
   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "2000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
     volumes: 
       - some_volume_name:/var/www/html
volumes: 
   some_volume_name: {}

Если запустить из Powershell, он должен работать только из коробки.

0 голосов
/ 02 января 2019

Вы можете использовать докер с именем тома на месте и совместно использовать это имя в нескольких контейнерах, это также упростит отладку

version: "3"

services:
  db:
    image: db
    volumes:
      - data-volume:/var/lib/db
  backup:
    image: backup-service
    volumes:
      - data-volume:/var/lib/backup/data

volumes:
  data-volume:
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...