User talk:Jlo
Oracle Java
Let's adapt one (or more) famous docker files (credit to https://hub.docker.com/r/anapsix/alpine-java/)
apk --update add curl ca-certificates tar curl -Ls https://circle-artifacts.com/gh/andyshinn/alpine-pkg-glibc/6/artifacts/0/home/ubuntu/alpine-pkg-glibc/packages/x86_64/glibc-2.21-r2.apk > /tmp/glibc-2.21-r2.apk apk add --allow-untrusted /tmp/glibc-2.21-r2.apk # Java Version ENV JAVA_VERSION_MAJOR 8 ENV JAVA_VERSION_MINOR 45 ENV JAVA_VERSION_BUILD 14 ENV JAVA_PACKAGE jdk # Download and unarchive Java 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 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 # Set environment ENV JAVA_HOME /opt/jdk ENV PATH ${PATH}:${JAVA_HOME}/bin
Other sources
https://blogs.oracle.com/developers/official-docker-image-for-oracle-java-and-the-openjdk-roadmap-for-containers https://wiki.alpinelinux.org/wiki/Installing_Oracle_Java
permanent pip install in run-from-ram with overlayFS
For an embedded system, I wanted to have a few python tools installed from pip to be present at boot time without needing network to rebuild.
mv /usr /usr.dist mkdir /usr mount -t overlay overlay -o lowerdir=/usr.dist,upperdir=/usr,workdir=/tmp/usr /usr pip install --upgrade pip pip install semantic_version pip install incremental pip install pymodbus umount /usr mount -o remount,rw /media/sda1 mv /usr /media/sda1/usr.post mount -o remount,ro /media/sda1 mv /usr.dist /usr mkdir -p /tmp/usr mount -t overlay overlay -o lowerdir=/media/sda1/usr.post,upperdir=/usr,workdir=/tmp/usr /usr
I use this technique to also have Oracle Java 8 and Apache Karaf running cleanly in run-from-ram mode without overloading the memory with storage. The embedded box has a read-only memory chip and system is clean and brand new at each reboot.
To update, we remount media rw, rsync then remount ro again.