После этого необходимо создать Docker-контейнер для сервера MySQL. Создайте файл конфигурации:
echo "[mysqld]
sql_mode = 'NO_ENGINE_SUBSTITUTION'
max_connections = 1000
max_allowed_packet = 1048576000
group_concat_max_len = 2048
log-error = /var/log/mysql/error.log" > /app/onlyoffice/mysql/conf.d/onlyoffice.cnf
sudo chmod 0644 /app/onlyoffice/mysql/conf.d/onlyoffice.cnf
Создайте SQL-скрипт, который сгенерирует пользователей и предоставит им необходимые права. Пользователь onlyoffice_user
требуется для ONLYOFFICE Community Server, а mail_admin
требуется для ONLYOFFICE Mail, если вы собираетесь его устанавливать:
echo "CREATE USER 'onlyoffice_user'@'localhost' IDENTIFIED BY 'onlyoffice_pass';
CREATE USER 'mail_admin'@'localhost' IDENTIFIED BY 'Isadmin123';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'%' IDENTIFIED BY 'my-secret-pw';
GRANT ALL PRIVILEGES ON * . * TO 'onlyoffice_user'@'%' IDENTIFIED BY 'onlyoffice_pass';
GRANT ALL PRIVILEGES ON * . * TO 'mail_admin'@'%' IDENTIFIED BY 'Isadmin123';
FLUSH PRIVILEGES;" > /app/onlyoffice/mysql/initdb/setup.sql
Пожалуйста, обратите внимание, что приведенный выше скрипт задает разрешения на доступ к серверу SQL с любых доменов (%
). Если вы хотите ограничить доступ, то можете указать хосты, у которых будет доступ к серверу SQL.
Теперь можно создать контейнер MySQL, указав при этом версию MySQL 5.7:
sudo docker run --net onlyoffice -i -t -d --restart=always --name onlyoffice-mysql-server -p 3306:3306 \
-v /app/onlyoffice/mysql/conf.d:/etc/mysql/conf.d \
-v /app/onlyoffice/mysql/data:/var/lib/mysql \
-v /app/onlyoffice/mysql/initdb:/docker-entrypoint-initdb.d \
-v /app/onlyoffice/mysql/logs:/var/log/mysql \
-e MYSQL_ROOT_PASSWORD=my-secret-pw \
-e MYSQL_DATABASE=onlyoffice \
mysql:5.7