Use sub-directory that will be clean to correct building.
[SquirrelJME.git] / Dockerfile
blobfa549a9e3c36b586f3584126da399b930203c7cd
1 # ---------------------------------------------------------------------------
2 # SquirrelJME
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
14 RUN apt-get update
15 RUN apt-get install -y -q --no-install-recommends build-essential gcc g++ \
16         cmake xorgxrdp xrdp
18 # Copy repository for building and use it for building
19 COPY . /tmp/src
20 WORKDIR /tmp/src
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
27 FROM openjdk:8-jre
29 # Description
30 LABEL cc.squirreljme.vm="springcoat"
31 LABEL cc.squirreljme.version="0.3.0"
32 LABEL 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
42 COPY --from=build \
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
50 # Expose VNC and RDP
51 EXPOSE 5900/tcp
52 EXPOSE 3389/tcp
53 EXPOSE 3389/udp
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 \
60         -t Xorg \
61         -S "/squirreljme/squirreljme.sh" \
62         root