You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
96 lines
3.6 KiB
96 lines
3.6 KiB
FROM ubuntu:24.04 |
|
ARG DEBIAN_FRONTEND=noninteractive |
|
|
|
RUN apt update -y && \ |
|
apt install -y \ |
|
binutils \ |
|
curl \ |
|
dpkg \ |
|
dpkg-dev \ |
|
fakeroot \ |
|
gnupg2 \ |
|
libgl-dev \ |
|
locales \ |
|
maven \ |
|
python-is-python3 \ |
|
python3 \ |
|
unzip \ |
|
wget \ |
|
xvfb \ |
|
xz-utils && \ |
|
locale-gen en_US.UTF-8 && \ |
|
rm -rf /var/lib/apt/lists/* |
|
ENV PATH="/usr/lib/x86_64-linux-gnu/:$PATH" |
|
|
|
# Install OpenJDK 21 |
|
ARG JAVA_VERSION=21 |
|
RUN apt update -y && \ |
|
apt install -y \ |
|
openjdk-${JAVA_VERSION}-jdk && \ |
|
rm -rf /var/lib/apt/lists/* |
|
ENV JAVA_HOME=/usr/lib/jvm/java-${JAVA_VERSION}-openjdk-amd64 |
|
ENV PATH="$JAVA_HOME/bin:$PATH" |
|
|
|
# Install NodeJS 22 |
|
RUN apt update -y && \ |
|
wget -qO- https://deb.nodesource.com/gpgkey/nodesource.gpg.key && \ |
|
wget -qO- https://deb.nodesource.com/setup_22.x | bash - && \ |
|
apt install -y nodejs && \ |
|
locale-gen en_US.UTF-8 && \ |
|
rm -rf /var/lib/apt/lists/* |
|
|
|
# Use UTF-8 by default |
|
ENV LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8 |
|
ENV JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8 |
|
|
|
# Install JBR |
|
ARG JBR_DISTR=jbr_jcef-21.0.8-linux-x64-b1163.62 |
|
ARG JBR_DISTR_ARCH=$JBR_DISTR.tar.gz |
|
RUN wget https://cache-redirector.jetbrains.com/intellij-jbr/$JBR_DISTR_ARCH && \ |
|
tar xzf $JBR_DISTR_ARCH && \ |
|
rm $JBR_DISTR_ARCH && \ |
|
mv $JBR_DISTR /usr/lib/jvm |
|
|
|
# Install Android SDK |
|
ENV ANDROID_HOME=/android/sdk |
|
ARG CMD_TOOLS_VERSION=13114758 |
|
ARG CMD_TOOLS_ROOT=$ANDROID_HOME/cmdline-tools/$CMD_TOOLS_VERSION |
|
ARG SDK_MANAGER=$CMD_TOOLS_ROOT/bin/sdkmanager |
|
RUN mkdir -p $CMD_TOOLS_ROOT && \ |
|
export CMD_TOOLS_URL="https://dl.google.com/android/repository/commandlinetools-linux-${CMD_TOOLS_VERSION}_latest.zip" && \ |
|
wget $CMD_TOOLS_URL -O cmd-tools.zip && \ |
|
unzip cmd-tools.zip && \ |
|
rm cmd-tools.zip && \ |
|
mv cmdline-tools/* $CMD_TOOLS_ROOT/ |
|
ARG ANDROID_PLATFORM=android-35 |
|
RUN yes | $SDK_MANAGER --licenses && \ |
|
$SDK_MANAGER "platforms;$ANDROID_PLATFORM" && \ |
|
cd $ANDROID_HOME/platforms/$ANDROID_PLATFORM && \ |
|
ls -1 | grep -v android.jar | xargs rm -rf |
|
|
|
# Install Google Chrome |
|
ARG CHROME_VERSION="141.0.7390.122-1" |
|
# https://googlechromelabs.github.io/chrome-for-testing/ |
|
ARG CHROME_DRIVER_VERSION="140.0.7339.82" |
|
ARG CHROME_BIN=/usr/bin/google-chrome-stable |
|
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - && \ |
|
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A6DCF7707EBC211F && \ |
|
echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list && \ |
|
apt update -y && \ |
|
apt install -y google-chrome-stable=$CHROME_VERSION && \ |
|
wget https://storage.googleapis.com/chrome-for-testing-public/$CHROME_DRIVER_VERSION/linux64/chromedriver-linux64.zip -P ~/tmp && \ |
|
mkdir -p /root/.gradle/selenium/chrome && unzip -d /root/.gradle/selenium/chrome ~/tmp/chromedriver-linux64.zip && rm ~/tmp/chromedriver-linux64.zip && \ |
|
rm -rf /var/lib/apt/lists/* |
|
|
|
# Install Firefox |
|
ARG FIREFOX_VERSION="142.0" |
|
ARG GECKO_DRIVER_VERSION="0.36.0" |
|
RUN wget -q -O /tmp/firefox.deb https://ftp.mozilla.org/pub/firefox/releases/${FIREFOX_VERSION}/linux-x86_64/en-US/firefox-${FIREFOX_VERSION}.deb && \ |
|
dpkg -i /tmp/firefox.deb && \ |
|
rm /tmp/firefox.deb && \ |
|
apt --fix-broken install -y && \ |
|
wget https://github.com/mozilla/geckodriver/releases/download/v$GECKO_DRIVER_VERSION/geckodriver-v$GECKO_DRIVER_VERSION-linux64.tar.gz && \ |
|
tar -xvzf geckodriver-v$GECKO_DRIVER_VERSION-linux64.tar.gz && \ |
|
mkdir -p /root/.gradle/selenium/gecko && \ |
|
mv geckodriver /root/.gradle/selenium/gecko && \ |
|
rm -rf /var/lib/apt/lists/*
|
|
|