Проблема с docker-compose: при попытке создать / смонтировать том отказано в разрешении
У меня есть следующий файл docker-compose.yml:
version: "3"
services:
dbs-poa-loc001d:
image: percona
volumes:
- ./mysql_backup:/var/lib/mysql
- ./create_databases:/docker-entrypoint-initdb.d
hostname: "dbs-poa-loc001d"
container_name: dbs-poa-loc001d
environment:
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
ports:
- "3306:3306"
networks:
- azion-network
...
Когда я пытаюсь создать сервис dbs-poa-loc001d (база данных для проекта), я получаю следующую ошибку:
Starting dbs-poa-loc001d ... done
Attaching to dbs-poa-loc001d
dbs-poa-loc001d | Initializing database
dbs-poa-loc001d | mysqld: Can't create/write to file '/var/lib/mysql/is_writable' (Errcode: 13 - Permission denied)
dbs-poa-loc001d | 2019-01-11T01:17:52.060984Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
dbs-poa-loc001d | 2019-01-11T01:17:52.062286Z 0 [ERROR] --initialize specified but the data directory exists and is not writable. Aborting.
dbs-poa-loc001d | 2019-01-11T01:17:52.062299Z 0 [ERROR] Aborting
dbs-poa-loc001d |
dbs-poa-loc001d exited with code 1
Эта ошибка не возникает на моем компьютере MacOS на моей работе, но на моем домашнем компьютере (под управлением Ubuntu 16.04) это происходит. Я заметил mysql_backup
Папка на хосте, созданная для хранения данных тома, установлена в группу И пользователь root. Кто-нибудь может сказать мне, что происходит, и как мне это исправить? Уже безуспешно пытался
- Выполнение команд docker-compose с использованием sudo
- Вручную изменив владельца и пользователя папки на моего фактического (с низким уровнем привилегий) пользователя.
Мои текущие настройки и установленные версии:
- Ubuntu 16.04
- Докер версия 18.09.0, сборка 4d60db4
- docker-compose версия 1.23.2, сборка 1110ad0
- docker-compose был установлен с помощью
sudo pip install docker-compose
1 ответ
Можете ли вы попытаться установить разрешения для mysql_backup
до 1001:0?
что-то вроде sudo chown -R 1001:0 ./mysql_backup
или как альтернатива, но только если папка пуста sudo chmod 777 ./mysql_backup
относительно percona Dockerfile MySQL идентификатор пользователя равен 1001 https://github.com/percona/percona-docker/blob/master/percona-server.80/Dockerfile