Tools for test suies based on Docker
This commit is contained in:
parent
e2f5c6bdf5
commit
f7920522ac
4 changed files with 141 additions and 1 deletions
36
build/bashrc
36
build/bashrc
|
@ -6,3 +6,39 @@ alias lh='ls -lsh'
|
|||
alias la='ls -lsa'
|
||||
alias gam='git status | grep "modified" | cut -d: -f2 | xargs -n 1 git add'
|
||||
alias serve="python -m $(python -c 'import sys; print("http.server" if sys.version_info[:2] > (2,7) else "SimpleHTTPServer")')"
|
||||
|
||||
|
||||
gen_mysqlalias()
|
||||
{
|
||||
input="$1"
|
||||
|
||||
while IFS='' read -r line
|
||||
do
|
||||
[ -z "$line" ] && continue
|
||||
container_port=$(echo "$line" | cut -d\; -f1)
|
||||
container_name=$(echo "$line" | cut -d\; -f2)
|
||||
container_datadir=$(echo "$line" | cut -d\; -f3)
|
||||
image_name=$(echo "$line" | cut -d\; -f4)
|
||||
|
||||
alias mysql_$container_name="mysql -u root -h 127.0.0.1 -P $container_port"
|
||||
done < "$input"
|
||||
}
|
||||
|
||||
exec_mysqls()
|
||||
{
|
||||
input="$1"
|
||||
db=$2
|
||||
sqlfile=$3
|
||||
while IFS='' read -r line
|
||||
do
|
||||
[ -z "$line" ] && continue
|
||||
container_port=$(echo "$line" | cut -d\; -f1)
|
||||
container_name=$(echo "$line" | cut -d\; -f2)
|
||||
container_datadir=$(echo "$line" | cut -d\; -f3)
|
||||
image_name=$(echo "$line" | cut -d\; -f4)
|
||||
|
||||
|
||||
echo "* Executing $sqlfile on $container_name"
|
||||
cat $sqlfile | mysql -u root -h 127.0.0.1 -P $container_port
|
||||
done < "$input"
|
||||
}
|
15
build/configimg.conf
Normal file
15
build/configimg.conf
Normal file
|
@ -0,0 +1,15 @@
|
|||
3306;mysql80;/var/lib/mysql8;mysql:8.0
|
||||
3307;mysql57;/var/lib/mysql57;mysql:5.7
|
||||
3308;mysql56;/var/lib/mysql56;mysql:5.6
|
||||
3309;mysql55;/var/lib/mysql55;mysql:5.5
|
||||
|
||||
4306;percona80;/var/lib/percona8;percona/percona-server:8.0
|
||||
4307;percona57;/var/lib/percona57;percona/percona-server:5.7
|
||||
4308;percona56;/var/lib/percona56;percona/percona-server:5.6
|
||||
|
||||
5306;mariadb104;/var/lib/mariadb104;mariadb:10.4
|
||||
5307;mariadb103;/var/lib/mariadb103;mariadb:10.3
|
||||
5308;mariadb102;/var/lib/mariadb102;mariadb:10.2
|
||||
5309;mariadb101;/var/lib/mariadb101;mariadb:10.1
|
||||
5310;mariadb100;/var/lib/mariadb100;mariadb:10.0
|
||||
5311;mariadb55;/var/lib/mariadb55;mariadb:5.5
|
85
build/createMassDockerImages.sh
Normal file
85
build/createMassDockerImages.sh
Normal file
|
@ -0,0 +1,85 @@
|
|||
#!/bin/sh
|
||||
|
||||
input="./build/configimg.conf"
|
||||
default_password="secret"
|
||||
#rm -f $input
|
||||
[ -f "$input" ] || echo "
|
||||
3306;mysql80;/var/lib/mysql8;mysql:8.0
|
||||
3307;mysql57;/var/lib/mysql57;mysql:5.7
|
||||
3308;mysql56;/var/lib/mysql56;mysql:5.6
|
||||
3309;mysql55;/var/lib/mysql55;mysql:5.5
|
||||
|
||||
4306;percona80;/var/lib/percona8;percona/percona-server:8.0
|
||||
4307;percona57;/var/lib/percona57;percona/percona-server:5.7
|
||||
4308;percona56;/var/lib/percona56;percona/percona-server:5.6
|
||||
|
||||
5306;mariadb104;/var/lib/mariadb104;mariadb:10.4
|
||||
5307;mariadb103;/var/lib/mariadb103;mariadb:10.3
|
||||
5308;mariadb102;/var/lib/mariadb102;mariadb:10.2
|
||||
5309;mariadb101;/var/lib/mariadb101;mariadb:10.1
|
||||
5310;mariadb100;/var/lib/mariadb100;mariadb:10.0
|
||||
5311;mariadb55;/var/lib/mariadb55;mariadb:5.5
|
||||
" > $input
|
||||
|
||||
|
||||
#
|
||||
|
||||
echo '* PRUNING DOCKER SYSTEM DATA'
|
||||
|
||||
#[ "$1" = "clean" ] || docker system prune -a -f
|
||||
# download all images
|
||||
while IFS='' read -r line
|
||||
do
|
||||
[ -z "$line" ] && continue
|
||||
container_port=$(echo "$line" | cut -d\; -f1)
|
||||
container_name=$(echo "$line" | cut -d\; -f2)
|
||||
container_datadir=$(echo "$line" | cut -d\; -f3)
|
||||
image_name=$(echo "$line" | cut -d\; -f4)
|
||||
|
||||
if [ -n "$1" -a "$1" != "clean" ]; then
|
||||
echo $line | grep -q "$1"
|
||||
[ $? -eq 0 ] || continue
|
||||
fi
|
||||
echo "* PULLING DOCKER IMAGE: $image_name"
|
||||
docker pull $image_name
|
||||
|
||||
echo "* REMOVING CONTAINER : $image_name"
|
||||
docker ps -a | grep -qE "$container_name^"
|
||||
docker rm -f $container_name
|
||||
|
||||
echo "* DELETING DATADIR: $container_datadir"
|
||||
sudo rm -rf $container_datadir
|
||||
[ "$1" = "clean" ] && continue
|
||||
|
||||
echo "* CREATING DATADIR: $container_datadir"
|
||||
sudo mkdir $container_datadir
|
||||
#sudo chown -R mysql.mysql $container_datadir
|
||||
sudo chmod 777 $container_datadir
|
||||
echo "* STARTING CONTAINER: $container_name($container_port/TCP) BASED ON $image_name -> $container_datadir"
|
||||
set -x
|
||||
docker run -d -e MYSQL_ROOT_PASSWORD=$default_password -p $container_port:3306 --name $container_name -v $container_datadir:/var/lib/mysql $image_name
|
||||
set +x
|
||||
sleep 6s
|
||||
echo "* LOGS: $container_name"
|
||||
docker logs $container_name
|
||||
echo "* LISTING PORTS: $container_name BASED ON $image_name"
|
||||
docker port $container_name
|
||||
|
||||
echo "* LISTING VOLUMES: $container_name BASED ON $image_name"
|
||||
docker inspect -f "{{ .Mounts }}" $container_name
|
||||
|
||||
echo "* LISTING $container_datadir"
|
||||
ls -ls $container_datadir
|
||||
#break
|
||||
docker logs $container_name | grep -q "ready for connections"
|
||||
alias mysql_$container_name="mysql -u root -P $container_port"
|
||||
done < "$input"
|
||||
|
||||
[ "$1" = "clean" ] || docker system prune -a -f
|
||||
|
||||
echo "* LISTING DOCKER IMAGES"
|
||||
docker images
|
||||
|
||||
echo "* LISTING DOCKER CONTAINER"
|
||||
docker ps
|
||||
|
|
@ -21,7 +21,11 @@ case "$1" in
|
|||
"fetch")
|
||||
[ -z "$2" ] && exit 1
|
||||
mkdir -p ./contents
|
||||
wget -O contents/$(basename $(getVal "DB_$2_URL")) $(getVal "DB_$2_URL")
|
||||
[ -f "contents/$(basename $(getVal "DB_$2_URL"))" ] || wget -O contents/$(basename $(getVal "DB_$2_URL")) $(getVal "DB_$2_URL")
|
||||
[ $? -eq 0 ] && (cd contents;unzip $(basename $(getVal "DB_$2_URL")))
|
||||
;;
|
||||
"clean")
|
||||
rm -rf contents
|
||||
;;
|
||||
"load")
|
||||
|
||||
|
|
Loading…
Reference in a new issue