2016-09-06 174 views
2

我有一個Mysql Docker問題,當我運行我的docker-compose up命令時退出。Docker mysql即時退出

這裏是我的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」 10分鐘前結束(1)8分鐘前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輸出:

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",server_db-mysql保持活着。

這裏是mysql/conf.d/my.cnf文件內容:

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

爲什麼該文件崩潰MySQL的?

回答

0

在您的自定義配置文件中安裝/var/log/mysql時出現許可問題。

請參考這個問題#docker-mysql-146的解決方案:

/var/log/mysql目錄的所有者和組必須是由MySQL預期。確保執行:

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