Docker的mysql即时退出

当我运行我的docker-compose up命令时,我有一个Mysql Docker出现问题。

这是我docker-compose.yml文件:

 version: "2" services: web: build: ./app links: - "db-mongo:db-mongo" - "db-mysql:db-mysql" ports: - "443:3000" volumes: - "./app:/src" - "/src/.sass-cache" - "/src/node_modules" - "/src/lib" db-mongo: build: ./mongo ports: - "27017:27017" volumes: - "./mongo/db:/data" db-mysql: image: mysql ports: - "3306:3306" volumes: - "./mysql/db:/var/lib/mysql" - "./mysql/log:/var/log/mysql" - "./mysql/conf.d:/etc/mysql/conf.d" environment: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: testt 

文件夹./mysql/db./mysql/log是空的。

当我运行docker-compose up ,在这里输出:

 db-mysql_1 | Initializing database server_db-mysql_1 exited with code 1 

当我运行docker ps -a :0a5a7a643f18 mysql“docker-entrypoint.sh”8分钟前已退出(1)7分钟前server_db-mysql_1

奇怪的是,如果我运行docker run -d --name=new-mysql -p 3306:3306 -v /var/www/server/mysql/db:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=password mysql

在这里docker logs 97c -f的输出docker logs 97c -f

 Initializing database Database initialized MySQL init process in progress... Warning: Unable to load '/usr/share/zoneinfo/Factory' as time zone. Skipping it. Warning: Unable to load '/usr/share/zoneinfo/iso3166.tab' as time zone. Skipping it. Warning: Unable to load '/usr/share/zoneinfo/leap-seconds.list' as time zone. Skipping it. Warning: Unable to load '/usr/share/zoneinfo/posix/Factory' as time zone. Skipping it. Warning: Unable to load '/usr/share/zoneinfo/right/Factory' as time zone. Skipping it. Warning: Unable to load '/usr/share/zoneinfo/zone.tab' as time zone. Skipping it. MySQL init process done. Ready for start up. 

为什么我的docker-compose不能让我的mysql docker继续运行? 我必须错过一些东西…帮助! 谢谢

编辑︰它出现它是我的conf.d文件夹这是一些问题,因为当我删除卷- "./mysql/conf.d:/etc/mysql/conf.d"保持活着。

这里是mysql/conf.d/my.cnf文件的内容:

 [mysqld] general_log_file = /var/log/mysql/mysql.log general_log = 1 

为什么该文件崩溃的MySQL?

在自定义configuration文件中挂载/var/log/mysql时,这是一个权限问题。

请参考这个问题#docker-mysql-146的解决scheme:

/var/log/mysql目录的所有者和组必须与mysql所期望的一样。 确保执行:

 docker exec mysql chown mysql:root /var/log/mysql