#!/bin/sh
set -e
Path=/data/mysql
VERSION="5.7.34"
MYSQL_PWD=Yonyou123

########################################################################################## image
if [ "`docker images | grep mysql`" ]; then
    echo 'Detecting image exist. Will not pull again.'
    docker images mysql
else
    echo 'Begin to pull image ...'
    docker pull mysql:$VERSION
fi

########################################################################################## password

mkdir -p $Path && cd $Path && mkdir $Path/conf
docker run -d --rm -v $Path:/target mysql:$VERSION sh -c 'mv /etc/mysql/conf.d /target/conf'

cat <<EOF > $Path/conf/mysqld.cnf
[mysqld]
server_id=0
port = 3306
collation-server = utf8mb4_general_ci
character-set-server = utf8mb4
skip-slave-start
default_authentication_plugin=mysql_native_password
enforce_gtid_consistency=ON
master_info_repository=TABLE
relay_log_info_repository=TABLE
binlog_checksum=NONE
log_slave_updates=ON
log_bin=binlog
relay_log=relay-bin
binlog_format=ROW
lower_case_table_names=1
explicit_defaults_for_timestamp=false
max_connections=10000
EOF

docker run -d --restart=always -p 3306:3306 -p 33060:33060 -p 33061:33061 \
    -v $Path/conf/:/etc/mysql/conf.d/ \
    -v $Path/data:/var/lib/mysql \
    -e MYSQL_ROOT_PASSWORD=$MYSQL_PWD --name mysql mysql:$VERSION

docker logs -f mysql

exit 0
