2017-09-01 42 views
0

我想讓我的MySQL映像以utf-8編碼運行。我的搬運工,撰寫文件看起來像:如何使用docker構建使用utf-8的mysql?

version: '2' 
services: 
    db: 
    container_name: zoho-grabber-db-development 
    image: mysql:5.7 
    environment: 
     - MYSQL_ROOT_PASSWORD=topsecret 
     - MYSQL_DATABASE=development 
     - MYSQL_USER=devuser 
     - MYSQL_PASSWORD=secure 
    ports: 
     - "3306:3306" 
    command: mysqld --character-set-server=utf8 --collation-server=utf8_general_ci 

當我運行它,它說

$ docker-compose -f docker-compose.development.yml up 
Removing zoho-grabber-db-development 
Recreating 1b341fd7916e_1b341fd7916e_zoho-grabber-db-development 

ERROR: for db Cannot start service db: oci runtime error: container_linux.go:247: starting container process caused "exec: \"mysqld\": executable file not found in $PATH" 
ERROR: Encountered errors while bringing up the project. 

爲什麼沒有找到mysqld的?以及如何實現我的目標?

回答

2

當使用commanddocker-compose.yml其作爲docker-compose documentation描述覆蓋默認commandentrypoint。爲了實現您的目標,我建議您按照「使用自定義MySQL配置文件」一節中的docker image's readme中所述的卷裝入my.cnf

因此,從您的docker-composose中刪除command並添加volumes例如。

... 
volumes: 
    - mycustom.cnf:/etc/mysql/conf.d/custom.cnf 
... 

和容器將包括您的自定義配置服務器的配置

編輯-1

下面是自定義配置的需要

mycustom.cnf

[mysqld] 
character-set-server = utf8 
collation-server = utf8_unicode_ci 
skip-character-set-client-handshake 
+1

添加了需要的配置來完成答案 –

+0

@Norbert Egger還有一個「沒有cnf文件的配置」部分,但我不確定這將適用於docker-compose。也許會很方便的手動運行 – Fotis

+0

謝謝,它現在的作品!我已經做清理我的碼頭(圖像和容器),然後重建一切,它的工作。 –

相關問題