Compose Multiplatform, a modern UI framework for Kotlin that makes building performant and beautiful user interfaces easy and enjoyable.
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

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/*