Skip to content

Commit 931e531

Browse files
committed
Improvements to shell and Dockerfile scripts.
- `test.sh`: Adds quotes to prevent word splitting. - `5.*/Dockerfile`: Prefer `COPY` over `ADD`. See: https://docs.docker.com/engine/articles/dockerfile_best-practices/ - `5.*/import_sql.sh`: Adds missing $. I admit I don't know why it works without the $ there, but it's unnerving, and shellcheck complains that "This expression is constant. Did you forget the $ on a variable?" - Some scripts have a mixture of tabs and spaces for indention. Spaces are the more common style. Untabifies those scripts.
1 parent cf1a3fb commit 931e531

File tree

7 files changed

+59
-59
lines changed

7 files changed

+59
-59
lines changed

5.5/Dockerfile

+4-4
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ FROM ubuntu:trusty
22
MAINTAINER Fernando Mayo <[email protected]>, Feng Honglin <[email protected]>
33

44
# Add MySQL configuration
5-
ADD my.cnf /etc/mysql/conf.d/my.cnf
6-
ADD mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
5+
COPY my.cnf /etc/mysql/conf.d/my.cnf
6+
COPY mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
77

88
RUN apt-get update && \
99
apt-get -yq install mysql-server-5.5 pwgen && \
@@ -14,8 +14,8 @@ RUN apt-get update && \
1414
touch /var/lib/mysql/.EMPTY_DB
1515

1616
# Add MySQL scripts
17-
ADD import_sql.sh /import_sql.sh
18-
ADD run.sh /run.sh
17+
COPY import_sql.sh /import_sql.sh
18+
COPY run.sh /run.sh
1919

2020
ENV MYSQL_USER=admin \
2121
MYSQL_PASS=**Random** \

5.5/import_sql.sh

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
#!/bin/bash
22

33
if [[ $# -ne 3 ]]; then
4-
echo "Usage: $0 <username> <password> </path/to/sql_file.sql>"
5-
exit 1
4+
echo "Usage: $0 <username> <password> </path/to/sql_file.sql>"
5+
exit 1
66
fi
77

88
echo "=> Starting MySQL Server"
@@ -14,7 +14,7 @@ while [[ RET -ne 0 ]]; do
1414
echo "=> Waiting for confirmation of MySQL service startup"
1515
sleep 5
1616
mysql -u"$1" -p"$2" -e "status" > /dev/null 2>&1
17-
RET=$?
17+
RET=$?
1818
done
1919

2020
echo " Started with PID ${PID}"

5.5/run.sh

+20-20
Original file line numberDiff line numberDiff line change
@@ -30,25 +30,25 @@ StartMySQL ()
3030

3131
CreateMySQLUser()
3232
{
33-
if [ "$MYSQL_PASS" = "**Random**" ]; then
34-
unset MYSQL_PASS
35-
fi
36-
37-
PASS=${MYSQL_PASS:-$(pwgen -s 12 1)}
38-
_word=$( [ ${MYSQL_PASS} ] && echo "preset" || echo "random" )
39-
echo "=> Creating MySQL user ${MYSQL_USER} with ${_word} password"
40-
41-
mysql -uroot -e "CREATE USER '${MYSQL_USER}'@'%' IDENTIFIED BY '$PASS'"
42-
mysql -uroot -e "GRANT ALL PRIVILEGES ON *.* TO '${MYSQL_USER}'@'%' WITH GRANT OPTION"
43-
echo "=> Done!"
44-
echo "========================================================================"
45-
echo "You can now connect to this MySQL Server using:"
46-
echo ""
47-
echo " mysql -u$MYSQL_USER -p$PASS -h<host> -P<port>"
48-
echo ""
49-
echo "Please remember to change the above password as soon as possible!"
50-
echo "MySQL user 'root' has no password but only allows local connections"
51-
echo "========================================================================"
33+
if [ "$MYSQL_PASS" = "**Random**" ]; then
34+
unset MYSQL_PASS
35+
fi
36+
37+
PASS=${MYSQL_PASS:-$(pwgen -s 12 1)}
38+
_word=$( [ ${MYSQL_PASS} ] && echo "preset" || echo "random" )
39+
echo "=> Creating MySQL user ${MYSQL_USER} with ${_word} password"
40+
41+
mysql -uroot -e "CREATE USER '${MYSQL_USER}'@'%' IDENTIFIED BY '$PASS'"
42+
mysql -uroot -e "GRANT ALL PRIVILEGES ON *.* TO '${MYSQL_USER}'@'%' WITH GRANT OPTION"
43+
echo "=> Done!"
44+
echo "========================================================================"
45+
echo "You can now connect to this MySQL Server using:"
46+
echo ""
47+
echo " mysql -u$MYSQL_USER -p$PASS -h<host> -P<port>"
48+
echo ""
49+
echo "Please remember to change the above password as soon as possible!"
50+
echo "MySQL user 'root' has no password but only allows local connections"
51+
echo "========================================================================"
5252
}
5353

5454
OnCreateDB()
@@ -65,7 +65,7 @@ OnCreateDB()
6565
ImportSql()
6666
{
6767
for FILE in ${STARTUP_SQL}; do
68-
echo "=> Importing SQL file ${FILE}"
68+
echo "=> Importing SQL file ${FILE}"
6969
if [ "$ON_CREATE_DB" ]; then
7070
mysql -uroot "$ON_CREATE_DB" < "${FILE}"
7171
else

5.6/Dockerfile

+4-4
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ FROM ubuntu:trusty
22
MAINTAINER Fernando Mayo <[email protected]>, Feng Honglin <[email protected]>
33

44
# Add MySQL configuration
5-
ADD my.cnf /etc/mysql/conf.d/my.cnf
6-
ADD mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
5+
COPY my.cnf /etc/mysql/conf.d/my.cnf
6+
COPY mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
77

88
RUN apt-get update && \
99
apt-get -yq install mysql-server-5.6 pwgen && \
@@ -14,8 +14,8 @@ RUN apt-get update && \
1414
touch /var/lib/mysql/.EMPTY_DB
1515

1616
# Add MySQL scripts
17-
ADD import_sql.sh /import_sql.sh
18-
ADD run.sh /run.sh
17+
COPY import_sql.sh /import_sql.sh
18+
COPY run.sh /run.sh
1919

2020
ENV MYSQL_USER=admin \
2121
MYSQL_PASS=**Random** \

5.6/import_sql.sh

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
#!/bin/bash
22

33
if [[ $# -ne 3 ]]; then
4-
echo "Usage: $0 <username> <password> </path/to/sql_file.sql>"
5-
exit 1
4+
echo "Usage: $0 <username> <password> </path/to/sql_file.sql>"
5+
exit 1
66
fi
77

88
echo "=> Starting MySQL Server"
99
/usr/bin/mysqld_safe > /dev/null 2>&1 &
1010
PID=$!
1111

1212
RET=1
13-
while [[ RET -ne 0 ]]; do
13+
while [[ $RET -ne 0 ]]; do
1414
echo "=> Waiting for confirmation of MySQL service startup"
1515
sleep 5
1616
mysql -u"$1" -p"$2" -e "status" > /dev/null 2>&1
17-
RET=$?
17+
RET=$?
1818
done
1919

2020
echo " Started with PID ${PID}"

5.6/run.sh

+20-20
Original file line numberDiff line numberDiff line change
@@ -30,25 +30,25 @@ StartMySQL ()
3030

3131
CreateMySQLUser()
3232
{
33-
if [ "$MYSQL_PASS" = "**Random**" ]; then
34-
unset MYSQL_PASS
35-
fi
36-
37-
PASS=${MYSQL_PASS:-$(pwgen -s 12 1)}
38-
_word=$( [ ${MYSQL_PASS} ] && echo "preset" || echo "random" )
39-
echo "=> Creating MySQL user ${MYSQL_USER} with ${_word} password"
40-
41-
mysql -uroot -e "CREATE USER '${MYSQL_USER}'@'%' IDENTIFIED BY '$PASS'"
42-
mysql -uroot -e "GRANT ALL PRIVILEGES ON *.* TO '${MYSQL_USER}'@'%' WITH GRANT OPTION"
43-
echo "=> Done!"
44-
echo "========================================================================"
45-
echo "You can now connect to this MySQL Server using:"
46-
echo ""
47-
echo " mysql -u$MYSQL_USER -p$PASS -h<host> -P<port>"
48-
echo ""
49-
echo "Please remember to change the above password as soon as possible!"
50-
echo "MySQL user 'root' has no password but only allows local connections"
51-
echo "========================================================================"
33+
if [ "$MYSQL_PASS" = "**Random**" ]; then
34+
unset MYSQL_PASS
35+
fi
36+
37+
PASS=${MYSQL_PASS:-$(pwgen -s 12 1)}
38+
_word=$( [ ${MYSQL_PASS} ] && echo "preset" || echo "random" )
39+
echo "=> Creating MySQL user ${MYSQL_USER} with ${_word} password"
40+
41+
mysql -uroot -e "CREATE USER '${MYSQL_USER}'@'%' IDENTIFIED BY '$PASS'"
42+
mysql -uroot -e "GRANT ALL PRIVILEGES ON *.* TO '${MYSQL_USER}'@'%' WITH GRANT OPTION"
43+
echo "=> Done!"
44+
echo "========================================================================"
45+
echo "You can now connect to this MySQL Server using:"
46+
echo ""
47+
echo " mysql -u$MYSQL_USER -p$PASS -h<host> -P<port>"
48+
echo ""
49+
echo "Please remember to change the above password as soon as possible!"
50+
echo "MySQL user 'root' has no password but only allows local connections"
51+
echo "========================================================================"
5252
}
5353

5454
OnCreateDB()
@@ -65,7 +65,7 @@ OnCreateDB()
6565
ImportSql()
6666
{
6767
for FILE in ${STARTUP_SQL}; do
68-
echo "=> Importing SQL file ${FILE}"
68+
echo "=> Importing SQL file ${FILE}"
6969
if [ "$ON_CREATE_DB" ]; then
7070
mysql -uroot "$ON_CREATE_DB" < "${FILE}"
7171
else

test.sh

+4-4
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@ mysql -uuser -ptest -h127.0.0.1 -P13308 -e "show slave status\G;" | grep "Slave_
1919

2020
echo "=> Testing volume on mysql 5.5"
2121
mkdir vol55
22-
docker run --name mysql55.1 -d -p 13309:3306 -e MYSQL_USER="user" -e MYSQL_PASS="test" -v $(pwd)/vol55:/var/lib/mysql mysql-5.5; sleep 10
22+
docker run --name mysql55.1 -d -p 13309:3306 -e MYSQL_USER="user" -e MYSQL_PASS="test" -v "$(pwd)/vol55":/var/lib/mysql mysql-5.5; sleep 10
2323
mysqladmin -uuser -ptest -h127.0.0.1 -P13309 ping | grep -c "mysqld is alive"
2424
docker stop mysql55.1
25-
docker run -d -p 13310:3306 -v $(pwd)/vol55:/var/lib/mysql mysql-5.5; sleep 10
25+
docker run -d -p 13310:3306 -v "$(pwd)/vol55":/var/lib/mysql mysql-5.5; sleep 10
2626
mysqladmin -uuser -ptest -h127.0.0.1 -P13310 ping | grep -c "mysqld is alive"
2727

2828
echo "=> Building mysql 5.6 image"
@@ -42,10 +42,10 @@ mysql -uuser -ptest -h127.0.0.1 -P23308 -e "show slave status\G;" | grep "Slave_
4242

4343
echo "=> Testing volume on mysql 5.6"
4444
mkdir vol56
45-
docker run --name mysql56.1 -d -p 23309:3306 -e MYSQL_USER="user" -e MYSQL_PASS="test" -v $(pwd)/vol56:/var/lib/mysql mysql-5.6; sleep 10
45+
docker run --name mysql56.1 -d -p 23309:3306 -e MYSQL_USER="user" -e MYSQL_PASS="test" -v "$(pwd)/vol56":/var/lib/mysql mysql-5.6; sleep 10
4646
mysqladmin -uuser -ptest -h127.0.0.1 -P23309 ping | grep -c "mysqld is alive"
4747
docker stop mysql56.1
48-
docker run -d -p 23310:3306 -v $(pwd)/vol56:/var/lib/mysql mysql-5.6; sleep 10
48+
docker run -d -p 23310:3306 -v "$(pwd)/vol56":/var/lib/mysql mysql-5.6; sleep 10
4949
mysqladmin -uuser -ptest -h127.0.0.1 -P23310 ping | grep -c "mysqld is alive"
5050

5151
echo "=>Done"

0 commit comments

Comments
 (0)