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

Commit dffac08

Browse files
authored
Merge branch 'trunk' into 4.19.0-release
2 parents 5b5f17a + d16ae9e commit dffac08

22 files changed

+1591
-30
lines changed

.circleci/config.yml

Lines changed: 404 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: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
FROM ubuntu:jammy
1+
#FROM ubuntu:jammy
2+
FROM debian:bookworm
23
LABEL authors="Selenium <[email protected]>"
34

45
# Arguments to define the version of dependencies to download
@@ -19,15 +20,16 @@ USER root
1920
#================================================
2021
# Customize sources for apt-get
2122
#================================================
22-
RUN echo "deb http://archive.ubuntu.com/ubuntu jammy main universe\n" > /etc/apt/sources.list \
23-
&& echo "deb http://archive.ubuntu.com/ubuntu jammy-updates main universe\n" >> /etc/apt/sources.list \
24-
&& echo "deb http://security.ubuntu.com/ubuntu jammy-security main universe\n" >> /etc/apt/sources.list
25-
ARG TARGETARCH=amd64
23+
#RUN echo "deb http://archive.ubuntu.com/ubuntu jammy main universe\n" > /etc/apt/sources.list \
24+
# && echo "deb http://archive.ubuntu.com/ubuntu jammy-updates main universe\n" >> /etc/apt/sources.list \
25+
# && echo "deb http://security.ubuntu.com/ubuntu jammy-security main universe\n" >> /etc/apt/sources.list
26+
ARG TARGETARCH
2627
ARG TARGETVARIANT
2728

2829
# No interactive frontend during docker build
2930
ENV DEBIAN_FRONTEND=noninteractive \
3031
DEBCONF_NONINTERACTIVE_SEEN=true
32+
RUN echo "VERSION is $VERSION" && echo "RELEASE is $RELEASE"
3133

3234
#========================
3335
# Miscellaneous packages
@@ -129,16 +131,21 @@ RUN mkdir -p /opt/selenium /opt/selenium/assets /var/run/supervisor /var/log/sup
129131
# Download observability related jaegar jars and make them available in a separate directory
130132
# so that the container can skip downloading them everytime it comes up
131133
#=====
132-
RUN curl -fLo /tmp/cs https://github.com/coursier/launchers/raw/master/coursier \
133-
&& chmod +x /tmp/cs \
134-
&& mkdir -p /external_jars \
135-
&& chmod -R 775 /external_jars
136-
137-
RUN /tmp/cs fetch --classpath --cache /external_jars \
134+
#RUN curl -fLo /tmp/cs https://github.com/coursier/launchers/raw/master/coursier \
135+
RUN if [ `arch` = "aarch64" ] || [ `arch` = "x86_64" ]; then \
136+
curl -fL https://github.com/coursier/launchers/raw/master/cs-`arch`-pc-linux.gz | gzip -d > /tmp/cs \
137+
&& chmod +x /tmp/cs \
138+
&& mkdir -p /external_jars \
139+
&& chmod -R 775 /external_jars ; \
140+
fi
141+
142+
RUN if [ -f "/tmp/cs" ]; then \
143+
/tmp/cs fetch --classpath --cache /external_jars \
138144
io.opentelemetry:opentelemetry-exporter-otlp:${OPENTELEMETRY_VERSION} \
139-
io.grpc:grpc-netty:${GRPC_VERSION} > /external_jars/.classpath.txt
145+
io.grpc:grpc-netty:${GRPC_VERSION} > /external_jars/.classpath.txt; \
146+
fi
140147

141-
RUN chmod 664 /external_jars/.classpath.txt
148+
RUN if [ -f "/tmp/cs" ]; then chmod 664 /external_jars/.classpath.txt ; fi
142149
RUN rm -fr /root/.cache/*
143150

144151
#===================================================

Makefile

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

2324
all: hub \
2425
distributor \
@@ -134,6 +135,77 @@ video:
134135
cd ./Video && docker build $(BUILD_ARGS) --build-arg NAMESPACE=$(FFMPEG_BASED_NAME) --build-arg BASED_TAG=$(FFMPEG_BASED_TAG) -t $(NAME)/video:$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) .
135136

136137

138+
# Register linux/arm64 and linux/arm/v7 architectures for building with BuildKit
139+
# docker run --rm --privileged aptman/qus -s -- -p # for actions
140+
qemu_user_static:
141+
docker run --rm --privileged aptman/qus -- -r ; \
142+
docker run --rm --privileged aptman/qus -s -- -p
143+
144+
# Build multi-arch images
145+
all_multi: base_multi \
146+
hub_multi \
147+
chromium_multi \
148+
firefox_multi \
149+
docker_multi \
150+
standalone_chromium_multi \
151+
standalone_firefox_multi \
152+
standalone_docker_multi \
153+
distributor_multi \
154+
router_multi \
155+
sessions_multi \
156+
sessionqueue_multi \
157+
event_bus_multi \
158+
video_multi
159+
160+
build_multi: all_multi
161+
162+
ci_multi: build_multi test_multi_arch
163+
164+
base_multi: qemu_user_static
165+
cd ./Base && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) --build-arg VERSION=$(BASE_VERSION) --build-arg RELEASE=$(BASE_RELEASE) -t $(NAME)/base:$(TAG_VERSION) .
166+
167+
hub_multi: base_multi
168+
cd ./Hub && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/hub:$(TAG_VERSION) .
169+
170+
distributor_multi:
171+
cd ./Distributor && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/distributor:$(TAG_VERSION) .
172+
173+
router_multi:
174+
cd ./Router && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/router:$(TAG_VERSION) .
175+
176+
sessions_multi:
177+
cd ./Sessions && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/sessions:$(TAG_VERSION) .
178+
179+
sessionqueue_multi:
180+
cd ./SessionQueue && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/session-queue:$(TAG_VERSION) .
181+
182+
event_bus_multi: base_multi
183+
cd ./EventBus && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/event-bus:$(TAG_VERSION) .
184+
185+
node_base_multi: base_multi
186+
cd ./NodeBase && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/node-base:$(TAG_VERSION) .
187+
188+
chromium_multi: node_base_multi
189+
cd ./NodeChromium && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/node-chromium:$(TAG_VERSION) .
190+
191+
firefox_multi: node_base_multi
192+
cd ./NodeFirefox && docker buildx build -f Dockerfile.multi-arch --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/node-firefox:$(TAG_VERSION) .
193+
194+
docker_multi: base_multi
195+
cd ./NodeDocker && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/node-docker:$(TAG_VERSION) .
196+
197+
standalone_firefox_multi: firefox_multi
198+
cd ./Standalone && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg BASE=node-firefox -t $(NAME)/standalone-firefox:$(TAG_VERSION) .
199+
200+
standalone_chromium_multi: chromium_multi
201+
cd ./Standalone && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg BASE=node-chromium -t $(NAME)/standalone-chromium:$(TAG_VERSION) .
202+
203+
standalone_docker_multi: docker_multi
204+
cd ./StandaloneDocker && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/standalone-docker:$(TAG_VERSION) .
205+
206+
video_multi:
207+
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) .
208+
137209
# https://github.com/SeleniumHQ/docker-selenium/issues/992
138210
# Additional tags for browser images
139211
tag_and_push_browser_images: tag_and_push_chrome_images tag_and_push_firefox_images tag_and_push_edge_images
@@ -166,6 +238,58 @@ tag_latest:
166238
docker tag $(NAME)/standalone-docker:$(TAG_VERSION) $(NAME)/standalone-docker:latest
167239
docker tag $(NAME)/video:$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) $(NAME)/video:latest
168240

241+
# Additional tags for browser images
242+
tag_and_push_multi_arch_browser_images: tag_and_push_multi_arch_chromium_images tag_and_push_multi_arch_firefox_images
243+
244+
tag_and_push_multi_arch_chromium_images:
245+
./tag_and_push_multi-arch_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) chromium
246+
247+
tag_and_push_multi_arch_firefox_images:
248+
./tag_and_push_multi-arch_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) firefox
249+
250+
tag_major_minor_multi_arch:
251+
./tag_and_push_multi-arch_major_minor.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) base
252+
./tag_and_push_multi-arch_major_minor.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) hub
253+
./tag_and_push_multi-arch_major_minor.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) node-base
254+
./tag_and_push_multi-arch_major_minor.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) node-docker
255+
./tag_and_push_multi-arch_major_minor.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) standalone-docker
256+
./tag_and_push_multi-arch_major_minor.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) sessions
257+
./tag_and_push_multi-arch_major_minor.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) session-queue
258+
./tag_and_push_multi-arch_major_minor.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) event-bus
259+
./tag_and_push_multi-arch_major_minor.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) router
260+
./tag_and_push_multi-arch_major_minor.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) distributor
261+
262+
tag_multi_arch_latest:
263+
docker buildx imagetools create -t ${NAMESPACE}/base:latest ${NAMESPACE}/base:${TAG_VERSION}
264+
docker buildx imagetools create -t ${NAMESPACE}/hub:latest ${NAMESPACE}/hub:${TAG_VERSION}
265+
docker buildx imagetools create -t ${NAMESPACE}/node-base:latest ${NAMESPACE}/node-base:${TAG_VERSION}
266+
docker buildx imagetools create -t ${NAMESPACE}/node-chromium:latest ${NAMESPACE}/node-chromium:${TAG_VERSION}
267+
docker buildx imagetools create -t ${NAMESPACE}/node-firefox:latest ${NAMESPACE}/node-firefox:${TAG_VERSION}
268+
docker buildx imagetools create -t ${NAMESPACE}/standalone-chromium:latest ${NAMESPACE}/standalone-chromium:${TAG_VERSION}
269+
docker buildx imagetools create -t ${NAMESPACE}/standalone-firefox:latest ${NAMESPACE}/standalone-firefox:${TAG_VERSION}
270+
docker buildx imagetools create -t ${NAMESPACE}/node-docker:latest ${NAMESPACE}/node-docker:${TAG_VERSION}
271+
docker buildx imagetools create -t ${NAMESPACE}/standalone-docker:latest ${NAMESPACE}/standalone-docker:${TAG_VERSION}
272+
docker buildx imagetools create -t ${NAMESPACE}/sessions:latest ${NAMESPACE}/sessions:${TAG_VERSION}
273+
docker buildx imagetools create -t ${NAMESPACE}/session-queue:latest ${NAMESPACE}/session-queue:${TAG_VERSION}
274+
docker buildx imagetools create -t ${NAMESPACE}/event-bus:latest ${NAMESPACE}/event-bus:${TAG_VERSION}
275+
docker buildx imagetools create -t ${NAMESPACE}/router:latest ${NAMESPACE}/router:${TAG_VERSION}
276+
docker buildx imagetools create -t ${NAMESPACE}/distributor:latest ${NAMESPACE}/distributor:${TAG_VERSION}
277+
278+
# ./tag-and-push-multi-arch-image.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) base latest
279+
# ./tag-and-push-multi-arch-image.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) hub latest
280+
# ./tag-and-push-multi-arch-image.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) node-base latest
281+
# ./tag-and-push-multi-arch-image.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) node-chromium latest
282+
# ./tag-and-push-multi-arch-image.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) node-firefox latest
283+
# ./tag-and-push-multi-arch-image.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) standalone-chromium latest
284+
# ./tag-and-push-multi-arch-image.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) standalone-firefox latest
285+
# ./tag-and-push-multi-arch-image.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) node-docker latest
286+
# ./tag-and-push-multi-arch-image.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) standalone-docker latest
287+
# ./tag-and-push-multi-arch-image.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) sessions latest
288+
# ./tag-and-push-multi-arch-image.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) session-queue latest
289+
# ./tag-and-push-multi-arch-image.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) event-bus latest
290+
# ./tag-and-push-multi-arch-image.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) router latest
291+
# ./tag-and-push-multi-arch-image.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) distributor latest
292+
169293
release_latest:
170294
docker push $(NAME)/base:latest
171295
docker push $(NAME)/hub:latest
@@ -382,6 +506,25 @@ test_firefox:
382506
test_firefox_standalone:
383507
VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/bootstrap.sh StandaloneFirefox
384508

509+
# Test multi-arch container images
510+
test_multi_arch: test_chromium_multi \
511+
test_firefox_multi \
512+
test_chromium_standalone_multi \
513+
test_firefox_standalone_multi
514+
515+
516+
test_chromium_multi:
517+
VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/bootstrap.sh NodeChromium
518+
519+
test_chromium_standalone_multi:
520+
VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/bootstrap.sh StandaloneChromium
521+
522+
test_firefox_multi:
523+
VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/bootstrap.sh NodeFirefox
524+
525+
test_firefox_standalone_multi:
526+
VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/bootstrap.sh StandaloneFirefox
527+
385528
test_parallel: hub chrome firefox edge
386529
for node in DeploymentAutoscaling JobAutoscaling ; do \
387530
cd ./tests || true ; \

NodeBase/Dockerfile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ ENV LANG ${LANGUAGE}
3737
# Layer size: small: ~9 MB MB (with --no-install-recommends)
3838
RUN apt-get -qqy update \
3939
&& apt-get -qqy --no-install-recommends install \
40-
language-pack-en \
40+
#language-pack-en \
4141
tzdata \
4242
locales \
4343
&& locale-gen ${LANGUAGE} \
@@ -88,13 +88,13 @@ RUN apt-get -qqy update \
8888
&& apt-get -qqy --no-install-recommends install \
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
&& rm -rf /var/lib/apt/lists/* \
100100
&& apt-get -qyy clean

NodeChromium/Dockerfile

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
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-get update -qqy \
20+
# && apt-get -qqy install chromium=89.0.4389.82-1 \
21+
# && apt-get -qqy install chromium=90.0.4430.212-1 \
22+
# && apt-get -qqy install chromium=93.0.4577.82-1 \
23+
# && apt-get -qqy install chromium=97.0.4692.71-0.1 \
24+
# && apt-get -qqy install chromium=98.0.4758.102-1+b1 \
25+
&& apt-get -qqy install chromium \
26+
&& rm -rf /var/lib/apt/lists/* /var/cache/apt/*
27+
28+
#=================================
29+
# Chromium Launch Script Wrapper
30+
#=================================
31+
COPY wrap_chromium_binary /opt/bin/wrap_chromium_binary
32+
RUN /opt/bin/wrap_chromium_binary
33+
34+
#============================================
35+
# Chromium webdriver
36+
#============================================
37+
RUN apt-get update -qqy \
38+
&& apt-get -qqy install chromium-driver \
39+
&& rm -rf /var/lib/apt/lists/* /var/cache/apt/*
40+
41+
RUN echo "chrome" > /opt/selenium/browser_name
42+
RUN chromium --version | awk '{print $2}' > /opt/selenium/browser_version
43+
RUN echo "\"goog:chromeOptions\": {\"binary\": \"/usr/bin/chromium\"}" > /opt/selenium/browser_binary_location
44+
45+
USER 1200
46+

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"

0 commit comments

Comments
 (0)