-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
156 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,146 @@ | ||
FROM openjdk:17-jdk-slim | ||
|
||
# Make APT non-interactive | ||
RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/99semaphore | ||
RUN echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/99semaphore | ||
RUN echo 'Acquire::Check-Valid-Until no;' >> /etc/apt/apt.conf | ||
RUN if grep -q jessie /etc/apt/sources.list ;then echo 'deb http://cdn-fastly.deb.debian.org/debian/ jessie main'>/etc/apt/sources.list; echo 'deb-src http://cdn-fastly.deb.debian.org/debian/ jessie main'>>/etc/apt/sources.list; echo 'deb http://security.debian.org/ jessie/updates main'>>/etc/apt/sources.list;echo 'deb-src http://security.debian.org/ jessie/updates main'>>/etc/apt/sources.list; echo 'deb http://archive.debian.org/debian jessie-backports main'>>/etc/apt/sources.list; echo 'deb-src http://archive.debian.org/debian jessie-backports main'>>/etc/apt/sources.list;fi | ||
ENV DEBIAN_FRONTEND=noninteractive | ||
|
||
# Install Packages | ||
RUN mkdir -p /usr/share/man/man1 | ||
RUN apt-get update | ||
RUN apt-get install -y \ | ||
git \ | ||
mercurial \ | ||
xvfb \ | ||
vim \ | ||
apt \ | ||
locales \ | ||
sudo \ | ||
apt-transport-https \ | ||
ca-certificates \ | ||
openssh-client \ | ||
software-properties-common \ | ||
build-essential \ | ||
tar \ | ||
lsb-release \ | ||
gzip \ | ||
parallel \ | ||
net-tools \ | ||
netcat \ | ||
unzip \ | ||
zip \ | ||
bzip2 \ | ||
lftp \ | ||
gnupg \ | ||
curl \ | ||
wget \ | ||
jq \ | ||
tree | ||
RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime | ||
RUN locale-gen C.UTF-8 || true | ||
ENV LANG=C.UTF-8 | ||
|
||
# Additional packages ARM simmulator | ||
RUN apt-get install -y libqt5webkit5 | ||
ENV LD_LIBRARY_PATH=${ANDROID_HOME}/tools/lib64:${ANDROID_HOME}/emulator/lib64:${ANDROID_HOME}/emulator/lib64/qt/lib | ||
|
||
# Install Docker | ||
ENV DOCKER_COMPOSE=1.23.2 | ||
RUN set -ex \ | ||
&& export DOCKER_VERSION=$(curl --silent --fail --retry 3 https://download.docker.com/linux/static/stable/x86_64/ | grep -o -e 'docker-[.0-9]*\.tgz' | sort -r | head -n 1) \ | ||
&& DOCKER_URL="https://download.docker.com/linux/static/stable/x86_64/${DOCKER_VERSION}" \ | ||
&& echo Docker URL: $DOCKER_URL \ | ||
&& curl --silent --show-error --location --fail --retry 3 --output /tmp/docker.tgz "${DOCKER_URL}" \ | ||
&& ls -lha /tmp/docker.tgz \ | ||
&& tar -xz -C /tmp -f /tmp/docker.tgz \ | ||
&& mv /tmp/docker/* /usr/bin \ | ||
&& rm -rf /tmp/docker /tmp/docker.tgz \ | ||
&& which docker \ | ||
&& (docker version || true) | ||
|
||
# Install Compose | ||
RUN export UNAME_S=$(uname -s) \ | ||
&& export UNAME_M=$(uname -m) \ | ||
&& wget -q \ | ||
https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE}/docker-compose-${UNAME_S}-${UNAME_M} -O /usr/local/bin/docker-compose \ | ||
&& chmod +x /usr/local/bin/docker-compose \ | ||
&& docker-compose --version | ||
|
||
# Entrypoint | ||
CMD ["/bin/sh"] | ||
|
||
# Android deps | ||
ENV DEBIAN_FRONTEND=noninteractive | ||
ENV ANDROID_HOME /opt/android-sdk-linux | ||
RUN dpkg --add-architecture i386 | ||
RUN apt-get update -qq | ||
RUN apt-get install -y \ | ||
libc6:i386 libstdc++6:i386 libgcc1:i386 libncurses5:i386 libz1:i386 \ | ||
xvfb lib32z1 lib32stdc++6 build-essential \ | ||
libcurl4-openssl-dev libglu1-mesa libxi-dev libxmu-dev \ | ||
libglu1-mesa-dev | ||
|
||
# Additional deps | ||
RUN apt-get purge maven maven2 \ | ||
&& apt-get update \ | ||
&& apt-get -y install maven \ | ||
&& mvn --version \ | ||
&& wget https://services.gradle.org/distributions/gradle-7.3-bin.zip -P /tmp/ \ | ||
&& unzip -d /opt/gradle /tmp/gradle-7.3-bin.zip \ | ||
&& rm -rf /tmp/gradle-7.3-bin.zip \ | ||
&& echo 'export GRADLE_HOME=/opt/gradle/gradle-7.3' > /etc/profile.d/gradle.sh \ | ||
&& echo 'export PATH=${GRADLE_HOME}/bin:${PATH}' >> /etc/profile.d/gradle.sh \ | ||
&& chmod +x /etc/profile.d/gradle.sh \ | ||
&& . /etc/profile.d/gradle.sh \ | ||
&& gradle -v | ||
ENV GRADLE_HOME=/opt/gradle/gradle-7.3 | ||
ENV PATH=${GRADLE_HOME}/bin:${PATH} | ||
|
||
# Download Ruby | ||
RUN apt-get update \ | ||
&& cd /tmp && wget -O ruby-install-0.8.5.tar.gz https://github.com/postmodern/ruby-install/archive/v0.8.5.tar.gz \ | ||
&& tar -xzvf ruby-install-0.8.5.tar.gz \ | ||
&& cd ruby-install-0.8.5 \ | ||
&& make install \ | ||
&& ruby-install --cleanup ruby 2.7.6 \ | ||
&& rm -r /tmp/ruby-install-* \ | ||
&& rm -rf /var/lib/apt/lists/* | ||
|
||
# Configure Ruby | ||
ENV PATH /opt/rubies/ruby-2.7.6/bin:${PATH} | ||
RUN echo 'gem: --env-shebang --no-rdoc --no-ri' >> ~/.gemrc && gem install bundler fastlane | ||
|
||
# Download Android SDK | ||
RUN cd /opt && mkdir -p ${ANDROID_HOME}/cmdline-tools/latest \ | ||
&& wget -q https://dl.google.com/android/repository/commandlinetools-linux-8512546_latest.zip -O android-sdk-tools.zip \ | ||
&& unzip -q android-sdk-tools.zip \ | ||
&& mv cmdline-tools/* ${ANDROID_HOME}/cmdline-tools/latest/ \ | ||
&& rm -rf android-sdk-tools.zip cmdline-tools | ||
ENV PATH=${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/emulator:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools:${PATH} | ||
|
||
# Install Android SDK | ||
RUN mkdir ~/.android && echo "### User Sources for Android SDK Manager" > ~/.android/repositories.cfg | ||
RUN yes | sdkmanager --licenses && yes | sdkmanager --update | ||
RUN sdkmanager "emulator" "tools" "platform-tools" "cmdline-tools;latest" | ||
RUN yes | sdkmanager \ | ||
"build-tools;33.0.0" | ||
# Download Google Cloud SDK | ||
RUN export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)" && \ | ||
echo "deb https://packages.cloud.google.com/apt $CLOUD_SDK_REPO main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list && \ | ||
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - | ||
|
||
RUN sudo apt-get update && sudo apt-get install -y google-cloud-sdk && \ | ||
sudo rm -rf /var/lib/apt/lists/* && \ | ||
gcloud config set core/disable_usage_reporting true && \ | ||
gcloud config set component_manager/disable_update_check true | ||
|
||
# Install NVM | ||
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash && \ | ||
export NVM_DIR="$HOME/.nvm" && \ | ||
. "$NVM_DIR/nvm.sh" | ||
|
||
# CleanUp | ||
RUN apt-get clean | ||
RUN sdkmanager "platforms;android-34" |