Skip to content

Commit 75c70ea

Browse files
authored
Docker: Install Firefox from multiple package types (#2547)
1 parent 3902799 commit 75c70ea

File tree

3 files changed

+53
-16
lines changed

3 files changed

+53
-16
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ CURRENT_PLATFORM := $(shell if [ `arch` = "aarch64" ] || [ `arch` = "arm64" ]; t
2626
PLATFORMS := $(or $(PLATFORMS),$(shell echo $$PLATFORMS),$(CURRENT_PLATFORM))
2727
SEL_PASSWD := $(or $(SEL_PASSWD),$(SEL_PASSWD),secret)
2828
CHROMIUM_VERSION := $(or $(CHROMIUM_VERSION),$(CHROMIUM_VERSION),latest)
29-
FIREFOX_DOWNLOAD_URL := $(or $(FIREFOX_DOWNLOAD_URL),$(FIREFOX_DOWNLOAD_URL),https://download-installer.cdn.mozilla.net/pub/firefox/nightly/2024/10/2024-10-28-09-56-35-mozilla-central/firefox-133.0a1.en-US.linux-aarch64.tar.bz2)
29+
FIREFOX_DOWNLOAD_URL := $(or $(FIREFOX_DOWNLOAD_URL),$(FIREFOX_DOWNLOAD_URL),https://download-installer.cdn.mozilla.net/pub/firefox/nightly/2024/10/2024-10-28-09-56-35-mozilla-central/firefox-133.0a1.en-US.linux-aarch64.deb)
3030
SBOM_OUTPUT := $(or $(SBOM_OUTPUT),$(SBOM_OUTPUT),package_versions.txt)
3131
KEDA_TAG_PREV_VERSION := $(or $(KEDA_TAG_PREV_VERSION),$(KEDA_TAG_PREV_VERSION),2.16.1-selenium-grid)
3232
KEDA_CORE_VERSION := $(or $(KEDA_CORE_VERSION),$(KEDA_CORE_VERSION),2.16.1)

NodeFirefox/Dockerfile

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,18 @@ 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 install-firefox-apt.sh /opt/bin/
13+
COPY --chown="${SEL_UID}:${SEL_GID}" firefox-cleanup.sh get_lang_package.sh install-firefox-apt.sh install-firefox-package.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 /opt/bin/install-firefox-apt.sh
15+
RUN chmod +x /opt/bin/firefox-cleanup.sh /opt/bin/get_lang_package.sh /opt/bin/install-firefox-apt.sh /opt/bin/install-firefox-package.sh
1616

1717
#=========
1818
# Firefox
1919
#=========
2020
ARG FIREFOX_VERSION=latest
21-
ARG FIREFOX_DOWNLOAD_URL="https://download.mozilla.org/?product=firefox-nightly-latest-ssl&os=linux64-aarch64&lang=en-US"
21+
ARG FIREFOX_DOWNLOAD_URL=""
2222
RUN apt-get update -qqy && \
2323
if [ "$(dpkg --print-architecture)" = "amd64" ]; then \
2424
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"; \
2625
/opt/bin/install-firefox-apt.sh \
2726
&& FIREFOX_VERSION=$(echo "-$FIREFOX_VERSION" | sed 's/-latest//') \
2827
&& apt install -y firefox$FIREFOX_VERSION \
@@ -31,10 +30,11 @@ RUN apt-get update -qqy && \
3130
ln -fs $(which firefox$FIREFOX_VERSION) /usr/bin/firefox ; \
3231
fi ; \
3332
else \
34-
FIREFOX_DOWNLOAD_URL="https://download-installer.cdn.mozilla.net/pub/firefox/releases/$FIREFOX_VERSION/linux-x86_64/en-US/firefox-$FIREFOX_VERSION.tar.bz2" ; \
33+
FIREFOX_DOWNLOAD_URL="https://download-installer.cdn.mozilla.net/pub/firefox/releases/$FIREFOX_VERSION/linux-x86_64/en-US/firefox-$FIREFOX_VERSION.deb" ; \
3534
fi \
3635
else \
37-
if [ $FIREFOX_VERSION = "nightly-latest" ]; then \
36+
if [ $FIREFOX_VERSION = "latest" ]; then \
37+
FIREFOX_VERSION="nightly-latest" ; \
3838
/opt/bin/install-firefox-apt.sh \
3939
&& FIREFOX_VERSION=$(echo "-$FIREFOX_VERSION" | sed 's/-latest//') \
4040
&& apt install -y firefox$FIREFOX_VERSION \
@@ -46,15 +46,8 @@ RUN apt-get update -qqy && \
4646
FIREFOX_DOWNLOAD_URL="${FIREFOX_DOWNLOAD_URL}" ; \
4747
fi ; \
4848
fi && \
49-
if [ "$INSTALL_VIA_APT" != "true" ]; then \
50-
apt-get -qqy --no-install-recommends install libavcodec-extra libgtk-3-dev libdbus-glib-1-dev xz-utils \
51-
&& wget --no-verbose -O /tmp/firefox.tar.bz2 $FIREFOX_DOWNLOAD_URL \
52-
&& rm -rf /opt/firefox \
53-
&& 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) \
54-
&& rm -rf /tmp/firefox.tar.bz2 /tmp/firefox.tar.xz \
55-
&& mv /opt/firefox /opt/firefox-$FIREFOX_VERSION \
56-
&& mkdir -p /opt/firefox-$FIREFOX_VERSION/distribution/extensions \
57-
&& ln -fs /opt/firefox-$FIREFOX_VERSION/firefox /usr/bin/firefox ; \
49+
if [ "${INSTALL_VIA_APT}" != "true" ]; then \
50+
/opt/bin/install-firefox-package.sh "${FIREFOX_DOWNLOAD_URL}" "${FIREFOX_VERSION}" ; \
5851
fi \
5952
# Download the language pack for Firefox
6053
&& /opt/bin/get_lang_package.sh \
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
#!/bin/bash
2+
3+
FIREFOX_DOWNLOAD_URL=$1
4+
FIREFOX_VERSION=$2
5+
6+
function extract_package_tar_bz2() {
7+
sudo rm -rf /opt/firefox
8+
tar -C /opt -xjf /tmp/firefox.tar.bz2
9+
rm -rf /tmp/firefox.tar.bz2
10+
}
11+
12+
function extract_package_tar_xz() {
13+
sudo rm -rf /opt/firefox
14+
tar -C /opt -xJf /tmp/firefox.tar.xz
15+
rm -rf /tmp/firefox.tar.xz
16+
}
17+
18+
function install_package() {
19+
sudo apt-get -qqy --no-install-recommends install libavcodec-extra libgtk-3-dev libdbus-glib-1-dev xz-utils
20+
echo "Installing Firefox from package..."
21+
sudo mv /opt/firefox "/opt/firefox-${FIREFOX_VERSION}"
22+
sudo mkdir -p "/opt/firefox-${FIREFOX_VERSION}/distribution/extensions"
23+
sudo ln -fs "/opt/firefox-${FIREFOX_VERSION}/firefox" /usr/bin/firefox
24+
}
25+
26+
if [[ "${FIREFOX_DOWNLOAD_URL}" == *".deb"* ]]; then
27+
echo "Downloading Firefox from ${FIREFOX_DOWNLOAD_URL}"
28+
wget -q -O /tmp/firefox.deb "${FIREFOX_DOWNLOAD_URL}"
29+
echo "Installing Firefox from deb package..."
30+
sudo apt-get install -y --allow-downgrades -f /tmp/firefox.deb
31+
rm -f /tmp/firefox.deb
32+
elif [[ "${FIREFOX_DOWNLOAD_URL}" == *".tar.bz2"* ]]; then
33+
echo "Downloading Firefox from ${FIREFOX_DOWNLOAD_URL}"
34+
wget -q -O /tmp/firefox.tar.bz2 "${FIREFOX_DOWNLOAD_URL}"
35+
extract_package_tar_bz2
36+
install_package
37+
rm -f /tmp/firefox.tar.bz2
38+
elif [[ "${FIREFOX_DOWNLOAD_URL}" == *".tar.xz"* ]]; then
39+
echo "Downloading Firefox from ${FIREFOX_DOWNLOAD_URL}"
40+
wget -q -O /tmp/firefox.tar.xz "${FIREFOX_DOWNLOAD_URL}"
41+
extract_package_tar_xz
42+
install_package
43+
rm -f /tmp/firefox.tar.xz
44+
fi

0 commit comments

Comments
 (0)