diff --git a/Dockerfile b/Dockerfile index 74a9ea5..ece6ddd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -19,10 +19,10 @@ LABEL Build docker build --rm --tag $registry/$maintainer/$imagename . RUN yum -y install --setopt=tsflags=nodocs mariadb-server bind-utils pwgen psmisc hostname vim # Add starters and installers -ADD ./container_files /root +ADD ./container_files /opt # Add Volumes and Set permissions -RUN mkdir /opt/shared && chmod 777 /opt/shared && chmod 777 /root/*.sh +RUN mkdir /opt/shared && chmod 777 /opt/shared && chmod 777 /opt/bin/*.sh # Place VOLUME statement below all changes to /var/lib/mysql VOLUME /var/lib/mysql @@ -39,4 +39,4 @@ ENV TERM "testterm" # Port EXPOSE 3306 -CMD ["/root/container_start.sh"] +CMD ["/opt/bin/start.sh"] diff --git a/Jenkinsfile b/Jenkinsfile index 068e85a..b8c8a68 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -80,6 +80,7 @@ node('docker') { sh 'rm -rf tmp' sh 'docker rm mariadb' + sh 'docker volume rm $(docker volume ls -qf dangling=true)' } diff --git a/bin/start.sh b/bin/start.sh index 9b071e9..55799e0 100755 --- a/bin/start.sh +++ b/bin/start.sh @@ -3,6 +3,6 @@ source common.bash . echo "Running Docker image($registry/$maintainer/$imagename)" -docker run --name=$imagename -d -p 3306:3306 $maintainer/$imagename +docker run --name=$imagename -d -p 3306:3306 -v mysql:/var/lib/mysql $maintainer/$imagename exit 0 \ No newline at end of file diff --git a/container_files/fix-permissions.sh b/container_files/bin/fix-permissions.sh similarity index 100% rename from container_files/fix-permissions.sh rename to container_files/bin/fix-permissions.sh diff --git a/container_files/container_start.sh b/container_files/bin/start.sh similarity index 82% rename from container_files/container_start.sh rename to container_files/bin/start.sh index 87e9515..ad22ae7 100755 --- a/container_files/container_start.sh +++ b/container_files/bin/start.sh @@ -45,26 +45,27 @@ if [ -e "/tmp/firsttimerunning" ]; then if [ "$MYSQL_DATABASE" != "" ]; then + echo "flush privileges;" >> "$tempSqlFile" echo "CREATE DATABASE IF NOT EXISTS \`$MYSQL_DATABASE\` ;" >> "$tempSqlFile" echo "CREATE USER '$MYSQL_USER'@'%' IDENTIFIED BY '$MYSQL_PASSWORD' ;" >> "$tempSqlFile" echo "GRANT ALL ON $MYSQL_DATABASE.* TO '$MYSQL_USER'@'%' IDENTIFIED BY '$MYSQL_PASSWORD' ;" >> "$tempSqlFile" echo "GRANT ALL ON $MYSQL_DATABASE.* TO '$MYSQL_USER'@'localhost' IDENTIFIED BY '$MYSQL_PASSWORD' ;" >> "$tempSqlFile" - echo "GRANT ALL ON $MYSQL_DATABASE.* TO '$MYSQL_USER'@'comanage.compose_i2network' IDENTIFIED BY '$MYSQL_PASSWORD' ;" >> "$tempSqlFile" - echo "GRANT ALL ON $MYSQL_DATABASE.* TO '$MYSQL_USER'@'comanage.comanage_i2network' IDENTIFIED BY '$MYSQL_PASSWORD' ;" >> "$tempSqlFile" - echo "GRANT ALL ON $MYSQL_DATABASE.* TO '$MYSQL_USER'@'comanage.config_i2network' IDENTIFIED BY '$MYSQL_PASSWORD' ;" >> "$tempSqlFile" + echo "GRANT ALL ON $MYSQL_DATABASE.* TO '$MYSQL_USER'@'$MYSQL_DATABASE.%_i2network' IDENTIFIED BY '$MYSQL_PASSWORD' ;" >> "$tempSqlFile" + echo "GRANT ALL ON $MYSQL_DATABASE.* TO '$MYSQL_USER'@'$MYSQL_DATABASE.%_i2network' IDENTIFIED BY '$MYSQL_PASSWORD' ;" >> "$tempSqlFile" + echo "GRANT ALL ON $MYSQL_DATABASE.* TO '$MYSQL_USER'@'$MYSQL_DATABASE.%_i2network' IDENTIFIED BY '$MYSQL_PASSWORD' ;" >> "$tempSqlFile" fi echo 'FLUSH PRIVILEGES ;' >> "$tempSqlFile" - - echo "character-set-server = utf8mb4" >> /etc/my.cnf - echo "collation-server = utf8mb4_unicode_ci" >> /etc/my.cnf + # [jvf] mysqld_safe unknown option '--character-set-server=utf8' [FIXME] + #echo "character-set-server = utf8" >> /etc/my.cnf + #echo "collation-server = utf8_unicode_ci" >> /etc/my.cnf echo "" >> /etc/my.cnf echo "Fixing Permissions" >> $log chown -R mysql:mysql $MYSQL_DATADIR - /root/fix-permissions.sh $MYSQL_DATADIR >> $log - /root/fix-permissions.sh /var/log/mariadb/ >> $log - /root/fix-permissions.sh /var/run/ >> $log + /opt/bin/fix-permissions.sh $MYSQL_DATADIR >> $log + /opt/bin/fix-permissions.sh /var/log/mariadb/ >> $log + /opt/bin/fix-permissions.sh /var/run/ >> $log echo "Done Fixing Permissions" >> $log /usr/bin/mysqld_safe --init-file="$tempSqlFile" --datadir="$MYSQL_DATADIR"