Ayu*_*hya 3 mysql docker docker-compose
我想从mysql容器内的主机安装目录,以便mysql将其日志写入该目录,并且我能够从主机访问那些日志。
为此,我使用以下卷配置:
volumes:
- ./logs/mysql:/var/log/mysql
Run Code Online (Sandbox Code Playgroud)
但是正如该答案所指出的,主机用户和容器用户之间存在权限问题。那里的解决方案是使用命名卷,但是我想要的是在主机上的方便目录中访问这些日志。不在docker的内部目录中。
因此,我运行了默认图像并进行了少量观察
/var/log/mysql。这是因为默认设置中已注释my.cnf了error-log设置/etc/mysql/mysql.conf.d/entrypoint.sh不更改的权限/var/lib/mysql,但不/var/log/mysql因此,要解决此问题,请添加test.cnf具有以下内容的文件
[mysqld]
log-error = /var/log/mysql/error.log
general_log = /var/log/mysql/log_output.log
Run Code Online (Sandbox Code Playgroud)
并使用以下设置更新您的docker-compose
version: '2'
services:
mysql:
image: mysql:latest
volumes:
- ./logs:/var/log/mysql
- ./test.cnf:/etc/mysql/mysql.conf.d/test.cnf
environment:
MYSQL_ROOT_PASSWORD: root
entrypoint: ""
command: bash -c "chown -R mysql:mysql /var/log/mysql && exec /entrypoint.sh mysqld"
Run Code Online (Sandbox Code Playgroud)
这样可以确保在运行入口点脚本之前已设置适当的权限
| 归档时间: |
|
| 查看次数: |
2236 次 |
| 最近记录: |