當我在Dockerfile寬度爲CMD [ "./myscript.sh" ]
的末尾執行時,我無法啓動mysql demon。但是,CMD [ "mysqld" ]
的作品。無法在執行CMD腳本時在Dockerfile中啓動Mysql
Dockerfile
FROM mysql:5.7
USER mysql
COPY ./setconf.sh .
COPY config/my.cnf /etc/mysql/conf.d
CMD [ "./setconf.sh" ]
# CMD ["mysqld"]
# This command works !
我得到這個錯誤:
[ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it
[ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist
泊塢窗,compose.yml
mysql:
build: mysql
environment:
MYSQL_PASSWORD: pass
MYSQL_ROOT_PASSWORD: pass
HOST: mysql
MYSQL_ROOT_HOST: mysql
ports:
- "3306:3306"
./setconf.sh
mysqld
注:
- 我做
docker-compose down
在每次嘗試 - 我需要特殊的選項來運行mysql
的my.cnf
[mysqld]
default-storage-engine = INNODB
sql-mode = "STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
transaction-isolation = READ-COMMITTED
innodb_flush_log_at_trx_commit = 1
init_connect = "set session autocommit=0"
log_bin_trust_function_creators = 1
max_sp_recursion_depth = 100
lower_case_table_names = 1
thread_stack = 256K
max_allowed_packet = 16M
Check the Detailled docker-compose logs