Я в своем уме с этим, так что, надеюсь, вы, ребята, можете мне помочь. В OSX 10.11.2 с docker-machine у меня есть файл docker-compose, который должен создать локальный файл Dockerfile и прикрепить к нему контейнер MySQL. Контейнер MySQL должен монтировать локальную папку, в которой я храню данные своей базы данных, поэтому, если контейнер или виртуальная машина выйдет из строя, я могу просто перезапустить ее без потери данных. Проблема в том, что когда я запускаю его, он выдает ошибку разрешений:
db_1 | 2015-12-23 19:17:59 7facaa89b740 InnoDB: Operating system error number 13 in a file operation.
db_1 | InnoDB: The error means mysqld does not have the access rights to
db_1 | InnoDB: the directory.
Я пробовал все перестановки, которые я могу придумать, чтобы заставить это работать. Я читал, и это может быть как-то связано с тем, как docker-machine обрабатывает разрешения с OSX, но в документации для docker-machine говорится, что он монтирует папку /Users
, так что это не должно быть проблемой.
Вот docker-compose.yml
:
web:
build: .
ports:
- "3000:3000"
links:
- db
db:
image: mysql:5.6
ports:
- "3306:3306"
volumes:
- /Users/me/Development/mysql-data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: mypass
Любые идеи? Я не могу не думать, что это что-то очень простое. Любая помощь будет принята с благодарностью!
Изменить:
- Хозяин -
drwxr-xr-x 7 me staff 238 Dec 23 12:10 mysql-data/
- VM -
drwxr-xr-x 1 docker staff 238 Dec 23 20:10 mysql-data/
Что касается контейнера, он не будет работать с подключенным томом. Без крепления -v
это:
- Контейнер -
drwxr-xr-x 4 mysql mysql 4096 Dec 24 00:37 mysql
ls -lh
для каталога данных во всех трех местах (хост, виртуальная машина, контейнер) будет полезен для отладки. Я думаю, что, скорее всего, происходит то, что каталог принадлежит root и не позволяет пользователю mysql создавать новые файлы. - person dnephin   schedule 24.12.2015