Skip to content

Instantly share code, notes, and snippets.

@nfrankel
Created November 3, 2018 18:39
Show Gist options
  • Save nfrankel/05904ab08ef8fc4e849bec274c8aef89 to your computer and use it in GitHub Desktop.
Save nfrankel/05904ab08ef8fc4e849bec274c8aef89 to your computer and use it in GitHub Desktop.
Moving GraalVM to Alpine
FROM alpine:3.8
ARG GRAAL_VERSION=1.0.0-rc8
ENV LANG=en_US.UTF-8 \
GRAALVM_PKG=https://github.com/oracle/graal/releases/download/vm-$GRAAL_VERSION/graalvm-ce-$GRAAL_VERSION-linux-amd64.tar.gz \
LD_LIBRARY_PATH=/lib \
JAVA_HOME=/opt/graalvm-ce-$GRAAL_VERSION \
BASH_SOURCE=/opt/graalvm-ce-$GRAAL_VERSION/bin/gu \
EMSDK=/emsdk \
EM_CONFIG=/root/.emscripten \
LLVM_ROOT=/emsdk/clang/e1.38.16_64bit \
EMSCRIPTEN_NATIVE_OPTIMIZER=/emsdk/clang/e1.38.16_64bit/optimizer \
BINARYEN_ROOT=/emsdk/clang/e1.38.16_64bit/binaryen \
EMSDK_NODE=/emsdk/node/8.9.1_64bit/bin/node \
EMSCRIPTEN=/emsdk/emscripten/1.38.16 \
PATH=$PATH:$EMSDK:$LLVM_ROOT:/emsdk/node/8.9.1_64bit/bin:$EMSCRIPTEN
ADD graalvm-ce-1.0.0-rc8-linux-amd64.tar.gz /opt
ADD ruby-installable-ce-1.0.0-rc8-linux-amd64.jar /tmp
RUN apk --no-cache add ca-certificates openssl \
&& wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub \
&& wget -q https://github.com/andyshinn/alpine-pkg-glibc/releases/download/unreleased/glibc-2.28-r0.apk \
&& apk add glibc-2.28-r0.apk \
&& apk --no-cache add bash git python gcc musl-dev \
&& mkdir -p "/usr/java" \
&& ln -sfT "$JAVA_HOME" /usr/java/default \
&& ln -sfT "$JAVA_HOME" /usr/java/latest \
&& for bin in "$JAVA_HOME/bin/"*; do \
base="$(basename "$bin")"; \
ln -s "$bin" "/usr/bin/$base"; \
done \
&& git clone https://github.com/juj/emsdk.git \
&& cd emsdk \
&& ./emsdk install latest \
&& ./emsdk activate latest \
&& $JAVA_HOME/bin/gu install --file /tmp/ruby-installable-ce-$GRAAL_VERSION-linux-amd64.jar
RUN /opt/graalvm-ce-$GRAAL_VERSION/jre/languages/ruby/lib/truffle/post_install_hook.sh \
&& $JAVA_HOME/bin/gu rebuild-images js ruby
# && cd /opt/graalvm-ce-${GRAAL_VERSION} \
# && rm -Rf 3rd_party_licenses.txt ASSEMBLY_EXCEPTION GRAALVM-README.md LICENSE man THIRD_PARTY_README sample src.zip \
# && rm /glibc-2.28-r0.apk \
# && rm /tmp/ruby-installable-ce-1.0.0-rc8-linux-amd64.jar
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment