Created
December 6, 2018 09:07
-
-
Save japgolly/18712e5be7b00f710719fddb58763539 to your computer and use it in GitHub Desktop.
Graal docker alpine
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
export PS1='\n\[\e[32m\]\u@\h: \[\e[33m\]\w\[\e[0m\]\n> ' | |
export BASH=/bin/bash | |
export SHELL=$BASH | |
export LS_OPTIONS='--color=auto' | |
alias ls='ls $LS_OPTIONS' | |
alias ll='ls $LS_OPTIONS -l' | |
alias la='ls $LS_OPTIONS -la' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
cd "$(dirname "$0")" || exit 1 | |
GRAAL_VERSION=1.0.0-rc9 | |
IMAGE_NAME=aaaaaaaaaaaaaaaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhh/base | |
IMAGE_VER=1 | |
IMAGE_TAG_SUFFIX="-graal-$GRAAL_VERSION" | |
exec docker build \ | |
--build-arg GRAAL_VERSION="$GRAAL_VERSION" \ | |
-t "$IMAGE_NAME:${IMAGE_VER}${IMAGE_TAG_SUFFIX}" \ | |
-t "$IMAGE_NAME:latest${IMAGE_TAG_SUFFIX}" \ | |
-t "$IMAGE_NAME:latest" \ | |
. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Most of this copied from | |
# - https://github.com/frol/docker-alpine-glibc/blob/master/Dockerfile | |
# - https://github.com/anapsix/docker-alpine-java/blob/master/8/192b12/jdk/unlimited/Dockerfile | |
# - https://github.com/oracle/docker-images/blob/master/GraalVM/CE/1.0.0-rc9/Dockerfile | |
FROM alpine:3.8 | |
ARG GRAAL_VERSION | |
#========# | |
# System # | |
#========# | |
ENV LANG=C.UTF-8 | |
RUN apk --no-cache upgrade \ | |
&& apk --no-cache add \ | |
ca-certificates \ | |
curl \ | |
wget | |
#=======# | |
# glibc # | |
#=======# | |
# Taken from docker-alpine-glibc with the following changes: | |
# - don't use apk at all because... | |
# 1) wget already upgraded | |
# 2) ca-certificates installed above | |
# 3) I want to keep both around | |
RUN ALPINE_GLIBC_BASE_URL="https://github.com/sgerrand/alpine-pkg-glibc/releases/download" && \ | |
ALPINE_GLIBC_PACKAGE_VERSION="2.28-r0" && \ | |
ALPINE_GLIBC_BASE_PACKAGE_FILENAME="glibc-$ALPINE_GLIBC_PACKAGE_VERSION.apk" && \ | |
ALPINE_GLIBC_BIN_PACKAGE_FILENAME="glibc-bin-$ALPINE_GLIBC_PACKAGE_VERSION.apk" && \ | |
ALPINE_GLIBC_I18N_PACKAGE_FILENAME="glibc-i18n-$ALPINE_GLIBC_PACKAGE_VERSION.apk" && \ | |
echo \ | |
"-----BEGIN PUBLIC KEY-----\ | |
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApZ2u1KJKUu/fW4A25y9m\ | |
y70AGEa/J3Wi5ibNVGNn1gT1r0VfgeWd0pUybS4UmcHdiNzxJPgoWQhV2SSW1JYu\ | |
tOqKZF5QSN6X937PTUpNBjUvLtTQ1ve1fp39uf/lEXPpFpOPL88LKnDBgbh7wkCp\ | |
m2KzLVGChf83MS0ShL6G9EQIAUxLm99VpgRjwqTQ/KfzGtpke1wqws4au0Ab4qPY\ | |
KXvMLSPLUp7cfulWvhmZSegr5AdhNw5KNizPqCJT8ZrGvgHypXyiFvvAH5YRtSsc\ | |
Zvo9GI2e2MaZyo9/lvb+LbLEJZKEQckqRj4P26gmASrZEPStwc+yqy1ShHLA0j6m\ | |
1QIDAQAB\ | |
-----END PUBLIC KEY-----" | sed 's/ */\n/g' > "/etc/apk/keys/sgerrand.rsa.pub" && \ | |
wget --retry-connrefused \ | |
"$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_BASE_PACKAGE_FILENAME" \ | |
"$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_BIN_PACKAGE_FILENAME" \ | |
"$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_I18N_PACKAGE_FILENAME" && \ | |
apk add --no-cache \ | |
"$ALPINE_GLIBC_BASE_PACKAGE_FILENAME" \ | |
"$ALPINE_GLIBC_BIN_PACKAGE_FILENAME" \ | |
"$ALPINE_GLIBC_I18N_PACKAGE_FILENAME" && \ | |
rm "/etc/apk/keys/sgerrand.rsa.pub" && \ | |
/usr/glibc-compat/bin/localedef --force --inputfile POSIX --charmap UTF-8 "$LANG" || true && \ | |
echo "export LANG=$LANG" > /etc/profile.d/locale.sh && \ | |
apk del --no-cache glibc-i18n && \ | |
rm "/root/.wget-hsts" && \ | |
rm \ | |
"$ALPINE_GLIBC_BASE_PACKAGE_FILENAME" \ | |
"$ALPINE_GLIBC_BIN_PACKAGE_FILENAME" \ | |
"$ALPINE_GLIBC_I18N_PACKAGE_FILENAME" | |
#=======# | |
# Graal # | |
#=======# | |
# Most deletions taken from docker-alpine-java | |
RUN mkdir /opt \ | |
&& cd /opt \ | |
&& wget https://github.com/oracle/graal/releases/download/vm-$GRAAL_VERSION/graalvm-ce-$GRAAL_VERSION-linux-amd64.tar.gz \ | |
&& tar xzf graalvm-ce-$GRAAL_VERSION-linux-amd64.tar.gz \ | |
&& rm graalvm-ce-$GRAAL_VERSION-linux-amd64.tar.gz /root/.wget-hsts \ | |
&& ln -s graalvm-ce-${GRAAL_VERSION} graal \ | |
&& cd graal \ | |
&& rm -rf *src.zip \ | |
lib/missioncontrol \ | |
lib/visualvm \ | |
lib/*javafx* \ | |
jre/plugin \ | |
jre/bin/javaws \ | |
jre/bin/jjs \ | |
jre/bin/orbd \ | |
jre/bin/pack200 \ | |
jre/bin/policytool \ | |
jre/bin/rmid \ | |
jre/bin/rmiregistry \ | |
jre/bin/servertool \ | |
jre/bin/tnameserv \ | |
jre/bin/unpack200 \ | |
jre/lib/javaws.jar \ | |
jre/lib/deploy* \ | |
jre/lib/desktop \ | |
jre/lib/*javafx* \ | |
jre/lib/*jfx* \ | |
jre/lib/amd64/libdecora_sse.so \ | |
jre/lib/amd64/libprism_*.so \ | |
jre/lib/amd64/libfxplugins.so \ | |
jre/lib/amd64/libglass.so \ | |
jre/lib/amd64/libgstreamer-lite.so \ | |
jre/lib/amd64/libjavafx*.so \ | |
jre/lib/amd64/libjfx*.so \ | |
jre/lib/ext/jfxrt.jar \ | |
jre/lib/ext/nashorn.jar \ | |
jre/lib/oblique-fonts \ | |
jre/lib/plugin.jar \ | |
sample \ | |
jre/languages/llvm | |
RUN cd /opt/graal \ | |
&& sed -i 's/#networkaddress.cache.ttl=-1/networkaddress.cache.ttl=10/' jre/lib/security/java.security | |
ENV JAVA_HOME /opt/graal | |
ENV PATH ${PATH}:/opt/graal/bin | |
#=============# | |
# Environment # | |
#=============# | |
RUN apk --no-cache add \ | |
bash \ | |
htop \ | |
procps \ | |
tree \ | |
vim | |
COPY .bashrc /root/.bashrc |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment