git clone https://github.com/facebook/mysql-5.6.git
cp Dockerfile start .sh my.cnf mysql-5.6/mysql_build
cd mysql-5.6 && docker build -fmysql_build/Dockerfile --tag ${tag_mysql} .
docker run --name ${name_mysql} --net=host -it ${tag_mysql}
Dockerfile
FROM ubuntu:trusty MAINTAINER Mr.chen RUN apt-get update RUN \ apt-get -y install \ libreadline-dev libreadline6 libncurses5-dev libboost-dev \ g++ openssl libssl-dev bison make cmake git && \ apt-get clean ENV cur /mysql-5.6/ WORKDIR $cur COPY ./ /mysql-5.6/ CMD ["./mysql-build/start.sh"]
start.sh
#!/bin/bash set -e cur_dir=`pwd` prefix=/usr/local/mysql mysql_socket=/tmp/mysql.socket build_dir=/mysql-5.6 mysql_cnf=${cur_dir}/mysql-build/my.cnf mysql_log=${cur_dir}/mysql.log mkdir -p $prefix/bin export PATH=$PATH:$prefix/bin if [ -e ${build_dir}/CMakeCache.txt ] then rm -rf ${build_dir}/CMakeCache.txt fi cd ${build_dir} && cmake . && make && make install if [ ! -x ${prefix}/scripts/mysql_install_db ] then chmod +x ${prefix}/scripts/mysql_install_db fi cd ${prefix} ./scripts/mysql_install_db --defaults-file=${mysql_cnf} cd ${cur_dir} # enable rocks db cnf mysqld --defaults-file=${mysql_cnf} --user=root > ${mysql_log} & is_start(){ nc -z localhost 3306 echo $? } while [ `is_start`x != 0x ] do sleep 1 done mysqladmin -u root password 'root' -S ${mysql_socket} mysql -S ${mysql_socket} -uroot -proot -e "grant all privileges on *.* to root@'%' identified by 'root';" tail -f ${mysql_log}
my.cnf
[mysqld] rocksdb default-storage-engine=rocksdb skip-innodb default-tmp-storage-engine=MyISAM collation-server=latin1_bin #(or utf8_bin, binary) log-bin binlog-format=ROW