Skip to content

Commit 4a68bb5

Browse files
committed
Various fixes.
* Removed unnecessary folder check * Specify pid-file for 5.5 instead of using hostname * Change server shutdown check to be more reliable (socket is closed before all resources are released, which could lead to issues)
1 parent 6946274 commit 4a68bb5

File tree

3 files changed

+14
-17
lines changed

3 files changed

+14
-17
lines changed

5.5/docker-entrypoint.sh

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,24 +20,23 @@ if [ "$1" = 'mysqld' ]; then
2020
DATADIR="$("$@" --verbose --help 2>/dev/null | awk '$1 == "datadir" { print $2; exit }')"
2121
SOCKET=$(get_option mysqld socket "/tmp/mysql.sock")
2222
HOSTNAME=$(hostname)
23-
PIDFILE=$(get_option mysqld pid-file "$DATADIR/$HOSTNAME.pid")
23+
PIDFILE=$(get_option mysqld pid-file "/var/lib/mysql/mysqld.pid")
2424

2525
if [ ! -d "$DATADIR/mysql" ]; then
2626
if [ -z "$MYSQL_ROOT_PASSWORD" -a -z "$MYSQL_ALLOW_EMPTY_PASSWORD" ]; then
2727
echo >&2 'error: database is uninitialized and MYSQL_ROOT_PASSWORD not set'
2828
echo >&2 ' Did you forget to add -e MYSQL_ROOT_PASSWORD=... ?'
2929
exit 1
3030
fi
31-
if [ ! -d "$DATADIR" ]; then
32-
mkdir -p "$DATADIR"
33-
fi
31+
32+
mkdir -p "$DATADIR"
3433
chown -R mysql:mysql "$DATADIR"
3534

3635
echo 'Running mysql_install_db'
3736
mysql_install_db --user=mysql --datadir="$DATADIR" --rpm --basedir=/usr/local/mysql
3837
echo 'Finished mysql_install_db'
3938

40-
mysqld --user=mysql --datadir="$DATADIR" --skip-networking --basedir=/usr/local/mysql &
39+
mysqld --user=mysql --datadir="$DATADIR" --skip-networking --basedir=/usr/local/mysql --pid-file="$PIDFILE" &
4140
for i in $(seq 30 -1 0); do
4241
[ -S "$SOCKET" ] && break
4342
echo 'MySQL init process in progress...'
@@ -65,7 +64,7 @@ if [ "$1" = 'mysqld' ]; then
6564
EOSQL
6665

6766
if [ "$MYSQL_DATABASE" ]; then
68-
echo "CREATE DATABASE IF NOT EXISTS \`"$MYSQL_DATABASE"\` ;" >> "$tempSqlFile"
67+
echo "CREATE DATABASE IF NOT EXISTS \`$MYSQL_DATABASE\` ;" >> "$tempSqlFile"
6968
fi
7069

7170
if [ "$MYSQL_USER" -a "$MYSQL_PASSWORD" ]; then
@@ -83,7 +82,7 @@ if [ "$1" = 'mysqld' ]; then
8382
rm -f "$tempSqlFile"
8483
kill $(cat $PIDFILE)
8584
for i in $(seq 30 -1 0); do
86-
[ -S $SOCKET ] || break
85+
[ -f "$PIDFILE" ] || break
8786
echo 'MySQL init process in progress...'
8887
sleep 1
8988
done

5.6/docker-entrypoint.sh

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,8 @@ if [ "$1" = 'mysqld' ]; then
2727
echo >&2 ' Did you forget to add -e MYSQL_ROOT_PASSWORD=... ?'
2828
exit 1
2929
fi
30-
if [ ! -d "$DATADIR" ]; then
31-
mkdir -p "$DATADIR"
32-
fi
30+
31+
mkdir -p "$DATADIR"
3332
chown -R mysql:mysql "$DATADIR"
3433

3534
echo 'Running mysql_install_db'
@@ -64,7 +63,7 @@ if [ "$1" = 'mysqld' ]; then
6463
EOSQL
6564

6665
if [ "$MYSQL_DATABASE" ]; then
67-
echo "CREATE DATABASE IF NOT EXISTS \`"$MYSQL_DATABASE"\` ;" >> "$tempSqlFile"
66+
echo "CREATE DATABASE IF NOT EXISTS \`$MYSQL_DATABASE\` ;" >> "$tempSqlFile"
6867
fi
6968

7069
if [ "$MYSQL_USER" -a "$MYSQL_PASSWORD" ]; then
@@ -82,7 +81,7 @@ if [ "$1" = 'mysqld' ]; then
8281
rm -f "$tempSqlFile"
8382
kill $(cat $PIDFILE)
8483
for i in $(seq 30 -1 0); do
85-
[ -S $SOCKET ] || break
84+
[ -f "$PIDFILE" ] || break
8685
echo 'MySQL init process in progress...'
8786
sleep 1
8887
done

5.7/docker-entrypoint.sh

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,8 @@ if [ "$1" = 'mysqld' ]; then
2727
echo >&2 ' Did you forget to add -e MYSQL_ROOT_PASSWORD=... ?'
2828
exit 1
2929
fi
30-
if [ ! -d "$DATADIR" ]; then
31-
mkdir -p "$DATADIR"
32-
fi
30+
31+
mkdir -p "$DATADIR"
3332
chown -R mysql:mysql "$DATADIR"
3433

3534
echo 'Initializing database'
@@ -64,7 +63,7 @@ if [ "$1" = 'mysqld' ]; then
6463
EOSQL
6564

6665
if [ "$MYSQL_DATABASE" ]; then
67-
echo "CREATE DATABASE IF NOT EXISTS \`"$MYSQL_DATABASE"\` ;" >> "$tempSqlFile"
66+
echo "CREATE DATABASE IF NOT EXISTS \`$MYSQL_DATABASE\` ;" >> "$tempSqlFile"
6867
fi
6968

7069
if [ "$MYSQL_USER" -a "$MYSQL_PASSWORD" ]; then
@@ -81,7 +80,7 @@ if [ "$1" = 'mysqld' ]; then
8180
rm -f "$tempSqlFile"
8281
kill $(cat $PIDFILE)
8382
for i in $(seq 30 -1 0); do
84-
[ -S $SOCKET ] || break
83+
[ -f "$PIDFILE" ] || break
8584
echo 'MySQL init process in progress...'
8685
sleep 1
8786
done

0 commit comments

Comments
 (0)