From be6b49a2dc056485cd9867010b78782eddc526e3 Mon Sep 17 00:00:00 2001 From: a-sansara Date: Mon, 25 Jul 2016 04:56:10 +0200 Subject: [PATCH] adding image pluie/alpine-mysql --- pluie/alpine-mysql/.gitignore | 1 + pluie/alpine-mysql/Dockerfile | 13 +++++++ pluie/alpine-mysql/build | 21 +++++++++++ pluie/alpine-mysql/install.d/10-mysql.sh | 4 ++ pluie/alpine-mysql/main.sh | 7 ++++ pluie/alpine-mysql/pre-init.d/10-db.sh | 48 ++++++++++++++++++++++++ 6 files changed, 94 insertions(+) create mode 100644 pluie/alpine-mysql/.gitignore create mode 100644 pluie/alpine-mysql/Dockerfile create mode 100755 pluie/alpine-mysql/build create mode 100755 pluie/alpine-mysql/install.d/10-mysql.sh create mode 100755 pluie/alpine-mysql/main.sh create mode 100644 pluie/alpine-mysql/pre-init.d/10-db.sh diff --git a/pluie/alpine-mysql/.gitignore b/pluie/alpine-mysql/.gitignore new file mode 100644 index 0000000..ee50cfe --- /dev/null +++ b/pluie/alpine-mysql/.gitignore @@ -0,0 +1 @@ +files.tar diff --git a/pluie/alpine-mysql/Dockerfile b/pluie/alpine-mysql/Dockerfile new file mode 100644 index 0000000..2015ac4 --- /dev/null +++ b/pluie/alpine-mysql/Dockerfile @@ -0,0 +1,13 @@ +FROM pluie/alpine + +MAINTAINER a-Sansara https://github.com/a-sansara + +ADD files.tar /scripts + +RUN bash /scripts/install.sh + +ENV SHENV_NAME=Mysql SHENV_COLOR=132 + +EXPOSE 3306 + +VOLUME ["/var/lib/mysql", "/dump"] diff --git a/pluie/alpine-mysql/build b/pluie/alpine-mysql/build new file mode 100755 index 0000000..9d6370a --- /dev/null +++ b/pluie/alpine-mysql/build @@ -0,0 +1,21 @@ +#!/bin/bash +# pluie/docker-images - a-Sansara (https://github.com/a-sansara) + + Ctitle="\033[1;38;5;15;1;48;5;30m" + Citem="\033[1;38;5;36m" + Coff="\033[m" + DOCKDIR=$(dirname "$(readlink -f ${BASH_SOURCE[0]})") +DOCKBUILD=$(basename $DOCKDIR) + DOCKREPO=$(basename $(dirname $DOCKDIR)) + DOCKTAG=${1:-"latest"} + TMPPWD=$(pwd) + indent=" " +cd $DOCKDIR +echo -e "\n ${Ctitle} Preparing files : ${Coff}${Citem}\n" + +tar -cvf files.tar *.sh pre-init.d/ install.d/ | sed "s/^/${indent}* /" + +echo -e "\n ${Ctitle} Proceed Dockerfile build : ${Coff}\n +" +docker build --force-rm -t ${DOCKREPO}/${DOCKBUILD}:${DOCKTAG} . | sed "s/^/${indent}/" +cd $TMPPWD diff --git a/pluie/alpine-mysql/install.d/10-mysql.sh b/pluie/alpine-mysql/install.d/10-mysql.sh new file mode 100755 index 0000000..eb4cdd0 --- /dev/null +++ b/pluie/alpine-mysql/install.d/10-mysql.sh @@ -0,0 +1,4 @@ +#!/bin/bash +# pluie/docker-images - a-Sansara (https://github.com/a-sansara) + +apk --update add mysql mysql-client pwgen \ diff --git a/pluie/alpine-mysql/main.sh b/pluie/alpine-mysql/main.sh new file mode 100755 index 0000000..885cb13 --- /dev/null +++ b/pluie/alpine-mysql/main.sh @@ -0,0 +1,7 @@ +#!/bin/bash +# pluie/docker-images - a-Sansara (https://github.com/a-sansara) + +. /scripts/common.sh + +echo "[[ Starting Mysql Daemon ]]" +exec /usr/bin/mysqld --user=mysql --console diff --git a/pluie/alpine-mysql/pre-init.d/10-db.sh b/pluie/alpine-mysql/pre-init.d/10-db.sh new file mode 100644 index 0000000..fe5ce94 --- /dev/null +++ b/pluie/alpine-mysql/pre-init.d/10-db.sh @@ -0,0 +1,48 @@ +#!/bin/bash +# pluie/docker-images - a-Sansara (https://github.com/a-sansara) + +if [ ! -d "/run/mysqld" ]; then + mkdir -p /run/mysqld + chown -R mysql:mysql /run/mysqld +fi + +if [ ! -d /var/lib/mysql/mysql ]; then + echo "[[ Initialize DB ]]" + chown -R mysql:mysql /var/lib/mysql + mysql_install_db --user=mysql > /dev/null + + if [ ! -z "$MYSQL_ROOT_PASSWORD" ]; then + MYSQL_ROOT_PASSWORD=`pwgen -y -s 18 1` + fi + + MYSQL_DATABASE=${MYSQL_DATABASE:-""} + MYSQL_USER=${MYSQL_USER:-""} + MYSQL_PASSWORD=${MYSQL_PASSWORD:-""} + + tfile=`mktemp` + if [ ! -f "$tfile" ]; then + return 1 + fi + + cat << EOF > $tfile +USE mysql; +GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; +UPDATE user SET password=PASSWORD("$MYSQL_ROOT_PASSWORD") WHERE user='root'; +GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION; +UPDATE user SET password=PASSWORD("") WHERE user='root' AND host='localhost'; +FLUSH PRIVILEGES; +EOF + + if [ ! -z "$MYSQL_DATABASE" ]; then + echo "[[ Creating DB : $MYSQL_DATABASE ]]" + echo "CREATE DATABASE IF NOT EXISTS \`$MYSQL_DATABASE\` CHARACTER SET utf8 COLLATE utf8_general_ci;" >> $tfile + + if [ "$MYSQL_USER" != "" ]; then + echo "[[ Creating user : $MYSQL_USER ]]" + echo "GRANT ALL ON \`$MYSQL_DATABASE\`.* to '$MYSQL_USER'@'%' IDENTIFIED BY '$MYSQL_PASSWORD';" >> $tfile + fi + fi + + /usr/bin/mysqld --user=mysql --bootstrap --verbose=0 < $tfile + rm -f $tfile +fi