ARG BASE_IMAGE="adoptopenjdk/openjdk14:alpine" FROM ${BASE_IMAGE} # Install groovy ENV GROOVY_HOME=/opt/groovy ENV GROOVY_VERSION=4.0.9 # Install docker-cli, docker-compose, git, bash RUN apk update && \ apk add --no-cache docker-cli python3 py3-pip git bash && \ apk add --no-cache --virtual .docker-compose-deps python3-dev libffi-dev openssl-dev gcc libc-dev make && \ # ln -s /usr/bin/pip3 /usr/bin/pip && \ ln -s /usr/bin/python3 /usr/bin/python && \ pip install --upgrade pip && \ pip3 install docker-compose && \ apk del .docker-compose-deps RUN set -o errexit -o nounset && echo "Installing build dependencies" && \ apk add --no-cache --virtual .build-deps gnupg && \ echo "Downloading Groovy" && \ wget --no-verbose --output-document=groovy.zip "https://archive.apache.org/dist/groovy/${GROOVY_VERSION}/distribution/apache-groovy-binary-${GROOVY_VERSION}.zip" && \ echo "Importing keys listed in http://www.apache.org/dist/groovy/KEYS from key server" && \ export GNUPGHOME="$(mktemp -d)" && \ gpg --batch --no-tty --keyserver keyserver.ubuntu.com --recv-keys 7FAA0F2206DE228F0DB01AD741321490758AAD6F 331224E1D7BE883D16E8A685825C06C827AF6B66 34441E504A937F43EB0DAEF96A65176A0FB1CD0B 9A810E3B766E089FFB27C70F11B595CEDC4AEBB5 81CABC23EECA0790E8989B361FF96E10F0E13706 && \ echo "Checking download signature" && \ wget --no-verbose --output-document=groovy.zip.asc "https://archive.apache.org/dist/groovy/${GROOVY_VERSION}/distribution/apache-groovy-binary-${GROOVY_VERSION}.zip.asc" && \ gpg --batch --no-tty --verify groovy.zip.asc groovy.zip && \ rm -rf "${GNUPGHOME}" \ && rm groovy.zip.asc && \ echo "Cleaning up build dependencies" && \ apk del .build-deps && echo "Installing Groovy" && \ unzip groovy.zip && \ rm groovy.zip && \ mv "groovy-${GROOVY_VERSION}" "${GROOVY_HOME}/" && \ ln -s "${GROOVY_HOME}/bin/grape" /usr/bin/grape && \ ln -s "${GROOVY_HOME}/bin/groovy" /usr/bin/groovy && \ ln -s "${GROOVY_HOME}/bin/groovyc" /usr/bin/groovyc && \ ln -s "${GROOVY_HOME}/bin/groovyConsole" /usr/bin/groovyConsole && \ ln -s "${GROOVY_HOME}/bin/groovydoc" /usr/bin/groovydoc && \ ln -s "${GROOVY_HOME}/bin/groovysh" /usr/bin/groovysh && \ ln -s "${GROOVY_HOME}/bin/java2groovy" /usr/bin/java2groovy && \ echo "Editing startGroovy to include java.xml.bind module" && \ sed --in-place 's|startGroovy ( ) {|startGroovy ( ) {\n JAVA_OPTS="$JAVA_OPTS --add-modules=ALL-SYSTEM"|' "${GROOVY_HOME}/bin/startGroovy" RUN apk add --no-cache openssh-client