Skip to content

Commit db45e8f

Browse files
authored
Merge branch 'trunk' into renovate/postgresql-16.x
2 parents 6e29d8d + 6e322d1 commit db45e8f

File tree

24 files changed

+366
-251
lines changed

24 files changed

+366
-251
lines changed

.ffmpeg/Dockerfile

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
FROM ubuntu:noble AS builder
2+
ARG VERSION_FFMPEG="7.1"
3+
ARG VERSION_RCLONE="v1.68.2"
4+
ARG VERSION_GO="latest"
5+
ARG GO_CRYPTO_VERSION="v0.31.0"
6+
7+
USER root
8+
9+
#======================================
10+
# Install build tools
11+
#======================================
12+
ARG TOOLS_DEPS="autoconf automake cmake libfreetype6 gcc build-essential libtool make nasm pkg-config zlib1g-dev numactl \
13+
libnuma-dev libx11-dev libxcb-shm0 libxcb1-dev yasm git curl jq wget ca-certificates"
14+
15+
RUN apt-get update -qqy \
16+
&& apt-get upgrade -yq \
17+
&& apt-get -qqy --no-install-recommends install ${TOOLS_DEPS} \
18+
&& apt-get -qyy clean \
19+
&& mkdir -p /usr/local/src
20+
21+
RUN if [ "${VERSION_GO}" = "latest" ]; then \
22+
VERSION_GO=$(curl -sk https://go.dev/dl/?mode=json | jq -r '.[0].version'); \
23+
fi \
24+
&& curl -skLO https://go.dev/dl/$VERSION_GO.linux-$(dpkg --print-architecture).tar.gz \
25+
&& tar -xf $VERSION_GO.linux-$(dpkg --print-architecture).tar.gz -C /usr/local \
26+
&& rm -rf $VERSION_GO.linux-$(dpkg --print-architecture).tar.gz* \
27+
&& ln -sf /usr/local/go/bin/go /usr/bin/go \
28+
&& go version
29+
30+
RUN cd /usr/local/src \
31+
&& git clone https://github.com/rclone/rclone.git \
32+
&& cd rclone \
33+
&& git checkout $VERSION_RCLONE \
34+
# Patch deps version in go.mod to fix CVEs
35+
&& sed -i "s|golang.org/x/crypto v.*|golang.org/x/crypto ${GO_CRYPTO_VERSION}|g" go.mod \
36+
&& go mod tidy \
37+
# Build rclone
38+
&& make \
39+
&& mv ~/go/bin/rclone /usr/local/bin/ \
40+
&& rclone version
41+
42+
#======================================
43+
# Install x264 from source
44+
#======================================
45+
RUN cd /usr/local/src \
46+
&& git clone https://code.videolan.org/videolan/x264.git \
47+
&& cd x264 \
48+
&& ./configure --prefix="/usr/local" --enable-static \
49+
&& make \
50+
&& make install
51+
52+
#======================================
53+
# Install FFmpeg from source
54+
#======================================
55+
RUN cd /usr/local/src \
56+
&& git clone https://github.com/FFmpeg/FFmpeg.git \
57+
&& cd FFmpeg \
58+
&& git checkout release/$VERSION_FFMPEG \
59+
&& PKG_CONFIG_PATH="/usr/local/lib/pkgconfig" ./configure \
60+
--prefix="/usr/local" \
61+
--extra-cflags="-I/usr/local/include" \
62+
--extra-ldflags="-L/usr/local/lib" \
63+
--pkg-config-flags="--static" \
64+
--enable-gpl \
65+
--enable-nonfree \
66+
--enable-libx264 \
67+
--enable-libxcb \
68+
--enable-static \
69+
&& make \
70+
&& make install
71+
72+
# Final stage
73+
FROM ubuntu:noble
74+
75+
USER root
76+
77+
COPY --from=builder /usr/local/bin/ffmpeg /usr/local/bin/ffmpeg
78+
COPY --from=builder /usr/local/bin/rclone /usr/local/bin/rclone
79+
80+
RUN apt-get -qqy update \
81+
&& apt-get -qqy --no-install-recommends install \
82+
libx11-dev libxcb-shm0 libxcb1-dev \
83+
&& rm -rf /var/lib/apt/lists/* /var/cache/apt/*
84+
85+
RUN ldd /usr/local/bin/ffmpeg \
86+
&& ffmpeg -version \
87+
&& rclone --version

.github/workflows/build-ffmpeg.yml

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
name: Build and Deploy FFmpeg
2+
3+
on:
4+
push:
5+
paths:
6+
- '.ffmpeg/Dockerfile'
7+
workflow_dispatch:
8+
inputs:
9+
release:
10+
description: 'Deploy a new release'
11+
required: false
12+
type: boolean
13+
default: false
14+
15+
jobs:
16+
deploy:
17+
name: Build and Deploy FFmpeg
18+
runs-on: blacksmith-8vcpu-ubuntu-2204
19+
permissions: write-all
20+
steps:
21+
- name: Checkout code
22+
uses: actions/checkout@main
23+
with:
24+
persist-credentials: false
25+
fetch-depth: 0
26+
- name: Set up containerd image store feature
27+
uses: nick-invision/retry@master
28+
with:
29+
timeout_minutes: 10
30+
max_attempts: 3
31+
command: |
32+
make setup_dev_env
33+
- name: Output Docker info
34+
run: docker info
35+
- name: Sets build date
36+
run: |
37+
echo "BUILD_DATE=$(date '+%Y%m%d')" >> $GITHUB_ENV
38+
echo "NAME=${NAMESPACE}" >> $GITHUB_ENV
39+
make set_build_multiarch
40+
cat .env | xargs -I {} echo {} >> $GITHUB_ENV
41+
env:
42+
NAMESPACE: ${{ vars.DOCKER_NAMESPACE || 'selenium' }}
43+
AUTHORS: ${{ vars.AUTHORS || 'SeleniumHQ' }}
44+
- name: Build images
45+
uses: nick-invision/retry@master
46+
with:
47+
timeout_minutes: 300
48+
max_attempts: 2
49+
retry_wait_seconds: 60
50+
command: |
51+
PLATFORMS="${PLATFORMS}" make ffmpeg
52+
make tag_ffmpeg_latest
53+
- name: Login Docker Hub
54+
if: ${{ github.event.inputs.release == 'true' }}
55+
run: docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD"
56+
env:
57+
DOCKER_USERNAME: ${{secrets.DOCKER_USERNAME}}
58+
DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}}
59+
- name: Deploy new images
60+
if: ${{ github.event.inputs.release == 'true' }}
61+
uses: nick-invision/retry@master
62+
with:
63+
timeout_minutes: 20
64+
max_attempts: 5
65+
retry_wait_seconds: 300
66+
continue_on_error: true
67+
command: |
68+
make release_ffmpeg_latest

.github/workflows/deploy.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ jobs:
194194
- name: Create Release
195195
if: env.LATEST_TAG != env.NEXT_TAG
196196
id: create_release
197-
uses: softprops/action-gh-release@master
197+
uses: softprops/action-gh-release@v2.1.0
198198
with:
199199
token: ${{ secrets.GITHUB_TOKEN }}
200200
tag_name: "${{ env.GRID_VERSION }}-${{ env.BUILD_DATE }}"

.github/workflows/nightly.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ jobs:
143143
command: make chart_release
144144
- name: Create Nightly Release
145145
id: create_release
146-
uses: softprops/action-gh-release@master
146+
uses: softprops/action-gh-release@v2.1.0
147147
with:
148148
token: ${{ secrets.GITHUB_TOKEN }}
149149
tag_name: ${{ env.BASE_RELEASE }}

Base/Dockerfile

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,14 @@ ENV DEBIAN_FRONTEND=noninteractive \
3535
SEL_GID=${GID} \
3636
HOME=${HOME} \
3737
TZ=${TZ} \
38-
SEL_DOWNLOAD_DIR=${HOME}/Downloads
38+
SEL_DOWNLOAD_DIR=${HOME}/Downloads \
39+
VIDEO_FOLDER="/videos"
3940

4041
#========================
4142
# Miscellaneous packages
4243
# Includes minimal runtime used for executing non GUI Java programs
4344
#========================
44-
RUN --mount=type=secret,id=SEL_PASSWD \
45-
if [ "$(dpkg --print-architecture)" = "amd64" ]; then \
45+
RUN if [ "$(dpkg --print-architecture)" = "amd64" ]; then \
4646
echo "deb http://archive.ubuntu.com/ubuntu noble main universe\n" > /etc/apt/sources.list \
4747
&& echo "deb http://archive.ubuntu.com/ubuntu noble-updates main universe\n" >> /etc/apt/sources.list \
4848
&& echo "deb http://security.ubuntu.com/ubuntu noble-security main universe\n" >> /etc/apt/sources.list ; \
@@ -52,6 +52,7 @@ RUN --mount=type=secret,id=SEL_PASSWD \
5252
&& apt-get -qqy --no-install-recommends install \
5353
acl \
5454
bzip2 \
55+
xz-utils \
5556
ca-certificates \
5657
tzdata \
5758
sudo \
@@ -62,15 +63,16 @@ RUN --mount=type=secret,id=SEL_PASSWD \
6263
supervisor \
6364
gnupg2 \
6465
libnss3-tools \
65-
python3-pip \
6666
openjdk-${JRE_VERSION}-jre-headless \
67-
&& if [ "${TARGETARCH}" = "arm" ] && [ "${TARGETVARIANT}" = "v7" ]; then \
67+
&& rm -rf /var/lib/apt/lists/* /var/cache/apt/*
68+
69+
RUN --mount=type=secret,id=SEL_PASSWD \
70+
if [ "${TARGETARCH}" = "arm" ] && [ "${TARGETVARIANT}" = "v7" ]; then \
6871
export ARCH=armhf ; \
6972
else \
7073
export ARCH=$(dpkg --print-architecture) ; \
7174
fi \
7275
&& sed -i 's/securerandom\.source=file:\/dev\/random/securerandom\.source=file:\/dev\/urandom/' /usr/lib/jvm/java-${JRE_VERSION}-openjdk-${ARCH}/conf/security/java.security \
73-
&& rm -rf /var/lib/apt/lists/* /var/cache/apt/* \
7476
#===================
7577
# Timezone settings
7678
# Possible alternative: https://github.com/docker/docker/issues/3359#issuecomment-32150214
@@ -95,18 +97,18 @@ RUN --mount=type=secret,id=SEL_PASSWD \
9597
# Selenium & relaxing permissions for OpenShift and other non-sudo environments
9698
#==========
9799
&& mkdir -p /opt/selenium /opt/selenium/assets /opt/selenium/secrets /var/run/supervisor /var/log/supervisor ${SEL_DOWNLOAD_DIR} \
98-
${HOME}/.mozilla ${HOME}/.vnc ${HOME}/.pki/nssdb \
100+
${HOME}/.mozilla ${HOME}/.vnc ${HOME}/.pki/nssdb ${VIDEO_FOLDER} \
99101
# NSSDB initialization with an empty password
100102
&& certutil -d sql:${HOME}/.pki/nssdb -N --empty-password \
101103
&& touch /opt/selenium/config.toml \
102-
&& chown -R ${SEL_USER}:${SEL_GROUP} /opt/selenium /var/run/supervisor /var/log/supervisor /etc/passwd ${HOME} \
103-
&& chmod -R 775 /opt/selenium /var/run/supervisor /var/log/supervisor /etc/passwd ${HOME} \
104+
&& chown -R ${SEL_USER}:${SEL_GROUP} /opt/selenium /var/run/supervisor /var/log/supervisor /etc/passwd ${HOME} ${VIDEO_FOLDER} \
105+
&& chmod -R 775 /opt/selenium /var/run/supervisor /var/log/supervisor /etc/passwd ${HOME} ${VIDEO_FOLDER} \
104106
&& wget --no-verbose https://github.com/${AUTHORS}/selenium/releases/download/${RELEASE}/selenium-server-${VERSION}.jar \
105107
-O /opt/selenium/selenium-server.jar \
106-
&& chgrp -R 0 /opt/selenium ${HOME} /opt/selenium/assets /var/run/supervisor /var/log/supervisor \
107-
&& chmod -R g=u /opt/selenium ${HOME} /opt/selenium/assets /var/run/supervisor /var/log/supervisor \
108-
&& setfacl -Rm u:${SEL_USER}:rwx /opt /opt/selenium ${HOME} /opt/selenium/assets /var/run/supervisor /var/log/supervisor \
109-
&& setfacl -Rm g:${SEL_GROUP}:rwx /opt /opt/selenium ${HOME} /opt/selenium/assets /var/run/supervisor /var/log/supervisor \
108+
&& chgrp -R 0 /opt/selenium ${HOME} ${VIDEO_FOLDER} /opt/selenium/assets /var/run/supervisor /var/log/supervisor \
109+
&& chmod -R g=u /opt/selenium ${HOME} ${VIDEO_FOLDER} /opt/selenium/assets /var/run/supervisor /var/log/supervisor \
110+
&& setfacl -Rm u:${SEL_USER}:rwx /opt /opt/selenium ${HOME} ${VIDEO_FOLDER} /opt/selenium/assets /var/run/supervisor /var/log/supervisor \
111+
&& setfacl -Rm g:${SEL_GROUP}:rwx /opt /opt/selenium ${HOME} ${VIDEO_FOLDER} /opt/selenium/assets /var/run/supervisor /var/log/supervisor \
110112
#=====
111113
# Download observability related OpenTelemetry jars and make them available in a separate directory
112114
# so that the container can skip downloading them everytime it comes up

Makefile

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,11 @@ BUILD_ARGS := $(BUILD_ARGS) --progress plain
1717
MAJOR := $(word 1,$(subst ., ,$(TAG_VERSION)))
1818
MINOR := $(word 2,$(subst ., ,$(TAG_VERSION)))
1919
MAJOR_MINOR_PATCH := $(word 1,$(subst -, ,$(TAG_VERSION)))
20+
FFMPEG_VERSION := $(or $(FFMPEG_VERSION),$(FFMPEG_VERSION),7.1)
2021
FFMPEG_TAG_PREV_VERSION := $(or $(FFMPEG_TAG_PREV_VERSION),$(FFMPEG_TAG_PREV_VERSION),ffmpeg-7.1)
2122
FFMPEG_TAG_VERSION := $(or $(FFMPEG_TAG_VERSION),$(FFMPEG_TAG_VERSION),ffmpeg-7.1)
22-
FFMPEG_BASED_NAME := $(or $(FFMPEG_BASED_NAME),$(FFMPEG_BASED_NAME),linuxserver)
23-
FFMPEG_BASED_TAG := $(or $(FFMPEG_BASED_TAG),$(FFMPEG_BASED_TAG),version-7.1-cli)
23+
FFMPEG_BASED_NAME := $(or $(FFMPEG_BASED_NAME),$(FFMPEG_BASED_NAME),selenium)
24+
FFMPEG_BASED_TAG := $(or $(FFMPEG_BASED_TAG),$(FFMPEG_BASED_TAG),latest)
2425
CURRENT_PLATFORM := $(shell if [ `arch` = "aarch64" ] || [ `arch` = "arm64" ]; then echo "linux/arm64"; else echo "linux/amd64"; fi)
2526
PLATFORMS := $(or $(PLATFORMS),$(shell echo $$PLATFORMS),$(CURRENT_PLATFORM))
2627
SEL_PASSWD := $(or $(SEL_PASSWD),$(SEL_PASSWD),secret)
@@ -143,8 +144,8 @@ sessionqueue: base
143144
event_bus: base
144145
cd ./EventBus && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/event-bus:$(TAG_VERSION) .
145146

146-
node_base: base
147-
cd ./NodeBase && SEL_PASSWD=$(SEL_PASSWD) docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --secret id=SEL_PASSWD -t $(NAME)/node-base:$(TAG_VERSION) .
147+
node_base: base video
148+
cd ./NodeBase && SEL_PASSWD=$(SEL_PASSWD) docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg BASE=video --build-arg VERSION=$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) --secret id=SEL_PASSWD -t $(NAME)/node-base:$(TAG_VERSION) .
148149

149150
chrome: node_base
150151
case "$(PLATFORMS)" in \
@@ -187,7 +188,7 @@ firefox: node_base
187188
cd ./NodeFirefox && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg FIREFOX_DOWNLOAD_URL=$(FIREFOX_DOWNLOAD_URL) -t $(NAME)/node-firefox:$(TAG_VERSION) .
188189

189190
firefox_dev:
190-
cd ./NodeFirefox && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg FIREFOX_VERSION=nightly-latest -t $(NAME)/node-firefox:dev .
191+
cd ./NodeFirefox && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg FIREFOX_VERSION=devedition-latest -t $(NAME)/node-firefox:dev .
191192

192193
firefox_beta:
193194
cd ./NodeFirefox && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg FIREFOX_VERSION=beta-latest -t $(NAME)/node-firefox:beta .
@@ -244,8 +245,11 @@ standalone_edge_dev: edge_dev
244245
standalone_edge_beta: edge_beta
245246
cd ./Standalone && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) --build-arg NAMESPACE=$(NAME) --build-arg VERSION=beta --build-arg BASE=node-edge -t $(NAME)/standalone-edge:beta .
246247

247-
video:
248-
cd ./Video && SEL_PASSWD=$(SEL_PASSWD) docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) --build-arg NAMESPACE=$(FFMPEG_BASED_NAME) --build-arg BASED_TAG=$(FFMPEG_BASED_TAG) --secret id=SEL_PASSWD --sbom=true --attest type=provenance,mode=max -t $(NAME)/video:$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) .
248+
video: base
249+
cd ./Video && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) --build-arg FFMPEG_BASED_NAME=$(FFMPEG_BASED_NAME) --build-arg FFMPEG_BASED_TAG=$(FFMPEG_BASED_TAG) $(FROM_IMAGE_ARGS) -t $(NAME)/video:$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) .
250+
251+
ffmpeg:
252+
cd ./.ffmpeg && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) --build-arg VERSION_FFMPEG=$(FFMPEG_VERSION) $(FROM_IMAGE_ARGS) -t $(NAME)/ffmpeg:$(FFMPEG_VERSION)-$(BUILD_DATE) .
249253

250254
fetch_grid_scaler_resources:
251255
mkdir -p ./.keda/scalers \
@@ -332,6 +336,10 @@ tag_and_push_edge_images:
332336
tag_and_push_firefox_images:
333337
./tag_and_push_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) firefox
334338

339+
tag_ffmpeg_latest:
340+
docker tag $(NAME)/ffmpeg:$(FFMPEG_VERSION)-$(BUILD_DATE) $(NAME)/ffmpeg:latest
341+
docker tag $(NAME)/ffmpeg:$(FFMPEG_VERSION)-$(BUILD_DATE) $(NAME)/ffmpeg:$(FFMPEG_VERSION)
342+
335343
tag_latest:
336344
docker tag $(NAME)/base:$(TAG_VERSION) $(NAME)/base:latest
337345
docker tag $(NAME)/hub:$(TAG_VERSION) $(NAME)/hub:latest
@@ -353,6 +361,11 @@ tag_latest:
353361
docker tag $(NAME)/standalone-docker:$(TAG_VERSION) $(NAME)/standalone-docker:latest
354362
docker tag $(NAME)/video:$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) $(NAME)/video:latest
355363

364+
release_ffmpeg_latest:
365+
docker push $(NAME)/ffmpeg:latest
366+
docker push $(NAME)/ffmpeg:$(FFMPEG_VERSION)
367+
docker push $(NAME)/ffmpeg:$(FFMPEG_VERSION)-$(BUILD_DATE)
368+
356369
release_latest: release_grid_scaler_latest
357370
docker push $(NAME)/base:latest
358371
docker push $(NAME)/hub:latest

NodeBase/Dockerfile

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
ARG NAMESPACE=selenium
22
ARG VERSION=latest
3-
FROM ${NAMESPACE}/base:${VERSION}
3+
ARG BASE=base
4+
FROM ${NAMESPACE}/${BASE}:${VERSION}
45
ARG AUTHORS
56
LABEL authors=${AUTHORS}
67

@@ -49,6 +50,8 @@ ENV LANG_WHICH=${LANG_WHICH} \
4950
#============================
5051
# Some configuration options
5152
#============================
53+
SE_RECORD_VIDEO=false \
54+
DISPLAY_CONTAINER_NAME="localhost" \
5255
SE_SCREEN_WIDTH=1920 \
5356
SE_SCREEN_HEIGHT=1080 \
5457
SE_SCREEN_DEPTH=24 \
@@ -66,8 +69,7 @@ ENV LANG_WHICH=${LANG_WHICH} \
6669
# Following line fixes https://github.com/SeleniumHQ/docker-selenium/issues/87
6770
DBUS_SESSION_BUS_ADDRESS=/dev/null
6871

69-
RUN --mount=type=secret,id=SEL_PASSWD \
70-
apt-get update -qqy \
72+
RUN apt-get update -qqy \
7173
&& apt-get -qqy --no-install-recommends install \
7274
#==============
7375
# Xvfb
@@ -102,13 +104,13 @@ RUN --mount=type=secret,id=SEL_PASSWD \
102104
&& locale-gen ${LANGUAGE} \
103105
&& dpkg-reconfigure --frontend noninteractive locales \
104106
&& apt-get -qyy autoremove \
105-
&& rm -rf /var/lib/apt/lists/* \
106-
&& apt-get -qyy clean \
107-
&& pip install --no-cache-dir --upgrade --break-system-packages setuptools \
107+
&& rm -rf /var/lib/apt/lists/* /var/cache/apt/* \
108+
&& apt-get -qyy clean
108109
########################################
109110
# noVNC exposes VNC through a web page #
110111
########################################
111-
&& wget -nv -O noVNC.zip \
112+
RUN --mount=type=secret,id=SEL_PASSWD \
113+
wget -nv -O noVNC.zip \
112114
"https://github.com/novnc/noVNC/archive/refs/${NOVNC_SOURCE}/${NOVNC_VERSION}.zip" \
113115
&& unzip -x noVNC.zip \
114116
&& mv noVNC-${NOVNC_VERSION#v} /opt/bin/noVNC \
@@ -120,7 +122,7 @@ RUN --mount=type=secret,id=SEL_PASSWD \
120122
&& rm websockify.zip \
121123
# Setup dependencies
122124
&& cd websockify-${WEBSOCKIFY_VERSION#v} \
123-
&& python3 setup.py install \
125+
&& python3 -m pip install --break-system-packages . \
124126
# Move websockify and run to the noVNC directory
125127
&& mv websockify /opt/bin/noVNC/utils/websockify \
126128
&& mv run /opt/bin/noVNC/utils/websockify \

NodeChrome/Dockerfile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
ARG NAMESPACE=selenium
22
ARG VERSION=latest
3-
FROM ${NAMESPACE}/node-base:${VERSION}
3+
ARG BASE=node-base
4+
FROM ${NAMESPACE}/${BASE}:${VERSION}
45
ARG AUTHORS
56
LABEL authors=${AUTHORS}
67

NodeChromium/Dockerfile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
ARG NAMESPACE=selenium
22
ARG VERSION=latest
3-
FROM ${NAMESPACE}/node-base:${VERSION}
3+
ARG BASE=node-base
4+
FROM ${NAMESPACE}/${BASE}:${VERSION}
45
ARG AUTHORS
56
LABEL authors=${AUTHORS}
67

NodeEdge/Dockerfile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
ARG NAMESPACE=selenium
22
ARG VERSION=latest
3-
FROM ${NAMESPACE}/node-base:${VERSION}
3+
ARG BASE=node-base
4+
FROM ${NAMESPACE}/${BASE}:${VERSION}
45
ARG AUTHORS
56
LABEL authors=${AUTHORS}
67

0 commit comments

Comments
 (0)