@@ -5,6 +5,7 @@ cd /var/lib/cattle
5
5
6
6
JAR=/usr/share/cattle/cattle.jar
7
7
DEBUG_JAR=/var/lib/cattle/lib/cattle-debug.jar
8
+ export S6_SERVICE_DIR=${S6_SERVICE_DIR:- $S6_SERVICE_DIR }
8
9
9
10
if [ " $URL " != " " ]
10
11
then
@@ -34,12 +35,59 @@ setup_gelf()
34
35
fi
35
36
}
36
37
38
+ start_local_mysql ()
39
+ {
40
+ s6-svc -u ${S6_SERVICE_DIR} /mysql
41
+
42
+ set +e
43
+ for (( i= 0 ;i< 60 ;i++ ))
44
+ do
45
+ if mysqladmin status 2> /dev/null; then
46
+ break
47
+ else
48
+ if [ " $i " -eq " 59" ]; then
49
+ echo " Could not start MySQL..." 1>&2
50
+ exit 1
51
+ fi
52
+ sleep 1
53
+ fi
54
+ done
55
+ set -e
56
+ }
57
+
58
+ setup_local_db ()
59
+ {
60
+ local db_user=$CATTLE_DB_CATTLE_USERNAME
61
+ local db_pass=$CATTLE_DB_CATTLE_PASSWORD
62
+ local db_name=$CATTLE_DB_CATTLE_MYSQL_NAME
63
+
64
+ echo " Setting up database"
65
+ mysql -uroot<< EOF
66
+ CREATE DATABASE IF NOT EXISTS ${db_name} COLLATE = 'utf8_general_ci' CHARACTER SET = 'utf8';
67
+ GRANT ALL ON ${db_name} .* TO "${db_user} "@'%' IDENTIFIED BY "${db_pass} ";
68
+ GRANT ALL ON ${db_name} .* TO "${db_user} "@'localhost' IDENTIFIED BY "${db_pass} ";
69
+ EOF
70
+ }
71
+
37
72
setup_mysql ()
38
73
{
39
- export CATTLE_DB_CATTLE_MYSQL_HOST=${CATTLE_DB_CATTLE_MYSQL_HOST:- $MYSQL_PORT_3306_TCP_ADDR }
40
- export CATTLE_DB_CATTLE_MYSQL_PORT=${CATTLE_DB_CATTLE_MYSQL_PORT:- $MYSQL_PORT_3306_TCP_PORT }
41
- if [ -n " $CATTLE_DB_CATTLE_MYSQL_HOST " ]; then
42
- export CATTLE_DB_CATTLE_DATABASE=${CATTLE_DB_CATTLE_DATABASE:- mysql}
74
+ # Set in the Dockerfile by default... overriden by runtime.
75
+ if [ ${CATTLE_DB_CATTLE_DATABASE} == " mysql" ]; then
76
+ export CATTLE_DB_CATTLE_MYSQL_HOST=${CATTLE_DB_CATTLE_MYSQL_HOST:- $MYSQL_PORT_3306_TCP_ADDR }
77
+ export CATTLE_DB_CATTLE_MYSQL_PORT=${CATTLE_DB_CATTLE_MYSQL_PORT:- $MYSQL_PORT_3306_TCP_PORT }
78
+ export CATTLE_DB_CATTLE_USERNAME=${CATTLE_DB_CATTLE_USERNAME:- cattle}
79
+ export CATTLE_DB_CATTLE_PASSWORD=${CATTLE_DB_CATTLE_PASSWORD:- cattle}
80
+ export CATTLE_DB_CATTLE_MYSQL_NAME=${CATTLE_DB_CATTLE_MYSQL_NAME:- cattle}
81
+
82
+ if [ -z " $CATTLE_DB_CATTLE_MYSQL_HOST " ]; then
83
+ export CATTLE_DB_CATTLE_MYSQL_HOST=" localhost"
84
+ start_local_mysql
85
+ setup_local_db
86
+ fi
87
+
88
+ if [ -z " $CATTLE_DB_CATTLE_MYSQL_PORT " ]; then
89
+ CATTLE_DB_CATTLE_MYSQL_PORT=3306
90
+ fi
43
91
fi
44
92
}
45
93
0 commit comments