Jestem na tym koniec mojego dowcipu, więc mam nadzieję, że ludzie mogą mi pomóc. W OSX 10.11.2 z docker-machine, mam plik dokowania, który powinien zbudować lokalny plik Docker i dołączyć do niego kontener MySQL. Kontener MySQL powinien zamontować folder lokalny, w którym przechowuję dane mojej bazy danych, więc jeśli kontener lub VM zostanie usunięty, mogę po prostu ponownie go uruchomić bez utraty danych. Problemem jest to, kiedy go uruchomić, to rzuca błąd uprawnienia:Odmowa uprawnień podczas montowania woluminu dokowania w OSX
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.
próbowałam każdy permutacji mogę myśleć, aby uzyskać to do pracy. Czytałem dookoła i może to mieć coś wspólnego z tym, w jaki sposób maszyna-doker obsługuje uprawnienia w systemie OSX, ale dokumentacja dla maszyny-dokowania mówi, że montuje katalog /Users
, więc nie powinno to stanowić problemu.
Oto 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
Jakieś pomysły? Nie mogę pomóc, ale myślę, że to naprawdę proste. Każda pomoc będzie najbardziej doceniona!
Edit:
- Host -
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/
Co do pojemnika, to nie będzie działać z objętością zamontowany. Bez -v
zamontować, to jest:
- Container -
drwxr-xr-x 4 mysql mysql 4096 Dec 24 00:37 mysql
Dane wyjściowe pliku 'ls -lh' dla katalogu danych we wszystkich trzech lokalizacjach (host, vm, kontener) byłyby przydatne do debugowania.Najprawdopodobniej dzieje się tak, że katalog jest własnością root'a i nie pozwala użytkownikowi mysql tworzyć nowych plików. – dnephin
@dnephin, zaktualizowałem powyższe pytanie danymi. To pomaga? – greggilbert