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

Commit d8d4622

Browse files
committed
Upgrade ubuntu:wily-20151019, FF 42.0, Chrome 46.0.2490.80
1 parent 5b2f8e9 commit d8d4622

File tree

5 files changed

+74
-50
lines changed

5 files changed

+74
-50
lines changed

CHANGELOG.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,25 @@ How to get container versions
1111
google-chrome-stable --version && echo "\n"
1212
sc | grep build && BrowserStackLocal -version
1313

14+
## 2.48.2b (2015-10-TBD)
15+
+ Upgrade to Chrome to 46.0.2490.80
16+
+ Upgrade to Firefox to 42.0 and fix mozilla.org => firefox ftp links
17+
+ Upgrade to ubuntu:wily-20151019
18+
+ Image tag details:
19+
+ Selenium: v2.48.2 (41bccdd)
20+
+ Chrome stable: 46.0.2490.80
21+
+ Firefox stable: 42.0
22+
+ Chromedriver: 2.20.353124 (035346203162d32c80f1dce587c8154a1efa0c3b)
23+
+ Java: 1.8.0_66-internal OpenJDK 64-Bit 1.8.0_66-b01
24+
+ Timezone: Europe/Berlin
25+
+ Built with: Docker version 1.9.0, build 76d6bc9
26+
+ FROM ubuntu:wily-20151019
27+
+ Python: 2.7.10
28+
+ Sauce Connect 4.3.11, build 1757 2b421bb
29+
+ BrowserStack Local version 4
30+
+ Image ID: TBD
31+
+ Digest: sha256:TBD
32+
1433
## 2.48.2a (2015-10-20)
1534
+ Upgrade to Selenium 2.48.2
1635
+ Upgrade to chromedriver 2.20

Dockerfile

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#== Ubuntu wily is 15.10.x, i.e. FROM ubuntu:15.10
55
# search for more at https://registry.hub.docker.com/_/ubuntu/tags/manage/
66
# next: wily-TBD
7-
FROM ubuntu:wily-20151009
7+
FROM ubuntu:wily-20151019
88
ENV UBUNTU_FLAVOR wily
99

1010
#== Ubuntu vivid is 15.04.x, i.e. FROM ubuntu:15.04
@@ -357,7 +357,9 @@ ENV SEL_HOME ${NORMAL_USER_HOME}/selenium
357357
# Mozilla Firefox install tools
358358
#===============================
359359
# Where to find latest version:
360-
# http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/latest/linux-x86_64/en-US/
360+
# https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/latest/linux-x86_64/en-US/
361+
# e.g. 42.0 instead of latest
362+
# https://ftp.mozilla.org/pub/firefox/releases/42.0/linux-x86_64/en-US/firefox-42.0.tar.bz2
361363
# FF_LANG can be either en-US // de // fr and so on
362364
# Regarding the pip packages, see released versions at:
363365
# https://github.com/mozilla/mozdownload/releases
@@ -368,13 +370,18 @@ ENV FF_LANG "en-US"
368370
RUN mkdir -p ${NORMAL_USER_HOME}/firefox-src \
369371
&& mkdir -p ${SEL_HOME} \
370372
&& pip install mozlog==2.10 \
371-
&& export MOZ_DOWN_SHA="7f2680cd75fbd3937630d896aefec3f8a061c10b" \
373+
&& export MOZ_DOWN_SHA="894e579b8de6a0ec05e98ccae8d4c2c730657c19" \
372374
&& pip install \
373-
"https://github.com/elgalu/mozdownload/zipball/${MOZ_DOWN_SHA}" \
375+
"https://github.com/mozilla/mozdownload/zipball/${MOZ_DOWN_SHA}" \
374376
&& pip install mozInstall==1.12 \
375377
&& echo ""
376378

377-
# Some forks:
379+
# elgalu fork (no longer working since s3 mozilla changes)
380+
# && export MOZ_DOWN_SHA="aaf77cdbe15e6283654883afcd41d2acaeea7a24" \
381+
# && pip install \
382+
# "https://github.com/elgalu/mozdownload/zipball/${MOZ_DOWN_SHA}" \
383+
384+
# more forks:
378385
# RUN export MOZ_INST_SHA="163e711efb751a80d03d9fb6e2ac0e011902c9df" \
379386
# && export MOZ_DOWN_SHA="028ae444426b6e7691138e88ac306c6f8e6dfd74" \
380387
# && pip install --upgrade requests==2.6.0 \
@@ -555,7 +562,7 @@ RUN cd /tmp \
555562
#---------------------#
556563
# Latest available firefox version
557564
# this also works: ENV FIREFOX_LATEST_VERSION latest
558-
ENV FIREFOX_VERSIONS7 "41.0.2"
565+
ENV FIREFOX_VERSIONS7 "42.0"
559566
RUN cd ${NORMAL_USER_HOME}/firefox-src \
560567
&& for FF_VER in $(echo ${FIREFOX_VERSIONS7} | tr "," "\n"); do \
561568
mozdownload --application=firefox \
@@ -622,7 +629,7 @@ RUN mkdir -p ${NORMAL_USER_HOME}/tmp && cd ${NORMAL_USER_HOME}/tmp \
622629
# TODO: Use Google fingerprint to verify downloads
623630
# http://www.google.de/linuxrepositories/
624631
# Also fix .deb file names with correct version
625-
RUN latest_chrome_version_trigger="latest" \
632+
RUN latest_chrome_version_trigger="46.0.2490.80" \
626633
&& mkdir -p ${NORMAL_USER_HOME}/chrome-deb \
627634
&& export CHROME_URL="https://dl.google.com/linux/direct" \
628635
&& wget --no-verbose -O \
@@ -942,9 +949,7 @@ RUN mkdir -p ${NORMAL_USER_HOME}/.vnc \
942949
COPY scm-source.json /
943950
# Ensure the file is up-to-date else you should update it by running
944951
# ./host-scripts/gen-scm-source.sh
945-
# on the host
946-
# RUN [ $(find ./ -mtime -1 -type f -name "scm-source.json" 2>/dev/null) ] \
947-
# || please_update_scm-source_json
952+
# on the host machine
948953

949954
#===================
950955
# CMD or ENTRYPOINT

README.md

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -51,12 +51,12 @@ Supervisor exposes an http server but is not enough to bind the ports via `docke
5151
### Screen size
5252
You can set a custom screen size at docker run time by providing `SCREEN_WIDTH` and `SCREEN_HEIGHT` environment variables:
5353

54-
docker pull elgalu/selenium:2.48.2a
54+
docker pull elgalu/selenium:2.48.2b
5555

5656
docker run -d --name=grid -p 4444:24444 -p 5920:25900 \
5757
-v /dev/shm:/dev/shm -e VNC_PASSWORD=hola \
5858
-e SCREEN_WIDTH=1920 -e SCREEN_HEIGHT=1480 \
59-
elgalu/selenium:2.48.2a
59+
elgalu/selenium:2.48.2b
6060

6161
docker exec grid wait_all_done 10s
6262

@@ -108,7 +108,7 @@ You need to pass the environment variable `-e NOVNC=true` in order to start the
108108

109109
docker run --rm --name=grid -p 4444:24444 -p 5920:25900 \
110110
-e NOVNC=true \
111-
elgalu/selenium:2.48.2a
111+
elgalu/selenium:2.48.2b
112112

113113
If the VNC password was randomly generated find out with
114114

@@ -121,7 +121,7 @@ If the VNC password was randomly generated find out with
121121
You can launch a grid only container via environment variables:
122122

123123
docker run --rm --name=hub -p 4444:24444 -p 5930:25900 \
124-
-e CHROME=false -e FIREFOX=false elgalu/selenium:2.48.2a
124+
-e CHROME=false -e FIREFOX=false elgalu/selenium:2.48.2b
125125

126126
The important part above is `-e CHROME=false -e FIREFOX=false` which tells the docker image not run run default chorme and firefox nodes turning the container into a grid-only one.
127127

@@ -135,7 +135,7 @@ You can lunch a node only container via environment variables:
135135
-e SELENIUM_HUB_PORT=4444 \
136136
-e SELENIUM_NODE_HOST=docker.host \
137137
-e GRID=false -e CHROME=true -e FIREFOX=true \
138-
elgalu/selenium:2.48.2a
138+
elgalu/selenium:2.48.2b
139139

140140
The important part above is `-e GRID=false` which tells the container to be a node-only node, this this case with 2 browsers `-e CHROME=true -e FIREFOX=true` but could be just 1.
141141

@@ -149,7 +149,7 @@ Start the grid with Chrome and Firefox
149149
-e SELENIUM_NODE_CH_PORT=25010 -e SELENIUM_NODE_FF_PORT=26010 \
150150
-e GRID=true -e CHROME=true -e FIREFOX=true \
151151
-e VNC_PASSWORD=hola -e VNC_PORT=5810 \
152-
-v /dev/shm:/dev/shm elgalu/selenium:2.48.2a
152+
-v /dev/shm:/dev/shm elgalu/selenium:2.48.2b
153153

154154
Add another docker container node with 2 more browsers:
155155

@@ -159,7 +159,7 @@ Add another docker container node with 2 more browsers:
159159
-e SELENIUM_NODE_CH_PORT=25020 -e SELENIUM_NODE_FF_PORT=26020 \
160160
-e GRID=false -e CHROME=true -e FIREFOX=true \
161161
-e VNC_PASSWORD=hola -e VNC_PORT=5820 \
162-
-v /dev/shm:/dev/shm elgalu/selenium:2.48.2a
162+
-v /dev/shm:/dev/shm elgalu/selenium:2.48.2b
163163

164164
And another
165165

@@ -169,7 +169,7 @@ And another
169169
-e SELENIUM_NODE_CH_PORT=25030 -e SELENIUM_NODE_FF_PORT=26030 \
170170
-e GRID=false -e CHROME=true -e FIREFOX=true \
171171
-e VNC_PASSWORD=hola -e VNC_PORT=5830 \
172-
-v /dev/shm:/dev/shm elgalu/selenium:2.48.2a
172+
-v /dev/shm:/dev/shm elgalu/selenium:2.48.2b
173173

174174
## Chrome crashed
175175

@@ -208,9 +208,9 @@ There are also additional steps you can take to ensure you're using the correct
208208

209209
You can simply verify that image id is indeed the correct one.
210210

211-
# e.g. full image id for tag 2.48.2a
212-
export IMGID=84caf3003c9471ec3103033cf2e9ccda8e30555e78f495e27187967312daf6d8
213-
if docker inspect -f='{{.Id}}' elgalu/selenium:2.48.2a |grep ${IMGID} &> /dev/null; then
211+
# e.g. full image id for tag 2.48.2b
212+
export IMGID=TBD
213+
if docker inspect -f='{{.Id}}' elgalu/selenium:2.48.2b |grep ${IMGID} &> /dev/null; then
214214
echo "Image ID tested ok"
215215
else
216216
echo "Image ID doesn't match"
@@ -220,8 +220,8 @@ You can simply verify that image id is indeed the correct one.
220220

221221
Given docker.io currently allows to push the same tag image twice this represent a security concern but since docker >= 1.6.2 is possible to fetch the digest sha256 instead of the tag so you can be sure you're using the exact same docker image every time:
222222

223-
# e.g. sha256 for tag 2.48.2a
224-
export SHA=38897dc92e131bce6608316560f89567e884eb9d7bc115e8c64aaffac60ed0b6
223+
# e.g. sha256 for tag 2.48.2b
224+
export SHA=TBD
225225
docker pull elgalu/selenium@sha256:${SHA}
226226

227227
You can find all digests sha256 and image ids per tag in the [CHANGELOG](./CHANGELOG.md) so as of now you just need to trust the sha256 in the CHANGELOG. Bullet proof is to fork this project and build the images yourself if security is a big concern.
@@ -246,7 +246,7 @@ Host machine, terminal 2:
246246
docker run --rm --name=ch -p=4444:24444 \
247247
-e SCREEN_WIDTH -e SCREEN_HEIGHT -e XE_DISP_NUM \
248248
-v /tmp/.X11-unix/X${XE_DISP_NUM}:/tmp/.X11-unix/X${XE_DISP_NUM} \
249-
elgalu/selenium:2.48.2a
249+
elgalu/selenium:2.48.2b
250250

251251
Now when you run your tests instead of connecting. If docker run fails try `xhost +`
252252

@@ -268,7 +268,7 @@ ANYPORT=0
268268
REMOTE_DOCKER_SRV=localhost
269269
CONTAINER=$(docker run -d -p=0.0.0.0:${ANYPORT}:22222 -p=0.0.0.0:${ANYPORT}:24444 \
270270
-p=0.0.0.0:${ANYPORT}:25900 -e SCREEN_HEIGHT=1110 -e VNC_PASSWORD=hola \
271-
-e SSH_AUTH_KEYS="$(cat ~/.ssh/id_rsa.pub)" elgalu/selenium:2.48.2a
271+
-e SSH_AUTH_KEYS="$(cat ~/.ssh/id_rsa.pub)" elgalu/selenium:2.48.2b
272272
273273
# -- Option 2.docker run- Running docker on remote docker server like in the cloud
274274
# Useful if the docker server is running in the cloud. Establish free local ports
@@ -278,7 +278,7 @@ ssh ${REMOTE_DOCKER_SRV} #get into the remote docker provider somehow
278278
# it acts as a jump host so my public key is already on that server
279279
CONTAINER=$(docker run -d -p=0.0.0.0:${ANYPORT}:22222 -e SCREEN_HEIGHT=1110 \
280280
-e VNC_PASSWORD=hola -e SSH_AUTH_KEYS="$(cat ~/.ssh/authorized_keys)" \
281-
elgalu/selenium:2.48.2a
281+
elgalu/selenium:2.48.2b
282282
283283
# -- Common: Wait for the container to start
284284
./host-scripts/wait-docker-selenium.sh grid 7s
@@ -349,7 +349,7 @@ If you git clone this repo locally, i.e. cd into where the Dockerfile is, you ca
349349
350350
If you prefer to download the final built image from docker you can pull it, personally I always prefer to build them manually except for the base images like Ubuntu 14.04.2:
351351
352-
docker pull elgalu/selenium:2.48.2a
352+
docker pull elgalu/selenium:2.48.2b
353353
354354
#### 2. Use this image
355355

READMELeo.md

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
## Build
22

3-
time (docker build -t="elgalu/selenium:2.48.2a" . ;echo $?;beep)
4-
docker run --rm -ti -m 4000M --cpu-quota=0 --name=grid -p=4444:24444 -p=5920:25900 -p=2222:22222 -e DISABLE_ROLLBACK=true -e VIDEO=false -e MEM_JAVA="1024m" -e SSH_AUTH_KEYS="$(cat ~/.ssh/id_rsa.pub)" -v $(pwd)/videos:/videos -v /dev/shm:/dev/shm elgalu/selenium:2.48.2a
3+
time (docker build -t="elgalu/selenium:2.48.2b" . ;echo $?;beep)
4+
docker run --rm -ti -m 4000M --cpu-quota=0 --name=grid -p=4444:24444 -p=5920:25900 -p=2222:22222 -e DISABLE_ROLLBACK=true -e VIDEO=false -e MEM_JAVA="1024m" -e SSH_AUTH_KEYS="$(cat ~/.ssh/id_rsa.pub)" -v $(pwd)/videos:/videos -v /dev/shm:/dev/shm elgalu/selenium:2.48.2b
55

66
Build a grid with extra nodes
77

8-
docker run --rm --name=grid -p 4444:24444 -p 5920:25900 -v /dev/shm:/dev/shm -e VNC_PASSWORD=hola elgalu/selenium:2.48.2a
8+
docker run --rm --name=grid -p 4444:24444 -p 5920:25900 -v /dev/shm:/dev/shm -e VNC_PASSWORD=hola elgalu/selenium:2.48.2b
99

10-
docker run --rm --name=node -e DISP_N=13 -e SSHD_PORT=22223 -e SUPERVISOR_HTTP_PORT=29003 -e VNC_PORT=25903 -e SELENIUM_NODE_CH_PORT=25330 -e SELENIUM_NODE_FF_PORT=25331 -e GRID=false -e CHROME=true -e FIREFOX=true --net=container:grid elgalu/selenium:2.48.2a
10+
docker run --rm --name=node -e DISP_N=13 -e SSHD_PORT=22223 -e SUPERVISOR_HTTP_PORT=29003 -e VNC_PORT=25903 -e SELENIUM_NODE_CH_PORT=25330 -e SELENIUM_NODE_FF_PORT=25331 -e GRID=false -e CHROME=true -e FIREFOX=true --net=container:grid elgalu/selenium:2.48.2b
1111

1212
See logs
1313

1414
docker exec -ti grid bash -c "ls -lah /var/log/sele/"
1515

1616
Testing in ssh [email protected]
1717

18-
docker run --rm --name=grid -p=4444:24444 -p=5920:25900 -p=2222:22222 -e SSH_AUTH_KEYS="$(cat ~/.ssh/authorized_keys)" -e VNC_PASSWORD=Hola3 os-registry.stups.zalan.do/tip/selenium:2.48.2a
18+
docker run --rm --name=grid -p=4444:24444 -p=5920:25900 -p=2222:22222 -e SSH_AUTH_KEYS="$(cat ~/.ssh/authorized_keys)" -e VNC_PASSWORD=Hola3 os-registry.stups.zalan.do/tip/selenium:2.48.2b
1919

2020
## Transfer used browser source artifacts to keep them in the cloud
2121

@@ -38,18 +38,18 @@ List firefox versions via docker exe
3838

3939
## To update image id and digest
4040

41-
docker inspect -f='{{.Id}}' elgalu/selenium:2.48.2a
41+
docker inspect -f='{{.Id}}' elgalu/selenium:2.48.2b
4242
docker images --digests
4343

4444
## Run with shared dir
4545

4646
docker run --rm --name=grid -p=127.0.0.1:4460:24444 -p=127.0.0.1:5910:25900 \
47-
-v /e2e/uploads:/e2e/uploads elgalu/selenium:2.48.2a
47+
-v /e2e/uploads:/e2e/uploads elgalu/selenium:2.48.2b
4848
docker run --rm --name=grid -p=4460:24444 -p=5910:25900 \
49-
-v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):$(which docker) elgalu/selenium:2.48.2a
49+
-v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):$(which docker) elgalu/selenium:2.48.2b
5050

5151

52-
docker run --rm --name=ff -p=127.0.0.1:4461:24444 -p=127.0.0.1:5911:25900 -v /e2e/uploads:/e2e/uploads elgalu/selenium:2.48.2a
52+
docker run --rm --name=ff -p=127.0.0.1:4461:24444 -p=127.0.0.1:5911:25900 -v /e2e/uploads:/e2e/uploads elgalu/selenium:2.48.2b
5353

5454
## Run without shared dir and bind ports to all network interfaces
5555

@@ -72,11 +72,11 @@ List firefox versions via docker exe
7272
## Run without dir and bind to all interfaces
7373
Note anything after the image will be taken as arguments for the cmd/entrypoint
7474

75-
docker run --rm --name=grid -p=0.0.0.0:8813:8484 -p=0.0.0.0:2222:2222 -p=0.0.0.0:4470:24444 -p=0.0.0.0:5920:25900 -e SCREEN_WIDTH=1800 -e SCREEN_HEIGHT=1110 -e VNC_PASSWORD=hola -e SSH_AUTH_KEYS="$(cat ~/.ssh/id_rsa.pub)" elgalu/selenium:2.48.2a
75+
docker run --rm --name=grid -p=0.0.0.0:8813:8484 -p=0.0.0.0:2222:2222 -p=0.0.0.0:4470:24444 -p=0.0.0.0:5920:25900 -e SCREEN_WIDTH=1800 -e SCREEN_HEIGHT=1110 -e VNC_PASSWORD=hola -e SSH_AUTH_KEYS="$(cat ~/.ssh/id_rsa.pub)" elgalu/selenium:2.48.2b
7676

77-
docker run --rm --name=grid -p=4470:24444 -p=5920:25900 -e VNC_PASSWORD=hola elgalu/selenium:2.48.2a
78-
docker run --rm --name=grid -p=4470:24444 -p=5920:25900 -e VNC_PASSWORD=hola docker.io/elgalu/selenium:2.48.2a
79-
docker run --rm --name=grid -p=0.0.0.0:4470:24444 -p=0.0.0.0:5920:25900 --add-host myserver.dev:172.17.42.1 elgalu/selenium:2.48.2a
77+
docker run --rm --name=grid -p=4470:24444 -p=5920:25900 -e VNC_PASSWORD=hola elgalu/selenium:2.48.2b
78+
docker run --rm --name=grid -p=4470:24444 -p=5920:25900 -e VNC_PASSWORD=hola docker.io/elgalu/selenium:2.48.2b
79+
docker run --rm --name=grid -p=0.0.0.0:4470:24444 -p=0.0.0.0:5920:25900 --add-host myserver.dev:172.17.42.1 elgalu/selenium:2.48.2b
8080

8181
However adding a custom host IP to server-selenium.local (e.g. bsele ssh config) is more work:
8282

@@ -85,32 +85,32 @@ However adding a custom host IP to server-selenium.local (e.g. bsele ssh config)
8585

8686
vncv localhost:5920 -Scaling=60% &
8787

88-
docker run --rm --name=ff -p=0.0.0.0:4471:24444 -p=0.0.0.0:5921:25900 elgalu/selenium:2.48.2a
88+
docker run --rm --name=ff -p=0.0.0.0:4471:24444 -p=0.0.0.0:5921:25900 elgalu/selenium:2.48.2b
8989

9090
Automatic builds not working for me right now, maybe there is an issue with docker registry v1 vs v2
9191
https://registry.hub.docker.com/u/elgalu/docker-selenium/builds_history/31621/
9292

9393
## Push version
9494

9595
docker login
96-
docker push docker.io/elgalu/selenium:2.48.2a ;echo $?;beep
97-
docker tag elgalu/selenium:2.48.2a elgalu/selenium:latest
96+
docker push docker.io/elgalu/selenium:2.48.2b ;echo $?;beep
97+
docker tag elgalu/selenium:2.48.2b elgalu/selenium:latest
9898
docker push docker.io/elgalu/selenium:latest
9999

100100
Not working maybe because it has automated builds enabled but then it fails in the cloud but works locally
101101
https://registry.hub.docker.com/u/elgalu/selenium/tags/manage/
102102

103-
docker push elgalu/selenium:2.48.2a
104-
docker push elgalu/docker-selenium:2.48.2a
105-
docker push docker.io/elgalu/docker-selenium:2.48.2a
103+
docker push elgalu/selenium:2.48.2b
104+
docker push elgalu/docker-selenium:2.48.2b
105+
docker push docker.io/elgalu/docker-selenium:2.48.2b
106106

107107
## Pulling
108108

109-
docker pull registry.hub.docker.com/elgalu/selenium:2.48.2a
109+
docker pull registry.hub.docker.com/elgalu/selenium:2.48.2b
110110

111111
## Pull
112112

113-
docker run -d --name=max -p=0.0.0.0:4411:24444 -p=0.0.0.0:5911:25900 elgalu/selenium:2.48.2a
113+
docker run -d --name=max -p=0.0.0.0:4411:24444 -p=0.0.0.0:5911:25900 elgalu/selenium:2.48.2b
114114

115115
How to connect through vnc (need a vnc client)
116116

docs/videos.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ Step by step
33

44
1) Pull image
55

6-
docker pull elgalu/selenium:2.48.2a
6+
docker pull elgalu/selenium:latest
77

88
2) Run a new grid
99

1010
docker run --rm --name=grid -p 4444:24444 -p 5920:25900 \
1111
-v /dev/shm:/dev/shm -e VNC_PASSWORD=hola \
12-
-e VIDEO=true -v $(pwd)/videos:/videos elgalu/selenium:2.48.2a
12+
-e VIDEO=true -v $(pwd)/videos:/videos elgalu/selenium:latest
1313

1414
3) Wait for the grid to start
1515

0 commit comments

Comments
 (0)