| FROM ubuntu:22.04 |
| |
| # install packages |
| RUN set -eux; \ |
| apt-get update; apt-get upgrade -y ; \ |
| apt-get install -y \ |
| gosu \ |
| sudo \ |
| locales \ |
| make \ |
| less \ |
| build-essential \ |
| `# default JDK for Apache Flink` \ |
| openjdk-8-jdk \ |
| `# FLINK-18356` \ |
| libjemalloc-dev \ |
| curl \ |
| libapr1 \ |
| unzip \ |
| uuid-runtime \ |
| jq \ |
| bsdmainutils \ |
| wget \ |
| `# for pyflink test suite` \ |
| python3 \ |
| docker.io \ |
| psmisc \ |
| software-properties-common \ |
| apt-transport-https; \ |
| rm -rf /var/lib/apt/lists/*;\ |
| # enables legacy python command for PyFlink tests |
| ln -s /usr/bin/python3 /usr/bin/python |
| |
| # Install latest git |
| RUN set -eux; \ |
| add-apt-repository -y ppa:git-core/ppa; \ |
| apt-get update; \ |
| apt-get install -y git |
| |
| # Install Temurin JDK11 |
| RUN wget -q https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.19%2B7/OpenJDK11U-jdk_x64_linux_hotspot_11.0.19_7.tar.gz |
| RUN tar -C /usr/lib/jvm -xzf OpenJDK11U-jdk_x64_linux_hotspot_11.0.19_7.tar.gz |
| |
| # Install Temurin JDK17 |
| RUN wget -q https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.7%2B7/OpenJDK17U-jdk_x64_linux_hotspot_17.0.7_7.tar.gz |
| RUN tar -C /usr/lib/jvm -xzf OpenJDK17U-jdk_x64_linux_hotspot_17.0.7_7.tar.gz |
| |
| # Install Temurin JDK21 |
| RUN wget -q https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.1%2B12/OpenJDK21U-jdk_x64_linux_hotspot_21.0.1_12.tar.gz |
| RUN tar -C /usr/lib/jvm -xzf OpenJDK21U-jdk_x64_linux_hotspot_21.0.1_12.tar.gz |
| |
| # Install Temurin JDK25 |
| RUN wget -q https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.3%2B9/OpenJDK25U-jdk_x64_linux_hotspot_25.0.3_9.tar.gz |
| RUN tar -C /usr/lib/jvm -xzf OpenJDK25U-jdk_x64_linux_hotspot_25.0.3_9.tar.gz |
| |
| # Add java to PATH for all users, and user |
| # use java8 by default, but provide java11 as well |
| RUN echo "PATH=/usr/lib/jvm/java-8-openjdk-amd64/bin:$PATH" >> /etc/environment |
| RUN echo "JAVA_HOME_8_X64=/usr/lib/jvm/java-8-openjdk-amd64" >> /etc/environment |
| RUN echo "JAVA_HOME_11_X64=/usr/lib/jvm/jdk-11.0.19+7" >> /etc/environment |
| RUN echo "JAVA_HOME_17_X64=/usr/lib/jvm/jdk-17.0.7+7" >> /etc/environment |
| RUN echo "JAVA_HOME_21_X64=/usr/lib/jvm/jdk-21.0.1+12" >> /etc/environment |
| RUN echo "JAVA_HOME_25_X64=/usr/lib/jvm/jdk-25.0.3+9" >> /etc/environment |
| RUN echo "JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64" >> /etc/environment |
| RUN update-alternatives --set java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java |
| RUN update-alternatives --set javac /usr/lib/jvm/java-8-openjdk-amd64/bin/javac |
| RUN update-alternatives --set jps /usr/lib/jvm/java-8-openjdk-amd64/bin/jps |
| RUN update-alternatives --set jstack /usr/lib/jvm/java-8-openjdk-amd64/bin/jstack |
| RUN update-alternatives --set javadoc /usr/lib/jvm/java-8-openjdk-amd64/bin/javadoc |
| |
| ENV JAVA_HOME_8_X64 "/usr/lib/jvm/java-8-openjdk-amd64" |
| ENV JAVA_HOME_11_X64 "/usr/lib/jvm/jdk-11.0.19+7" |
| ENV JAVA_HOME_17_X64 "/usr/lib/jvm/jdk-17.0.7+7" |
| ENV JAVA_HOME_21_X64 "/usr/lib/jvm/jdk-21.0.1+12" |
| ENV JAVA_HOME_25_X64 "/usr/lib/jvm/jdk-25.0.3+9" |
| ENV JAVA_HOME "/usr/lib/jvm/java-8-openjdk-amd64" |
| ENV LD_PRELOAD="/usr/lib/x86_64-linux-gnu/libjemalloc.so" |
| |
| # Install go |
| RUN mkdir -p /usr/share/go \ |
| && curl -fsSL -o /tmp/go.tar.gz https://go.dev/dl/go1.18.1.linux-amd64.tar.gz \ |
| && tar -xzf /tmp/go.tar.gz -C /usr/share/go --strip-components=1 \ |
| && rm -f /tmp/go.tar.gz \ |
| && ln -s /usr/share/go/bin/go /usr/bin/go |
| |
| # Install hugo |
| RUN mkdir -p /usr/share/hugo \ |
| && curl -fsSL -o /tmp/hugo.tar.gz https://github.com/gohugoio/hugo/releases/download/v0.98.0/hugo_extended_0.98.0_Linux-64bit.tar.gz \ |
| && tar -xzf /tmp/hugo.tar.gz -C /usr/share/hugo \ |
| && rm -f /tmp/hugo.tar.gz \ |
| && ln -s /usr/share/hugo/hugo /usr/bin/hugo |
| |
| # Install maven |
| ARG MAVEN_VERSION=3.8.6 |
| ARG USER_HOME_DIR="/root" |
| ARG BASE_URL=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/${MAVEN_VERSION} |
| |
| RUN mkdir -p /usr/share/maven /usr/share/maven/ref \ |
| && curl -fsSL -o /tmp/apache-maven.tar.gz ${BASE_URL}/apache-maven-${MAVEN_VERSION}-bin.tar.gz \ |
| && tar -xzf /tmp/apache-maven.tar.gz -C /usr/share/maven --strip-components=1 \ |
| && rm -f /tmp/apache-maven.tar.gz \ |
| && ln -s /usr/share/maven/bin/mvn /usr/bin/mvn |
| |
| ENV MAVEN_HOME /usr/share/maven |
| |
| # Use UTF-8 |
| RUN echo "en_US.UTF-8 UTF-8" > /etc/locale.gen ; locale-gen ; update-locale en_US.UTF-8 |
| ENV LC_ALL "en_US.UTF-8" |
| ENV LANG "en_US.UTF-8" |
| ENV LANGUAGE "en_US.UTF-8" |
| |
| # Install OpenSSL version that's required by netty-tcnative |
| RUN wget -r --no-parent -nd --accept=libssl1.0.0_*ubuntu5.*_amd64.deb http://security.ubuntu.com/ubuntu/pool/main/o/openssl1.0/ |
| RUN apt install ./libssl1.0.0_*.deb |