| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- setup() {
- IMAGE_NAME="$NAME:$VERSION"
- }
- # function relative to the current container / image
- build_image() {
- #disable outputs
- docker build -t $IMAGE_NAME $BATS_TEST_DIRNAME/../image &> /dev/null
- }
- run_image() {
- CONTAINER_ID=$(docker run $@ -d $IMAGE_NAME)
- CONTAINER_IP=$(get_container_ip_by_cid $CONTAINER_ID)
- }
- start_container() {
- start_containers_by_cid $CONTAINER_ID
- }
- stop_container() {
- stop_containers_by_cid $CONTAINER_ID
- }
- remove_container() {
- remove_containers_by_cid $CONTAINER_ID
- }
- clear_container() {
- stop_containers_by_cid $CONTAINER_ID
- remove_containers_by_cid $CONTAINER_ID
- }
- is_service_running() {
- is_service_running_by_cid $CONTAINER_ID $1
- }
- is_file_exists() {
- is_file_exists_by_cid $CONTAINER_ID $1
- }
- wait_service() {
- wait_service_by_cid $CONTAINER_ID $@
- }
- # generic functions
- get_container_ip_by_cid() {
- local IP=$(docker inspect -f "{{ .NetworkSettings.IPAddress }}" $1)
- echo "$IP"
- }
- start_containers_by_cid() {
- for cid in "$@"
- do
- #disable outputs
- docker start $cid &> /dev/null
- done
- }
- stop_containers_by_cid() {
- for cid in "$@"
- do
- #disable outputs
- docker stop $cid &> /dev/null
- done
- }
- remove_containers_by_cid() {
- for cid in "$@"
- do
- #disable outputs
- docker rm $cid &> /dev/null
- done
- }
- clear_containers_by_cid() {
- stop_containers_by_cid $@
- remove_containers_by_cid $@
- }
- is_service_running_by_cid() {
- docker exec $1 ps cax | grep $2 > /dev/null
- }
- is_file_exists_by_cid() {
- docker exec $1 cat "/container/run/state/startup-done" > /dev/null 2>&1
- }
- wait_service_by_cid() {
- cid=$1
- # first wait image init end
- while ! is_file_exists_by_cid $cid /etc/my_init_startup_files_completed
- do
- sleep 0.5
- done
- for service in "${@:2}"
- do
- # wait service
- while ! is_service_running_by_cid $cid $service
- do
- sleep 0.5
- done
- done
- }
|