[
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)