Skip to content
This repository was archived by the owner on Jun 30, 2021. It is now read-only.

Commit 55b321c

Browse files
author
Leo Gallucci
committed
docker-compose issues fixes #361
1 parent ea18ce8 commit 55b321c

File tree

5 files changed

+70
-32
lines changed

5 files changed

+70
-32
lines changed

Makefile

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,11 @@ default: compose
3131
get: .menv
3232

3333
.menv:
34-
wget -nv "${GIT_BASE_URL}/${GIT_TAG_OR_BRANCH}/.menv"
34+
@if ! wget -nv "${GIT_BASE_URL}/${GIT_TAG_OR_BRANCH}/.menv"; then \
35+
${ECHOERR} ".menv file is still not on master branch" ; \
36+
wget -nv "${GIT_BASE_URL}/${GIT_TAG_OR_BRANCH}/.env" ; \
37+
mv .env .menv ; \
38+
fi
3539

3640
include .menv
3741

@@ -159,7 +163,7 @@ cleanup:
159163
@echo -n "Stopping and removing ${COMPOSE_PROJ_NAME}..."
160164
@docker-compose -f ${COMPOSE_FILE} -p ${COMPOSE_PROJ_NAME} down \
161165
--remove-orphans >./mk/compose_down.log 2>&1
162-
@echo "Done!"
166+
@echo "Done with Stopping and removing ${COMPOSE_PROJ_NAME} !"
163167

164168
# like cleanup but verbose plus graceful stop-video
165169
down:
@@ -172,7 +176,7 @@ down:
172176

173177
stop_videos:
174178
@for node in $(shell seq -s ' ' 1 ${tot_nodes}); do \
175-
docker exec "${proj}_${browser}_$$node" stop-video \
179+
docker-compose -f ${COMPOSE_FILE} -p ${proj} exec --index=$$node ${browser} stop-video \
176180
>./mk/stop_video_${browser}_$$node.log || true ; \
177181
done
178182

@@ -199,15 +203,7 @@ move: check_wmctrl
199203
./mk/move.sh
200204

201205
gather_videos:
202-
mkdir -p ./videos
203-
@for node in $(shell seq -s ' ' 1 ${tot_nodes}); do \
204-
docker exec "${proj}_${browser}_$$node" stop-video \
205-
>./mk/stop_video_${browser}_$$node.log || true ; \
206-
docker cp "${proj}_${browser}_$$node:/videos/." videos ; \
207-
docker exec "${proj}_${browser}_$$node" rm_videos || true ; \
208-
docker exec "${proj}_${browser}_$$node" start-video ; \
209-
done
210-
ls -la ./videos/
206+
./mk/gather_videos.sh
211207

212208
gather_videos_chrome:
213209
@$(MAKE) -s gather_videos browser=chrome tot_nodes=${chrome}

mk/gather_videos.sh

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
#!/usr/bin/env bash
2+
3+
# set -e: exit asap if a command exits with a non-zero status
4+
# set -u: treat unset variables as an error and exit immediately
5+
set -e
6+
set -u
7+
8+
echoerr() { printf "%s\n" "$*" >&2; }
9+
10+
# print error and exit
11+
die () {
12+
echoerr "ERROR: $1"
13+
# if $2 is defined AND NOT EMPTY, use $2; otherwise, set to "3"
14+
errnum=${2-3}
15+
exit $errnum
16+
}
17+
18+
[ -z "${COMPOSE_FILE}" ] && die "Need env var COMPOSE_FILE"
19+
[ -z "${proj}" ] && die "Need env var proj"
20+
[ -z "${browser}" ] && die "Need env var browser"
21+
[ -z "${node}" ] && die "Need env var node"
22+
[ -z "${tot_nodes}" ] && die "Need env var tot_nodes"
23+
24+
# Gather actual container name as hard-coding it is unreliable
25+
CONT_NAME=$(docker ps --filter status=running --filter "name=${proj}_${browser}_${node}" --format "{{.Names}}" -q)
26+
27+
# set -x: print each command right before it is executed
28+
set -x
29+
30+
mkdir -p ./videos
31+
32+
for node in $(seq -s ' ' 1 ${tot_nodes}); do
33+
docker-compose -f ${COMPOSE_FILE} -p ${proj} exec --index=${node} ${browser} stop-video \
34+
>./mk/stop_video_${browser}_${node}.log || true
35+
docker cp "${CONT_NAME}:/videos/." videos
36+
docker-compose -f ${COMPOSE_FILE} -p ${proj} exec --index=${node} ${browser} rm_videos || true
37+
docker-compose -f ${COMPOSE_FILE} -p ${proj} exec --index=${node} ${browser} start-video
38+
done
39+
40+
ls -la ./videos/

mk/see.sh

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,20 +20,20 @@ die () {
2020
[ -z "${browser}" ] && die "Need env var browser"
2121
[ -z "${node}" ] && die "Need env var node"
2222

23-
# CONT_ID=$(docker inspect --format="{{.Id}}" ${COMPOSE_PROJ_NAME}_hub_1)
24-
CONT_ID="${COMPOSE_PROJ_NAME}_${browser}_${node}"
25-
IP=`docker inspect -f='{{.NetworkSettings.IPAddress}}' ${CONT_ID}`
23+
# Gather actual container name as hard-coding it is unreliable
24+
CONT_NAME=$(docker ps --filter status=running --filter "name=${COMPOSE_PROJ_NAME}_${browser}_${node}" --format "{{.Names}}" -q)
25+
IP=`docker inspect -f='{{.NetworkSettings.IPAddress}}' ${CONT_NAME}`
2626

2727
if [ "${IP}" == "" ]; then
28-
IP=`docker inspect -f='{{json .NetworkSettings.Networks.grid_default}}' ${CONT_ID} | jq .IPAddress -r`
28+
IP=`docker inspect -f='{{json .NetworkSettings.Networks.grid_default}}' ${CONT_NAME} | jq .IPAddress -r`
2929
fi
3030

3131
if [ "${IP}" == "" ]; then
32-
die "Failed to grab IP for container ${CONT_ID}"
32+
die "Failed to grab IP for container ${CONT_NAME}"
3333
fi
3434

3535
# We need a fixed port range to expose VNC
36-
PORT=$(docker exec ${CONT_ID} cat VNC_PORT)
36+
PORT=$(docker exec ${CONT_NAME} cat VNC_PORT)
3737
# if [ "$(uname)" = 'Darwin' ]; then
3838
# # due to a bug in Docker for Mac beta (1.12)
3939
# # https://forums.docker.com/t/docker-for-mac-beta-not-forwarding-ports/8658/6

mk/wait.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ echo "Waiting for the Hub and all Nodes to be ready..."
2323
if ! docker-compose -f ${COMPOSE_FILE} -p ${COMPOSE_PROJ_NAME} \
2424
exec --index 1 hub wait_all_done ${WAIT_ALL_DONE} \
2525
>./mk/hub_1.log; then
26-
docker logs ${COMPOSE_PROJ_NAME}_hub_1
26+
docker-compose -f ${COMPOSE_FILE} -p ${COMPOSE_PROJ_NAME} logs hub
2727
docker-compose -f ${COMPOSE_FILE} -p ${COMPOSE_PROJ_NAME} \
2828
exec --index 1 hub errors || true
2929
cat ./mk/hub_1.log 1>&2
@@ -35,7 +35,7 @@ for i in $(seq 1 ${chrome}); do
3535
if ! docker-compose -f ${COMPOSE_FILE} -p ${COMPOSE_PROJ_NAME} \
3636
exec --index ${i} chrome wait_all_done ${WAIT_ALL_DONE} \
3737
>./mk/chrome_${i}.log; then
38-
docker logs ${COMPOSE_PROJ_NAME}_chrome_${i}
38+
docker-compose -f ${COMPOSE_FILE} -p ${COMPOSE_PROJ_NAME} logs chrome
3939
docker-compose -f ${COMPOSE_FILE} -p ${COMPOSE_PROJ_NAME} \
4040
exec --index ${i} chrome errors || true
4141
cat ./mk/chrome_${i}.log 1>&2
@@ -48,7 +48,7 @@ for i in $(seq 1 ${firefox}); do
4848
if ! docker-compose -f ${COMPOSE_FILE} -p ${COMPOSE_PROJ_NAME} \
4949
exec --index ${i} firefox wait_all_done ${WAIT_ALL_DONE} \
5050
>./mk/firefox_${i}.log; then
51-
docker logs ${COMPOSE_PROJ_NAME}_firefox_${i}
51+
docker-compose -f ${COMPOSE_FILE} -p ${COMPOSE_PROJ_NAME} logs firefox
5252
docker-compose -f ${COMPOSE_FILE} -p ${COMPOSE_PROJ_NAME} \
5353
exec --index ${i} firefox errors || true
5454
cat ./mk/firefox_${i}.log 1>&2

test/compose-test.sh

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -38,20 +38,20 @@ docker-compose -f ${COMPOSE_FILE} -p grid scale mock=1 hub=1 chrome=${NUM_NODES}
3838
sleep ${SLEEP_TIME}
3939

4040
# Wait then show errors, if any
41-
if ! docker exec grid_hub_1 wait_all_done ${WAIT_ALL_DONE}; then
42-
docker exec grid_hub_1 errors || docker ps -a
41+
if ! docker-compose -f ${COMPOSE_FILE} -p grid exec --index=1 hub wait_all_done ${WAIT_ALL_DONE}; then
42+
docker-compose -f ${COMPOSE_FILE} -p grid exec --index=1 hub errors || docker ps -a
4343
docker-compose -f ${COMPOSE_FILE} -p grid logs hub
4444
die "$0 Failed to start the Hub"
4545
fi
4646

4747
for i in $(seq 1 ${NUM_NODES}); do
4848
if ! docker-compose -f ${COMPOSE_FILE} -p grid exec --index ${i} chrome wait_all_done ${WAIT_ALL_DONE}; then
49-
docker logs grid_chrome_${i}
49+
docker-compose -f ${COMPOSE_FILE} -p grid logs chrome
5050
docker-compose -f ${COMPOSE_FILE} -p grid exec --index ${i} chrome errors || true
5151
die "Failed to start Node chrome ${i}"
5252
fi
5353
if ! docker-compose -f ${COMPOSE_FILE} -p grid exec --index ${i} firefox wait_all_done ${WAIT_ALL_DONE}; then
54-
docker logs grid_firefox_${i}
54+
docker-compose -f ${COMPOSE_FILE} -p grid logs firefox
5555
docker-compose -f ${COMPOSE_FILE} -p grid exec --index ${i} firefox errors || true
5656
die "Failed to start Node firefox ${i}"
5757
fi
@@ -71,8 +71,8 @@ for i in $(seq 1 ${PARAL_TESTS}); do
7171
# in dockerpty/io.py", line 42, in set_blocking
7272
# ValueError: file descriptor cannot be a negative integer (-1)
7373
# docker-compose -f ${COMPOSE_FILE} -p grid exec --index 1 hub run_test &
74-
docker exec -t grid_hub_1 selenium_test chrome &
75-
docker exec -t grid_hub_1 selenium_test firefox &
74+
docker-compose -f ${COMPOSE_FILE} -p grid exec --index=1 hub selenium_test chrome &
75+
docker-compose -f ${COMPOSE_FILE} -p grid exec --index=1 hub selenium_test firefox &
7676
done
7777

7878
# sleep a moment to let the UI tests start
@@ -88,11 +88,13 @@ for job in `jobs -p`; do
8888
done
8989

9090
# Show logs also
91-
docker logs grid_hub_1
92-
for i in $(seq 1 ${NUM_NODES}); do
93-
docker logs grid_chrome_${i}
94-
docker logs grid_firefox_${i}
95-
done
91+
docker-compose -f ${COMPOSE_FILE} -p grid logs hub
92+
docker-compose -f ${COMPOSE_FILE} -p grid logs chrome
93+
docker-compose -f ${COMPOSE_FILE} -p grid logs firefox
94+
# for i in $(seq 1 ${NUM_NODES}); do
95+
# docker logs grid_chrome_${i}
96+
# docker logs grid_firefox_${i}
97+
# done
9698

9799
# Cleanup
98100
docker-compose -f ${COMPOSE_FILE} -p grid down

0 commit comments

Comments
 (0)