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

Commit 2b2e490

Browse files
authored
Merge branch 'trunk' into 4.20.0
2 parents 0d82ddc + 496b79a commit 2b2e490

22 files changed

+1572
-21
lines changed

.circleci/config.yml

Lines changed: 403 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
name: Build & test multi-arch
2+
3+
on:
4+
# push:
5+
# branches:
6+
# - multi-arch-tests
7+
# - qemu-user-static
8+
# pull_request:
9+
# branches:
10+
# - trunk
11+
workflow_dispatch:
12+
13+
jobs:
14+
build-and-test-multi-arch:
15+
# Skip job based on the commit message, only works in push to branches for now
16+
if: contains(toJson(github.event.commits), '[skip ci]') == false
17+
name: Build & test multi-arch
18+
runs-on: ubuntu-20.04
19+
strategy:
20+
matrix:
21+
use-random-user: [false, true]
22+
arch: [amd64, arm64]
23+
fail-fast: false
24+
25+
steps:
26+
- uses: actions/checkout@v1
27+
- name: Output Docker info
28+
run: docker info
29+
- name: Set up Python 3.8
30+
uses: actions/setup-python@v2
31+
with:
32+
python-version: 3.8
33+
- name: Get branch name (only for push to branch)
34+
if: github.event_name == 'push'
35+
run: echo "BRANCH=$(echo ${PUSH_BRANCH##*/})" >> $GITHUB_ENV
36+
env:
37+
PUSH_BRANCH: ${{ github.ref }}
38+
- name: Get target branch name (only for PRs)
39+
if: github.event_name == 'pull_request'
40+
run: echo "BRANCH=$(echo ${TARGET_BRANCH##*/})" >> $GITHUB_ENV
41+
env:
42+
TARGET_BRANCH: ${{ github.head_ref }}
43+
- name: Output branch name
44+
run: echo ${BRANCH}
45+
- name: Sets build date
46+
run: echo "BUILD_DATE=$(date '+%Y%m%d')" >> $GITHUB_ENV
47+
- name: Build Docker images
48+
run: VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} ARCH=${ARCH} make build_multi
49+
if: matrix.arch == 'arm64' && matrix.use-random-user == 'false'
50+
- name: Test Docker images
51+
run: |
52+
docker run -d --platform linux/${ARCH} --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-firefox:${BRANCH}-${BUILD_DATE}
53+
USE_RANDOM_USER_ID=${USE_RANDOM_USER} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} ARCH=${ARCH} SKIP_BUILD=true make test_firefox_standalone_multi
54+
#USE_RANDOM_USER_ID=${USE_RANDOM_USER} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} ARCH=${ARCH} SKIP_BUILD=true make test_chromium_standalone_multi
55+
env:
56+
USE_RANDOM_USER: ${{ matrix.use-random-user }}
57+
ARCH: ${{ matrix.arch }}
58+
if: matrix.arch == 'arm64' && matrix.use-random-user == 'false'
59+

Base/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM ubuntu:jammy-20240405
1+
FROM debian:bookworm
22
LABEL authors="Selenium <[email protected]>"
33

44
# Arguments to define the version of dependencies to download

Makefile

Lines changed: 143 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ MAJOR_MINOR_PATCH := $(word 1,$(subst -, ,$(TAG_VERSION)))
2020
FFMPEG_TAG_VERSION := $(or $(FFMPEG_TAG_VERSION),$(FFMPEG_TAG_VERSION),ffmpeg-7.0)
2121
FFMPEG_BASED_NAME := $(or $(FFMPEG_BASED_NAME),$(FFMPEG_BASED_NAME),ndviet)
2222
FFMPEG_BASED_TAG := $(or $(FFMPEG_BASED_TAG),$(FFMPEG_BASED_TAG),7.0-ubuntu2204)
23+
PLATFORMS := $(or $(PLATFORMS),$(PLATFORMS),linux/arm64)
2324

2425
all: hub \
2526
distributor \
@@ -178,6 +179,77 @@ edge_upgrade_version:
178179
docker run --rm $(NAME)/standalone-edge:$(TAG_VERSION) microsoft-edge --version
179180
docker run --rm $(NAME)/standalone-edge:$(TAG_VERSION) msedgedriver --version
180181

182+
# Register linux/arm64 and linux/arm/v7 architectures for building with BuildKit
183+
# docker run --rm --privileged aptman/qus -s -- -p # for actions
184+
qemu_user_static:
185+
docker run --rm --privileged aptman/qus -- -r ; \
186+
docker run --rm --privileged aptman/qus -s -- -p
187+
188+
# Build multi-arch images
189+
all_multi: base_multi \
190+
hub_multi \
191+
chromium_multi \
192+
firefox_multi \
193+
docker_multi \
194+
standalone_chromium_multi \
195+
standalone_firefox_multi \
196+
standalone_docker_multi \
197+
distributor_multi \
198+
router_multi \
199+
sessions_multi \
200+
sessionqueue_multi \
201+
event_bus_multi \
202+
video_multi
203+
204+
build_multi: all_multi
205+
206+
ci_multi: build_multi test_multi_arch
207+
208+
base_multi: qemu_user_static
209+
cd ./Base && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) --build-arg VERSION=$(BASE_VERSION) --build-arg RELEASE=$(BASE_RELEASE) -t $(NAME)/base:$(TAG_VERSION) .
210+
211+
hub_multi: base_multi
212+
cd ./Hub && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/hub:$(TAG_VERSION) .
213+
214+
distributor_multi:
215+
cd ./Distributor && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/distributor:$(TAG_VERSION) .
216+
217+
router_multi:
218+
cd ./Router && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/router:$(TAG_VERSION) .
219+
220+
sessions_multi:
221+
cd ./Sessions && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/sessions:$(TAG_VERSION) .
222+
223+
sessionqueue_multi:
224+
cd ./SessionQueue && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/session-queue:$(TAG_VERSION) .
225+
226+
event_bus_multi: base_multi
227+
cd ./EventBus && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/event-bus:$(TAG_VERSION) .
228+
229+
node_base_multi: base_multi
230+
cd ./NodeBase && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/node-base:$(TAG_VERSION) .
231+
232+
chromium_multi: node_base_multi
233+
cd ./NodeChromium && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/node-chromium:$(TAG_VERSION) .
234+
235+
firefox_multi: node_base_multi
236+
cd ./NodeFirefox && docker buildx build -f Dockerfile.multi-arch --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/node-firefox:$(TAG_VERSION) .
237+
238+
docker_multi: base_multi
239+
cd ./NodeDocker && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/node-docker:$(TAG_VERSION) .
240+
241+
standalone_firefox_multi: firefox_multi
242+
cd ./Standalone && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg BASE=node-firefox -t $(NAME)/standalone-firefox:$(TAG_VERSION) .
243+
244+
standalone_chromium_multi: chromium_multi
245+
cd ./Standalone && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg BASE=node-chromium -t $(NAME)/standalone-chromium:$(TAG_VERSION) .
246+
247+
standalone_docker_multi: docker_multi
248+
cd ./StandaloneDocker && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/standalone-docker:$(TAG_VERSION) .
249+
250+
video_multi:
251+
cd ./Video && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) --build-arg NAMESPACE=$(FFMPEG_BASED_NAME) --build-arg BASED_TAG=$(FFMPEG_BASED_TAG) -t $(NAME)/video:$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) .
252+
181253
# https://github.com/SeleniumHQ/docker-selenium/issues/992
182254
# Additional tags for browser images
183255
tag_and_push_browser_images: tag_and_push_chrome_images tag_and_push_firefox_images tag_and_push_edge_images
@@ -210,6 +282,58 @@ tag_latest:
210282
docker tag $(NAME)/standalone-docker:$(TAG_VERSION) $(NAME)/standalone-docker:latest
211283
docker tag $(NAME)/video:$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) $(NAME)/video:latest
212284

285+
# Additional tags for browser images
286+
tag_and_push_multi_arch_browser_images: tag_and_push_multi_arch_chromium_images tag_and_push_multi_arch_firefox_images
287+
288+
tag_and_push_multi_arch_chromium_images:
289+
./tag_and_push_multi-arch_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) chromium
290+
291+
tag_and_push_multi_arch_firefox_images:
292+
./tag_and_push_multi-arch_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) firefox
293+
294+
tag_major_minor_multi_arch:
295+
./tag_and_push_multi-arch_major_minor.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) base
296+
./tag_and_push_multi-arch_major_minor.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) hub
297+
./tag_and_push_multi-arch_major_minor.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) node-base
298+
./tag_and_push_multi-arch_major_minor.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) node-docker
299+
./tag_and_push_multi-arch_major_minor.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) standalone-docker
300+
./tag_and_push_multi-arch_major_minor.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) sessions
301+
./tag_and_push_multi-arch_major_minor.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) session-queue
302+
./tag_and_push_multi-arch_major_minor.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) event-bus
303+
./tag_and_push_multi-arch_major_minor.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) router
304+
./tag_and_push_multi-arch_major_minor.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) distributor
305+
306+
tag_multi_arch_latest:
307+
docker buildx imagetools create -t ${NAMESPACE}/base:latest ${NAMESPACE}/base:${TAG_VERSION}
308+
docker buildx imagetools create -t ${NAMESPACE}/hub:latest ${NAMESPACE}/hub:${TAG_VERSION}
309+
docker buildx imagetools create -t ${NAMESPACE}/node-base:latest ${NAMESPACE}/node-base:${TAG_VERSION}
310+
docker buildx imagetools create -t ${NAMESPACE}/node-chromium:latest ${NAMESPACE}/node-chromium:${TAG_VERSION}
311+
docker buildx imagetools create -t ${NAMESPACE}/node-firefox:latest ${NAMESPACE}/node-firefox:${TAG_VERSION}
312+
docker buildx imagetools create -t ${NAMESPACE}/standalone-chromium:latest ${NAMESPACE}/standalone-chromium:${TAG_VERSION}
313+
docker buildx imagetools create -t ${NAMESPACE}/standalone-firefox:latest ${NAMESPACE}/standalone-firefox:${TAG_VERSION}
314+
docker buildx imagetools create -t ${NAMESPACE}/node-docker:latest ${NAMESPACE}/node-docker:${TAG_VERSION}
315+
docker buildx imagetools create -t ${NAMESPACE}/standalone-docker:latest ${NAMESPACE}/standalone-docker:${TAG_VERSION}
316+
docker buildx imagetools create -t ${NAMESPACE}/sessions:latest ${NAMESPACE}/sessions:${TAG_VERSION}
317+
docker buildx imagetools create -t ${NAMESPACE}/session-queue:latest ${NAMESPACE}/session-queue:${TAG_VERSION}
318+
docker buildx imagetools create -t ${NAMESPACE}/event-bus:latest ${NAMESPACE}/event-bus:${TAG_VERSION}
319+
docker buildx imagetools create -t ${NAMESPACE}/router:latest ${NAMESPACE}/router:${TAG_VERSION}
320+
docker buildx imagetools create -t ${NAMESPACE}/distributor:latest ${NAMESPACE}/distributor:${TAG_VERSION}
321+
322+
# ./tag-and-push-multi-arch-image.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) base latest
323+
# ./tag-and-push-multi-arch-image.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) hub latest
324+
# ./tag-and-push-multi-arch-image.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) node-base latest
325+
# ./tag-and-push-multi-arch-image.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) node-chromium latest
326+
# ./tag-and-push-multi-arch-image.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) node-firefox latest
327+
# ./tag-and-push-multi-arch-image.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) standalone-chromium latest
328+
# ./tag-and-push-multi-arch-image.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) standalone-firefox latest
329+
# ./tag-and-push-multi-arch-image.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) node-docker latest
330+
# ./tag-and-push-multi-arch-image.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) standalone-docker latest
331+
# ./tag-and-push-multi-arch-image.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) sessions latest
332+
# ./tag-and-push-multi-arch-image.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) session-queue latest
333+
# ./tag-and-push-multi-arch-image.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) event-bus latest
334+
# ./tag-and-push-multi-arch-image.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) router latest
335+
# ./tag-and-push-multi-arch-image.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) distributor latest
336+
213337
release_latest:
214338
docker push $(NAME)/base:latest
215339
docker push $(NAME)/hub:latest
@@ -426,6 +550,25 @@ test_firefox:
426550
test_firefox_standalone:
427551
VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) BINDING_VERSION=$(BINDING_VERSION) ./tests/bootstrap.sh StandaloneFirefox
428552

553+
# Test multi-arch container images
554+
test_multi_arch: test_chromium_multi \
555+
test_firefox_multi \
556+
test_chromium_standalone_multi \
557+
test_firefox_standalone_multi
558+
559+
560+
test_chromium_multi:
561+
VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/bootstrap.sh NodeChromium
562+
563+
test_chromium_standalone_multi:
564+
VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/bootstrap.sh StandaloneChromium
565+
566+
test_firefox_multi:
567+
VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/bootstrap.sh NodeFirefox
568+
569+
test_firefox_standalone_multi:
570+
VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/bootstrap.sh StandaloneFirefox
571+
429572
test_parallel: hub chrome firefox edge
430573
sudo rm -rf ./tests/tests
431574
for node in DeploymentAutoscaling JobAutoscaling ; do \

NodeBase/Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,13 +88,13 @@ RUN apt-get update -qqy \
8888
locales \
8989
libfontconfig \
9090
libfreetype6 \
91-
xfonts-cyrillic \
91+
#xfonts-cyrillic \
9292
xfonts-scalable \
9393
fonts-liberation \
9494
fonts-ipafont-gothic \
9595
fonts-wqy-zenhei \
9696
fonts-tlwg-loma-otf \
97-
fonts-ubuntu \
97+
#fonts-ubuntu \
9898
fonts-noto-color-emoji \
9999
&& locale-gen ${LANGUAGE} \
100100
&& dpkg-reconfigure --frontend noninteractive locales \

NodeChromium/Dockerfile

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
ARG NAMESPACE
2+
ARG VERSION
3+
ARG AUTHORS
4+
FROM ${NAMESPACE}/node-base:${VERSION}
5+
LABEL authors=${AUTHORS}
6+
7+
USER root
8+
9+
#ENV LANGUAGE=en_US.UTF-8
10+
#ENV LC_ALL=en_US.UTF-8
11+
#ENV LANG=en_US.UTF-8
12+
13+
# Deal with the usr merge issues in Debian
14+
#RUN apt install usrmerge
15+
16+
# Install Chromium
17+
# RUN echo "deb http://http.us.debian.org/debian/ stable non-free contrib main" >> /etc/apt/sources.list \
18+
RUN echo "deb http://deb.debian.org/debian/ sid main" >> /etc/apt/sources.list \
19+
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0E98404D386FA1D9 6ED0E7B82643E131 \
20+
&& apt-get update -qqy \
21+
# && apt-get -qqy install chromium=89.0.4389.82-1 \
22+
# && apt-get -qqy install chromium=90.0.4430.212-1 \
23+
# && apt-get -qqy install chromium=93.0.4577.82-1 \
24+
# && apt-get -qqy install chromium=97.0.4692.71-0.1 \
25+
# && apt-get -qqy install chromium=98.0.4758.102-1+b1 \
26+
&& apt-get -qqy install chromium \
27+
&& rm -rf /var/lib/apt/lists/* /var/cache/apt/*
28+
29+
#=================================
30+
# Chromium Launch Script Wrapper
31+
#=================================
32+
COPY wrap_chromium_binary /opt/bin/wrap_chromium_binary
33+
RUN /opt/bin/wrap_chromium_binary
34+
35+
#============================================
36+
# Chromium webdriver
37+
#============================================
38+
RUN apt-get update -qqy \
39+
&& apt-get -qqy install chromium-driver \
40+
&& rm -rf /var/lib/apt/lists/* /var/cache/apt/*
41+
42+
RUN echo "chrome" > /opt/selenium/browser_name
43+
RUN chromium --version | awk '{print $2}' > /opt/selenium/browser_version
44+
RUN echo "\"goog:chromeOptions\": {\"binary\": \"/usr/bin/chromium\"}" > /opt/selenium/browser_binary_location
45+
46+
USER 1200
47+

NodeChromium/wrap_chromium_binary

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#!/bin/bash
2+
3+
WRAPPER_PATH=$(readlink -f /usr/bin/chromium)
4+
BASE_PATH="$WRAPPER_PATH-base"
5+
mv "$WRAPPER_PATH" "$BASE_PATH"
6+
7+
cat > "$WRAPPER_PATH" <<_EOF
8+
#!/bin/bash
9+
# Note: exec -a below is a bashism.
10+
exec -a "\$0" "$BASE_PATH" --no-sandbox "\$@"
11+
_EOF
12+
chmod +x "$WRAPPER_PATH"

NodeFirefox/Dockerfile.multi-arch

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
ARG NAMESPACE
2+
ARG VERSION
3+
ARG AUTHORS
4+
FROM ${NAMESPACE}/node-base:${VERSION}
5+
LABEL authors=${AUTHORS}
6+
7+
ARG TARGETARCH
8+
ARG TARGETVARIANT
9+
10+
ARG GECKODRIVER_VERSION=0.34.0
11+
12+
USER root
13+
14+
# Deal with the usr merge issues in Debian
15+
#RUN apt install usrmerge
16+
17+
#=========
18+
# Firefox
19+
#=========
20+
#RUN echo "deb http://deb.debian.org/debian/ sid main" >> /etc/apt/sources.list \
21+
# && apt-get update -qqy \
22+
# && apt-get -qqy install firefox-esr libavcodec-extra \
23+
# && apt-get -qqy install firefox libavcodec-extra \
24+
# && rm -rf /var/lib/apt/lists/* /var/cache/apt/*
25+
26+
# Pulling Firefox from Debian Snapshots so we can control which version we use as latest
27+
RUN echo "deb http://deb.debian.org/debian/ sid main" >> /etc/apt/sources.list \
28+
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0E98404D386FA1D9 6ED0E7B82643E131 \
29+
&& apt-get update -qqy \
30+
&& apt-get install libavcodec-extra firefox -y \
31+
&& rm -rf /var/lib/apt/lists/* /var/cache/apt/*
32+
33+
#=============
34+
# geckodriver
35+
#=============
36+
RUN if [ $TARGETARCH = "arm" ] && [ $TARGETVARIANT = "v7" ]; then \
37+
export ARCH=armhf ; \
38+
else \
39+
export ARCH=$TARGETARCH ; \
40+
fi ; \
41+
if [ -z "$ARCH" ]; then \
42+
echo "*** BUILD ERROR: \$TARGETARCH must be arm64, amd64, or arm with \$TARGETVARIANT set to v7... exiting..." ; \
43+
exit 1 ; \
44+
fi ; \
45+
if [ "$ARCH" = "arm64" ]; then \
46+
wget --no-verbose -O /tmp/geckodriver.tar.gz https://github.com/mozilla/geckodriver/releases/download/v$GECKODRIVER_VERSION/geckodriver-v$GECKODRIVER_VERSION-linux-aarch64.tar.gz ; \
47+
elif [ "$ARCH" = "armhf" ]; then \
48+
wget --no-verbose -O /tmp/geckodriver.tar.gz https://github.com/jamesmortensen/geckodriver-arm-binaries/releases/download/v$GECKODRIVER_VERSION/geckodriver-v$GECKODRIVER_VERSION-linux-armv7l.tar.gz ; \
49+
else \
50+
wget --no-verbose -O /tmp/geckodriver.tar.gz https://github.com/mozilla/geckodriver/releases/download/v$GECKODRIVER_VERSION/geckodriver-v$GECKODRIVER_VERSION-linux64.tar.gz ; \
51+
fi ; \
52+
tar -C /tmp -zxf /tmp/geckodriver.tar.gz ; \
53+
rm /tmp/geckodriver.tar.gz ; \
54+
mkdir -p /opt/geckodriver-bin ; \
55+
mv /tmp/geckodriver /opt/geckodriver-bin/geckodriver ; \
56+
echo "Symlinking geckodriver to /usr/local/bin/geckodriver and /usr/bin/geckodriver" ; \
57+
ln -s /opt/geckodriver-bin/geckodriver /usr/local/bin/geckodriver ; \
58+
chmod 755 /usr/local/bin/geckodriver ; \
59+
ln -s /opt/geckodriver-bin/geckodriver /usr/bin/geckodriver ; \
60+
chmod 755 /usr/bin/geckodriver
61+
62+
USER 1200
63+
64+
#============================================
65+
# Dumping Browser name and version for config
66+
#============================================
67+
RUN echo "firefox" > /opt/selenium/browser_name
68+
RUN firefox --version | awk '{print $3}' > /opt/selenium/browser_version
69+
RUN echo "\"moz:firefoxOptions\": {\"binary\": \"/usr/bin/firefox\"}" > /opt/selenium/browser_binary_location

0 commit comments

Comments
 (0)