Skip to content

Commit f792052

Browse files
committed
Tools for test suies based on Docker
1 parent e2f5c6b commit f792052

File tree

4 files changed

+141
-1
lines changed

4 files changed

+141
-1
lines changed

build/bashrc

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,39 @@ alias lh='ls -lsh'
66
alias la='ls -lsa'
77
alias gam='git status | grep "modified" | cut -d: -f2 | xargs -n 1 git add'
88
alias serve="python -m $(python -c 'import sys; print("http.server" if sys.version_info[:2] > (2,7) else "SimpleHTTPServer")')"
9+
10+
11+
gen_mysqlalias()
12+
{
13+
input="$1"
14+
15+
while IFS='' read -r line
16+
do
17+
[ -z "$line" ] && continue
18+
container_port=$(echo "$line" | cut -d\; -f1)
19+
container_name=$(echo "$line" | cut -d\; -f2)
20+
container_datadir=$(echo "$line" | cut -d\; -f3)
21+
image_name=$(echo "$line" | cut -d\; -f4)
22+
23+
alias mysql_$container_name="mysql -u root -h 127.0.0.1 -P $container_port"
24+
done < "$input"
25+
}
26+
27+
exec_mysqls()
28+
{
29+
input="$1"
30+
db=$2
31+
sqlfile=$3
32+
while IFS='' read -r line
33+
do
34+
[ -z "$line" ] && continue
35+
container_port=$(echo "$line" | cut -d\; -f1)
36+
container_name=$(echo "$line" | cut -d\; -f2)
37+
container_datadir=$(echo "$line" | cut -d\; -f3)
38+
image_name=$(echo "$line" | cut -d\; -f4)
39+
40+
41+
echo "* Executing $sqlfile on $container_name"
42+
cat $sqlfile | mysql -u root -h 127.0.0.1 -P $container_port
43+
done < "$input"
44+
}

build/configimg.conf

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
3306;mysql80;/var/lib/mysql8;mysql:8.0
2+
3307;mysql57;/var/lib/mysql57;mysql:5.7
3+
3308;mysql56;/var/lib/mysql56;mysql:5.6
4+
3309;mysql55;/var/lib/mysql55;mysql:5.5
5+
6+
4306;percona80;/var/lib/percona8;percona/percona-server:8.0
7+
4307;percona57;/var/lib/percona57;percona/percona-server:5.7
8+
4308;percona56;/var/lib/percona56;percona/percona-server:5.6
9+
10+
5306;mariadb104;/var/lib/mariadb104;mariadb:10.4
11+
5307;mariadb103;/var/lib/mariadb103;mariadb:10.3
12+
5308;mariadb102;/var/lib/mariadb102;mariadb:10.2
13+
5309;mariadb101;/var/lib/mariadb101;mariadb:10.1
14+
5310;mariadb100;/var/lib/mariadb100;mariadb:10.0
15+
5311;mariadb55;/var/lib/mariadb55;mariadb:5.5

build/createMassDockerImages.sh

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
#!/bin/sh
2+
3+
input="./build/configimg.conf"
4+
default_password="secret"
5+
#rm -f $input
6+
[ -f "$input" ] || echo "
7+
3306;mysql80;/var/lib/mysql8;mysql:8.0
8+
3307;mysql57;/var/lib/mysql57;mysql:5.7
9+
3308;mysql56;/var/lib/mysql56;mysql:5.6
10+
3309;mysql55;/var/lib/mysql55;mysql:5.5
11+
12+
4306;percona80;/var/lib/percona8;percona/percona-server:8.0
13+
4307;percona57;/var/lib/percona57;percona/percona-server:5.7
14+
4308;percona56;/var/lib/percona56;percona/percona-server:5.6
15+
16+
5306;mariadb104;/var/lib/mariadb104;mariadb:10.4
17+
5307;mariadb103;/var/lib/mariadb103;mariadb:10.3
18+
5308;mariadb102;/var/lib/mariadb102;mariadb:10.2
19+
5309;mariadb101;/var/lib/mariadb101;mariadb:10.1
20+
5310;mariadb100;/var/lib/mariadb100;mariadb:10.0
21+
5311;mariadb55;/var/lib/mariadb55;mariadb:5.5
22+
" > $input
23+
24+
25+
#
26+
27+
echo '* PRUNING DOCKER SYSTEM DATA'
28+
29+
#[ "$1" = "clean" ] || docker system prune -a -f
30+
# download all images
31+
while IFS='' read -r line
32+
do
33+
[ -z "$line" ] && continue
34+
container_port=$(echo "$line" | cut -d\; -f1)
35+
container_name=$(echo "$line" | cut -d\; -f2)
36+
container_datadir=$(echo "$line" | cut -d\; -f3)
37+
image_name=$(echo "$line" | cut -d\; -f4)
38+
39+
if [ -n "$1" -a "$1" != "clean" ]; then
40+
echo $line | grep -q "$1"
41+
[ $? -eq 0 ] || continue
42+
fi
43+
echo "* PULLING DOCKER IMAGE: $image_name"
44+
docker pull $image_name
45+
46+
echo "* REMOVING CONTAINER : $image_name"
47+
docker ps -a | grep -qE "$container_name^"
48+
docker rm -f $container_name
49+
50+
echo "* DELETING DATADIR: $container_datadir"
51+
sudo rm -rf $container_datadir
52+
[ "$1" = "clean" ] && continue
53+
54+
echo "* CREATING DATADIR: $container_datadir"
55+
sudo mkdir $container_datadir
56+
#sudo chown -R mysql.mysql $container_datadir
57+
sudo chmod 777 $container_datadir
58+
echo "* STARTING CONTAINER: $container_name($container_port/TCP) BASED ON $image_name -> $container_datadir"
59+
set -x
60+
docker run -d -e MYSQL_ROOT_PASSWORD=$default_password -p $container_port:3306 --name $container_name -v $container_datadir:/var/lib/mysql $image_name
61+
set +x
62+
sleep 6s
63+
echo "* LOGS: $container_name"
64+
docker logs $container_name
65+
echo "* LISTING PORTS: $container_name BASED ON $image_name"
66+
docker port $container_name
67+
68+
echo "* LISTING VOLUMES: $container_name BASED ON $image_name"
69+
docker inspect -f "{{ .Mounts }}" $container_name
70+
71+
echo "* LISTING $container_datadir"
72+
ls -ls $container_datadir
73+
#break
74+
docker logs $container_name | grep -q "ready for connections"
75+
alias mysql_$container_name="mysql -u root -P $container_port"
76+
done < "$input"
77+
78+
[ "$1" = "clean" ] || docker system prune -a -f
79+
80+
echo "* LISTING DOCKER IMAGES"
81+
docker images
82+
83+
echo "* LISTING DOCKER CONTAINER"
84+
docker ps
85+

build/fetchSampleDatabases.sh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,11 @@ case "$1" in
2121
"fetch")
2222
[ -z "$2" ] && exit 1
2323
mkdir -p ./contents
24-
wget -O contents/$(basename $(getVal "DB_$2_URL")) $(getVal "DB_$2_URL")
24+
[ -f "contents/$(basename $(getVal "DB_$2_URL"))" ] || wget -O contents/$(basename $(getVal "DB_$2_URL")) $(getVal "DB_$2_URL")
25+
[ $? -eq 0 ] && (cd contents;unzip $(basename $(getVal "DB_$2_URL")))
26+
;;
27+
"clean")
28+
rm -rf contents
2529
;;
2630
"load")
2731

0 commit comments

Comments
 (0)