Skip to content

Commit 2da88aa

Browse files
authored
Merge pull request #290 from SeleniumHQ/proper-generation
Proper generation
2 parents 8068c06 + d9f6a46 commit 2da88aa

File tree

17 files changed

+466
-7
lines changed

17 files changed

+466
-7
lines changed

Hub/Dockerfile

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2+
# NOTE: DO *NOT* EDIT THIS FILE. IT IS GENERATED.
3+
# PLEASE UPDATE Dockerfile.txt INSTEAD OF THIS FILE
4+
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
5+
FROM selenium/base:2.53.1
6+
MAINTAINER Selenium <[email protected]>
7+
8+
#========================
9+
# Selenium Configuration
10+
#========================
11+
12+
EXPOSE 4444
13+
14+
ENV GRID_NEW_SESSION_WAIT_TIMEOUT -1
15+
ENV GRID_JETTY_MAX_THREADS -1
16+
ENV GRID_NODE_POLLING 5000
17+
ENV GRID_CLEAN_UP_CYCLE 5000
18+
ENV GRID_TIMEOUT 30000
19+
ENV GRID_BROWSER_TIMEOUT 0
20+
ENV GRID_MAX_SESSION 5
21+
ENV GRID_UNREGISTER_IF_STILL_DOWN_AFTER 30000
22+
23+
COPY generate_config /opt/selenium/generate_config
24+
COPY entry_point.sh /opt/bin/entry_point.sh
25+
RUN /opt/selenium/generate_config > /opt/selenium/config.json
26+
RUN chown -R seluser /opt/selenium
27+
28+
USER seluser
29+
30+
CMD ["/opt/bin/entry_point.sh"]
31+

Hub/generate.sh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
#!/bin/bash
22
VERSION=$1
33

4-
echo FROM selenium/base:$VERSION > ./Dockerfile
4+
echo "# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" > ./Dockerfile
5+
echo "# NOTE: DO *NOT* EDIT THIS FILE. IT IS GENERATED." >> ./Dockerfile
6+
echo "# PLEASE UPDATE Dockerfile.txt INSTEAD OF THIS FILE" >> ./Dockerfile
7+
echo "# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" >> ./Dockerfile
8+
echo FROM selenium/base:$VERSION >> ./Dockerfile
59
cat ./Dockerfile.txt >> ./Dockerfile

NodeBase/Dockerfile

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2+
# NOTE: DO *NOT* EDIT THIS FILE. IT IS GENERATED.
3+
# PLEASE UPDATE Dockerfile.txt INSTEAD OF THIS FILE
4+
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
5+
FROM selenium/base:2.53.1
6+
MAINTAINER Selenium <[email protected]>
7+
8+
ENV DEBIAN_FRONTEND noninteractive
9+
ENV DEBCONF_NONINTERACTIVE_SEEN true
10+
11+
#===================
12+
# Timezone settings
13+
# Possible alternative: https://github.com/docker/docker/issues/3359#issuecomment-32150214
14+
#===================
15+
ENV TZ "US/Pacific"
16+
RUN echo "${TZ}" > /etc/timezone \
17+
&& dpkg-reconfigure --frontend noninteractive tzdata
18+
19+
#==============
20+
# VNC and Xvfb
21+
#==============
22+
RUN apt-get update -qqy \
23+
&& apt-get -qqy install \
24+
xvfb \
25+
&& rm -rf /var/lib/apt/lists/*
26+
27+
#==============================
28+
# Scripts to run Selenium Node
29+
#==============================
30+
COPY \
31+
entry_point.sh \
32+
functions.sh \
33+
/opt/bin/
34+
RUN chmod +x /opt/bin/entry_point.sh
35+
36+
#============================
37+
# Some configuration options
38+
#============================
39+
ENV SCREEN_WIDTH 1360
40+
ENV SCREEN_HEIGHT 1020
41+
ENV SCREEN_DEPTH 24
42+
ENV DISPLAY :99.0
43+
44+
USER seluser
45+
46+
CMD ["/opt/bin/entry_point.sh"]

NodeBase/generate.sh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
#!/bin/bash
22
VERSION=$1
33

4-
echo FROM selenium/base:$VERSION > ./Dockerfile
4+
echo "# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" > ./Dockerfile
5+
echo "# NOTE: DO *NOT* EDIT THIS FILE. IT IS GENERATED." >> ./Dockerfile
6+
echo "# PLEASE UPDATE Dockerfile.txt INSTEAD OF THIS FILE" >> ./Dockerfile
7+
echo "# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" >> ./Dockerfile
8+
echo FROM selenium/base:$VERSION >> ./Dockerfile
59
cat ./Dockerfile.txt >> ./Dockerfile

NodeChrome/Dockerfile

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2+
# NOTE: DO *NOT* EDIT THIS FILE. IT IS GENERATED.
3+
# PLEASE UPDATE Dockerfile.txt INSTEAD OF THIS FILE
4+
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
5+
FROM selenium/node-base:2.53.1
6+
MAINTAINER Selenium <[email protected]>
7+
8+
USER root
9+
10+
#============================================
11+
# Google Chrome
12+
#============================================
13+
# can specify versions by CHROME_VERSION;
14+
# e.g. google-chrome-stable=53.0.2785.101-1
15+
# google-chrome-beta=53.0.2785.92-1
16+
# google-chrome-unstable=54.0.2840.14-1
17+
# latest (equivalent to google-chrome-stable)
18+
# google-chrome-beta (pull latest beta)
19+
#============================================
20+
ENV CHROME_VERSION "google-chrome-stable"
21+
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - \
22+
&& echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list \
23+
&& apt-get update -qqy \
24+
&& apt-get -qqy install \
25+
${CHROME_VERSION:-google-chrome-stable} \
26+
&& rm /etc/apt/sources.list.d/google-chrome.list \
27+
&& rm -rf /var/lib/apt/lists/*
28+
29+
#==================
30+
# Chrome webdriver
31+
#==================
32+
ENV CHROME_DRIVER_VERSION 2.23
33+
RUN wget --no-verbose -O /tmp/chromedriver_linux64.zip https://chromedriver.storage.googleapis.com/$CHROME_DRIVER_VERSION/chromedriver_linux64.zip \
34+
&& rm -rf /opt/selenium/chromedriver \
35+
&& unzip /tmp/chromedriver_linux64.zip -d /opt/selenium \
36+
&& rm /tmp/chromedriver_linux64.zip \
37+
&& mv /opt/selenium/chromedriver /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION \
38+
&& chmod 755 /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION \
39+
&& ln -fs /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION /usr/bin/chromedriver
40+
41+
#========================
42+
# Selenium Configuration
43+
#========================
44+
COPY config.json /opt/selenium/config.json
45+
46+
#=================================
47+
# Chrome Launch Script Modication
48+
#=================================
49+
COPY chrome_launcher.sh /opt/google/chrome/google-chrome
50+
RUN chmod +x /opt/google/chrome/google-chrome
51+
52+
USER seluser
53+
# Following line fixes
54+
# https://github.com/SeleniumHQ/docker-selenium/issues/87
55+
ENV DBUS_SESSION_BUS_ADDRESS=/dev/null

NodeChrome/generate.sh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
#!/bin/bash
22
VERSION=$1
33

4-
echo FROM selenium/node-base:$VERSION > ./Dockerfile
4+
echo "# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" > ./Dockerfile
5+
echo "# NOTE: DO *NOT* EDIT THIS FILE. IT IS GENERATED." >> ./Dockerfile
6+
echo "# PLEASE UPDATE Dockerfile.txt INSTEAD OF THIS FILE" >> ./Dockerfile
7+
echo "# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" >> ./Dockerfile
8+
echo FROM selenium/node-base:$VERSION >> ./Dockerfile
59
cat ./Dockerfile.txt >> ./Dockerfile

NodeChromeDebug/Dockerfile

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2+
# NOTE: DO *NOT* EDIT THIS FILE. IT IS GENERATED.
3+
# PLEASE UPDATE Dockerfile.txt INSTEAD OF THIS FILE
4+
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
5+
FROM selenium/node-chrome:2.53.1
6+
MAINTAINER Selenium <[email protected]>
7+
8+
USER root
9+
10+
#=====
11+
# VNC
12+
#=====
13+
RUN apt-get update -qqy \
14+
&& apt-get -qqy install \
15+
x11vnc \
16+
&& rm -rf /var/lib/apt/lists/* \
17+
&& mkdir -p ~/.vnc \
18+
&& x11vnc -storepasswd secret ~/.vnc/passwd
19+
20+
#=================
21+
# Locale settings
22+
#=================
23+
ENV LANGUAGE en_US.UTF-8
24+
ENV LANG en_US.UTF-8
25+
RUN locale-gen en_US.UTF-8 \
26+
&& dpkg-reconfigure --frontend noninteractive locales \
27+
&& apt-get update -qqy \
28+
&& apt-get -qqy --no-install-recommends install \
29+
language-pack-en \
30+
&& rm -rf /var/lib/apt/lists/*
31+
32+
#=======
33+
# Fonts
34+
#=======
35+
RUN apt-get update -qqy \
36+
&& apt-get -qqy --no-install-recommends install \
37+
fonts-ipafont-gothic \
38+
xfonts-100dpi \
39+
xfonts-75dpi \
40+
xfonts-cyrillic \
41+
xfonts-scalable \
42+
&& rm -rf /var/lib/apt/lists/*
43+
44+
#=========
45+
# fluxbox
46+
# A fast, lightweight and responsive window manager
47+
#=========
48+
RUN apt-get update -qqy \
49+
&& apt-get -qqy install \
50+
fluxbox \
51+
&& rm -rf /var/lib/apt/lists/*
52+
53+
#==============================
54+
# Scripts to run Selenium Node
55+
#==============================
56+
COPY entry_point.sh /opt/bin/entry_point.sh
57+
RUN chmod +x /opt/bin/entry_point.sh
58+
59+
EXPOSE 5900

NodeDebug/generate.sh

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@ BASE=$2
44
BROWSER=$3
55
VERSION=$4
66

7-
echo '# THIS FILE IS GENERATED: DO NOT EDIT!' > $FOLDER/Dockerfile
7+
echo "# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" > $FOLDER/Dockerfile
8+
echo "# NOTE: DO *NOT* EDIT THIS FILE. IT IS GENERATED." >> $FOLDER/Dockerfile
9+
echo "# PLEASE UPDATE Dockerfile.txt INSTEAD OF THIS FILE" >> $FOLDER/Dockerfile
10+
echo "# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" >> $FOLDER/Dockerfile
811
echo FROM selenium/$BASE:$VERSION >> $FOLDER/Dockerfile
912
cat ./Dockerfile.txt >> $FOLDER/Dockerfile
1013

NodeFirefox/Dockerfile

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2+
# NOTE: DO *NOT* EDIT THIS FILE. IT IS GENERATED.
3+
# PLEASE UPDATE Dockerfile.txt INSTEAD OF THIS FILE
4+
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
5+
FROM selenium/node-base:2.53.1
6+
MAINTAINER Selenium <[email protected]>
7+
8+
USER root
9+
10+
#=========
11+
# Firefox
12+
#=========
13+
ENV FIREFOX_VERSION 47.0.1
14+
RUN apt-get update -qqy \
15+
&& apt-get -qqy --no-install-recommends install firefox \
16+
&& rm -rf /var/lib/apt/lists/* \
17+
&& wget --no-verbose -O /tmp/firefox.tar.bz2 https://download-installer.cdn.mozilla.net/pub/firefox/releases/$FIREFOX_VERSION/linux-x86_64/en-US/firefox-$FIREFOX_VERSION.tar.bz2 \
18+
&& apt-get -y purge firefox \
19+
&& rm -rf /opt/firefox \
20+
&& tar -C /opt -xjf /tmp/firefox.tar.bz2 \
21+
&& rm /tmp/firefox.tar.bz2 \
22+
&& mv /opt/firefox /opt/firefox-$FIREFOX_VERSION \
23+
&& ln -fs /opt/firefox-$FIREFOX_VERSION/firefox /usr/bin/firefox
24+
25+
#========================
26+
# Selenium Configuration
27+
#========================
28+
COPY config.json /opt/selenium/config.json
29+
30+
USER seluser

NodeFirefox/generate.sh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
#!/bin/bash
22
VERSION=$1
33

4-
echo FROM selenium/node-base:$VERSION > ./Dockerfile
4+
echo "# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" > ./Dockerfile
5+
echo "# NOTE: DO *NOT* EDIT THIS FILE. IT IS GENERATED." >> ./Dockerfile
6+
echo "# PLEASE UPDATE Dockerfile.txt INSTEAD OF THIS FILE" >> ./Dockerfile
7+
echo "# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" >> ./Dockerfile
8+
echo FROM selenium/node-base:$VERSION >> ./Dockerfile
59
cat ./Dockerfile.txt >> ./Dockerfile

NodeFirefoxDebug/Dockerfile

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2+
# NOTE: DO *NOT* EDIT THIS FILE. IT IS GENERATED.
3+
# PLEASE UPDATE Dockerfile.txt INSTEAD OF THIS FILE
4+
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
5+
FROM selenium/node-firefox:2.53.1
6+
MAINTAINER Selenium <[email protected]>
7+
8+
USER root
9+
10+
#=====
11+
# VNC
12+
#=====
13+
RUN apt-get update -qqy \
14+
&& apt-get -qqy install \
15+
x11vnc \
16+
&& rm -rf /var/lib/apt/lists/* \
17+
&& mkdir -p ~/.vnc \
18+
&& x11vnc -storepasswd secret ~/.vnc/passwd
19+
20+
#=================
21+
# Locale settings
22+
#=================
23+
ENV LANGUAGE en_US.UTF-8
24+
ENV LANG en_US.UTF-8
25+
RUN locale-gen en_US.UTF-8 \
26+
&& dpkg-reconfigure --frontend noninteractive locales \
27+
&& apt-get update -qqy \
28+
&& apt-get -qqy --no-install-recommends install \
29+
language-pack-en \
30+
&& rm -rf /var/lib/apt/lists/*
31+
32+
#=======
33+
# Fonts
34+
#=======
35+
RUN apt-get update -qqy \
36+
&& apt-get -qqy --no-install-recommends install \
37+
fonts-ipafont-gothic \
38+
xfonts-100dpi \
39+
xfonts-75dpi \
40+
xfonts-cyrillic \
41+
xfonts-scalable \
42+
&& rm -rf /var/lib/apt/lists/*
43+
44+
#=========
45+
# fluxbox
46+
# A fast, lightweight and responsive window manager
47+
#=========
48+
RUN apt-get update -qqy \
49+
&& apt-get -qqy install \
50+
fluxbox \
51+
&& rm -rf /var/lib/apt/lists/*
52+
53+
#==============================
54+
# Scripts to run Selenium Node
55+
#==============================
56+
COPY entry_point.sh /opt/bin/entry_point.sh
57+
RUN chmod +x /opt/bin/entry_point.sh
58+
59+
EXPOSE 5900

Standalone/generate.sh

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@ BASE=$2
44
BROWSER=$3
55
VERSION=$4
66

7-
echo '# THIS FILE IS GENERATED: DO NOT EDIT!' > $FOLDER/Dockerfile
7+
echo "# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" > $FOLDER/Dockerfile
8+
echo "# NOTE: DO *NOT* EDIT THIS FILE. IT IS GENERATED." >> $FOLDER/Dockerfile
9+
echo "# PLEASE UPDATE Dockerfile.txt INSTEAD OF THIS FILE" >> $FOLDER/Dockerfile
10+
echo "# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" >> $FOLDER/Dockerfile
811
echo FROM selenium/$BASE:$VERSION >> $FOLDER/Dockerfile
912
cat ./Dockerfile.txt >> $FOLDER/Dockerfile
1013

StandaloneChrome/Dockerfile

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2+
# NOTE: DO *NOT* EDIT THIS FILE. IT IS GENERATED.
3+
# PLEASE UPDATE Dockerfile.txt INSTEAD OF THIS FILE
4+
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
5+
FROM selenium/node-chrome:2.53.1
6+
MAINTAINER Selenium <[email protected]>
7+
8+
USER root
9+
10+
#====================================
11+
# Scripts to run Selenium Standalone
12+
#====================================
13+
COPY entry_point.sh /opt/bin/entry_point.sh
14+
RUN chmod +x /opt/bin/entry_point.sh
15+
16+
USER seluser
17+
18+
EXPOSE 4444

0 commit comments

Comments
 (0)