|
@@ -9,18 +9,36 @@ export MYSQL_PASSWORD='my cool mysql password'
|
|
|
export MYSQL_DATABASE='my cool mysql database'
|
|
export MYSQL_DATABASE='my cool mysql database'
|
|
|
|
|
|
|
|
cname="mysql-container-$RANDOM-$RANDOM"
|
|
cname="mysql-container-$RANDOM-$RANDOM"
|
|
|
-cid="$(docker run -d -e MYSQL_ROOT_PASSWORD -e MYSQL_USER -e MYSQL_PASSWORD -e MYSQL_DATABASE --name "$cname" "$image")"
|
|
|
|
|
|
|
+cid="$(
|
|
|
|
|
+ docker run -d \
|
|
|
|
|
+ -e MYSQL_ROOT_PASSWORD \
|
|
|
|
|
+ -e MYSQL_USER \
|
|
|
|
|
+ -e MYSQL_PASSWORD \
|
|
|
|
|
+ -e MYSQL_DATABASE \
|
|
|
|
|
+ --name "$cname" \
|
|
|
|
|
+ "$image"
|
|
|
|
|
+)"
|
|
|
trap "docker rm -f $cid > /dev/null" EXIT
|
|
trap "docker rm -f $cid > /dev/null" EXIT
|
|
|
|
|
|
|
|
mysql() {
|
|
mysql() {
|
|
|
- docker run --rm -i --link "$cname":mysql --entrypoint mysql -e MYSQL_PWD="$MYSQL_PASSWORD" "$image" -hmysql -u"$MYSQL_USER" --silent "$@" "$MYSQL_DATABASE"
|
|
|
|
|
|
|
+ docker run --rm -i \
|
|
|
|
|
+ --link "$cname":mysql \
|
|
|
|
|
+ --entrypoint mysql \
|
|
|
|
|
+ -e MYSQL_PWD="$MYSQL_PASSWORD" \
|
|
|
|
|
+ "$image" \
|
|
|
|
|
+ -hmysql \
|
|
|
|
|
+ -u"$MYSQL_USER" \
|
|
|
|
|
+ --silent \
|
|
|
|
|
+ "$@" \
|
|
|
|
|
+ "$MYSQL_DATABASE"
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-tries=10
|
|
|
|
|
|
|
+tries=20
|
|
|
while ! echo 'SELECT 1' | mysql &> /dev/null; do
|
|
while ! echo 'SELECT 1' | mysql &> /dev/null; do
|
|
|
(( tries-- ))
|
|
(( tries-- ))
|
|
|
if [ $tries -le 0 ]; then
|
|
if [ $tries -le 0 ]; then
|
|
|
echo >&2 'mysqld failed to accept connections in a reasonable amount of time!'
|
|
echo >&2 'mysqld failed to accept connections in a reasonable amount of time!'
|
|
|
|
|
+ ( set -x && docker logs "$cid" ) >&2 || true
|
|
|
echo 'SELECT 1' | mysql # to hopefully get a useful error message
|
|
echo 'SELECT 1' | mysql # to hopefully get a useful error message
|
|
|
false
|
|
false
|
|
|
fi
|
|
fi
|
|
@@ -35,5 +53,5 @@ echo 'INSERT INTO test VALUES (2, 3, "goodbye!")' | mysql
|
|
|
[ "$(echo 'SELECT COUNT(*) FROM test' | mysql)" = 2 ]
|
|
[ "$(echo 'SELECT COUNT(*) FROM test' | mysql)" = 2 ]
|
|
|
echo 'DELETE FROM test WHERE a = 1' | mysql
|
|
echo 'DELETE FROM test WHERE a = 1' | mysql
|
|
|
[ "$(echo 'SELECT COUNT(*) FROM test' | mysql)" = 1 ]
|
|
[ "$(echo 'SELECT COUNT(*) FROM test' | mysql)" = 1 ]
|
|
|
-[ "$(echo 'SELECT c FROM test' | mysql)" = "goodbye!" ]
|
|
|
|
|
|
|
+[ "$(echo 'SELECT c FROM test' | mysql)" = 'goodbye!' ]
|
|
|
echo 'DROP TABLE test' | mysql
|
|
echo 'DROP TABLE test' | mysql
|