46 lines
2.4 KiB
Docker
46 lines
2.4 KiB
Docker
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 git bash && \
|
|
python3 -m pip install --upgrade pip && \
|
|
apk add --no-cache --virtual .docker-compose-deps python3-dev libffi-dev openssl-dev gcc libc-dev make && \
|
|
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"
|
|
|
|
|
|
|