【发布时间】:2018-10-24 12:10:31
【问题描述】:
我是 docker 新手,我仍在弄清楚它是如何工作的。我通过 docker-compose 设置了一个 wordpress 站点,我使用的 yaml 文件如下。
version: '3.3'
services:
db:
image: mysql:5.7
volumes:
- ./db_data/db/backup.sql:/docker-entrypoint-initdb.d/backup.sql #it loads an already existing database
#- ./db_data/all.log:/var/log/mysql/all.log # i want here to have the logs of mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
volumes:
- ./db_data/wp-content:/var/www/html/wp-content # loads the files from an existing installation of wordpress
volumes:
db_data:
如你所见
- ./db_data/all.log:/var/log/mysql/all.log
我正在尝试以某种方式做到这一点,以便我可以记录所有查询。我已经通过执行以下操作来做到这一点:
1) docker-compose up,同时用 yaml 文件中的 all.log 注释掉该行。
2) 使用 bash 登录到 mysql 的容器并运行以下命令
mysql -u root -psomewordpress -e "SET global log_output = 'FILE'; SET global general_log_file='/var/log/mysql/all.log'; SET global general_log = 1;"
3) 转到 /var/lib/docker/volumes 并创建文件。
我想要实现的是以某种方式将此命令作为 yaml 文件的一部分,这样我也可以将 all.log 文件安装在 yaml 文件所在的位置。
【问题讨论】:
标签: mysql docker docker-compose