FROM ubuntu:noble ARG JAVA_VERSION=17 ARG MAVEN_VERSION=3.9.16 ARG GROOVY_VERSION=4.0.28 ARG NODEJS_VERSION=22 ARG USER=silveruser ARG USER_GID=1001 ARG USER_UID=1001 RUN apt-get update && apt-get install -y \ curl \ git \ gzip \ openjdk-${JAVA_VERSION}-jdk \ openjdk-${JAVA_VERSION}-doc \ procps \ sudo \ tar \ unzip \ && curl -sL https://deb.nodesource.com/setup_${NODEJS_VERSION}.x | bash - \ && apt-get install -y nodejs \ && mkdir -p /opt \ && curl -fsSL -o /tmp/apache-maven.tar.gz https://dlcdn.apache.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz \ && tar -xzf /tmp/apache-maven.tar.gz -C /opt/ \ && rm -f /tmp/apache-maven.tar.gz \ && ln -s /opt/apache-maven-${MAVEN_VERSION}/bin/mvn /usr/bin/mvn \ && curl -fsSL -o /tmp/apache-groovy.zip https://groovy.jfrog.io/artifactory/dist-release-local/groovy-zips/apache-groovy-binary-${GROOVY_VERSION}.zip \ && unzip /tmp/apache-groovy.zip -d /opt/ \ && rm -f /tmp/apache-groovy.zip \ && echo `grep -oP '(?<=")[a-zA-Z:/]+(?=")' /etc/environment`:/opt/groovy-${GROOVY_VERSION}/bin > /etc/environment \ && rm -rf /var/lib/apt/lists/* RUN groupadd --gid ${USER_GID} ${USER} \ && useradd --uid ${USER_UID} --gid ${USER_GID} -m ${USER} \ && echo "${USER} ALL=\(root\) NOPASSWD:ALL" > /etc/sudoers.d/${USER} \ && chmod 0440 /etc/sudoers.d/${USER} ENV MAVEN_HOME=/opt/apache-maven-${MAVEN_VERSION} ENV JAVA_HOME=/usr/lib/jvm/java-${JAVA_VERSION}-openjdk-amd64 ENV GROOVY_HOME=/opt/groovy-${GROOVY_VERSION} USER $USER CMD ["/bin/bash"]