Skip to content

Commit d2255b8

Browse files
committed
Build FFmpeg
Signed-off-by: Viet Nguyen Duc <[email protected]>
1 parent 7c2ca27 commit d2255b8

File tree

9 files changed

+179
-137
lines changed

9 files changed

+179
-137
lines changed

.ffmpeg/Dockerfile

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

Base/Dockerfile

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,18 +52,19 @@ RUN if [ "$(dpkg --print-architecture)" = "amd64" ]; then \
5252
&& apt-get -qqy --no-install-recommends install \
5353
acl \
5454
bzip2 \
55-
ca-certificates \
55+
unzip \
56+
xz-utils \
5657
tzdata \
5758
sudo \
58-
unzip \
5959
wget \
6060
jq \
6161
curl \
6262
supervisor \
6363
gnupg2 \
64+
ca-certificates \
6465
libnss3-tools \
65-
python3-pip \
66-
openjdk-${JRE_VERSION}-jre-headless
66+
openjdk-${JRE_VERSION}-jre-headless \
67+
&& rm -rf /var/lib/apt/lists/* /var/cache/apt/*
6768

6869
RUN --mount=type=secret,id=SEL_PASSWD \
6970
if [ "${TARGETARCH}" = "arm" ] && [ "${TARGETVARIANT}" = "v7" ]; then \
@@ -72,7 +73,6 @@ RUN --mount=type=secret,id=SEL_PASSWD \
7273
export ARCH=$(dpkg --print-architecture) ; \
7374
fi \
7475
&& 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 \
75-
&& rm -rf /var/lib/apt/lists/* /var/cache/apt/* \
7676
#===================
7777
# Timezone settings
7878
# Possible alternative: https://github.com/docker/docker/issues/3359#issuecomment-32150214

Makefile

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ MAJOR_MINOR_PATCH := $(word 1,$(subst -, ,$(TAG_VERSION)))
2020
FFMPEG_VERSION := $(or $(FFMPEG_VERSION),$(FFMPEG_VERSION),7.1)
2121
FFMPEG_TAG_PREV_VERSION := $(or $(FFMPEG_TAG_PREV_VERSION),$(FFMPEG_TAG_PREV_VERSION),ffmpeg-7.1)
2222
FFMPEG_TAG_VERSION := $(or $(FFMPEG_TAG_VERSION),$(FFMPEG_TAG_VERSION),ffmpeg-7.1)
23-
FFMPEG_BASED_NAME := $(or $(FFMPEG_BASED_NAME),$(FFMPEG_BASED_NAME),linuxserver)
24-
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)
2525
CURRENT_PLATFORM := $(shell if [ `arch` = "aarch64" ] || [ `arch` = "arm64" ]; then echo "linux/arm64"; else echo "linux/amd64"; fi)
2626
PLATFORMS := $(or $(PLATFORMS),$(shell echo $$PLATFORMS),$(CURRENT_PLATFORM))
2727
SEL_PASSWD := $(or $(SEL_PASSWD),$(SEL_PASSWD),secret)
@@ -144,8 +144,8 @@ sessionqueue: base
144144
event_bus: base
145145
cd ./EventBus && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/event-bus:$(TAG_VERSION) .
146146

147-
node_base: base
148-
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) .
149149

150150
chrome: node_base
151151
case "$(PLATFORMS)" in \
@@ -246,7 +246,10 @@ standalone_edge_beta: edge_beta
246246
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 .
247247

248248
video: base
249-
cd ./Video && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) --build-arg VERSION_FFMPEG=$(FFMPEG_VERSION) $(FROM_IMAGE_ARGS) -t $(NAME)/video:$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) .
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) .
250253

251254
fetch_grid_scaler_resources:
252255
mkdir -p ./.keda/scalers \
@@ -333,6 +336,10 @@ tag_and_push_edge_images:
333336
tag_and_push_firefox_images:
334337
./tag_and_push_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) firefox
335338

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+
336343
tag_latest:
337344
docker tag $(NAME)/base:$(TAG_VERSION) $(NAME)/base:latest
338345
docker tag $(NAME)/hub:$(TAG_VERSION) $(NAME)/hub:latest
@@ -354,6 +361,11 @@ tag_latest:
354361
docker tag $(NAME)/standalone-docker:$(TAG_VERSION) $(NAME)/standalone-docker:latest
355362
docker tag $(NAME)/video:$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) $(NAME)/video:latest
356363

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+
357369
release_latest: release_grid_scaler_latest
358370
docker push $(NAME)/base:latest
359371
docker push $(NAME)/hub:latest

NodeBase/Dockerfile

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ ENV LANG_WHICH=${LANG_WHICH} \
5050
#============================
5151
# Some configuration options
5252
#============================
53+
SE_RECORD_VIDEO=false \
54+
DISPLAY_CONTAINER_NAME="localhost" \
5355
SE_SCREEN_WIDTH=1920 \
5456
SE_SCREEN_HEIGHT=1080 \
5557
SE_SCREEN_DEPTH=24 \
@@ -102,9 +104,8 @@ RUN apt-get update -qqy \
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
########################################
@@ -121,7 +122,7 @@ RUN --mount=type=secret,id=SEL_PASSWD \
121122
&& rm websockify.zip \
122123
# Setup dependencies
123124
&& cd websockify-${WEBSOCKIFY_VERSION#v} \
124-
&& python3 setup.py install \
125+
&& python3 -m pip install --break-system-packages . \
125126
# Move websockify and run to the noVNC directory
126127
&& mv websockify /opt/bin/noVNC/utils/websockify \
127128
&& mv run /opt/bin/noVNC/utils/websockify \

NodeFirefox/Dockerfile

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,32 +10,42 @@ USER root
1010
#============================================
1111
# Firefox cleanup script and supervisord file
1212
#============================================
13-
COPY --chown="${SEL_UID}:${SEL_GID}" firefox-cleanup.sh get_lang_package.sh /opt/bin/
13+
COPY --chown="${SEL_UID}:${SEL_GID}" firefox-cleanup.sh get_lang_package.sh install-firefox-apt.sh /opt/bin/
1414
COPY --chown="${SEL_UID}:${SEL_GID}" firefox-cleanup.conf /etc/supervisor/conf.d/firefox-cleanup.conf
15-
RUN chmod +x /opt/bin/firefox-cleanup.sh /opt/bin/get_lang_package.sh
15+
RUN chmod +x /opt/bin/firefox-cleanup.sh /opt/bin/get_lang_package.sh /opt/bin/install-firefox-apt.sh
1616

1717
#=========
1818
# Firefox
1919
#=========
2020
ARG FIREFOX_VERSION=latest
2121
ARG FIREFOX_DOWNLOAD_URL="https://download.mozilla.org/?product=firefox-nightly-latest-ssl&os=linux64-aarch64&lang=en-US"
22-
RUN if [ "$(dpkg --print-architecture)" = "amd64" ]; then \
23-
FIREFOX_DOWNLOAD_URL=$(if [ $FIREFOX_VERSION = "latest" ] || [ $FIREFOX_VERSION = "beta-latest" ] || [ $FIREFOX_VERSION = "nightly-latest" ] || [ $FIREFOX_VERSION = "devedition-latest" ] || [ $FIREFOX_VERSION = "esr-latest" ]; then echo "https://download.mozilla.org/?product=firefox-$FIREFOX_VERSION-ssl&os=linux64&lang=en-US"; else echo "https://download-installer.cdn.mozilla.net/pub/firefox/releases/$FIREFOX_VERSION/linux-x86_64/en-US/firefox-$FIREFOX_VERSION.tar.bz2"; fi) ; \
22+
RUN apt-get update -qqy && \
23+
if [ "$(dpkg --print-architecture)" = "amd64" ]; then \
24+
if [ $FIREFOX_VERSION = "latest" ] || [ $FIREFOX_VERSION = "beta-latest" ] || [ $FIREFOX_VERSION = "nightly-latest" ] || [ $FIREFOX_VERSION = "devedition-latest" ] || [ $FIREFOX_VERSION = "esr-latest" ]; then \
25+
FIREFOX_DOWNLOAD_URL="https://download.mozilla.org/?product=firefox-$FIREFOX_VERSION-ssl&os=linux64&lang=en-US"; \
26+
/opt/bin/install-firefox-apt.sh \
27+
&& FIREFOX_VERSION=$(echo "-$FIREFOX_VERSION" | sed 's/-latest//') \
28+
&& apt install -y firefox$FIREFOX_VERSION \
29+
&& INSTALL_VIA_APT=true ; \
2430
else \
25-
FIREFOX_DOWNLOAD_URL="${FIREFOX_DOWNLOAD_URL}" ; \
31+
FIREFOX_DOWNLOAD_URL="https://download-installer.cdn.mozilla.net/pub/firefox/releases/$FIREFOX_VERSION/linux-x86_64/en-US/firefox-$FIREFOX_VERSION.tar.bz2" ; \
2632
fi \
27-
&& apt-get update -qqy \
28-
&& apt-get -qqy --no-install-recommends install libavcodec-extra libgtk-3-dev libdbus-glib-1-dev xz-utils \
29-
&& rm -rf /var/lib/apt/lists/* /var/cache/apt/* \
30-
&& wget --no-verbose -O /tmp/firefox.tar.bz2 $FIREFOX_DOWNLOAD_URL \
31-
&& rm -rf /opt/firefox \
32-
&& tar -C /opt -xjf /tmp/firefox.tar.bz2 || (mv /tmp/firefox.tar.bz2 /tmp/firefox.tar.xz && tar -C /opt -xJf /tmp/firefox.tar.xz) \
33-
&& rm -rf /tmp/firefox.tar.bz2 /tmp/firefox.tar.xz \
34-
&& mv /opt/firefox /opt/firefox-$FIREFOX_VERSION \
35-
&& mkdir -p /opt/firefox-$FIREFOX_VERSION/distribution/extensions \
36-
&& ln -fs /opt/firefox-$FIREFOX_VERSION/firefox /usr/bin/firefox \
33+
else \
34+
FIREFOX_DOWNLOAD_URL="${FIREFOX_DOWNLOAD_URL}" ; \
35+
fi && \
36+
if [ "$INSTALL_VIA_APT" != "true" ]; then \
37+
apt-get -qqy --no-install-recommends install libavcodec-extra libgtk-3-dev libdbus-glib-1-dev xz-utils \
38+
&& wget --no-verbose -O /tmp/firefox.tar.bz2 $FIREFOX_DOWNLOAD_URL \
39+
&& rm -rf /opt/firefox \
40+
&& tar -C /opt -xjf /tmp/firefox.tar.bz2 || (mv /tmp/firefox.tar.bz2 /tmp/firefox.tar.xz && tar -C /opt -xJf /tmp/firefox.tar.xz) \
41+
&& rm -rf /tmp/firefox.tar.bz2 /tmp/firefox.tar.xz \
42+
&& mv /opt/firefox /opt/firefox-$FIREFOX_VERSION \
43+
&& mkdir -p /opt/firefox-$FIREFOX_VERSION/distribution/extensions \
44+
&& ln -fs /opt/firefox-$FIREFOX_VERSION/firefox /usr/bin/firefox ; \
45+
fi \
3746
# Download the language pack for Firefox
38-
&& /opt/bin/get_lang_package.sh
47+
&& /opt/bin/get_lang_package.sh \
48+
&& rm -rf /var/lib/apt/lists/* /var/cache/apt/*
3949

4050
#============
4151
# GeckoDriver

NodeFirefox/install-firefox-apt.sh

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#!/bin/bash
2+
3+
install -d -m 0755 /etc/apt/keyrings
4+
5+
wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- | sudo tee /etc/apt/keyrings/packages.mozilla.org.asc >/dev/null
6+
7+
gpg -n -q --import --import-options import-show /etc/apt/keyrings/packages.mozilla.org.asc | awk '/pub/{getline; gsub(/^ +| +$/,""); if($0 == "35BAA0B33E9EB396F59CA838C0BA5CE6DC6315A3") print "\nThe key fingerprint matches ("$0").\n"; else print "\nVerification failed: the fingerprint ("$0") does not match the expected one.\n"}'
8+
9+
echo "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" | sudo tee -a /etc/apt/sources.list.d/mozilla.list >/dev/null
10+
11+
echo '
12+
Package: *
13+
Pin: origin packages.mozilla.org
14+
Pin-Priority: 1000
15+
' | sudo tee /etc/apt/preferences.d/mozilla
16+
17+
sudo apt-get update

Video/Dockerfile

Lines changed: 10 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -1,71 +1,9 @@
11
ARG NAMESPACE=selenium
22
ARG BASE=base
33
ARG VERSION=latest
4-
FROM ${NAMESPACE}/${BASE}:${VERSION} AS builder
5-
ARG VERSION_FFMPEG="7.1"
6-
ARG VERSION_RCLONE="v1.68.2"
7-
ARG VERSION_GO="1.23.3"
8-
9-
USER root
10-
11-
#======================================
12-
# Install build tools
13-
#======================================
14-
ARG TOOLS_DEPS="autoconf automake cmake libfreetype6 gcc build-essential libtool make nasm pkg-config zlib1g-dev numactl \
15-
libnuma-dev libx11-6 libxcb1 libxcb1-dev yasm git"
16-
17-
RUN apt-get update -qqy \
18-
&& apt-get -qqy --no-install-recommends install ${TOOLS_DEPS} \
19-
&& apt-get -qyy clean \
20-
&& mkdir -p /usr/local/src
21-
22-
RUN curl -sLO https://go.dev/dl/go$VERSION_GO.linux-$(dpkg --print-architecture).tar.gz \
23-
&& tar -xf go$VERSION_GO.linux-$(dpkg --print-architecture).tar.gz -C /usr/local \
24-
&& rm -rf go$VERSION_GO.linux-$(dpkg --print-architecture).tar.gz* \
25-
&& ln -sf /usr/local/go/bin/go /usr/bin/go \
26-
&& go version
27-
28-
RUN cd /usr/local/src \
29-
&& git clone https://github.com/rclone/rclone.git \
30-
&& cd rclone \
31-
&& git checkout $VERSION_RCLONE \
32-
&& make \
33-
&& mv ~/go/bin/rclone /usr/local/bin/ \
34-
&& rclone version
35-
36-
#======================================
37-
# Install x264 from source
38-
#======================================
39-
RUN cd /usr/local/src \
40-
&& git clone https://code.videolan.org/videolan/x264.git \
41-
&& cd x264 \
42-
&& ./configure --prefix="/usr/local" --enable-static \
43-
&& make \
44-
&& make install
45-
46-
#======================================
47-
# Install FFmpeg from source
48-
#======================================
49-
RUN cd /usr/local/src \
50-
&& git clone https://github.com/FFmpeg/FFmpeg.git \
51-
&& cd FFmpeg \
52-
&& git checkout release/$VERSION_FFMPEG \
53-
&& PKG_CONFIG_PATH="/usr/local/lib/pkgconfig" ./configure \
54-
--prefix="/usr/local" \
55-
--extra-cflags="-I/usr/local/include" \
56-
--extra-ldflags="-L/usr/local/lib" \
57-
--pkg-config-flags="--static" \
58-
--enable-gpl \
59-
--enable-nonfree \
60-
--enable-libx264 \
61-
--enable-libxcb \
62-
&& make \
63-
&& make install
64-
65-
RUN rm -rf /usr/local/src/* \
66-
&& rm -rf /usr/local/go \
67-
&& apt-get remove -y ${TOOLS_DEPS} \
68-
&& apt-get -qyy autoremove
4+
ARG FFMPEG_BASED_NAME=selenium
5+
ARG FFMPEG_BASED_TAG=latest
6+
FROM ${FFMPEG_BASED_NAME}/ffmpeg:${FFMPEG_BASED_TAG} AS source
697

708
# Final stage
719
FROM ${NAMESPACE}/${BASE}:${VERSION}
@@ -74,27 +12,29 @@ LABEL authors=${AUTHORS}
7412

7513
USER root
7614

77-
COPY --from=builder /usr/local /usr/local
15+
COPY --from=source /usr/local/bin/ffmpeg /usr/local/bin/ffmpeg
16+
COPY --from=source /usr/local/bin/rclone /usr/local/bin/rclone
7817

7918
RUN apt-get -qqy update \
8019
&& apt-get -qqy --no-install-recommends install \
8120
libx11-6 libxcb1 libxcb-shm0 \
82-
x11-xserver-utils x11-utils python3-psutil \
83-
&& pip install --no-cache-dir --upgrade --break-system-packages setuptools \
21+
x11-xserver-utils x11-utils \
22+
python3-pip \
23+
&& pip install --break-system-packages --no-cache-dir setuptools psutil \
8424
&& rm -rf /var/lib/apt/lists/* /var/cache/apt/*
8525

8626
COPY *.conf /etc/supervisor/conf.d/
8727
COPY --chown="${SEL_UID}:${SEL_GID}" *.sh video_ready.py /opt/bin/
8828

8929
USER ${SEL_UID}
9030

91-
RUN ldd /usr/local/bin/ffmpeg \
92-
&& /usr/local/bin/ffmpeg -version \
31+
RUN ffmpeg -version \
9332
&& rclone --version \
9433
&& touch /opt/selenium/upload.conf
9534

9635
ENV DISPLAY_NUM=99 \
9736
DISPLAY_CONTAINER_NAME="selenium" \
37+
SE_RECORD_VIDEO=true \
9838
SE_SERVER_PROTOCOL="http" \
9939
SE_VIDEO_POLL_INTERVAL=1 \
10040
SE_SCREEN_WIDTH=1920 \

0 commit comments

Comments
 (0)