diff --git a/.github/workflows/release-image.yml b/.github/workflows/release-image.yml index b80240c..4ae2abe 100644 --- a/.github/workflows/release-image.yml +++ b/.github/workflows/release-image.yml @@ -76,7 +76,7 @@ jobs: packages: write strategy: matrix: - version: ["32", "33", "34"] + version: ["33", "34", "35"] variant: ["", "-emulator", "-ndk", "-stf-client", "-jdk17", "-jdk11"] needs: [checks-hadolint, checks-shfmt, checks-shellcheck, checks-update] steps: diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..494f4a7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +build_docker_images.sh +docker_build_log.txt +.DS_Store \ No newline at end of file diff --git a/32-jdk17/Dockerfile b/32-jdk17/Dockerfile deleted file mode 100644 index ee6faff..0000000 --- a/32-jdk17/Dockerfile +++ /dev/null @@ -1,92 +0,0 @@ -FROM ubuntu:focal -SHELL ["/bin/bash", "-o", "pipefail", "-c"] - -# hadolint ignore=DL3008 -RUN apt-get update \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - expect \ - locales \ - nano \ - openjdk-17-jdk \ - unzip \ - curl \ - xz-utils \ - git \ - && rm -rf /var/lib/apt/lists/* - -# Seems somethings build better with utf8 locale specified -# http://jaredmarkell.com/docker-and-locales/ -# https://github.com/square/moshi/issues/804#issuecomment-466926878 -RUN locale-gen en_US.UTF-8 -ENV LANG=en_US.UTF-8 -ENV LANGUAGE=en_US:en -ENV LC_ALL=en_US.UTF-8 - -#### -# hadolint ignore=DL3008 -RUN apt-get update \ - && apt-get install -y --no-install-recommends \ - apt-transport-https \ - gnupg \ - lsb-release \ - # For nodejs we use nodesource, its nice and easy and gets us the correct version - # Find latest link https://github.com/nodesource/distributions/blob/master/README.md#installation-instructions - && curl -sSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - \ - && echo "deb https://deb.nodesource.com/node_18.x $(lsb_release -s -c) main" | tee /etc/apt/sources.list.d/nodesource.list \ - && echo "deb-src https://deb.nodesource.com/node_18.x $(lsb_release -s -c) main" | tee -a /etc/apt/sources.list.d/nodesource.list \ - && apt-get update \ - && apt-get install -y --no-install-recommends \ - nodejs \ - && rm -rf /var/lib/apt/lists/* - -# hadolint ignore=DL3016 -RUN npm -g install xcode-build-tools yarn -#### - -# Install the SDK -# https://developer.android.com/studio#downloads -ENV ANDROID_CMDLINE_TOOLS=https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip -# hadolint ignore=DL3003 -RUN ( \ - cd /opt \ - && mkdir android-sdk-linux \ - && curl -sSL -o cmdline-tools.zip "$ANDROID_CMDLINE_TOOLS" \ - && unzip cmdline-tools.zip -d android-sdk-linux/cmdline-tools \ - && rm -f cmdline-tools.zip \ - && chown -R root:root android-sdk-linux \ - ) - -ENV ANDROID_SDK_ROOT=/opt/android-sdk-linux -ENV ANDROID_HOME=$ANDROID_SDK_ROOT -ENV PATH=$ANDROID_HOME/cmdline-tools/cmdline-tools/bin:$ANDROID_HOME/cmdline-tools/tools/bin:$ANDROID_SDK_ROOT/tools/bin:$ANDROID_SDK_ROOT/tools:$ANDROID_SDK_ROOT/platform-tools:$PATH - -# Install custom tools -COPY tools/license_accepter /opt/tools/ -COPY tools/adb-all /opt/tools -ENV PATH=/opt/tools:$PATH -RUN license_accepter - -# Install Android platform and things -ENV ANDROID_PLATFORM_VERSION=32 -ENV ANDROID_BUILD_TOOLS_VERSION=32.0.0 -ENV PATH=$ANDROID_SDK_ROOT/build-tools/$ANDROID_BUILD_TOOLS_VERSION:$PATH -ENV ANDROID_EXTRA_PACKAGES="build-tools;32.0.0" -ENV ANDROID_REPOSITORIES="extras;android;m2repository extras;google;m2repository" -ENV ANDROID_CONSTRAINT_PACKAGES="extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0" -RUN sdkmanager --verbose "platform-tools" "platforms;android-$ANDROID_PLATFORM_VERSION" "build-tools;$ANDROID_BUILD_TOOLS_VERSION" $ANDROID_EXTRA_PACKAGES $ANDROID_REPOSITORIES $ANDROID_CONSTRAINT_PACKAGES - - - - -#### -# hadolint ignore=DL3008,SC1091 -RUN apt-get update \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gnupg2 \ - && rm -rf /var/lib/apt/lists/* \ - && gpg2 --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB \ - && curl -sSL https://get.rvm.io | bash -s stable --ruby --without-gems="rvm rubygems-bundler" \ - && echo -e "source /usr/local/rvm/scripts/rvm\n$(cat /etc/bash.bashrc)" >/etc/bash.bashrc \ - && source /usr/local/rvm/scripts/rvm \ - && gem install bundler -v '~> 1.0' --force --no-document --default -ENV BASH_ENV="/usr/local/rvm/scripts/rvm" -#### diff --git a/32-stf-client/Dockerfile b/32-stf-client/Dockerfile deleted file mode 100644 index 4633cec..0000000 --- a/32-stf-client/Dockerfile +++ /dev/null @@ -1,111 +0,0 @@ -FROM ubuntu:focal -SHELL ["/bin/bash", "-o", "pipefail", "-c"] - -# hadolint ignore=DL3008 -RUN apt-get update \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - expect \ - locales \ - nano \ - openjdk-11-jdk \ - unzip \ - curl \ - xz-utils \ - git \ - && rm -rf /var/lib/apt/lists/* - -# Seems somethings build better with utf8 locale specified -# http://jaredmarkell.com/docker-and-locales/ -# https://github.com/square/moshi/issues/804#issuecomment-466926878 -RUN locale-gen en_US.UTF-8 -ENV LANG=en_US.UTF-8 -ENV LANGUAGE=en_US:en -ENV LC_ALL=en_US.UTF-8 - -#### -# hadolint ignore=DL3008 -RUN apt-get update \ - && apt-get install -y --no-install-recommends \ - apt-transport-https \ - gnupg \ - lsb-release \ - # For nodejs we use nodesource, its nice and easy and gets us the correct version - # Find latest link https://github.com/nodesource/distributions/blob/master/README.md#installation-instructions - && curl -sSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - \ - && echo "deb https://deb.nodesource.com/node_18.x $(lsb_release -s -c) main" | tee /etc/apt/sources.list.d/nodesource.list \ - && echo "deb-src https://deb.nodesource.com/node_18.x $(lsb_release -s -c) main" | tee -a /etc/apt/sources.list.d/nodesource.list \ - && apt-get update \ - && apt-get install -y --no-install-recommends \ - nodejs \ - && rm -rf /var/lib/apt/lists/* - -# hadolint ignore=DL3016 -RUN npm -g install xcode-build-tools yarn -#### - -# Install the SDK -# https://developer.android.com/studio#downloads -ENV ANDROID_CMDLINE_TOOLS=https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip -# hadolint ignore=DL3003 -RUN ( \ - cd /opt \ - && mkdir android-sdk-linux \ - && curl -sSL -o cmdline-tools.zip "$ANDROID_CMDLINE_TOOLS" \ - && unzip cmdline-tools.zip -d android-sdk-linux/cmdline-tools \ - && rm -f cmdline-tools.zip \ - && chown -R root:root android-sdk-linux \ - ) - -ENV ANDROID_SDK_ROOT=/opt/android-sdk-linux -ENV ANDROID_HOME=$ANDROID_SDK_ROOT -ENV PATH=$ANDROID_HOME/cmdline-tools/cmdline-tools/bin:$ANDROID_HOME/cmdline-tools/tools/bin:$ANDROID_SDK_ROOT/tools/bin:$ANDROID_SDK_ROOT/tools:$ANDROID_SDK_ROOT/platform-tools:$PATH - -# Install custom tools -COPY tools/license_accepter /opt/tools/ -COPY tools/adb-all /opt/tools -ENV PATH=/opt/tools:$PATH -RUN license_accepter - -# Install Android platform and things -ENV ANDROID_PLATFORM_VERSION=32 -ENV ANDROID_BUILD_TOOLS_VERSION=32.0.0 -ENV PATH=$ANDROID_SDK_ROOT/build-tools/$ANDROID_BUILD_TOOLS_VERSION:$PATH -ENV ANDROID_EXTRA_PACKAGES="build-tools;32.0.0" -ENV ANDROID_REPOSITORIES="extras;android;m2repository extras;google;m2repository" -ENV ANDROID_CONSTRAINT_PACKAGES="extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0" -RUN sdkmanager --verbose "platform-tools" "platforms;android-$ANDROID_PLATFORM_VERSION" "build-tools;$ANDROID_BUILD_TOOLS_VERSION" $ANDROID_EXTRA_PACKAGES $ANDROID_REPOSITORIES $ANDROID_CONSTRAINT_PACKAGES - -#### -# hadolint ignore=DL3008,DL3028,SC2086 -RUN apt-get update \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - ruby \ - && savedAptMark="$(apt-mark showmanual)" \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - # stf-client - build-essential \ - gem \ - # Without rake fails to install stf-client - && gem install rake stf-client --no-doc \ - && apt-mark auto '.*' > /dev/null \ - && apt-mark manual $savedAptMark > /dev/null \ - && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ - && rm -rf /var/lib/apt/lists/* \ - -RUN adb keygen ~/.android/adbkey -#### - - - -#### -# hadolint ignore=DL3008,SC1091 -RUN apt-get update \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gnupg2 \ - && rm -rf /var/lib/apt/lists/* \ - && gpg2 --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB \ - && curl -sSL https://get.rvm.io | bash -s stable --ruby --without-gems="rvm rubygems-bundler" \ - && echo -e "source /usr/local/rvm/scripts/rvm\n$(cat /etc/bash.bashrc)" >/etc/bash.bashrc \ - && source /usr/local/rvm/scripts/rvm \ - && gem install bundler -v '~> 1.0' --force --no-document --default -ENV BASH_ENV="/usr/local/rvm/scripts/rvm" -#### diff --git a/32/Dockerfile b/32/Dockerfile deleted file mode 100644 index bbef90c..0000000 --- a/32/Dockerfile +++ /dev/null @@ -1,92 +0,0 @@ -FROM ubuntu:focal -SHELL ["/bin/bash", "-o", "pipefail", "-c"] - -# hadolint ignore=DL3008 -RUN apt-get update \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - expect \ - locales \ - nano \ - openjdk-11-jdk \ - unzip \ - curl \ - xz-utils \ - git \ - && rm -rf /var/lib/apt/lists/* - -# Seems somethings build better with utf8 locale specified -# http://jaredmarkell.com/docker-and-locales/ -# https://github.com/square/moshi/issues/804#issuecomment-466926878 -RUN locale-gen en_US.UTF-8 -ENV LANG=en_US.UTF-8 -ENV LANGUAGE=en_US:en -ENV LC_ALL=en_US.UTF-8 - -#### -# hadolint ignore=DL3008 -RUN apt-get update \ - && apt-get install -y --no-install-recommends \ - apt-transport-https \ - gnupg \ - lsb-release \ - # For nodejs we use nodesource, its nice and easy and gets us the correct version - # Find latest link https://github.com/nodesource/distributions/blob/master/README.md#installation-instructions - && curl -sSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - \ - && echo "deb https://deb.nodesource.com/node_18.x $(lsb_release -s -c) main" | tee /etc/apt/sources.list.d/nodesource.list \ - && echo "deb-src https://deb.nodesource.com/node_18.x $(lsb_release -s -c) main" | tee -a /etc/apt/sources.list.d/nodesource.list \ - && apt-get update \ - && apt-get install -y --no-install-recommends \ - nodejs \ - && rm -rf /var/lib/apt/lists/* - -# hadolint ignore=DL3016 -RUN npm -g install xcode-build-tools yarn -#### - -# Install the SDK -# https://developer.android.com/studio#downloads -ENV ANDROID_CMDLINE_TOOLS=https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip -# hadolint ignore=DL3003 -RUN ( \ - cd /opt \ - && mkdir android-sdk-linux \ - && curl -sSL -o cmdline-tools.zip "$ANDROID_CMDLINE_TOOLS" \ - && unzip cmdline-tools.zip -d android-sdk-linux/cmdline-tools \ - && rm -f cmdline-tools.zip \ - && chown -R root:root android-sdk-linux \ - ) - -ENV ANDROID_SDK_ROOT=/opt/android-sdk-linux -ENV ANDROID_HOME=$ANDROID_SDK_ROOT -ENV PATH=$ANDROID_HOME/cmdline-tools/cmdline-tools/bin:$ANDROID_HOME/cmdline-tools/tools/bin:$ANDROID_SDK_ROOT/tools/bin:$ANDROID_SDK_ROOT/tools:$ANDROID_SDK_ROOT/platform-tools:$PATH - -# Install custom tools -COPY tools/license_accepter /opt/tools/ -COPY tools/adb-all /opt/tools -ENV PATH=/opt/tools:$PATH -RUN license_accepter - -# Install Android platform and things -ENV ANDROID_PLATFORM_VERSION=32 -ENV ANDROID_BUILD_TOOLS_VERSION=32.0.0 -ENV PATH=$ANDROID_SDK_ROOT/build-tools/$ANDROID_BUILD_TOOLS_VERSION:$PATH -ENV ANDROID_EXTRA_PACKAGES="build-tools;32.0.0" -ENV ANDROID_REPOSITORIES="extras;android;m2repository extras;google;m2repository" -ENV ANDROID_CONSTRAINT_PACKAGES="extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0" -RUN sdkmanager --verbose "platform-tools" "platforms;android-$ANDROID_PLATFORM_VERSION" "build-tools;$ANDROID_BUILD_TOOLS_VERSION" $ANDROID_EXTRA_PACKAGES $ANDROID_REPOSITORIES $ANDROID_CONSTRAINT_PACKAGES - - - - -#### -# hadolint ignore=DL3008,SC1091 -RUN apt-get update \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gnupg2 \ - && rm -rf /var/lib/apt/lists/* \ - && gpg2 --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB \ - && curl -sSL https://get.rvm.io | bash -s stable --ruby --without-gems="rvm rubygems-bundler" \ - && echo -e "source /usr/local/rvm/scripts/rvm\n$(cat /etc/bash.bashrc)" >/etc/bash.bashrc \ - && source /usr/local/rvm/scripts/rvm \ - && gem install bundler -v '~> 1.0' --force --no-document --default -ENV BASH_ENV="/usr/local/rvm/scripts/rvm" -#### diff --git a/33-emulator/Dockerfile b/33-emulator/Dockerfile index 006b8e7..98eea7e 100644 --- a/33-emulator/Dockerfile +++ b/33-emulator/Dockerfile @@ -1,17 +1,18 @@ -FROM ubuntu:focal +FROM ubuntu:jammy SHELL ["/bin/bash", "-o", "pipefail", "-c"] # hadolint ignore=DL3008 RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - expect \ - locales \ - nano \ - openjdk-11-jdk \ - unzip \ - curl \ - xz-utils \ - git \ + expect \ + apt-utils \ + locales \ + nano \ + openjdk-11-jdk \ + unzip \ + curl \ + xz-utils \ + git \ && rm -rf /var/lib/apt/lists/* # Seems somethings build better with utf8 locale specified @@ -26,21 +27,21 @@ ENV LC_ALL=en_US.UTF-8 # hadolint ignore=DL3008 RUN apt-get update \ && apt-get install -y --no-install-recommends \ - apt-transport-https \ - gnupg \ - lsb-release \ + ca-certificates \ + apt-transport-https \ + gnupg \ + lsb-release \ # For nodejs we use nodesource, its nice and easy and gets us the correct version # Find latest link https://github.com/nodesource/distributions/blob/master/README.md#installation-instructions - && curl -sSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - \ - && echo "deb https://deb.nodesource.com/node_18.x $(lsb_release -s -c) main" | tee /etc/apt/sources.list.d/nodesource.list \ - && echo "deb-src https://deb.nodesource.com/node_18.x $(lsb_release -s -c) main" | tee -a /etc/apt/sources.list.d/nodesource.list \ + && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | gpg --dearmor -o /usr/share/keyrings/nodesource.gpg \ + && echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_18.x $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/nodesource.list \ && apt-get update \ && apt-get install -y --no-install-recommends \ - nodejs \ + nodejs \ && rm -rf /var/lib/apt/lists/* # hadolint ignore=DL3016 -RUN npm -g install xcode-build-tools yarn +RUN npm install -g xcode-build-tools yarn #### # Install the SDK @@ -48,12 +49,12 @@ RUN npm -g install xcode-build-tools yarn ENV ANDROID_CMDLINE_TOOLS=https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip # hadolint ignore=DL3003 RUN ( \ - cd /opt \ - && mkdir android-sdk-linux \ - && curl -sSL -o cmdline-tools.zip "$ANDROID_CMDLINE_TOOLS" \ - && unzip cmdline-tools.zip -d android-sdk-linux/cmdline-tools \ - && rm -f cmdline-tools.zip \ - && chown -R root:root android-sdk-linux \ + cd /opt \ + && mkdir android-sdk-linux \ + && curl -sSL -o cmdline-tools.zip "$ANDROID_CMDLINE_TOOLS" \ + && unzip cmdline-tools.zip -d android-sdk-linux/cmdline-tools \ + && rm -f cmdline-tools.zip \ + && chown -R root:root android-sdk-linux \ ) ENV ANDROID_SDK_ROOT=/opt/android-sdk-linux @@ -72,24 +73,31 @@ ENV ANDROID_BUILD_TOOLS_VERSION=33.0.2 ENV PATH=$ANDROID_SDK_ROOT/build-tools/$ANDROID_BUILD_TOOLS_VERSION:$PATH ENV ANDROID_EXTRA_PACKAGES="build-tools;33.0.0 build-tools;33.0.1" ENV ANDROID_REPOSITORIES="extras;android;m2repository extras;google;m2repository" -ENV ANDROID_CONSTRAINT_PACKAGES="extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0" -RUN sdkmanager --verbose "platform-tools" "platforms;android-$ANDROID_PLATFORM_VERSION" "build-tools;$ANDROID_BUILD_TOOLS_VERSION" $ANDROID_EXTRA_PACKAGES $ANDROID_REPOSITORIES $ANDROID_CONSTRAINT_PACKAGES +#ENV ANDROID_CONSTRAINT_PACKAGES="extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0" +RUN sdkmanager --update && \ + sdkmanager --verbose \ + "platform-tools" \ + "platforms;android-${ANDROID_PLATFORM_VERSION}" \ + "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" \ + ${ANDROID_EXTRA_PACKAGES:+${ANDROID_EXTRA_PACKAGES}} \ + ${ANDROID_REPOSITORIES:+${ANDROID_REPOSITORIES}} \ + ${ANDROID_CONSTRAINT_PACKAGES:+${ANDROID_CONSTRAINT_PACKAGES}} #### # hadolint ignore=DL3008 RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - file \ - qt5-default \ - libpulse0 \ + file \ + qtbase5-dev \ + libpulse0 \ && rm -rf /var/lib/apt/lists/* ENV ANDROID_EMULATOR_PACKAGE="system-images;android-$ANDROID_PLATFORM_VERSION;google_apis_playstore;x86_64" RUN sdkmanager --verbose "emulator" $ANDROID_EMULATOR_PACKAGE # Fix for emulator detect 64bit -ENV SHELL=/bin/bash +ENV SHELL=/bin/bash # https://www.bram.us/2017/05/12/launching-the-android-emulator-from-the-command-line/ ENV PATH=$ANDROID_SDK_ROOT/emulator:$PATH @@ -102,12 +110,22 @@ RUN adb keygen ~/.android/adbkey #### # hadolint ignore=DL3008,SC1091 RUN apt-get update \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gnupg2 \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gnupg2 build-essential \ && rm -rf /var/lib/apt/lists/* \ - && gpg2 --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB \ - && curl -sSL https://get.rvm.io | bash -s stable --ruby --without-gems="rvm rubygems-bundler" \ - && echo -e "source /usr/local/rvm/scripts/rvm\n$(cat /etc/bash.bashrc)" >/etc/bash.bashrc \ - && source /usr/local/rvm/scripts/rvm \ - && gem install bundler -v '~> 1.0' --force --no-document --default + && gpg2 --keyserver keyserver.ubuntu.com --recv-keys \ + 409B6B1796C275462A1703113804BB82D39DC0E3 \ + 7D2BAF1CF37B13E2069D6956105BD0E739499BDB \ + && curl -sSL https://get.rvm.io | bash -s stable --without-gems="rvm rubygems-bundler" \ + && echo 'source /usr/local/rvm/scripts/rvm' >> /etc/bash.bashrc + ENV BASH_ENV="/usr/local/rvm/scripts/rvm" + +RUN bash -c "source /usr/local/rvm/scripts/rvm && \ + rvm install 3.1.2 && \ + rvm install 3.4.3 && \ + rvm alias create default 3.4.3 && \ + rvm use 3.1.2 && \ + gem install bundler -v '~>2.0' --no-document && \ + rvm use 3.4.3 && \ + gem install bundler -v '~>2.0' --no-document" #### diff --git a/33-jdk17/Dockerfile b/33-jdk17/Dockerfile index b68d639..02defbd 100644 --- a/33-jdk17/Dockerfile +++ b/33-jdk17/Dockerfile @@ -1,17 +1,18 @@ -FROM ubuntu:focal +FROM ubuntu:jammy SHELL ["/bin/bash", "-o", "pipefail", "-c"] # hadolint ignore=DL3008 RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - expect \ - locales \ - nano \ - openjdk-17-jdk \ - unzip \ - curl \ - xz-utils \ - git \ + expect \ + apt-utils \ + locales \ + nano \ + openjdk-17-jdk \ + unzip \ + curl \ + xz-utils \ + git \ && rm -rf /var/lib/apt/lists/* # Seems somethings build better with utf8 locale specified @@ -26,21 +27,21 @@ ENV LC_ALL=en_US.UTF-8 # hadolint ignore=DL3008 RUN apt-get update \ && apt-get install -y --no-install-recommends \ - apt-transport-https \ - gnupg \ - lsb-release \ + ca-certificates \ + apt-transport-https \ + gnupg \ + lsb-release \ # For nodejs we use nodesource, its nice and easy and gets us the correct version # Find latest link https://github.com/nodesource/distributions/blob/master/README.md#installation-instructions - && curl -sSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - \ - && echo "deb https://deb.nodesource.com/node_18.x $(lsb_release -s -c) main" | tee /etc/apt/sources.list.d/nodesource.list \ - && echo "deb-src https://deb.nodesource.com/node_18.x $(lsb_release -s -c) main" | tee -a /etc/apt/sources.list.d/nodesource.list \ + && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | gpg --dearmor -o /usr/share/keyrings/nodesource.gpg \ + && echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_18.x $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/nodesource.list \ && apt-get update \ && apt-get install -y --no-install-recommends \ - nodejs \ + nodejs \ && rm -rf /var/lib/apt/lists/* # hadolint ignore=DL3016 -RUN npm -g install xcode-build-tools yarn +RUN npm install -g xcode-build-tools yarn #### # Install the SDK @@ -48,12 +49,12 @@ RUN npm -g install xcode-build-tools yarn ENV ANDROID_CMDLINE_TOOLS=https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip # hadolint ignore=DL3003 RUN ( \ - cd /opt \ - && mkdir android-sdk-linux \ - && curl -sSL -o cmdline-tools.zip "$ANDROID_CMDLINE_TOOLS" \ - && unzip cmdline-tools.zip -d android-sdk-linux/cmdline-tools \ - && rm -f cmdline-tools.zip \ - && chown -R root:root android-sdk-linux \ + cd /opt \ + && mkdir android-sdk-linux \ + && curl -sSL -o cmdline-tools.zip "$ANDROID_CMDLINE_TOOLS" \ + && unzip cmdline-tools.zip -d android-sdk-linux/cmdline-tools \ + && rm -f cmdline-tools.zip \ + && chown -R root:root android-sdk-linux \ ) ENV ANDROID_SDK_ROOT=/opt/android-sdk-linux @@ -72,8 +73,15 @@ ENV ANDROID_BUILD_TOOLS_VERSION=33.0.2 ENV PATH=$ANDROID_SDK_ROOT/build-tools/$ANDROID_BUILD_TOOLS_VERSION:$PATH ENV ANDROID_EXTRA_PACKAGES="build-tools;33.0.0 build-tools;33.0.1" ENV ANDROID_REPOSITORIES="extras;android;m2repository extras;google;m2repository" -ENV ANDROID_CONSTRAINT_PACKAGES="extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0" -RUN sdkmanager --verbose "platform-tools" "platforms;android-$ANDROID_PLATFORM_VERSION" "build-tools;$ANDROID_BUILD_TOOLS_VERSION" $ANDROID_EXTRA_PACKAGES $ANDROID_REPOSITORIES $ANDROID_CONSTRAINT_PACKAGES +#ENV ANDROID_CONSTRAINT_PACKAGES="extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0" +RUN sdkmanager --update && \ + sdkmanager --verbose \ + "platform-tools" \ + "platforms;android-${ANDROID_PLATFORM_VERSION}" \ + "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" \ + ${ANDROID_EXTRA_PACKAGES:+${ANDROID_EXTRA_PACKAGES}} \ + ${ANDROID_REPOSITORIES:+${ANDROID_REPOSITORIES}} \ + ${ANDROID_CONSTRAINT_PACKAGES:+${ANDROID_CONSTRAINT_PACKAGES}} @@ -81,12 +89,22 @@ RUN sdkmanager --verbose "platform-tools" "platforms;android-$ANDROID_PLATFORM_V #### # hadolint ignore=DL3008,SC1091 RUN apt-get update \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gnupg2 \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gnupg2 build-essential \ && rm -rf /var/lib/apt/lists/* \ - && gpg2 --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB \ - && curl -sSL https://get.rvm.io | bash -s stable --ruby --without-gems="rvm rubygems-bundler" \ - && echo -e "source /usr/local/rvm/scripts/rvm\n$(cat /etc/bash.bashrc)" >/etc/bash.bashrc \ - && source /usr/local/rvm/scripts/rvm \ - && gem install bundler -v '~> 1.0' --force --no-document --default + && gpg2 --keyserver keyserver.ubuntu.com --recv-keys \ + 409B6B1796C275462A1703113804BB82D39DC0E3 \ + 7D2BAF1CF37B13E2069D6956105BD0E739499BDB \ + && curl -sSL https://get.rvm.io | bash -s stable --without-gems="rvm rubygems-bundler" \ + && echo 'source /usr/local/rvm/scripts/rvm' >> /etc/bash.bashrc + ENV BASH_ENV="/usr/local/rvm/scripts/rvm" + +RUN bash -c "source /usr/local/rvm/scripts/rvm && \ + rvm install 3.1.2 && \ + rvm install 3.4.3 && \ + rvm alias create default 3.4.3 && \ + rvm use 3.1.2 && \ + gem install bundler -v '~>2.0' --no-document && \ + rvm use 3.4.3 && \ + gem install bundler -v '~>2.0' --no-document" #### diff --git a/33-ndk/Dockerfile b/33-ndk/Dockerfile index c2480f1..dc13394 100644 --- a/33-ndk/Dockerfile +++ b/33-ndk/Dockerfile @@ -1,17 +1,18 @@ -FROM ubuntu:focal +FROM ubuntu:jammy SHELL ["/bin/bash", "-o", "pipefail", "-c"] # hadolint ignore=DL3008 RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - expect \ - locales \ - nano \ - openjdk-11-jdk \ - unzip \ - curl \ - xz-utils \ - git \ + expect \ + apt-utils \ + locales \ + nano \ + openjdk-11-jdk \ + unzip \ + curl \ + xz-utils \ + git \ && rm -rf /var/lib/apt/lists/* # Seems somethings build better with utf8 locale specified @@ -26,21 +27,21 @@ ENV LC_ALL=en_US.UTF-8 # hadolint ignore=DL3008 RUN apt-get update \ && apt-get install -y --no-install-recommends \ - apt-transport-https \ - gnupg \ - lsb-release \ + ca-certificates \ + apt-transport-https \ + gnupg \ + lsb-release \ # For nodejs we use nodesource, its nice and easy and gets us the correct version # Find latest link https://github.com/nodesource/distributions/blob/master/README.md#installation-instructions - && curl -sSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - \ - && echo "deb https://deb.nodesource.com/node_18.x $(lsb_release -s -c) main" | tee /etc/apt/sources.list.d/nodesource.list \ - && echo "deb-src https://deb.nodesource.com/node_18.x $(lsb_release -s -c) main" | tee -a /etc/apt/sources.list.d/nodesource.list \ + && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | gpg --dearmor -o /usr/share/keyrings/nodesource.gpg \ + && echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_18.x $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/nodesource.list \ && apt-get update \ && apt-get install -y --no-install-recommends \ - nodejs \ + nodejs \ && rm -rf /var/lib/apt/lists/* # hadolint ignore=DL3016 -RUN npm -g install xcode-build-tools yarn +RUN npm install -g xcode-build-tools yarn #### # Install the SDK @@ -48,12 +49,12 @@ RUN npm -g install xcode-build-tools yarn ENV ANDROID_CMDLINE_TOOLS=https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip # hadolint ignore=DL3003 RUN ( \ - cd /opt \ - && mkdir android-sdk-linux \ - && curl -sSL -o cmdline-tools.zip "$ANDROID_CMDLINE_TOOLS" \ - && unzip cmdline-tools.zip -d android-sdk-linux/cmdline-tools \ - && rm -f cmdline-tools.zip \ - && chown -R root:root android-sdk-linux \ + cd /opt \ + && mkdir android-sdk-linux \ + && curl -sSL -o cmdline-tools.zip "$ANDROID_CMDLINE_TOOLS" \ + && unzip cmdline-tools.zip -d android-sdk-linux/cmdline-tools \ + && rm -f cmdline-tools.zip \ + && chown -R root:root android-sdk-linux \ ) ENV ANDROID_SDK_ROOT=/opt/android-sdk-linux @@ -72,8 +73,15 @@ ENV ANDROID_BUILD_TOOLS_VERSION=33.0.2 ENV PATH=$ANDROID_SDK_ROOT/build-tools/$ANDROID_BUILD_TOOLS_VERSION:$PATH ENV ANDROID_EXTRA_PACKAGES="build-tools;33.0.0 build-tools;33.0.1" ENV ANDROID_REPOSITORIES="extras;android;m2repository extras;google;m2repository" -ENV ANDROID_CONSTRAINT_PACKAGES="extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0" -RUN sdkmanager --verbose "platform-tools" "platforms;android-$ANDROID_PLATFORM_VERSION" "build-tools;$ANDROID_BUILD_TOOLS_VERSION" $ANDROID_EXTRA_PACKAGES $ANDROID_REPOSITORIES $ANDROID_CONSTRAINT_PACKAGES +#ENV ANDROID_CONSTRAINT_PACKAGES="extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0" +RUN sdkmanager --update && \ + sdkmanager --verbose \ + "platform-tools" \ + "platforms;android-${ANDROID_PLATFORM_VERSION}" \ + "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" \ + ${ANDROID_EXTRA_PACKAGES:+${ANDROID_EXTRA_PACKAGES}} \ + ${ANDROID_REPOSITORIES:+${ANDROID_REPOSITORIES}} \ + ${ANDROID_CONSTRAINT_PACKAGES:+${ANDROID_CONSTRAINT_PACKAGES}} @@ -87,12 +95,22 @@ RUN sdkmanager --verbose $ANDROID_NDK_PACKAGES #### # hadolint ignore=DL3008,SC1091 RUN apt-get update \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gnupg2 \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gnupg2 build-essential \ && rm -rf /var/lib/apt/lists/* \ - && gpg2 --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB \ - && curl -sSL https://get.rvm.io | bash -s stable --ruby --without-gems="rvm rubygems-bundler" \ - && echo -e "source /usr/local/rvm/scripts/rvm\n$(cat /etc/bash.bashrc)" >/etc/bash.bashrc \ - && source /usr/local/rvm/scripts/rvm \ - && gem install bundler -v '~> 1.0' --force --no-document --default + && gpg2 --keyserver keyserver.ubuntu.com --recv-keys \ + 409B6B1796C275462A1703113804BB82D39DC0E3 \ + 7D2BAF1CF37B13E2069D6956105BD0E739499BDB \ + && curl -sSL https://get.rvm.io | bash -s stable --without-gems="rvm rubygems-bundler" \ + && echo 'source /usr/local/rvm/scripts/rvm' >> /etc/bash.bashrc + ENV BASH_ENV="/usr/local/rvm/scripts/rvm" + +RUN bash -c "source /usr/local/rvm/scripts/rvm && \ + rvm install 3.1.2 && \ + rvm install 3.4.3 && \ + rvm alias create default 3.4.3 && \ + rvm use 3.1.2 && \ + gem install bundler -v '~>2.0' --no-document && \ + rvm use 3.4.3 && \ + gem install bundler -v '~>2.0' --no-document" #### diff --git a/33-stf-client/Dockerfile b/33-stf-client/Dockerfile index 72f756d..4daabdd 100644 --- a/33-stf-client/Dockerfile +++ b/33-stf-client/Dockerfile @@ -1,17 +1,18 @@ -FROM ubuntu:focal +FROM ubuntu:jammy SHELL ["/bin/bash", "-o", "pipefail", "-c"] # hadolint ignore=DL3008 RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - expect \ - locales \ - nano \ - openjdk-11-jdk \ - unzip \ - curl \ - xz-utils \ - git \ + expect \ + apt-utils \ + locales \ + nano \ + openjdk-11-jdk \ + unzip \ + curl \ + xz-utils \ + git \ && rm -rf /var/lib/apt/lists/* # Seems somethings build better with utf8 locale specified @@ -26,21 +27,21 @@ ENV LC_ALL=en_US.UTF-8 # hadolint ignore=DL3008 RUN apt-get update \ && apt-get install -y --no-install-recommends \ - apt-transport-https \ - gnupg \ - lsb-release \ + ca-certificates \ + apt-transport-https \ + gnupg \ + lsb-release \ # For nodejs we use nodesource, its nice and easy and gets us the correct version # Find latest link https://github.com/nodesource/distributions/blob/master/README.md#installation-instructions - && curl -sSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - \ - && echo "deb https://deb.nodesource.com/node_18.x $(lsb_release -s -c) main" | tee /etc/apt/sources.list.d/nodesource.list \ - && echo "deb-src https://deb.nodesource.com/node_18.x $(lsb_release -s -c) main" | tee -a /etc/apt/sources.list.d/nodesource.list \ + && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | gpg --dearmor -o /usr/share/keyrings/nodesource.gpg \ + && echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_18.x $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/nodesource.list \ && apt-get update \ && apt-get install -y --no-install-recommends \ - nodejs \ + nodejs \ && rm -rf /var/lib/apt/lists/* # hadolint ignore=DL3016 -RUN npm -g install xcode-build-tools yarn +RUN npm install -g xcode-build-tools yarn #### # Install the SDK @@ -48,12 +49,12 @@ RUN npm -g install xcode-build-tools yarn ENV ANDROID_CMDLINE_TOOLS=https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip # hadolint ignore=DL3003 RUN ( \ - cd /opt \ - && mkdir android-sdk-linux \ - && curl -sSL -o cmdline-tools.zip "$ANDROID_CMDLINE_TOOLS" \ - && unzip cmdline-tools.zip -d android-sdk-linux/cmdline-tools \ - && rm -f cmdline-tools.zip \ - && chown -R root:root android-sdk-linux \ + cd /opt \ + && mkdir android-sdk-linux \ + && curl -sSL -o cmdline-tools.zip "$ANDROID_CMDLINE_TOOLS" \ + && unzip cmdline-tools.zip -d android-sdk-linux/cmdline-tools \ + && rm -f cmdline-tools.zip \ + && chown -R root:root android-sdk-linux \ ) ENV ANDROID_SDK_ROOT=/opt/android-sdk-linux @@ -72,26 +73,27 @@ ENV ANDROID_BUILD_TOOLS_VERSION=33.0.2 ENV PATH=$ANDROID_SDK_ROOT/build-tools/$ANDROID_BUILD_TOOLS_VERSION:$PATH ENV ANDROID_EXTRA_PACKAGES="build-tools;33.0.0 build-tools;33.0.1" ENV ANDROID_REPOSITORIES="extras;android;m2repository extras;google;m2repository" -ENV ANDROID_CONSTRAINT_PACKAGES="extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0" -RUN sdkmanager --verbose "platform-tools" "platforms;android-$ANDROID_PLATFORM_VERSION" "build-tools;$ANDROID_BUILD_TOOLS_VERSION" $ANDROID_EXTRA_PACKAGES $ANDROID_REPOSITORIES $ANDROID_CONSTRAINT_PACKAGES +#ENV ANDROID_CONSTRAINT_PACKAGES="extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0" +RUN sdkmanager --update && \ + sdkmanager --verbose \ + "platform-tools" \ + "platforms;android-${ANDROID_PLATFORM_VERSION}" \ + "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" \ + ${ANDROID_EXTRA_PACKAGES:+${ANDROID_EXTRA_PACKAGES}} \ + ${ANDROID_REPOSITORIES:+${ANDROID_REPOSITORIES}} \ + ${ANDROID_CONSTRAINT_PACKAGES:+${ANDROID_CONSTRAINT_PACKAGES}} #### # hadolint ignore=DL3008,DL3028,SC2086 RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - ruby \ - && savedAptMark="$(apt-mark showmanual)" \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - # stf-client - build-essential \ - gem \ + ruby-full \ + #stf-client + build-essential \ + rubygems \ # Without rake fails to install stf-client && gem install rake stf-client --no-doc \ - && apt-mark auto '.*' > /dev/null \ - && apt-mark manual $savedAptMark > /dev/null \ - && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ - && rm -rf /var/lib/apt/lists/* \ - + && rm -rf /var/lib/apt/lists/* RUN adb keygen ~/.android/adbkey #### @@ -100,12 +102,22 @@ RUN adb keygen ~/.android/adbkey #### # hadolint ignore=DL3008,SC1091 RUN apt-get update \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gnupg2 \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gnupg2 build-essential \ && rm -rf /var/lib/apt/lists/* \ - && gpg2 --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB \ - && curl -sSL https://get.rvm.io | bash -s stable --ruby --without-gems="rvm rubygems-bundler" \ - && echo -e "source /usr/local/rvm/scripts/rvm\n$(cat /etc/bash.bashrc)" >/etc/bash.bashrc \ - && source /usr/local/rvm/scripts/rvm \ - && gem install bundler -v '~> 1.0' --force --no-document --default + && gpg2 --keyserver keyserver.ubuntu.com --recv-keys \ + 409B6B1796C275462A1703113804BB82D39DC0E3 \ + 7D2BAF1CF37B13E2069D6956105BD0E739499BDB \ + && curl -sSL https://get.rvm.io | bash -s stable --without-gems="rvm rubygems-bundler" \ + && echo 'source /usr/local/rvm/scripts/rvm' >> /etc/bash.bashrc + ENV BASH_ENV="/usr/local/rvm/scripts/rvm" + +RUN bash -c "source /usr/local/rvm/scripts/rvm && \ + rvm install 3.1.2 && \ + rvm install 3.4.3 && \ + rvm alias create default 3.4.3 && \ + rvm use 3.1.2 && \ + gem install bundler -v '~>2.0' --no-document && \ + rvm use 3.4.3 && \ + gem install bundler -v '~>2.0' --no-document" #### diff --git a/33/Dockerfile b/33/Dockerfile index 522c297..a647262 100644 --- a/33/Dockerfile +++ b/33/Dockerfile @@ -1,17 +1,18 @@ -FROM ubuntu:focal +FROM ubuntu:jammy SHELL ["/bin/bash", "-o", "pipefail", "-c"] # hadolint ignore=DL3008 RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - expect \ - locales \ - nano \ - openjdk-11-jdk \ - unzip \ - curl \ - xz-utils \ - git \ + expect \ + apt-utils \ + locales \ + nano \ + openjdk-11-jdk \ + unzip \ + curl \ + xz-utils \ + git \ && rm -rf /var/lib/apt/lists/* # Seems somethings build better with utf8 locale specified @@ -26,21 +27,21 @@ ENV LC_ALL=en_US.UTF-8 # hadolint ignore=DL3008 RUN apt-get update \ && apt-get install -y --no-install-recommends \ - apt-transport-https \ - gnupg \ - lsb-release \ + ca-certificates \ + apt-transport-https \ + gnupg \ + lsb-release \ # For nodejs we use nodesource, its nice and easy and gets us the correct version # Find latest link https://github.com/nodesource/distributions/blob/master/README.md#installation-instructions - && curl -sSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - \ - && echo "deb https://deb.nodesource.com/node_18.x $(lsb_release -s -c) main" | tee /etc/apt/sources.list.d/nodesource.list \ - && echo "deb-src https://deb.nodesource.com/node_18.x $(lsb_release -s -c) main" | tee -a /etc/apt/sources.list.d/nodesource.list \ + && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | gpg --dearmor -o /usr/share/keyrings/nodesource.gpg \ + && echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_18.x $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/nodesource.list \ && apt-get update \ && apt-get install -y --no-install-recommends \ - nodejs \ + nodejs \ && rm -rf /var/lib/apt/lists/* # hadolint ignore=DL3016 -RUN npm -g install xcode-build-tools yarn +RUN npm install -g xcode-build-tools yarn #### # Install the SDK @@ -48,12 +49,12 @@ RUN npm -g install xcode-build-tools yarn ENV ANDROID_CMDLINE_TOOLS=https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip # hadolint ignore=DL3003 RUN ( \ - cd /opt \ - && mkdir android-sdk-linux \ - && curl -sSL -o cmdline-tools.zip "$ANDROID_CMDLINE_TOOLS" \ - && unzip cmdline-tools.zip -d android-sdk-linux/cmdline-tools \ - && rm -f cmdline-tools.zip \ - && chown -R root:root android-sdk-linux \ + cd /opt \ + && mkdir android-sdk-linux \ + && curl -sSL -o cmdline-tools.zip "$ANDROID_CMDLINE_TOOLS" \ + && unzip cmdline-tools.zip -d android-sdk-linux/cmdline-tools \ + && rm -f cmdline-tools.zip \ + && chown -R root:root android-sdk-linux \ ) ENV ANDROID_SDK_ROOT=/opt/android-sdk-linux @@ -72,8 +73,15 @@ ENV ANDROID_BUILD_TOOLS_VERSION=33.0.2 ENV PATH=$ANDROID_SDK_ROOT/build-tools/$ANDROID_BUILD_TOOLS_VERSION:$PATH ENV ANDROID_EXTRA_PACKAGES="build-tools;33.0.0 build-tools;33.0.1" ENV ANDROID_REPOSITORIES="extras;android;m2repository extras;google;m2repository" -ENV ANDROID_CONSTRAINT_PACKAGES="extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0" -RUN sdkmanager --verbose "platform-tools" "platforms;android-$ANDROID_PLATFORM_VERSION" "build-tools;$ANDROID_BUILD_TOOLS_VERSION" $ANDROID_EXTRA_PACKAGES $ANDROID_REPOSITORIES $ANDROID_CONSTRAINT_PACKAGES +#ENV ANDROID_CONSTRAINT_PACKAGES="extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0" +RUN sdkmanager --update && \ + sdkmanager --verbose \ + "platform-tools" \ + "platforms;android-${ANDROID_PLATFORM_VERSION}" \ + "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" \ + ${ANDROID_EXTRA_PACKAGES:+${ANDROID_EXTRA_PACKAGES}} \ + ${ANDROID_REPOSITORIES:+${ANDROID_REPOSITORIES}} \ + ${ANDROID_CONSTRAINT_PACKAGES:+${ANDROID_CONSTRAINT_PACKAGES}} @@ -81,12 +89,22 @@ RUN sdkmanager --verbose "platform-tools" "platforms;android-$ANDROID_PLATFORM_V #### # hadolint ignore=DL3008,SC1091 RUN apt-get update \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gnupg2 \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gnupg2 build-essential \ && rm -rf /var/lib/apt/lists/* \ - && gpg2 --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB \ - && curl -sSL https://get.rvm.io | bash -s stable --ruby --without-gems="rvm rubygems-bundler" \ - && echo -e "source /usr/local/rvm/scripts/rvm\n$(cat /etc/bash.bashrc)" >/etc/bash.bashrc \ - && source /usr/local/rvm/scripts/rvm \ - && gem install bundler -v '~> 1.0' --force --no-document --default + && gpg2 --keyserver keyserver.ubuntu.com --recv-keys \ + 409B6B1796C275462A1703113804BB82D39DC0E3 \ + 7D2BAF1CF37B13E2069D6956105BD0E739499BDB \ + && curl -sSL https://get.rvm.io | bash -s stable --without-gems="rvm rubygems-bundler" \ + && echo 'source /usr/local/rvm/scripts/rvm' >> /etc/bash.bashrc + ENV BASH_ENV="/usr/local/rvm/scripts/rvm" + +RUN bash -c "source /usr/local/rvm/scripts/rvm && \ + rvm install 3.1.2 && \ + rvm install 3.4.3 && \ + rvm alias create default 3.4.3 && \ + rvm use 3.1.2 && \ + gem install bundler -v '~>2.0' --no-document && \ + rvm use 3.4.3 && \ + gem install bundler -v '~>2.0' --no-document" #### diff --git a/34-emulator/Dockerfile b/34-emulator/Dockerfile index 0acf75d..3db036b 100644 --- a/34-emulator/Dockerfile +++ b/34-emulator/Dockerfile @@ -1,17 +1,18 @@ -FROM ubuntu:focal +FROM ubuntu:jammy SHELL ["/bin/bash", "-o", "pipefail", "-c"] # hadolint ignore=DL3008 RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - expect \ - locales \ - nano \ - openjdk-17-jdk \ - unzip \ - curl \ - xz-utils \ - git \ + expect \ + apt-utils \ + locales \ + nano \ + openjdk-17-jdk \ + unzip \ + curl \ + xz-utils \ + git \ && rm -rf /var/lib/apt/lists/* # Seems somethings build better with utf8 locale specified @@ -26,21 +27,21 @@ ENV LC_ALL=en_US.UTF-8 # hadolint ignore=DL3008 RUN apt-get update \ && apt-get install -y --no-install-recommends \ - apt-transport-https \ - gnupg \ - lsb-release \ + ca-certificates \ + apt-transport-https \ + gnupg \ + lsb-release \ # For nodejs we use nodesource, its nice and easy and gets us the correct version # Find latest link https://github.com/nodesource/distributions/blob/master/README.md#installation-instructions - && curl -sSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - \ - && echo "deb https://deb.nodesource.com/node_20.x $(lsb_release -s -c) main" | tee /etc/apt/sources.list.d/nodesource.list \ - && echo "deb-src https://deb.nodesource.com/node_20.x $(lsb_release -s -c) main" | tee -a /etc/apt/sources.list.d/nodesource.list \ + && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | gpg --dearmor -o /usr/share/keyrings/nodesource.gpg \ + && echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/nodesource.list \ && apt-get update \ && apt-get install -y --no-install-recommends \ - nodejs \ + nodejs \ && rm -rf /var/lib/apt/lists/* # hadolint ignore=DL3016 -RUN npm -g install xcode-build-tools yarn +RUN npm install -g xcode-build-tools yarn #### # Install the SDK @@ -48,12 +49,12 @@ RUN npm -g install xcode-build-tools yarn ENV ANDROID_CMDLINE_TOOLS=https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip # hadolint ignore=DL3003 RUN ( \ - cd /opt \ - && mkdir android-sdk-linux \ - && curl -sSL -o cmdline-tools.zip "$ANDROID_CMDLINE_TOOLS" \ - && unzip cmdline-tools.zip -d android-sdk-linux/cmdline-tools \ - && rm -f cmdline-tools.zip \ - && chown -R root:root android-sdk-linux \ + cd /opt \ + && mkdir android-sdk-linux \ + && curl -sSL -o cmdline-tools.zip "$ANDROID_CMDLINE_TOOLS" \ + && unzip cmdline-tools.zip -d android-sdk-linux/cmdline-tools \ + && rm -f cmdline-tools.zip \ + && chown -R root:root android-sdk-linux \ ) ENV ANDROID_SDK_ROOT=/opt/android-sdk-linux @@ -72,24 +73,31 @@ ENV ANDROID_BUILD_TOOLS_VERSION=34.0.0 ENV PATH=$ANDROID_SDK_ROOT/build-tools/$ANDROID_BUILD_TOOLS_VERSION:$PATH ENV ANDROID_EXTRA_PACKAGES= ENV ANDROID_REPOSITORIES="extras;android;m2repository extras;google;m2repository" -ENV ANDROID_CONSTRAINT_PACKAGES="extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0" -RUN sdkmanager --verbose "platform-tools" "platforms;android-$ANDROID_PLATFORM_VERSION" "build-tools;$ANDROID_BUILD_TOOLS_VERSION" $ANDROID_EXTRA_PACKAGES $ANDROID_REPOSITORIES $ANDROID_CONSTRAINT_PACKAGES +#ENV ANDROID_CONSTRAINT_PACKAGES="extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0" +RUN sdkmanager --update && \ + sdkmanager --verbose \ + "platform-tools" \ + "platforms;android-${ANDROID_PLATFORM_VERSION}" \ + "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" \ + ${ANDROID_EXTRA_PACKAGES:+${ANDROID_EXTRA_PACKAGES}} \ + ${ANDROID_REPOSITORIES:+${ANDROID_REPOSITORIES}} \ + ${ANDROID_CONSTRAINT_PACKAGES:+${ANDROID_CONSTRAINT_PACKAGES}} #### # hadolint ignore=DL3008 RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - file \ - qt5-default \ - libpulse0 \ + file \ + qtbase5-dev \ + libpulse0 \ && rm -rf /var/lib/apt/lists/* ENV ANDROID_EMULATOR_PACKAGE="system-images;android-$ANDROID_PLATFORM_VERSION;google_apis_playstore;x86_64" RUN sdkmanager --verbose "emulator" $ANDROID_EMULATOR_PACKAGE # Fix for emulator detect 64bit -ENV SHELL=/bin/bash +ENV SHELL=/bin/bash # https://www.bram.us/2017/05/12/launching-the-android-emulator-from-the-command-line/ ENV PATH=$ANDROID_SDK_ROOT/emulator:$PATH @@ -102,12 +110,22 @@ RUN adb keygen ~/.android/adbkey #### # hadolint ignore=DL3008,SC1091 RUN apt-get update \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gnupg2 \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gnupg2 build-essential \ && rm -rf /var/lib/apt/lists/* \ - && gpg2 --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB \ - && curl -sSL https://get.rvm.io | bash -s stable --ruby --without-gems="rvm rubygems-bundler" \ - && echo -e "source /usr/local/rvm/scripts/rvm\n$(cat /etc/bash.bashrc)" >/etc/bash.bashrc \ - && source /usr/local/rvm/scripts/rvm \ - && gem install bundler -v '~> 1.0' --force --no-document --default + && gpg2 --keyserver keyserver.ubuntu.com --recv-keys \ + 409B6B1796C275462A1703113804BB82D39DC0E3 \ + 7D2BAF1CF37B13E2069D6956105BD0E739499BDB \ + && curl -sSL https://get.rvm.io | bash -s stable --without-gems="rvm rubygems-bundler" \ + && echo 'source /usr/local/rvm/scripts/rvm' >> /etc/bash.bashrc + ENV BASH_ENV="/usr/local/rvm/scripts/rvm" + +RUN bash -c "source /usr/local/rvm/scripts/rvm && \ + rvm install 3.1.2 && \ + rvm install 3.4.3 && \ + rvm alias create default 3.4.3 && \ + rvm use 3.1.2 && \ + gem install bundler -v '~>2.0' --no-document && \ + rvm use 3.4.3 && \ + gem install bundler -v '~>2.0' --no-document" #### diff --git a/34-jdk11/Dockerfile b/34-jdk11/Dockerfile index d664859..3e75eaa 100644 --- a/34-jdk11/Dockerfile +++ b/34-jdk11/Dockerfile @@ -1,17 +1,18 @@ -FROM ubuntu:focal +FROM ubuntu:jammy SHELL ["/bin/bash", "-o", "pipefail", "-c"] # hadolint ignore=DL3008 RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - expect \ - locales \ - nano \ - openjdk-11-jdk \ - unzip \ - curl \ - xz-utils \ - git \ + expect \ + apt-utils \ + locales \ + nano \ + openjdk-11-jdk \ + unzip \ + curl \ + xz-utils \ + git \ && rm -rf /var/lib/apt/lists/* # Seems somethings build better with utf8 locale specified @@ -26,21 +27,21 @@ ENV LC_ALL=en_US.UTF-8 # hadolint ignore=DL3008 RUN apt-get update \ && apt-get install -y --no-install-recommends \ - apt-transport-https \ - gnupg \ - lsb-release \ + ca-certificates \ + apt-transport-https \ + gnupg \ + lsb-release \ # For nodejs we use nodesource, its nice and easy and gets us the correct version # Find latest link https://github.com/nodesource/distributions/blob/master/README.md#installation-instructions - && curl -sSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - \ - && echo "deb https://deb.nodesource.com/node_20.x $(lsb_release -s -c) main" | tee /etc/apt/sources.list.d/nodesource.list \ - && echo "deb-src https://deb.nodesource.com/node_20.x $(lsb_release -s -c) main" | tee -a /etc/apt/sources.list.d/nodesource.list \ + && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | gpg --dearmor -o /usr/share/keyrings/nodesource.gpg \ + && echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/nodesource.list \ && apt-get update \ && apt-get install -y --no-install-recommends \ - nodejs \ + nodejs \ && rm -rf /var/lib/apt/lists/* # hadolint ignore=DL3016 -RUN npm -g install xcode-build-tools yarn +RUN npm install -g xcode-build-tools yarn #### # Install the SDK @@ -48,12 +49,12 @@ RUN npm -g install xcode-build-tools yarn ENV ANDROID_CMDLINE_TOOLS=https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip # hadolint ignore=DL3003 RUN ( \ - cd /opt \ - && mkdir android-sdk-linux \ - && curl -sSL -o cmdline-tools.zip "$ANDROID_CMDLINE_TOOLS" \ - && unzip cmdline-tools.zip -d android-sdk-linux/cmdline-tools \ - && rm -f cmdline-tools.zip \ - && chown -R root:root android-sdk-linux \ + cd /opt \ + && mkdir android-sdk-linux \ + && curl -sSL -o cmdline-tools.zip "$ANDROID_CMDLINE_TOOLS" \ + && unzip cmdline-tools.zip -d android-sdk-linux/cmdline-tools \ + && rm -f cmdline-tools.zip \ + && chown -R root:root android-sdk-linux \ ) ENV ANDROID_SDK_ROOT=/opt/android-sdk-linux @@ -72,8 +73,15 @@ ENV ANDROID_BUILD_TOOLS_VERSION=34.0.0 ENV PATH=$ANDROID_SDK_ROOT/build-tools/$ANDROID_BUILD_TOOLS_VERSION:$PATH ENV ANDROID_EXTRA_PACKAGES= ENV ANDROID_REPOSITORIES="extras;android;m2repository extras;google;m2repository" -ENV ANDROID_CONSTRAINT_PACKAGES="extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0" -RUN sdkmanager --verbose "platform-tools" "platforms;android-$ANDROID_PLATFORM_VERSION" "build-tools;$ANDROID_BUILD_TOOLS_VERSION" $ANDROID_EXTRA_PACKAGES $ANDROID_REPOSITORIES $ANDROID_CONSTRAINT_PACKAGES +#ENV ANDROID_CONSTRAINT_PACKAGES="extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0" +RUN sdkmanager --update && \ + sdkmanager --verbose \ + "platform-tools" \ + "platforms;android-${ANDROID_PLATFORM_VERSION}" \ + "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" \ + ${ANDROID_EXTRA_PACKAGES:+${ANDROID_EXTRA_PACKAGES}} \ + ${ANDROID_REPOSITORIES:+${ANDROID_REPOSITORIES}} \ + ${ANDROID_CONSTRAINT_PACKAGES:+${ANDROID_CONSTRAINT_PACKAGES}} @@ -81,12 +89,22 @@ RUN sdkmanager --verbose "platform-tools" "platforms;android-$ANDROID_PLATFORM_V #### # hadolint ignore=DL3008,SC1091 RUN apt-get update \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gnupg2 \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gnupg2 build-essential \ && rm -rf /var/lib/apt/lists/* \ - && gpg2 --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB \ - && curl -sSL https://get.rvm.io | bash -s stable --ruby --without-gems="rvm rubygems-bundler" \ - && echo -e "source /usr/local/rvm/scripts/rvm\n$(cat /etc/bash.bashrc)" >/etc/bash.bashrc \ - && source /usr/local/rvm/scripts/rvm \ - && gem install bundler -v '~> 1.0' --force --no-document --default + && gpg2 --keyserver keyserver.ubuntu.com --recv-keys \ + 409B6B1796C275462A1703113804BB82D39DC0E3 \ + 7D2BAF1CF37B13E2069D6956105BD0E739499BDB \ + && curl -sSL https://get.rvm.io | bash -s stable --without-gems="rvm rubygems-bundler" \ + && echo 'source /usr/local/rvm/scripts/rvm' >> /etc/bash.bashrc + ENV BASH_ENV="/usr/local/rvm/scripts/rvm" + +RUN bash -c "source /usr/local/rvm/scripts/rvm && \ + rvm install 3.1.2 && \ + rvm install 3.4.3 && \ + rvm alias create default 3.4.3 && \ + rvm use 3.1.2 && \ + gem install bundler -v '~>2.0' --no-document && \ + rvm use 3.4.3 && \ + gem install bundler -v '~>2.0' --no-document" #### diff --git a/34-ndk/Dockerfile b/34-ndk/Dockerfile index 2100ed3..b56170e 100644 --- a/34-ndk/Dockerfile +++ b/34-ndk/Dockerfile @@ -1,17 +1,18 @@ -FROM ubuntu:focal +FROM ubuntu:jammy SHELL ["/bin/bash", "-o", "pipefail", "-c"] # hadolint ignore=DL3008 RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - expect \ - locales \ - nano \ - openjdk-17-jdk \ - unzip \ - curl \ - xz-utils \ - git \ + expect \ + apt-utils \ + locales \ + nano \ + openjdk-17-jdk \ + unzip \ + curl \ + xz-utils \ + git \ && rm -rf /var/lib/apt/lists/* # Seems somethings build better with utf8 locale specified @@ -26,21 +27,21 @@ ENV LC_ALL=en_US.UTF-8 # hadolint ignore=DL3008 RUN apt-get update \ && apt-get install -y --no-install-recommends \ - apt-transport-https \ - gnupg \ - lsb-release \ + ca-certificates \ + apt-transport-https \ + gnupg \ + lsb-release \ # For nodejs we use nodesource, its nice and easy and gets us the correct version # Find latest link https://github.com/nodesource/distributions/blob/master/README.md#installation-instructions - && curl -sSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - \ - && echo "deb https://deb.nodesource.com/node_20.x $(lsb_release -s -c) main" | tee /etc/apt/sources.list.d/nodesource.list \ - && echo "deb-src https://deb.nodesource.com/node_20.x $(lsb_release -s -c) main" | tee -a /etc/apt/sources.list.d/nodesource.list \ + && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | gpg --dearmor -o /usr/share/keyrings/nodesource.gpg \ + && echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/nodesource.list \ && apt-get update \ && apt-get install -y --no-install-recommends \ - nodejs \ + nodejs \ && rm -rf /var/lib/apt/lists/* # hadolint ignore=DL3016 -RUN npm -g install xcode-build-tools yarn +RUN npm install -g xcode-build-tools yarn #### # Install the SDK @@ -48,12 +49,12 @@ RUN npm -g install xcode-build-tools yarn ENV ANDROID_CMDLINE_TOOLS=https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip # hadolint ignore=DL3003 RUN ( \ - cd /opt \ - && mkdir android-sdk-linux \ - && curl -sSL -o cmdline-tools.zip "$ANDROID_CMDLINE_TOOLS" \ - && unzip cmdline-tools.zip -d android-sdk-linux/cmdline-tools \ - && rm -f cmdline-tools.zip \ - && chown -R root:root android-sdk-linux \ + cd /opt \ + && mkdir android-sdk-linux \ + && curl -sSL -o cmdline-tools.zip "$ANDROID_CMDLINE_TOOLS" \ + && unzip cmdline-tools.zip -d android-sdk-linux/cmdline-tools \ + && rm -f cmdline-tools.zip \ + && chown -R root:root android-sdk-linux \ ) ENV ANDROID_SDK_ROOT=/opt/android-sdk-linux @@ -72,8 +73,15 @@ ENV ANDROID_BUILD_TOOLS_VERSION=34.0.0 ENV PATH=$ANDROID_SDK_ROOT/build-tools/$ANDROID_BUILD_TOOLS_VERSION:$PATH ENV ANDROID_EXTRA_PACKAGES= ENV ANDROID_REPOSITORIES="extras;android;m2repository extras;google;m2repository" -ENV ANDROID_CONSTRAINT_PACKAGES="extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0" -RUN sdkmanager --verbose "platform-tools" "platforms;android-$ANDROID_PLATFORM_VERSION" "build-tools;$ANDROID_BUILD_TOOLS_VERSION" $ANDROID_EXTRA_PACKAGES $ANDROID_REPOSITORIES $ANDROID_CONSTRAINT_PACKAGES +#ENV ANDROID_CONSTRAINT_PACKAGES="extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0" +RUN sdkmanager --update && \ + sdkmanager --verbose \ + "platform-tools" \ + "platforms;android-${ANDROID_PLATFORM_VERSION}" \ + "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" \ + ${ANDROID_EXTRA_PACKAGES:+${ANDROID_EXTRA_PACKAGES}} \ + ${ANDROID_REPOSITORIES:+${ANDROID_REPOSITORIES}} \ + ${ANDROID_CONSTRAINT_PACKAGES:+${ANDROID_CONSTRAINT_PACKAGES}} @@ -87,12 +95,22 @@ RUN sdkmanager --verbose $ANDROID_NDK_PACKAGES #### # hadolint ignore=DL3008,SC1091 RUN apt-get update \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gnupg2 \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gnupg2 build-essential \ && rm -rf /var/lib/apt/lists/* \ - && gpg2 --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB \ - && curl -sSL https://get.rvm.io | bash -s stable --ruby --without-gems="rvm rubygems-bundler" \ - && echo -e "source /usr/local/rvm/scripts/rvm\n$(cat /etc/bash.bashrc)" >/etc/bash.bashrc \ - && source /usr/local/rvm/scripts/rvm \ - && gem install bundler -v '~> 1.0' --force --no-document --default + && gpg2 --keyserver keyserver.ubuntu.com --recv-keys \ + 409B6B1796C275462A1703113804BB82D39DC0E3 \ + 7D2BAF1CF37B13E2069D6956105BD0E739499BDB \ + && curl -sSL https://get.rvm.io | bash -s stable --without-gems="rvm rubygems-bundler" \ + && echo 'source /usr/local/rvm/scripts/rvm' >> /etc/bash.bashrc + ENV BASH_ENV="/usr/local/rvm/scripts/rvm" + +RUN bash -c "source /usr/local/rvm/scripts/rvm && \ + rvm install 3.1.2 && \ + rvm install 3.4.3 && \ + rvm alias create default 3.4.3 && \ + rvm use 3.1.2 && \ + gem install bundler -v '~>2.0' --no-document && \ + rvm use 3.4.3 && \ + gem install bundler -v '~>2.0' --no-document" #### diff --git a/34-stf-client/Dockerfile b/34-stf-client/Dockerfile index 3bfca7e..9cb8888 100644 --- a/34-stf-client/Dockerfile +++ b/34-stf-client/Dockerfile @@ -1,17 +1,18 @@ -FROM ubuntu:focal +FROM ubuntu:jammy SHELL ["/bin/bash", "-o", "pipefail", "-c"] # hadolint ignore=DL3008 RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - expect \ - locales \ - nano \ - openjdk-17-jdk \ - unzip \ - curl \ - xz-utils \ - git \ + expect \ + apt-utils \ + locales \ + nano \ + openjdk-17-jdk \ + unzip \ + curl \ + xz-utils \ + git \ && rm -rf /var/lib/apt/lists/* # Seems somethings build better with utf8 locale specified @@ -26,21 +27,21 @@ ENV LC_ALL=en_US.UTF-8 # hadolint ignore=DL3008 RUN apt-get update \ && apt-get install -y --no-install-recommends \ - apt-transport-https \ - gnupg \ - lsb-release \ + ca-certificates \ + apt-transport-https \ + gnupg \ + lsb-release \ # For nodejs we use nodesource, its nice and easy and gets us the correct version # Find latest link https://github.com/nodesource/distributions/blob/master/README.md#installation-instructions - && curl -sSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - \ - && echo "deb https://deb.nodesource.com/node_20.x $(lsb_release -s -c) main" | tee /etc/apt/sources.list.d/nodesource.list \ - && echo "deb-src https://deb.nodesource.com/node_20.x $(lsb_release -s -c) main" | tee -a /etc/apt/sources.list.d/nodesource.list \ + && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | gpg --dearmor -o /usr/share/keyrings/nodesource.gpg \ + && echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/nodesource.list \ && apt-get update \ && apt-get install -y --no-install-recommends \ - nodejs \ + nodejs \ && rm -rf /var/lib/apt/lists/* # hadolint ignore=DL3016 -RUN npm -g install xcode-build-tools yarn +RUN npm install -g xcode-build-tools yarn #### # Install the SDK @@ -48,12 +49,12 @@ RUN npm -g install xcode-build-tools yarn ENV ANDROID_CMDLINE_TOOLS=https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip # hadolint ignore=DL3003 RUN ( \ - cd /opt \ - && mkdir android-sdk-linux \ - && curl -sSL -o cmdline-tools.zip "$ANDROID_CMDLINE_TOOLS" \ - && unzip cmdline-tools.zip -d android-sdk-linux/cmdline-tools \ - && rm -f cmdline-tools.zip \ - && chown -R root:root android-sdk-linux \ + cd /opt \ + && mkdir android-sdk-linux \ + && curl -sSL -o cmdline-tools.zip "$ANDROID_CMDLINE_TOOLS" \ + && unzip cmdline-tools.zip -d android-sdk-linux/cmdline-tools \ + && rm -f cmdline-tools.zip \ + && chown -R root:root android-sdk-linux \ ) ENV ANDROID_SDK_ROOT=/opt/android-sdk-linux @@ -72,26 +73,27 @@ ENV ANDROID_BUILD_TOOLS_VERSION=34.0.0 ENV PATH=$ANDROID_SDK_ROOT/build-tools/$ANDROID_BUILD_TOOLS_VERSION:$PATH ENV ANDROID_EXTRA_PACKAGES= ENV ANDROID_REPOSITORIES="extras;android;m2repository extras;google;m2repository" -ENV ANDROID_CONSTRAINT_PACKAGES="extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0" -RUN sdkmanager --verbose "platform-tools" "platforms;android-$ANDROID_PLATFORM_VERSION" "build-tools;$ANDROID_BUILD_TOOLS_VERSION" $ANDROID_EXTRA_PACKAGES $ANDROID_REPOSITORIES $ANDROID_CONSTRAINT_PACKAGES +#ENV ANDROID_CONSTRAINT_PACKAGES="extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0" +RUN sdkmanager --update && \ + sdkmanager --verbose \ + "platform-tools" \ + "platforms;android-${ANDROID_PLATFORM_VERSION}" \ + "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" \ + ${ANDROID_EXTRA_PACKAGES:+${ANDROID_EXTRA_PACKAGES}} \ + ${ANDROID_REPOSITORIES:+${ANDROID_REPOSITORIES}} \ + ${ANDROID_CONSTRAINT_PACKAGES:+${ANDROID_CONSTRAINT_PACKAGES}} #### # hadolint ignore=DL3008,DL3028,SC2086 RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - ruby \ - && savedAptMark="$(apt-mark showmanual)" \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - # stf-client - build-essential \ - gem \ + ruby-full \ + #stf-client + build-essential \ + rubygems \ # Without rake fails to install stf-client && gem install rake stf-client --no-doc \ - && apt-mark auto '.*' > /dev/null \ - && apt-mark manual $savedAptMark > /dev/null \ - && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ - && rm -rf /var/lib/apt/lists/* \ - + && rm -rf /var/lib/apt/lists/* RUN adb keygen ~/.android/adbkey #### @@ -100,12 +102,22 @@ RUN adb keygen ~/.android/adbkey #### # hadolint ignore=DL3008,SC1091 RUN apt-get update \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gnupg2 \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gnupg2 build-essential \ && rm -rf /var/lib/apt/lists/* \ - && gpg2 --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB \ - && curl -sSL https://get.rvm.io | bash -s stable --ruby --without-gems="rvm rubygems-bundler" \ - && echo -e "source /usr/local/rvm/scripts/rvm\n$(cat /etc/bash.bashrc)" >/etc/bash.bashrc \ - && source /usr/local/rvm/scripts/rvm \ - && gem install bundler -v '~> 1.0' --force --no-document --default + && gpg2 --keyserver keyserver.ubuntu.com --recv-keys \ + 409B6B1796C275462A1703113804BB82D39DC0E3 \ + 7D2BAF1CF37B13E2069D6956105BD0E739499BDB \ + && curl -sSL https://get.rvm.io | bash -s stable --without-gems="rvm rubygems-bundler" \ + && echo 'source /usr/local/rvm/scripts/rvm' >> /etc/bash.bashrc + ENV BASH_ENV="/usr/local/rvm/scripts/rvm" + +RUN bash -c "source /usr/local/rvm/scripts/rvm && \ + rvm install 3.1.2 && \ + rvm install 3.4.3 && \ + rvm alias create default 3.4.3 && \ + rvm use 3.1.2 && \ + gem install bundler -v '~>2.0' --no-document && \ + rvm use 3.4.3 && \ + gem install bundler -v '~>2.0' --no-document" #### diff --git a/34/Dockerfile b/34/Dockerfile index 41f67e4..aad8185 100644 --- a/34/Dockerfile +++ b/34/Dockerfile @@ -1,17 +1,18 @@ -FROM ubuntu:focal +FROM ubuntu:jammy SHELL ["/bin/bash", "-o", "pipefail", "-c"] # hadolint ignore=DL3008 RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - expect \ - locales \ - nano \ - openjdk-17-jdk \ - unzip \ - curl \ - xz-utils \ - git \ + expect \ + apt-utils \ + locales \ + nano \ + openjdk-17-jdk \ + unzip \ + curl \ + xz-utils \ + git \ && rm -rf /var/lib/apt/lists/* # Seems somethings build better with utf8 locale specified @@ -26,21 +27,21 @@ ENV LC_ALL=en_US.UTF-8 # hadolint ignore=DL3008 RUN apt-get update \ && apt-get install -y --no-install-recommends \ - apt-transport-https \ - gnupg \ - lsb-release \ + ca-certificates \ + apt-transport-https \ + gnupg \ + lsb-release \ # For nodejs we use nodesource, its nice and easy and gets us the correct version # Find latest link https://github.com/nodesource/distributions/blob/master/README.md#installation-instructions - && curl -sSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - \ - && echo "deb https://deb.nodesource.com/node_20.x $(lsb_release -s -c) main" | tee /etc/apt/sources.list.d/nodesource.list \ - && echo "deb-src https://deb.nodesource.com/node_20.x $(lsb_release -s -c) main" | tee -a /etc/apt/sources.list.d/nodesource.list \ + && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | gpg --dearmor -o /usr/share/keyrings/nodesource.gpg \ + && echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/nodesource.list \ && apt-get update \ && apt-get install -y --no-install-recommends \ - nodejs \ + nodejs \ && rm -rf /var/lib/apt/lists/* # hadolint ignore=DL3016 -RUN npm -g install xcode-build-tools yarn +RUN npm install -g xcode-build-tools yarn #### # Install the SDK @@ -48,12 +49,12 @@ RUN npm -g install xcode-build-tools yarn ENV ANDROID_CMDLINE_TOOLS=https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip # hadolint ignore=DL3003 RUN ( \ - cd /opt \ - && mkdir android-sdk-linux \ - && curl -sSL -o cmdline-tools.zip "$ANDROID_CMDLINE_TOOLS" \ - && unzip cmdline-tools.zip -d android-sdk-linux/cmdline-tools \ - && rm -f cmdline-tools.zip \ - && chown -R root:root android-sdk-linux \ + cd /opt \ + && mkdir android-sdk-linux \ + && curl -sSL -o cmdline-tools.zip "$ANDROID_CMDLINE_TOOLS" \ + && unzip cmdline-tools.zip -d android-sdk-linux/cmdline-tools \ + && rm -f cmdline-tools.zip \ + && chown -R root:root android-sdk-linux \ ) ENV ANDROID_SDK_ROOT=/opt/android-sdk-linux @@ -72,8 +73,15 @@ ENV ANDROID_BUILD_TOOLS_VERSION=34.0.0 ENV PATH=$ANDROID_SDK_ROOT/build-tools/$ANDROID_BUILD_TOOLS_VERSION:$PATH ENV ANDROID_EXTRA_PACKAGES= ENV ANDROID_REPOSITORIES="extras;android;m2repository extras;google;m2repository" -ENV ANDROID_CONSTRAINT_PACKAGES="extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0" -RUN sdkmanager --verbose "platform-tools" "platforms;android-$ANDROID_PLATFORM_VERSION" "build-tools;$ANDROID_BUILD_TOOLS_VERSION" $ANDROID_EXTRA_PACKAGES $ANDROID_REPOSITORIES $ANDROID_CONSTRAINT_PACKAGES +#ENV ANDROID_CONSTRAINT_PACKAGES="extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0" +RUN sdkmanager --update && \ + sdkmanager --verbose \ + "platform-tools" \ + "platforms;android-${ANDROID_PLATFORM_VERSION}" \ + "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" \ + ${ANDROID_EXTRA_PACKAGES:+${ANDROID_EXTRA_PACKAGES}} \ + ${ANDROID_REPOSITORIES:+${ANDROID_REPOSITORIES}} \ + ${ANDROID_CONSTRAINT_PACKAGES:+${ANDROID_CONSTRAINT_PACKAGES}} @@ -81,12 +89,22 @@ RUN sdkmanager --verbose "platform-tools" "platforms;android-$ANDROID_PLATFORM_V #### # hadolint ignore=DL3008,SC1091 RUN apt-get update \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gnupg2 \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gnupg2 build-essential \ && rm -rf /var/lib/apt/lists/* \ - && gpg2 --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB \ - && curl -sSL https://get.rvm.io | bash -s stable --ruby --without-gems="rvm rubygems-bundler" \ - && echo -e "source /usr/local/rvm/scripts/rvm\n$(cat /etc/bash.bashrc)" >/etc/bash.bashrc \ - && source /usr/local/rvm/scripts/rvm \ - && gem install bundler -v '~> 1.0' --force --no-document --default + && gpg2 --keyserver keyserver.ubuntu.com --recv-keys \ + 409B6B1796C275462A1703113804BB82D39DC0E3 \ + 7D2BAF1CF37B13E2069D6956105BD0E739499BDB \ + && curl -sSL https://get.rvm.io | bash -s stable --without-gems="rvm rubygems-bundler" \ + && echo 'source /usr/local/rvm/scripts/rvm' >> /etc/bash.bashrc + ENV BASH_ENV="/usr/local/rvm/scripts/rvm" + +RUN bash -c "source /usr/local/rvm/scripts/rvm && \ + rvm install 3.1.2 && \ + rvm install 3.4.3 && \ + rvm alias create default 3.4.3 && \ + rvm use 3.1.2 && \ + gem install bundler -v '~>2.0' --no-document && \ + rvm use 3.4.3 && \ + gem install bundler -v '~>2.0' --no-document" #### diff --git a/32-emulator/Dockerfile b/35-emulator/Dockerfile similarity index 54% rename from 32-emulator/Dockerfile rename to 35-emulator/Dockerfile index f3b97d5..01b7fc6 100644 --- a/32-emulator/Dockerfile +++ b/35-emulator/Dockerfile @@ -1,17 +1,18 @@ -FROM ubuntu:focal +FROM ubuntu:jammy SHELL ["/bin/bash", "-o", "pipefail", "-c"] # hadolint ignore=DL3008 RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - expect \ - locales \ - nano \ - openjdk-11-jdk \ - unzip \ - curl \ - xz-utils \ - git \ + expect \ + apt-utils \ + locales \ + nano \ + openjdk-17-jdk \ + unzip \ + curl \ + xz-utils \ + git \ && rm -rf /var/lib/apt/lists/* # Seems somethings build better with utf8 locale specified @@ -26,21 +27,21 @@ ENV LC_ALL=en_US.UTF-8 # hadolint ignore=DL3008 RUN apt-get update \ && apt-get install -y --no-install-recommends \ - apt-transport-https \ - gnupg \ - lsb-release \ + ca-certificates \ + apt-transport-https \ + gnupg \ + lsb-release \ # For nodejs we use nodesource, its nice and easy and gets us the correct version # Find latest link https://github.com/nodesource/distributions/blob/master/README.md#installation-instructions - && curl -sSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - \ - && echo "deb https://deb.nodesource.com/node_18.x $(lsb_release -s -c) main" | tee /etc/apt/sources.list.d/nodesource.list \ - && echo "deb-src https://deb.nodesource.com/node_18.x $(lsb_release -s -c) main" | tee -a /etc/apt/sources.list.d/nodesource.list \ + && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | gpg --dearmor -o /usr/share/keyrings/nodesource.gpg \ + && echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/nodesource.list \ && apt-get update \ && apt-get install -y --no-install-recommends \ - nodejs \ + nodejs \ && rm -rf /var/lib/apt/lists/* # hadolint ignore=DL3016 -RUN npm -g install xcode-build-tools yarn +RUN npm install -g xcode-build-tools yarn #### # Install the SDK @@ -48,12 +49,12 @@ RUN npm -g install xcode-build-tools yarn ENV ANDROID_CMDLINE_TOOLS=https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip # hadolint ignore=DL3003 RUN ( \ - cd /opt \ - && mkdir android-sdk-linux \ - && curl -sSL -o cmdline-tools.zip "$ANDROID_CMDLINE_TOOLS" \ - && unzip cmdline-tools.zip -d android-sdk-linux/cmdline-tools \ - && rm -f cmdline-tools.zip \ - && chown -R root:root android-sdk-linux \ + cd /opt \ + && mkdir android-sdk-linux \ + && curl -sSL -o cmdline-tools.zip "$ANDROID_CMDLINE_TOOLS" \ + && unzip cmdline-tools.zip -d android-sdk-linux/cmdline-tools \ + && rm -f cmdline-tools.zip \ + && chown -R root:root android-sdk-linux \ ) ENV ANDROID_SDK_ROOT=/opt/android-sdk-linux @@ -67,29 +68,36 @@ ENV PATH=/opt/tools:$PATH RUN license_accepter # Install Android platform and things -ENV ANDROID_PLATFORM_VERSION=32 -ENV ANDROID_BUILD_TOOLS_VERSION=32.0.0 +ENV ANDROID_PLATFORM_VERSION=35 +ENV ANDROID_BUILD_TOOLS_VERSION=35.0.1 ENV PATH=$ANDROID_SDK_ROOT/build-tools/$ANDROID_BUILD_TOOLS_VERSION:$PATH -ENV ANDROID_EXTRA_PACKAGES="build-tools;32.0.0" +ENV ANDROID_EXTRA_PACKAGES= ENV ANDROID_REPOSITORIES="extras;android;m2repository extras;google;m2repository" -ENV ANDROID_CONSTRAINT_PACKAGES="extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0" -RUN sdkmanager --verbose "platform-tools" "platforms;android-$ANDROID_PLATFORM_VERSION" "build-tools;$ANDROID_BUILD_TOOLS_VERSION" $ANDROID_EXTRA_PACKAGES $ANDROID_REPOSITORIES $ANDROID_CONSTRAINT_PACKAGES +#ENV ANDROID_CONSTRAINT_PACKAGES="extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0" +RUN sdkmanager --update && \ + sdkmanager --verbose \ + "platform-tools" \ + "platforms;android-${ANDROID_PLATFORM_VERSION}" \ + "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" \ + ${ANDROID_EXTRA_PACKAGES:+${ANDROID_EXTRA_PACKAGES}} \ + ${ANDROID_REPOSITORIES:+${ANDROID_REPOSITORIES}} \ + ${ANDROID_CONSTRAINT_PACKAGES:+${ANDROID_CONSTRAINT_PACKAGES}} #### # hadolint ignore=DL3008 RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - file \ - qt5-default \ - libpulse0 \ + file \ + qtbase5-dev \ + libpulse0 \ && rm -rf /var/lib/apt/lists/* ENV ANDROID_EMULATOR_PACKAGE="system-images;android-$ANDROID_PLATFORM_VERSION;google_apis_playstore;x86_64" RUN sdkmanager --verbose "emulator" $ANDROID_EMULATOR_PACKAGE # Fix for emulator detect 64bit -ENV SHELL=/bin/bash +ENV SHELL=/bin/bash # https://www.bram.us/2017/05/12/launching-the-android-emulator-from-the-command-line/ ENV PATH=$ANDROID_SDK_ROOT/emulator:$PATH @@ -102,12 +110,22 @@ RUN adb keygen ~/.android/adbkey #### # hadolint ignore=DL3008,SC1091 RUN apt-get update \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gnupg2 \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gnupg2 build-essential \ && rm -rf /var/lib/apt/lists/* \ - && gpg2 --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB \ - && curl -sSL https://get.rvm.io | bash -s stable --ruby --without-gems="rvm rubygems-bundler" \ - && echo -e "source /usr/local/rvm/scripts/rvm\n$(cat /etc/bash.bashrc)" >/etc/bash.bashrc \ - && source /usr/local/rvm/scripts/rvm \ - && gem install bundler -v '~> 1.0' --force --no-document --default + && gpg2 --keyserver keyserver.ubuntu.com --recv-keys \ + 409B6B1796C275462A1703113804BB82D39DC0E3 \ + 7D2BAF1CF37B13E2069D6956105BD0E739499BDB \ + && curl -sSL https://get.rvm.io | bash -s stable --without-gems="rvm rubygems-bundler" \ + && echo 'source /usr/local/rvm/scripts/rvm' >> /etc/bash.bashrc + ENV BASH_ENV="/usr/local/rvm/scripts/rvm" + +RUN bash -c "source /usr/local/rvm/scripts/rvm && \ + rvm install 3.1.2 && \ + rvm install 3.4.3 && \ + rvm alias create default 3.4.3 && \ + rvm use 3.1.2 && \ + gem install bundler -v '~>2.0' --no-document && \ + rvm use 3.4.3 && \ + gem install bundler -v '~>2.0' --no-document" #### diff --git a/32-emulator/tools-emulator/android-start-emulator b/35-emulator/tools-emulator/android-start-emulator similarity index 100% rename from 32-emulator/tools-emulator/android-start-emulator rename to 35-emulator/tools-emulator/android-start-emulator diff --git a/32-emulator/tools-emulator/android-wait-for-emulator b/35-emulator/tools-emulator/android-wait-for-emulator similarity index 100% rename from 32-emulator/tools-emulator/android-wait-for-emulator rename to 35-emulator/tools-emulator/android-wait-for-emulator diff --git a/32-emulator/tools/adb-all b/35-emulator/tools/adb-all similarity index 100% rename from 32-emulator/tools/adb-all rename to 35-emulator/tools/adb-all diff --git a/32-emulator/tools/license_accepter b/35-emulator/tools/license_accepter similarity index 100% rename from 32-emulator/tools/license_accepter rename to 35-emulator/tools/license_accepter diff --git a/35-jdk11/Dockerfile b/35-jdk11/Dockerfile new file mode 100644 index 0000000..72fe8bb --- /dev/null +++ b/35-jdk11/Dockerfile @@ -0,0 +1,110 @@ +FROM ubuntu:jammy +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +# hadolint ignore=DL3008 +RUN apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ + expect \ + apt-utils \ + locales \ + nano \ + openjdk-11-jdk \ + unzip \ + curl \ + xz-utils \ + git \ + && rm -rf /var/lib/apt/lists/* + +# Seems somethings build better with utf8 locale specified +# http://jaredmarkell.com/docker-and-locales/ +# https://github.com/square/moshi/issues/804#issuecomment-466926878 +RUN locale-gen en_US.UTF-8 +ENV LANG=en_US.UTF-8 +ENV LANGUAGE=en_US:en +ENV LC_ALL=en_US.UTF-8 + +#### +# hadolint ignore=DL3008 +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + ca-certificates \ + apt-transport-https \ + gnupg \ + lsb-release \ + # For nodejs we use nodesource, its nice and easy and gets us the correct version + # Find latest link https://github.com/nodesource/distributions/blob/master/README.md#installation-instructions + && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | gpg --dearmor -o /usr/share/keyrings/nodesource.gpg \ + && echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/nodesource.list \ + && apt-get update \ + && apt-get install -y --no-install-recommends \ + nodejs \ + && rm -rf /var/lib/apt/lists/* + +# hadolint ignore=DL3016 +RUN npm install -g xcode-build-tools yarn +#### + +# Install the SDK +# https://developer.android.com/studio#downloads +ENV ANDROID_CMDLINE_TOOLS=https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip +# hadolint ignore=DL3003 +RUN ( \ + cd /opt \ + && mkdir android-sdk-linux \ + && curl -sSL -o cmdline-tools.zip "$ANDROID_CMDLINE_TOOLS" \ + && unzip cmdline-tools.zip -d android-sdk-linux/cmdline-tools \ + && rm -f cmdline-tools.zip \ + && chown -R root:root android-sdk-linux \ + ) + +ENV ANDROID_SDK_ROOT=/opt/android-sdk-linux +ENV ANDROID_HOME=$ANDROID_SDK_ROOT +ENV PATH=$ANDROID_HOME/cmdline-tools/cmdline-tools/bin:$ANDROID_HOME/cmdline-tools/tools/bin:$ANDROID_SDK_ROOT/tools/bin:$ANDROID_SDK_ROOT/tools:$ANDROID_SDK_ROOT/platform-tools:$PATH + +# Install custom tools +COPY tools/license_accepter /opt/tools/ +COPY tools/adb-all /opt/tools +ENV PATH=/opt/tools:$PATH +RUN license_accepter + +# Install Android platform and things +ENV ANDROID_PLATFORM_VERSION=35 +ENV ANDROID_BUILD_TOOLS_VERSION=35.0.1 +ENV PATH=$ANDROID_SDK_ROOT/build-tools/$ANDROID_BUILD_TOOLS_VERSION:$PATH +ENV ANDROID_EXTRA_PACKAGES= +ENV ANDROID_REPOSITORIES="extras;android;m2repository extras;google;m2repository" +#ENV ANDROID_CONSTRAINT_PACKAGES="extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0" +RUN sdkmanager --update && \ + sdkmanager --verbose \ + "platform-tools" \ + "platforms;android-${ANDROID_PLATFORM_VERSION}" \ + "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" \ + ${ANDROID_EXTRA_PACKAGES:+${ANDROID_EXTRA_PACKAGES}} \ + ${ANDROID_REPOSITORIES:+${ANDROID_REPOSITORIES}} \ + ${ANDROID_CONSTRAINT_PACKAGES:+${ANDROID_CONSTRAINT_PACKAGES}} + + + + +#### +# hadolint ignore=DL3008,SC1091 +RUN apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gnupg2 build-essential \ + && rm -rf /var/lib/apt/lists/* \ + && gpg2 --keyserver keyserver.ubuntu.com --recv-keys \ + 409B6B1796C275462A1703113804BB82D39DC0E3 \ + 7D2BAF1CF37B13E2069D6956105BD0E739499BDB \ + && curl -sSL https://get.rvm.io | bash -s stable --without-gems="rvm rubygems-bundler" \ + && echo 'source /usr/local/rvm/scripts/rvm' >> /etc/bash.bashrc + +ENV BASH_ENV="/usr/local/rvm/scripts/rvm" + +RUN bash -c "source /usr/local/rvm/scripts/rvm && \ + rvm install 3.1.2 && \ + rvm install 3.4.3 && \ + rvm alias create default 3.4.3 && \ + rvm use 3.1.2 && \ + gem install bundler -v '~>2.0' --no-document && \ + rvm use 3.4.3 && \ + gem install bundler -v '~>2.0' --no-document" +#### diff --git a/32-jdk17/tools/adb-all b/35-jdk11/tools/adb-all similarity index 100% rename from 32-jdk17/tools/adb-all rename to 35-jdk11/tools/adb-all diff --git a/32-jdk17/tools/license_accepter b/35-jdk11/tools/license_accepter similarity index 100% rename from 32-jdk17/tools/license_accepter rename to 35-jdk11/tools/license_accepter diff --git a/32-ndk/Dockerfile b/35-ndk/Dockerfile similarity index 50% rename from 32-ndk/Dockerfile rename to 35-ndk/Dockerfile index ec5e977..d15bf00 100644 --- a/32-ndk/Dockerfile +++ b/35-ndk/Dockerfile @@ -1,17 +1,18 @@ -FROM ubuntu:focal +FROM ubuntu:jammy SHELL ["/bin/bash", "-o", "pipefail", "-c"] # hadolint ignore=DL3008 RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - expect \ - locales \ - nano \ - openjdk-11-jdk \ - unzip \ - curl \ - xz-utils \ - git \ + expect \ + apt-utils \ + locales \ + nano \ + openjdk-17-jdk \ + unzip \ + curl \ + xz-utils \ + git \ && rm -rf /var/lib/apt/lists/* # Seems somethings build better with utf8 locale specified @@ -26,21 +27,21 @@ ENV LC_ALL=en_US.UTF-8 # hadolint ignore=DL3008 RUN apt-get update \ && apt-get install -y --no-install-recommends \ - apt-transport-https \ - gnupg \ - lsb-release \ + ca-certificates \ + apt-transport-https \ + gnupg \ + lsb-release \ # For nodejs we use nodesource, its nice and easy and gets us the correct version # Find latest link https://github.com/nodesource/distributions/blob/master/README.md#installation-instructions - && curl -sSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - \ - && echo "deb https://deb.nodesource.com/node_18.x $(lsb_release -s -c) main" | tee /etc/apt/sources.list.d/nodesource.list \ - && echo "deb-src https://deb.nodesource.com/node_18.x $(lsb_release -s -c) main" | tee -a /etc/apt/sources.list.d/nodesource.list \ + && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | gpg --dearmor -o /usr/share/keyrings/nodesource.gpg \ + && echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/nodesource.list \ && apt-get update \ && apt-get install -y --no-install-recommends \ - nodejs \ + nodejs \ && rm -rf /var/lib/apt/lists/* # hadolint ignore=DL3016 -RUN npm -g install xcode-build-tools yarn +RUN npm install -g xcode-build-tools yarn #### # Install the SDK @@ -48,12 +49,12 @@ RUN npm -g install xcode-build-tools yarn ENV ANDROID_CMDLINE_TOOLS=https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip # hadolint ignore=DL3003 RUN ( \ - cd /opt \ - && mkdir android-sdk-linux \ - && curl -sSL -o cmdline-tools.zip "$ANDROID_CMDLINE_TOOLS" \ - && unzip cmdline-tools.zip -d android-sdk-linux/cmdline-tools \ - && rm -f cmdline-tools.zip \ - && chown -R root:root android-sdk-linux \ + cd /opt \ + && mkdir android-sdk-linux \ + && curl -sSL -o cmdline-tools.zip "$ANDROID_CMDLINE_TOOLS" \ + && unzip cmdline-tools.zip -d android-sdk-linux/cmdline-tools \ + && rm -f cmdline-tools.zip \ + && chown -R root:root android-sdk-linux \ ) ENV ANDROID_SDK_ROOT=/opt/android-sdk-linux @@ -67,13 +68,20 @@ ENV PATH=/opt/tools:$PATH RUN license_accepter # Install Android platform and things -ENV ANDROID_PLATFORM_VERSION=32 -ENV ANDROID_BUILD_TOOLS_VERSION=32.0.0 +ENV ANDROID_PLATFORM_VERSION=35 +ENV ANDROID_BUILD_TOOLS_VERSION=35.0.1 ENV PATH=$ANDROID_SDK_ROOT/build-tools/$ANDROID_BUILD_TOOLS_VERSION:$PATH -ENV ANDROID_EXTRA_PACKAGES="build-tools;32.0.0" +ENV ANDROID_EXTRA_PACKAGES= ENV ANDROID_REPOSITORIES="extras;android;m2repository extras;google;m2repository" -ENV ANDROID_CONSTRAINT_PACKAGES="extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0" -RUN sdkmanager --verbose "platform-tools" "platforms;android-$ANDROID_PLATFORM_VERSION" "build-tools;$ANDROID_BUILD_TOOLS_VERSION" $ANDROID_EXTRA_PACKAGES $ANDROID_REPOSITORIES $ANDROID_CONSTRAINT_PACKAGES +#ENV ANDROID_CONSTRAINT_PACKAGES="extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0" +RUN sdkmanager --update && \ + sdkmanager --verbose \ + "platform-tools" \ + "platforms;android-${ANDROID_PLATFORM_VERSION}" \ + "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" \ + ${ANDROID_EXTRA_PACKAGES:+${ANDROID_EXTRA_PACKAGES}} \ + ${ANDROID_REPOSITORIES:+${ANDROID_REPOSITORIES}} \ + ${ANDROID_CONSTRAINT_PACKAGES:+${ANDROID_CONSTRAINT_PACKAGES}} @@ -87,12 +95,22 @@ RUN sdkmanager --verbose $ANDROID_NDK_PACKAGES #### # hadolint ignore=DL3008,SC1091 RUN apt-get update \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gnupg2 \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gnupg2 build-essential \ && rm -rf /var/lib/apt/lists/* \ - && gpg2 --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB \ - && curl -sSL https://get.rvm.io | bash -s stable --ruby --without-gems="rvm rubygems-bundler" \ - && echo -e "source /usr/local/rvm/scripts/rvm\n$(cat /etc/bash.bashrc)" >/etc/bash.bashrc \ - && source /usr/local/rvm/scripts/rvm \ - && gem install bundler -v '~> 1.0' --force --no-document --default + && gpg2 --keyserver keyserver.ubuntu.com --recv-keys \ + 409B6B1796C275462A1703113804BB82D39DC0E3 \ + 7D2BAF1CF37B13E2069D6956105BD0E739499BDB \ + && curl -sSL https://get.rvm.io | bash -s stable --without-gems="rvm rubygems-bundler" \ + && echo 'source /usr/local/rvm/scripts/rvm' >> /etc/bash.bashrc + ENV BASH_ENV="/usr/local/rvm/scripts/rvm" + +RUN bash -c "source /usr/local/rvm/scripts/rvm && \ + rvm install 3.1.2 && \ + rvm install 3.4.3 && \ + rvm alias create default 3.4.3 && \ + rvm use 3.1.2 && \ + gem install bundler -v '~>2.0' --no-document && \ + rvm use 3.4.3 && \ + gem install bundler -v '~>2.0' --no-document" #### diff --git a/32-ndk/tools/adb-all b/35-ndk/tools/adb-all similarity index 100% rename from 32-ndk/tools/adb-all rename to 35-ndk/tools/adb-all diff --git a/32-ndk/tools/license_accepter b/35-ndk/tools/license_accepter similarity index 100% rename from 32-ndk/tools/license_accepter rename to 35-ndk/tools/license_accepter diff --git a/35-stf-client/Dockerfile b/35-stf-client/Dockerfile new file mode 100644 index 0000000..943b532 --- /dev/null +++ b/35-stf-client/Dockerfile @@ -0,0 +1,123 @@ +FROM ubuntu:jammy +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +# hadolint ignore=DL3008 +RUN apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ + expect \ + apt-utils \ + locales \ + nano \ + openjdk-17-jdk \ + unzip \ + curl \ + xz-utils \ + git \ + && rm -rf /var/lib/apt/lists/* + +# Seems somethings build better with utf8 locale specified +# http://jaredmarkell.com/docker-and-locales/ +# https://github.com/square/moshi/issues/804#issuecomment-466926878 +RUN locale-gen en_US.UTF-8 +ENV LANG=en_US.UTF-8 +ENV LANGUAGE=en_US:en +ENV LC_ALL=en_US.UTF-8 + +#### +# hadolint ignore=DL3008 +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + ca-certificates \ + apt-transport-https \ + gnupg \ + lsb-release \ + # For nodejs we use nodesource, its nice and easy and gets us the correct version + # Find latest link https://github.com/nodesource/distributions/blob/master/README.md#installation-instructions + && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | gpg --dearmor -o /usr/share/keyrings/nodesource.gpg \ + && echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/nodesource.list \ + && apt-get update \ + && apt-get install -y --no-install-recommends \ + nodejs \ + && rm -rf /var/lib/apt/lists/* + +# hadolint ignore=DL3016 +RUN npm install -g xcode-build-tools yarn +#### + +# Install the SDK +# https://developer.android.com/studio#downloads +ENV ANDROID_CMDLINE_TOOLS=https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip +# hadolint ignore=DL3003 +RUN ( \ + cd /opt \ + && mkdir android-sdk-linux \ + && curl -sSL -o cmdline-tools.zip "$ANDROID_CMDLINE_TOOLS" \ + && unzip cmdline-tools.zip -d android-sdk-linux/cmdline-tools \ + && rm -f cmdline-tools.zip \ + && chown -R root:root android-sdk-linux \ + ) + +ENV ANDROID_SDK_ROOT=/opt/android-sdk-linux +ENV ANDROID_HOME=$ANDROID_SDK_ROOT +ENV PATH=$ANDROID_HOME/cmdline-tools/cmdline-tools/bin:$ANDROID_HOME/cmdline-tools/tools/bin:$ANDROID_SDK_ROOT/tools/bin:$ANDROID_SDK_ROOT/tools:$ANDROID_SDK_ROOT/platform-tools:$PATH + +# Install custom tools +COPY tools/license_accepter /opt/tools/ +COPY tools/adb-all /opt/tools +ENV PATH=/opt/tools:$PATH +RUN license_accepter + +# Install Android platform and things +ENV ANDROID_PLATFORM_VERSION=35 +ENV ANDROID_BUILD_TOOLS_VERSION=35.0.1 +ENV PATH=$ANDROID_SDK_ROOT/build-tools/$ANDROID_BUILD_TOOLS_VERSION:$PATH +ENV ANDROID_EXTRA_PACKAGES= +ENV ANDROID_REPOSITORIES="extras;android;m2repository extras;google;m2repository" +#ENV ANDROID_CONSTRAINT_PACKAGES="extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0" +RUN sdkmanager --update && \ + sdkmanager --verbose \ + "platform-tools" \ + "platforms;android-${ANDROID_PLATFORM_VERSION}" \ + "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" \ + ${ANDROID_EXTRA_PACKAGES:+${ANDROID_EXTRA_PACKAGES}} \ + ${ANDROID_REPOSITORIES:+${ANDROID_REPOSITORIES}} \ + ${ANDROID_CONSTRAINT_PACKAGES:+${ANDROID_CONSTRAINT_PACKAGES}} + +#### +# hadolint ignore=DL3008,DL3028,SC2086 +RUN apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ + ruby-full \ + #stf-client + build-essential \ + rubygems \ + # Without rake fails to install stf-client + && gem install rake stf-client --no-doc \ + && rm -rf /var/lib/apt/lists/* +RUN adb keygen ~/.android/adbkey +#### + + + +#### +# hadolint ignore=DL3008,SC1091 +RUN apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gnupg2 build-essential \ + && rm -rf /var/lib/apt/lists/* \ + && gpg2 --keyserver keyserver.ubuntu.com --recv-keys \ + 409B6B1796C275462A1703113804BB82D39DC0E3 \ + 7D2BAF1CF37B13E2069D6956105BD0E739499BDB \ + && curl -sSL https://get.rvm.io | bash -s stable --without-gems="rvm rubygems-bundler" \ + && echo 'source /usr/local/rvm/scripts/rvm' >> /etc/bash.bashrc + +ENV BASH_ENV="/usr/local/rvm/scripts/rvm" + +RUN bash -c "source /usr/local/rvm/scripts/rvm && \ + rvm install 3.1.2 && \ + rvm install 3.4.3 && \ + rvm alias create default 3.4.3 && \ + rvm use 3.1.2 && \ + gem install bundler -v '~>2.0' --no-document && \ + rvm use 3.4.3 && \ + gem install bundler -v '~>2.0' --no-document" +#### diff --git a/32-stf-client/tools/adb-all b/35-stf-client/tools/adb-all similarity index 100% rename from 32-stf-client/tools/adb-all rename to 35-stf-client/tools/adb-all diff --git a/32-stf-client/tools/license_accepter b/35-stf-client/tools/license_accepter similarity index 100% rename from 32-stf-client/tools/license_accepter rename to 35-stf-client/tools/license_accepter diff --git a/35/Dockerfile b/35/Dockerfile new file mode 100644 index 0000000..af99bf2 --- /dev/null +++ b/35/Dockerfile @@ -0,0 +1,110 @@ +FROM ubuntu:jammy +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +# hadolint ignore=DL3008 +RUN apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ + expect \ + apt-utils \ + locales \ + nano \ + openjdk-17-jdk \ + unzip \ + curl \ + xz-utils \ + git \ + && rm -rf /var/lib/apt/lists/* + +# Seems somethings build better with utf8 locale specified +# http://jaredmarkell.com/docker-and-locales/ +# https://github.com/square/moshi/issues/804#issuecomment-466926878 +RUN locale-gen en_US.UTF-8 +ENV LANG=en_US.UTF-8 +ENV LANGUAGE=en_US:en +ENV LC_ALL=en_US.UTF-8 + +#### +# hadolint ignore=DL3008 +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + ca-certificates \ + apt-transport-https \ + gnupg \ + lsb-release \ + # For nodejs we use nodesource, its nice and easy and gets us the correct version + # Find latest link https://github.com/nodesource/distributions/blob/master/README.md#installation-instructions + && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | gpg --dearmor -o /usr/share/keyrings/nodesource.gpg \ + && echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/nodesource.list \ + && apt-get update \ + && apt-get install -y --no-install-recommends \ + nodejs \ + && rm -rf /var/lib/apt/lists/* + +# hadolint ignore=DL3016 +RUN npm install -g xcode-build-tools yarn +#### + +# Install the SDK +# https://developer.android.com/studio#downloads +ENV ANDROID_CMDLINE_TOOLS=https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip +# hadolint ignore=DL3003 +RUN ( \ + cd /opt \ + && mkdir android-sdk-linux \ + && curl -sSL -o cmdline-tools.zip "$ANDROID_CMDLINE_TOOLS" \ + && unzip cmdline-tools.zip -d android-sdk-linux/cmdline-tools \ + && rm -f cmdline-tools.zip \ + && chown -R root:root android-sdk-linux \ + ) + +ENV ANDROID_SDK_ROOT=/opt/android-sdk-linux +ENV ANDROID_HOME=$ANDROID_SDK_ROOT +ENV PATH=$ANDROID_HOME/cmdline-tools/cmdline-tools/bin:$ANDROID_HOME/cmdline-tools/tools/bin:$ANDROID_SDK_ROOT/tools/bin:$ANDROID_SDK_ROOT/tools:$ANDROID_SDK_ROOT/platform-tools:$PATH + +# Install custom tools +COPY tools/license_accepter /opt/tools/ +COPY tools/adb-all /opt/tools +ENV PATH=/opt/tools:$PATH +RUN license_accepter + +# Install Android platform and things +ENV ANDROID_PLATFORM_VERSION=35 +ENV ANDROID_BUILD_TOOLS_VERSION=35.0.1 +ENV PATH=$ANDROID_SDK_ROOT/build-tools/$ANDROID_BUILD_TOOLS_VERSION:$PATH +ENV ANDROID_EXTRA_PACKAGES= +ENV ANDROID_REPOSITORIES="extras;android;m2repository extras;google;m2repository" +#ENV ANDROID_CONSTRAINT_PACKAGES="extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0" +RUN sdkmanager --update && \ + sdkmanager --verbose \ + "platform-tools" \ + "platforms;android-${ANDROID_PLATFORM_VERSION}" \ + "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" \ + ${ANDROID_EXTRA_PACKAGES:+${ANDROID_EXTRA_PACKAGES}} \ + ${ANDROID_REPOSITORIES:+${ANDROID_REPOSITORIES}} \ + ${ANDROID_CONSTRAINT_PACKAGES:+${ANDROID_CONSTRAINT_PACKAGES}} + + + + +#### +# hadolint ignore=DL3008,SC1091 +RUN apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gnupg2 build-essential \ + && rm -rf /var/lib/apt/lists/* \ + && gpg2 --keyserver keyserver.ubuntu.com --recv-keys \ + 409B6B1796C275462A1703113804BB82D39DC0E3 \ + 7D2BAF1CF37B13E2069D6956105BD0E739499BDB \ + && curl -sSL https://get.rvm.io | bash -s stable --without-gems="rvm rubygems-bundler" \ + && echo 'source /usr/local/rvm/scripts/rvm' >> /etc/bash.bashrc + +ENV BASH_ENV="/usr/local/rvm/scripts/rvm" + +RUN bash -c "source /usr/local/rvm/scripts/rvm && \ + rvm install 3.1.2 && \ + rvm install 3.4.3 && \ + rvm alias create default 3.4.3 && \ + rvm use 3.1.2 && \ + gem install bundler -v '~>2.0' --no-document && \ + rvm use 3.4.3 && \ + gem install bundler -v '~>2.0' --no-document" +#### diff --git a/32/tools/adb-all b/35/tools/adb-all similarity index 100% rename from 32/tools/adb-all rename to 35/tools/adb-all diff --git a/32/tools/license_accepter b/35/tools/license_accepter similarity index 100% rename from 32/tools/license_accepter rename to 35/tools/license_accepter diff --git a/Dockerfile.template b/Dockerfile.template index 2785323..fe7a109 100644 --- a/Dockerfile.template +++ b/Dockerfile.template @@ -1,17 +1,18 @@ -FROM ubuntu:focal +FROM ubuntu:jammy SHELL ["/bin/bash", "-o", "pipefail", "-c"] # hadolint ignore=DL3008 RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - expect \ - locales \ - nano \ - openjdk-%%JDK_VERSION%%-jdk \ - unzip \ - curl \ - xz-utils \ - git \ + expect \ + apt-utils \ + locales \ + nano \ + openjdk-%%JDK_VERSION%%-jdk \ + unzip \ + curl \ + xz-utils \ + git \ && rm -rf /var/lib/apt/lists/* # Seems somethings build better with utf8 locale specified @@ -26,21 +27,21 @@ ENV LC_ALL=en_US.UTF-8 # hadolint ignore=DL3008 RUN apt-get update \ && apt-get install -y --no-install-recommends \ - apt-transport-https \ - gnupg \ - lsb-release \ + ca-certificates \ + apt-transport-https \ + gnupg \ + lsb-release \ # For nodejs we use nodesource, its nice and easy and gets us the correct version # Find latest link https://github.com/nodesource/distributions/blob/master/README.md#installation-instructions - && curl -sSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - \ - && echo "deb https://deb.nodesource.com/node_%%NODE_VARIANT%%.x $(lsb_release -s -c) main" | tee /etc/apt/sources.list.d/nodesource.list \ - && echo "deb-src https://deb.nodesource.com/node_%%NODE_VARIANT%%.x $(lsb_release -s -c) main" | tee -a /etc/apt/sources.list.d/nodesource.list \ + && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | gpg --dearmor -o /usr/share/keyrings/nodesource.gpg \ + && echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_%%NODE_VARIANT%%.x $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/nodesource.list \ && apt-get update \ && apt-get install -y --no-install-recommends \ - nodejs \ + nodejs \ && rm -rf /var/lib/apt/lists/* # hadolint ignore=DL3016 -RUN npm -g install xcode-build-tools yarn +RUN npm install -g xcode-build-tools yarn #### # Install the SDK @@ -48,12 +49,12 @@ RUN npm -g install xcode-build-tools yarn ENV ANDROID_CMDLINE_TOOLS=https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip # hadolint ignore=DL3003 RUN ( \ - cd /opt \ - && mkdir android-sdk-linux \ - && curl -sSL -o cmdline-tools.zip "$ANDROID_CMDLINE_TOOLS" \ - && unzip cmdline-tools.zip -d android-sdk-linux/cmdline-tools \ - && rm -f cmdline-tools.zip \ - && chown -R root:root android-sdk-linux \ + cd /opt \ + && mkdir android-sdk-linux \ + && curl -sSL -o cmdline-tools.zip "$ANDROID_CMDLINE_TOOLS" \ + && unzip cmdline-tools.zip -d android-sdk-linux/cmdline-tools \ + && rm -f cmdline-tools.zip \ + && chown -R root:root android-sdk-linux \ ) ENV ANDROID_SDK_ROOT=/opt/android-sdk-linux @@ -72,26 +73,27 @@ ENV ANDROID_BUILD_TOOLS_VERSION=%%BUILD_TOOLS%% ENV PATH=$ANDROID_SDK_ROOT/build-tools/$ANDROID_BUILD_TOOLS_VERSION:$PATH ENV ANDROID_EXTRA_PACKAGES=%%EXTRA_PACKAGES%% ENV ANDROID_REPOSITORIES="extras;android;m2repository extras;google;m2repository" -ENV ANDROID_CONSTRAINT_PACKAGES="extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0" -RUN sdkmanager --verbose "platform-tools" "platforms;android-$ANDROID_PLATFORM_VERSION" "build-tools;$ANDROID_BUILD_TOOLS_VERSION" $ANDROID_EXTRA_PACKAGES $ANDROID_REPOSITORIES $ANDROID_CONSTRAINT_PACKAGES +#ENV ANDROID_CONSTRAINT_PACKAGES="extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1 extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0" +RUN sdkmanager --update && \ + sdkmanager --verbose \ + "platform-tools" \ + "platforms;android-${ANDROID_PLATFORM_VERSION}" \ + "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" \ + ${ANDROID_EXTRA_PACKAGES:+${ANDROID_EXTRA_PACKAGES}} \ + ${ANDROID_REPOSITORIES:+${ANDROID_REPOSITORIES}} \ + ${ANDROID_CONSTRAINT_PACKAGES:+${ANDROID_CONSTRAINT_PACKAGES}} #### # hadolint ignore=DL3008,DL3028,SC2086 RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - ruby \ - && savedAptMark="$(apt-mark showmanual)" \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - # stf-client - build-essential \ - gem \ + ruby-full \ + #stf-client + build-essential \ + rubygems \ # Without rake fails to install stf-client && gem install rake stf-client --no-doc \ - && apt-mark auto '.*' > /dev/null \ - && apt-mark manual $savedAptMark > /dev/null \ - && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ - && rm -rf /var/lib/apt/lists/* \ - + && rm -rf /var/lib/apt/lists/* RUN adb keygen ~/.android/adbkey #### @@ -99,16 +101,16 @@ RUN adb keygen ~/.android/adbkey # hadolint ignore=DL3008 RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - file \ - qt5-default \ - libpulse0 \ + file \ + qtbase5-dev \ + libpulse0 \ && rm -rf /var/lib/apt/lists/* ENV ANDROID_EMULATOR_PACKAGE="system-images;android-$ANDROID_PLATFORM_VERSION;google_apis_playstore;x86_64" RUN sdkmanager --verbose "emulator" $ANDROID_EMULATOR_PACKAGE # Fix for emulator detect 64bit -ENV SHELL=/bin/bash +ENV SHELL=/bin/bash # https://www.bram.us/2017/05/12/launching-the-android-emulator-from-the-command-line/ ENV PATH=$ANDROID_SDK_ROOT/emulator:$PATH @@ -127,12 +129,22 @@ RUN sdkmanager --verbose $ANDROID_NDK_PACKAGES #### # hadolint ignore=DL3008,SC1091 RUN apt-get update \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gnupg2 \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gnupg2 build-essential \ && rm -rf /var/lib/apt/lists/* \ - && gpg2 --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB \ - && curl -sSL https://get.rvm.io | bash -s stable --ruby --without-gems="rvm rubygems-bundler" \ - && echo -e "source /usr/local/rvm/scripts/rvm\n$(cat /etc/bash.bashrc)" >/etc/bash.bashrc \ - && source /usr/local/rvm/scripts/rvm \ - && gem install bundler -v '~> 1.0' --force --no-document --default + && gpg2 --keyserver keyserver.ubuntu.com --recv-keys \ + 409B6B1796C275462A1703113804BB82D39DC0E3 \ + 7D2BAF1CF37B13E2069D6956105BD0E739499BDB \ + && curl -sSL https://get.rvm.io | bash -s stable --without-gems="rvm rubygems-bundler" \ + && echo 'source /usr/local/rvm/scripts/rvm' >> /etc/bash.bashrc + ENV BASH_ENV="/usr/local/rvm/scripts/rvm" + +RUN bash -c "source /usr/local/rvm/scripts/rvm && \ + rvm install 3.1.2 && \ + rvm install 3.4.3 && \ + rvm alias create default 3.4.3 && \ + rvm use 3.1.2 && \ + gem install bundler -v '~>2.0' --no-document && \ + rvm use 3.4.3 && \ + gem install bundler -v '~>2.0' --no-document" #### diff --git a/README.md b/README.md index 4f3b3c7..9b4b8aa 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,11 @@ An image that lets us build android apps with docker using gitlab-ci ## Tags available +* `35` +* `35-emulator` +* `35-ndk` +* `35-stf-client` +* `35-jdk11` * `34` * `34-emulator` * `34-ndk` @@ -14,14 +19,14 @@ An image that lets us build android apps with docker using gitlab-ci * `33-ndk` * `33-stf-client` * `33-jdk17` + +## Unmaintained tags + * `32` * `32-emulator` * `32-ndk` * `32-stf-client` * `32-jdk17` - -## Unmaintained tags - * `31` * `31-emulator` * `31-ndk` diff --git a/update.sh b/update.sh index 2d37a3b..1ab7b58 100755 --- a/update.sh +++ b/update.sh @@ -1,33 +1,33 @@ #!/usr/bin/env bash set -e -variants=('32' '33' '34') +variants=('33' '34' '35') ## Disabled creating extra node variants, rather just having a default for each SDK -#node_variants=('14' '18') +#node_variants=('18' '20') declare -A default_node_variants=( - ['32']='18' ['33']='18' ['34']='20' + ['35']='20' ) jdk_variants=('11' '17') declare -A default_jdk_variants=( - ['32']='11' ['33']='11' ['34']='17' + ['35']='17' ) declare -A build_tools=( - ['32']='32.0.0' ['33']='33.0.2' ['34']='34.0.0' + ['35']='35.0.1' ) declare -A extra_packages=( - ['32']='"build-tools;32.0.0"' ['33']='"build-tools;33.0.0 build-tools;33.0.1"' ['34']='' + ['35']='' ) for variant in "${variants[@]}"; do