Skip to content

Commit 3e88d68

Browse files
committed
* Fix whitespace inconsistencies
* Removed hardcoded path from my_print_defaults command * Moved command for setting datadir ownership to before server is started
1 parent 355b0d2 commit 3e88d68

File tree

3 files changed

+101
-99
lines changed

3 files changed

+101
-99
lines changed

5.5/docker-entrypoint.sh

Lines changed: 36 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22
set -e
33

44
get_option () {
5-
local section=$1
6-
local option=$2
7-
local default=$3
8-
ret=$(/usr/local/mysql/bin/my_print_defaults $section | grep '^--'${option}'=' | cut -d= -f2-)
9-
[ -z $ret ] && ret=$default
10-
echo $ret
5+
local section=$1
6+
local option=$2
7+
local default=$3
8+
ret=$(my_print_defaults $section | grep '^--'${option}'=' | cut -d= -f2-)
9+
[ -z $ret ] && ret=$default
10+
echo $ret
1111
}
1212

1313
# if command starts with an option, prepend mysqld
@@ -17,37 +17,39 @@ fi
1717

1818
if [ "$1" = 'mysqld' ]; then
1919
# Get config
20-
DATADIR="$("$@" --verbose --help 2>/dev/null | awk '$1 == "datadir" { print $2; exit }')"
21-
SOCKET=$(get_option mysqld socket "/tmp/mysql.sock")
22-
HOSTNAME=$(hostname)
23-
PIDFILE=$(get_option mysqld pid-file "$DATADIR/$HOSTNAME.pid")
24-
20+
DATADIR="$("$@" --verbose --help 2>/dev/null | awk '$1 == "datadir" { print $2; exit }')"
21+
SOCKET=$(get_option mysqld socket "/tmp/mysql.sock")
22+
HOSTNAME=$(hostname)
23+
PIDFILE=$(get_option mysqld pid-file "$DATADIR/$HOSTNAME.pid")
24+
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
3131
mkdir -p $DATADIR
32+
chown -R mysql:mysql "$DATADIR"
33+
3234
echo 'Running mysql_install_db'
3335
mysql_install_db --user=mysql --datadir=$DATADIR --rpm --basedir=/usr/local/mysql
3436
echo 'Finished mysql_install_db'
3537

3638
mysqld --user=mysql --datadir=$DATADIR --skip-networking --basedir=/usr/local/mysql &
37-
for i in $(seq 30 -1 0); do
38-
[ -S $SOCKET ] && break
39-
echo 'MySQL init process in progress...'
40-
sleep 1
39+
for i in $(seq 30 -1 0); do
40+
[ -S $SOCKET ] && break
41+
echo 'MySQL init process in progress...'
42+
sleep 1
4143
done
42-
if [ $i = 0 ]; then
43-
echo >&2 'MySQL init process failed.'
44-
exit 1
45-
fi
46-
44+
if [ $i = 0 ]; then
45+
echo >&2 'MySQL init process failed.'
46+
exit 1
47+
fi
48+
4749
# These statements _must_ be on individual lines, and _must_ end with
4850
# semicolons (no line breaks or comments are permitted).
4951
# TODO proper SQL escaping on ALL the things D:
50-
52+
5153
tempSqlFile=$(mktemp /tmp/mysql-first-time.XXXXXX.sql)
5254
cat > "$tempSqlFile" <<-EOSQL
5355
-- What's done in this file shouldn't be replicated
@@ -59,35 +61,34 @@ if [ "$1" = 'mysqld' ]; then
5961
GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION ;
6062
DROP DATABASE IF EXISTS test ;
6163
EOSQL
62-
64+
6365
if [ "$MYSQL_DATABASE" ]; then
6466
echo "CREATE DATABASE IF NOT EXISTS \`"$MYSQL_DATABASE"\` ;" >> "$tempSqlFile"
6567
fi
66-
68+
6769
if [ "$MYSQL_USER" -a "$MYSQL_PASSWORD" ]; then
6870
echo "CREATE USER '"$MYSQL_USER"'@'%' IDENTIFIED BY '"$MYSQL_PASSWORD"' ;" >> "$tempSqlFile"
69-
71+
7072
if [ "$MYSQL_DATABASE" ]; then
7173
echo "GRANT ALL ON \`"$MYSQL_DATABASE"\`.* TO '"$MYSQL_USER"'@'%' ;" >> "$tempSqlFile"
7274
fi
7375
fi
74-
76+
7577
echo 'FLUSH PRIVILEGES ;' >> "$tempSqlFile"
76-
77-
chown -R mysql:mysql "$DATADIR"
78+
7879
mysql -uroot < $tempSqlFile
7980

8081
rm -f $tempSqlFile
8182
kill $(cat $PIDFILE)
82-
for i in $(seq 30 -1 0); do
83-
[ -S $SOCKET ] || break
84-
echo 'MySQL init process in progress...'
85-
sleep 1
83+
for i in $(seq 30 -1 0); do
84+
[ -S $SOCKET ] || break
85+
echo 'MySQL init process in progress...'
86+
sleep 1
8687
done
87-
if [ $i = 0 ]; then
88-
echo >&2 'MySQL hangs during init process.'
89-
exit 1
90-
fi
88+
if [ $i = 0 ]; then
89+
echo >&2 'MySQL hangs during init process.'
90+
exit 1
91+
fi
9192
echo 'MySQL init process done. Ready for start up.'
9293
fi
9394

5.6/docker-entrypoint.sh

Lines changed: 33 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22
set -e
33

44
get_option () {
5-
local section=$1
6-
local option=$2
7-
local default=$3
8-
ret=$(/usr/bin/my_print_defaults $section | grep '^--'${option}'=' | cut -d= -f2-)
9-
[ -z $ret ] && ret=$default
10-
echo $ret
5+
local section=$1
6+
local option=$2
7+
local default=$3
8+
ret=$(my_print_defaults $section | grep '^--'${option}'=' | cut -d= -f2-)
9+
[ -z $ret ] && ret=$default
10+
echo $ret
1111
}
1212

1313
# if command starts with an option, prepend mysqld
@@ -18,8 +18,8 @@ fi
1818
if [ "$1" = 'mysqld' ]; then
1919
# Get config
2020
DATADIR="$("$@" --verbose --help 2>/dev/null | awk '$1 == "datadir" { print $2; exit }')"
21-
SOCKET=$(get_option mysqld socket "$datadir/mysql.sock")
22-
PIDFILE=$(get_option mysqld pid-file "/var/run/mysqld/mysqld.pid")
21+
SOCKET=$(get_option mysqld socket "$datadir/mysql.sock")
22+
PIDFILE=$(get_option mysqld pid-file "/var/run/mysqld/mysqld.pid")
2323

2424
if [ ! -d "$DATADIR/mysql" ]; then
2525
if [ -z "$MYSQL_ROOT_PASSWORD" -a -z "$MYSQL_ALLOW_EMPTY_PASSWORD" ]; then
@@ -28,25 +28,27 @@ if [ "$1" = 'mysqld' ]; then
2828
exit 1
2929
fi
3030
mkdir -p $DATADIR
31+
chown -R mysql:mysql "$DATADIR"
32+
3133
echo 'Running mysql_install_db'
3234
mysql_install_db --user=mysql --datadir=$DATADIR --rpm --keep-my-cnf
3335
echo 'Finished mysql_install_db'
3436

3537
mysqld --user=mysql --datadir=$DATADIR --skip-networking &
36-
for i in $(seq 30 -1 0); do
37-
[ -S $SOCKET ] && break
38-
echo 'MySQL init process in progress...'
39-
sleep 1
38+
for i in $(seq 30 -1 0); do
39+
[ -S $SOCKET ] && break
40+
echo 'MySQL init process in progress...'
41+
sleep 1
4042
done
41-
if [ $i = 0 ]; then
42-
echo >&2 'MySQL init process failed.'
43-
exit 1
44-
fi
45-
43+
if [ $i = 0 ]; then
44+
echo >&2 'MySQL init process failed.'
45+
exit 1
46+
fi
47+
4648
# These statements _must_ be on individual lines, and _must_ end with
4749
# semicolons (no line breaks or comments are permitted).
4850
# TODO proper SQL escaping on ALL the things D:
49-
51+
5052
tempSqlFile=$(mktemp /tmp/mysql-first-time.XXXXXX.sql)
5153
cat > "$tempSqlFile" <<-EOSQL
5254
-- What's done in this file shouldn't be replicated
@@ -58,35 +60,34 @@ if [ "$1" = 'mysqld' ]; then
5860
GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION ;
5961
DROP DATABASE IF EXISTS test ;
6062
EOSQL
61-
63+
6264
if [ "$MYSQL_DATABASE" ]; then
6365
echo "CREATE DATABASE IF NOT EXISTS \`"$MYSQL_DATABASE"\` ;" >> "$tempSqlFile"
6466
fi
65-
67+
6668
if [ "$MYSQL_USER" -a "$MYSQL_PASSWORD" ]; then
6769
echo "CREATE USER '"$MYSQL_USER"'@'%' IDENTIFIED BY '"$MYSQL_PASSWORD"' ;" >> "$tempSqlFile"
68-
70+
6971
if [ "$MYSQL_DATABASE" ]; then
7072
echo "GRANT ALL ON \`"$MYSQL_DATABASE"\`.* TO '"$MYSQL_USER"'@'%' ;" >> "$tempSqlFile"
7173
fi
7274
fi
73-
75+
7476
echo 'FLUSH PRIVILEGES ;' >> "$tempSqlFile"
75-
76-
chown -R mysql:mysql "$DATADIR"
77+
7778
mysql -uroot < $tempSqlFile
7879

7980
rm -f $tempSqlFile
8081
kill $(cat $PIDFILE)
81-
for i in $(seq 30 -1 0); do
82-
[ -S $SOCKET ] || break
83-
echo 'MySQL init process in progress...'
84-
sleep 1
82+
for i in $(seq 30 -1 0); do
83+
[ -S $SOCKET ] || break
84+
echo 'MySQL init process in progress...'
85+
sleep 1
8586
done
86-
if [ $i = 0 ]; then
87-
echo >&2 'MySQL hangs during init process.'
88-
exit 1
89-
fi
87+
if [ $i = 0 ]; then
88+
echo >&2 'MySQL hangs during init process.'
89+
exit 1
90+
fi
9091
echo 'MySQL init process done. Ready for start up.'
9192
fi
9293

5.7/docker-entrypoint.sh

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22
set -e
33

44
get_option () {
5-
local section=$1
6-
local option=$2
7-
local default=$3
8-
ret=$(/usr/bin/my_print_defaults $section | grep '^--'${option}'=' | cut -d= -f2-)
9-
[ -z $ret ] && ret=$default
10-
echo $ret
5+
local section=$1
6+
local option=$2
7+
local default=$3
8+
ret=$(my_print_defaults $section | grep '^--'${option}'=' | cut -d= -f2-)
9+
[ -z $ret ] && ret=$default
10+
echo $ret
1111
}
1212

1313
# if command starts with an option, prepend mysqld
@@ -18,8 +18,8 @@ fi
1818
if [ "$1" = 'mysqld' ]; then
1919
# Get config
2020
DATADIR="$("$@" --verbose --help 2>/dev/null | awk '$1 == "datadir" { print $2; exit }')"
21-
SOCKET=$(get_option mysqld socket "$datadir/mysql.sock")
22-
PIDFILE=$(get_option mysqld pid-file "/var/run/mysqld/mysqld.pid")
21+
SOCKET=$(get_option mysqld socket "$datadir/mysql.sock")
22+
PIDFILE=$(get_option mysqld pid-file "/var/run/mysqld/mysqld.pid")
2323

2424
if [ ! -d "$DATADIR/mysql" ]; then
2525
if [ -z "$MYSQL_ROOT_PASSWORD" -a -z "$MYSQL_ALLOW_EMPTY_PASSWORD" ]; then
@@ -29,29 +29,30 @@ if [ "$1" = 'mysqld' ]; then
2929
fi
3030

3131
mkdir -p $DATADIR
32+
chown -R mysql:mysql "$DATADIR"
3233
echo 'Initializing database'
3334
mysqld --initialize-insecure=on --datadir="$DATADIR"
3435
echo 'Database initialized'
3536

3637
mysqld --user=mysql --datadir=$DATADIR --skip-networking &
37-
for i in $(seq 30 -1 0); do
38-
[ -S $SOCKET ] && break
39-
echo 'MySQL init process in progress...'
40-
sleep 1
38+
for i in $(seq 30 -1 0); do
39+
[ -S $SOCKET ] && break
40+
echo 'MySQL init process in progress...'
41+
sleep 1
4142
done
42-
if [ $i = 0 ]; then
43-
echo >&2 'MySQL init process failed.'
44-
exit 1
45-
fi
46-
43+
if [ $i = 0 ]; then
44+
echo >&2 'MySQL init process failed.'
45+
exit 1
46+
fi
47+
4748
# Workaround for bug in 5.7 that doesn't clean up after itself correctly
4849
rm -f $DATADIR/ib_logfile0
4950
rm -f $DATADIR/ib_logfile1
5051
rm -f $DATADIR/ibdata1
5152
# These statements _must_ be on individual lines, and _must_ end with
5253
# semicolons (no line breaks or comments are permitted).
5354
# TODO proper SQL escaping on ALL the things D:
54-
55+
5556
tempSqlFile=$(mktemp /tmp/mysql-first-time.XXXXXX.sql)
5657
cat > "$tempSqlFile" <<-EOSQL
5758
-- What's done in this file shouldn't be replicated
@@ -63,34 +64,33 @@ if [ "$1" = 'mysqld' ]; then
6364
GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION ;
6465
DROP DATABASE IF EXISTS test ;
6566
EOSQL
66-
67+
6768
if [ "$MYSQL_DATABASE" ]; then
6869
echo "CREATE DATABASE IF NOT EXISTS \`"$MYSQL_DATABASE"\` ;" >> "$tempSqlFile"
6970
fi
70-
71+
7172
if [ "$MYSQL_USER" -a "$MYSQL_PASSWORD" ]; then
7273
echo "CREATE USER '"$MYSQL_USER"'@'%' IDENTIFIED BY '"$MYSQL_PASSWORD"' ;" >> "$tempSqlFile"
73-
74+
7475
if [ "$MYSQL_DATABASE" ]; then
7576
echo "GRANT ALL ON \`"$MYSQL_DATABASE"\`.* TO '"$MYSQL_USER"'@'%' ;" >> "$tempSqlFile"
7677
fi
7778
fi
78-
79+
7980
echo 'FLUSH PRIVILEGES ;' >> "$tempSqlFile"
80-
81-
chown -R mysql:mysql "$DATADIR"
81+
8282
mysql -uroot < $tempSqlFile
8383
rm -f $tempSqlFile
8484
kill $(cat $PIDFILE)
85-
for i in $(seq 30 -1 0); do
86-
[ -S $SOCKET ] || break
87-
echo 'MySQL init process in progress...'
88-
sleep 1
85+
for i in $(seq 30 -1 0); do
86+
[ -S $SOCKET ] || break
87+
echo 'MySQL init process in progress...'
88+
sleep 1
8989
done
90-
if [ $i = 0 ]; then
91-
echo >&2 'MySQL hangs during init process.'
92-
exit 1
93-
fi
90+
if [ $i = 0 ]; then
91+
echo >&2 'MySQL hangs during init process.'
92+
exit 1
93+
fi
9494
echo 'MySQL init process done. Ready for start up.'
9595
fi
9696

0 commit comments

Comments
 (0)