1 # ---------------------------------------------------------------------------
3 # Copyright (C) Stephanie Gawroriski <xer@multiphasicapps.net>
4 # ---------------------------------------------------------------------------
5 # SquirrelJME is under the Mozilla Public License Version 2.0.
6 # See license.mkd for licensing and copyright information.
7 # ---------------------------------------------------------------------------
9 # We need the entire JDK here for this to work!
10 FROM openjdk:8-jdk AS build
12 # emulator-base uses JNI to provide Assembly methods, we need a C++ compiler
13 ARG DEBIAN_FRONTEND=noninteractive
15 RUN apt-get install -y -q --no-install-recommends build-essential gcc g++ \
18 # Copy repository for building and use it for building
22 # Build entire JAR distribution (we do not need a daemon here)
23 RUN ./gradlew --no-daemon :emulators:standalone:shadowJar
25 # We do not need a big complex environment to run SquirrelJME now, so we
26 # can use a more compact image here
30 LABEL cc.squirreljme.vm="springcoat"
31 LABEL cc.squirreljme.version="0.3.0"
33 LABEL description="SquirrelJME is a Java ME 8 Virtual Machine for embedded and Internet of Things devices. It has the ultimate goal of being 99.9% compatible with the Java ME standard."
34 LABEL maintainer="Stephanie Gawroriski <xerthesquirrel@gmail.com>"
36 # All of the SquirrelJME data is here
37 RUN mkdir /squirreljme
39 # Copy standalone over and helper scripts to the container
40 COPY --from=build /tmp/src/.docker/squirreljme.sh /squirreljme/squirreljme.sh
41 RUN chmod +x /squirreljme/squirreljme.sh
43 /tmp/src/emulators/standalone/build/libs/squirreljme-standalone-*.jar \
44 /squirreljme/squirreljme.jar
46 # Where the user classpath exists (to run extra programs)
47 RUN mkdir /squirreljme/jars
48 VOLUME /squirreljme/jars
55 # Options for the virtual machine
56 ENV EMULATOR=springcoat
58 # Run the VM and go to the launcher
59 ENTRYPOINT /usr/bin/xrdp-sesrun \
61 -S "/squirreljme/squirreljme.sh" \