[ https://issues.apache.org/jira/browse/GROOVY-7906?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15432875#comment-15432875 ]
Serge edited comment on GROOVY-7906 at 8/23/16 2:20 PM: -------------------------------------------------------- Sure, here's the sum of my dockerfiles (internal images). One layer used as a base from alpine. One layer adding JDK8 One layer adding groovy. {code} # Layer 1 - base FROM alpine:3.4 ENV TIMEZONE Europe/Paris ENV LANG fr_FR.UTF-8 ENV LANGUAGE fr_FR.UTF-8 ENV LC_ALL fr_FR.UTF-8 ENV HOME /root ENV TERM xterm # Insert bashrc ADD bashrc /root/.bashrc RUN apk add --update bash tzdata RUN echo $TIMEZONE > /etc/timezone && \ cp /usr/share/zoneinfo/${TIMEZONE} /etc/localtime RUN apk del tzdata && rm -rf /var/cache/apk/* # Layer 2 - base + java # Install cURL ENV GLIBC_VERSION 2.23-r3 ENV GLIBC_URL https://github.com/sgerrand/alpine-pkg-glibc/releases/download/unreleased RUN apk --no-cache --update add curl ca-certificates tar && \ echo "${GLIBC_URL}/glibc-${GLIBC_VERSION}.apk" && \ curl -sLo /tmp/glibc-${GLIBC_VERSION}.apk ${GLIBC_URL}/glibc-${GLIBC_VERSION}.apk && \ curl -sLo /tmp/glibc-bin-${GLIBC_VERSION}.apk ${GLIBC_URL}/glibc-bin-${GLIBC_VERSION}.apk && \ curl -sLo /tmp/glibc-i18n-${GLIBC_VERSION}.apk ${GLIBC_URL}/glibc-i18n-${GLIBC_VERSION}.apk && \ apk add --no-cache --allow-untrusted /tmp/glibc-${GLIBC_VERSION}.apk /tmp/glibc-bin-${GLIBC_VERSION}.apk /tmp/glibc-i18n-${GLIBC_VERSION}.apk && \ /usr/glibc-compat/bin/localedef -i fr_FR -f UTF-8 fr_FR.UTF-8 # Java Version ENV JAVA_VERSION_MAJOR 8 ENV JAVA_VERSION_MINOR 102 ENV JAVA_VERSION_BUILD 14 ENV JAVA_PACKAGE jdk # Download and unarchive Java RUN mkdir /opt && curl -jksSLH "Cookie: oraclelicense=accept-securebackup-cookie"\ http://download.oracle.com/otn-pub/java/jdk/${JAVA_VERSION_MAJOR}u${JAVA_VERSION_MINOR}-b${JAVA_VERSION_BUILD}/${JAVA_PACKAGE}-${JAVA_VERSION_MAJOR}u${JAVA_VERSION_MINOR}-linux-x64.tar.gz \ | tar -xzf - -C /opt &&\ echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.conf && \ ln -s /opt/jdk1.${JAVA_VERSION_MAJOR}.0_${JAVA_VERSION_MINOR} /opt/jdk &&\ rm -rf /opt/jdk/*src.zip \ /opt/jdk/lib/missioncontrol \ /opt/jdk/lib/visualvm \ /opt/jdk/lib/*javafx* \ /opt/jdk/jre/lib/plugin.jar \ /opt/jdk/jre/lib/ext/jfxrt.jar \ /opt/jdk/jre/bin/javaws \ /opt/jdk/jre/lib/javaws.jar \ /opt/jdk/jre/lib/desktop \ /opt/jdk/jre/plugin \ /opt/jdk/jre/lib/deploy* \ /opt/jdk/jre/lib/*javafx* \ /opt/jdk/jre/lib/*jfx* \ /opt/jdk/jre/lib/amd64/libdecora_sse.so \ /opt/jdk/jre/lib/amd64/libprism_*.so \ /opt/jdk/jre/lib/amd64/libfxplugins.so \ /opt/jdk/jre/lib/amd64/libglass.so \ /opt/jdk/jre/lib/amd64/libgstreamer-lite.so \ /opt/jdk/jre/lib/amd64/libjavafx*.so \ /opt/jdk/jre/lib/amd64/libjfx*.so && \ rm -rf /opt/jdk/jre/bin/jjs \ /opt/jdk/jre/bin/keytool \ /opt/jdk/jre/bin/orbd \ /opt/jdk/jre/bin/pack200 \ /opt/jdk/jre/bin/policytool \ /opt/jdk/jre/bin/rmid \ /opt/jdk/jre/bin/rmiregistry \ /opt/jdk/jre/bin/servertool \ /opt/jdk/jre/bin/tnameserv \ /opt/jdk/jre/bin/unpack200 \ /opt/jdk/jre/lib/ext/nashorn.jar \ /opt/jdk/jre/lib/jfr.jar \ /opt/jdk/jre/lib/jfr \ /opt/jdk/jre/lib/oblique-fonts # Set environment ENV JAVA_HOME /opt/jdk ENV PATH ${PATH}:${JAVA_HOME}/bin # Layer 3 - groovy WORKDIR /opt/ ENV GROOVY_HOME /opt/groovy/ ENV PATH ${PATH}:${GROOVY_HOME}/bin ENV GROOVY_VERSION 2.4.7 RUN apk --update add curl unzip && \ curl -sLo /opt/groovy.zip https://bintray.com/artifact/download/groovy/maven/apache-groovy-binary-${GROOVY_VERSION}.zip && \ unzip /opt/groovy.zip && \ rm -f /opt/groovy.zip && \ ln -s /opt/groovy-${GROOVY_VERSION} /opt/groovy {code} was (Author: sr-g): Sure, here's the sum of my dockerfiles (internal images). One layer used as a base from alpine. One layer adding JDK8 One layer adding groovy. {quote} # Layer 1 - base FROM alpine:3.4 ENV TIMEZONE Europe/Paris ENV LANG fr_FR.UTF-8 ENV LANGUAGE fr_FR.UTF-8 ENV LC_ALL fr_FR.UTF-8 ENV HOME /root ENV TERM xterm # Insert bashrc ADD bashrc /root/.bashrc RUN apk add --update bash tzdata RUN echo $TIMEZONE > /etc/timezone && \ cp /usr/share/zoneinfo/${TIMEZONE} /etc/localtime RUN apk del tzdata && rm -rf /var/cache/apk/* # Layer 2 - base + java # Install cURL ENV GLIBC_VERSION 2.23-r3 ENV GLIBC_URL https://github.com/sgerrand/alpine-pkg-glibc/releases/download/unreleased RUN apk --no-cache --update add curl ca-certificates tar && \ echo "${GLIBC_URL}/glibc-${GLIBC_VERSION}.apk" && \ curl -sLo /tmp/glibc-${GLIBC_VERSION}.apk ${GLIBC_URL}/glibc-${GLIBC_VERSION}.apk && \ curl -sLo /tmp/glibc-bin-${GLIBC_VERSION}.apk ${GLIBC_URL}/glibc-bin-${GLIBC_VERSION}.apk && \ curl -sLo /tmp/glibc-i18n-${GLIBC_VERSION}.apk ${GLIBC_URL}/glibc-i18n-${GLIBC_VERSION}.apk && \ apk add --no-cache --allow-untrusted /tmp/glibc-${GLIBC_VERSION}.apk /tmp/glibc-bin-${GLIBC_VERSION}.apk /tmp/glibc-i18n-${GLIBC_VERSION}.apk && \ /usr/glibc-compat/bin/localedef -i fr_FR -f UTF-8 fr_FR.UTF-8 # Java Version ENV JAVA_VERSION_MAJOR 8 ENV JAVA_VERSION_MINOR 102 ENV JAVA_VERSION_BUILD 14 ENV JAVA_PACKAGE jdk # Download and unarchive Java RUN mkdir /opt && curl -jksSLH "Cookie: oraclelicense=accept-securebackup-cookie"\ http://download.oracle.com/otn-pub/java/jdk/${JAVA_VERSION_MAJOR}u${JAVA_VERSION_MINOR}-b${JAVA_VERSION_BUILD}/${JAVA_PACKAGE}-${JAVA_VERSION_MAJOR}u${JAVA_VERSION_MINOR}-linux-x64.tar.gz \ | tar -xzf - -C /opt &&\ echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.conf && \ ln -s /opt/jdk1.${JAVA_VERSION_MAJOR}.0_${JAVA_VERSION_MINOR} /opt/jdk &&\ rm -rf /opt/jdk/*src.zip \ /opt/jdk/lib/missioncontrol \ /opt/jdk/lib/visualvm \ /opt/jdk/lib/*javafx* \ /opt/jdk/jre/lib/plugin.jar \ /opt/jdk/jre/lib/ext/jfxrt.jar \ /opt/jdk/jre/bin/javaws \ /opt/jdk/jre/lib/javaws.jar \ /opt/jdk/jre/lib/desktop \ /opt/jdk/jre/plugin \ /opt/jdk/jre/lib/deploy* \ /opt/jdk/jre/lib/*javafx* \ /opt/jdk/jre/lib/*jfx* \ /opt/jdk/jre/lib/amd64/libdecora_sse.so \ /opt/jdk/jre/lib/amd64/libprism_*.so \ /opt/jdk/jre/lib/amd64/libfxplugins.so \ /opt/jdk/jre/lib/amd64/libglass.so \ /opt/jdk/jre/lib/amd64/libgstreamer-lite.so \ /opt/jdk/jre/lib/amd64/libjavafx*.so \ /opt/jdk/jre/lib/amd64/libjfx*.so && \ rm -rf /opt/jdk/jre/bin/jjs \ /opt/jdk/jre/bin/keytool \ /opt/jdk/jre/bin/orbd \ /opt/jdk/jre/bin/pack200 \ /opt/jdk/jre/bin/policytool \ /opt/jdk/jre/bin/rmid \ /opt/jdk/jre/bin/rmiregistry \ /opt/jdk/jre/bin/servertool \ /opt/jdk/jre/bin/tnameserv \ /opt/jdk/jre/bin/unpack200 \ /opt/jdk/jre/lib/ext/nashorn.jar \ /opt/jdk/jre/lib/jfr.jar \ /opt/jdk/jre/lib/jfr \ /opt/jdk/jre/lib/oblique-fonts # Set environment ENV JAVA_HOME /opt/jdk ENV PATH ${PATH}:${JAVA_HOME}/bin # Layer 3 - groovy WORKDIR /opt/ ENV GROOVY_HOME /opt/groovy/ ENV PATH ${PATH}:${GROOVY_HOME}/bin ENV GROOVY_VERSION 2.4.7 RUN apk --update add curl unzip && \ curl -sLo /opt/groovy.zip https://bintray.com/artifact/download/groovy/maven/apache-groovy-binary-${GROOVY_VERSION}.zip && \ unzip /opt/groovy.zip && \ rm -f /opt/groovy.zip && \ ln -s /opt/groovy-${GROOVY_VERSION} /opt/groovy {quote} > groovy-2.4.7/bin/startGroovy: line 275: syntax error: bad substitution > ---------------------------------------------------------------------- > > Key: GROOVY-7906 > URL: https://issues.apache.org/jira/browse/GROOVY-7906 > Project: Groovy > Issue Type: Bug > Affects Versions: 2.4.7 > Environment: Alpine linux (=> no bash, busybox only) > Reporter: Peter B. > > running groovy in alpine linux results in: > {code} > /tmp/groovy-2.4.7/bin/startGroovy: line 275: syntax error: bad substitution > {code} > as a workaround I'm running: > {code} > sed -ie '274,275d' /tmp/groovy-2.4.7/bin/startGroovy > {code} > prior to invoking groovy -- This message was sent by Atlassian JIRA (v6.3.4#6332)