summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormehlon <mehlon@users.noreply.github.com>2019-09-19 14:36:33 +0200
committermehlon <mehlon@users.noreply.github.com>2019-09-19 14:36:33 +0200
commit3f3faa9d79b4d286ade6deb914a16ca715361a05 (patch)
tree6a5751795e0ebed2d8539bb6b6b8075d6ecb7c4b
parent458b45d0a655643ffed67586b764b30a1fe5c910 (diff)
add Docker support
-rw-r--r--.dockerignore71
-rw-r--r--Dockerfile36
2 files changed, 107 insertions, 0 deletions
diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 00000000..f5a51598
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,71 @@
+.git
+.hg*
+
+*.dis
+*.sbl
+
+# the following are copied from .hgignore
+*.[8qkv5967o]
+*.obj
+[8qkv965o].out
+[8qkv965o].emu
+obj.out
+obj.map
+vc*.pdb
+y.output
+y.tab.[ch]
+y.debug
+*.a
+emu/*/*.root.[ch]
+emu/*/errstr.h
+emu/*/srv.h
+emu/*/srvm.h
+[A-Z]*/*/bin/?[acl]
+[A-Z]*/*/bin/5coff
+[A-Z]*/*/bin/5cv
+[A-Z]*/*/bin/acid
+[A-Z]*/*/bin/asm
+[A-Z]*/*/bin/data2s
+[A-Z]*/*/bin/emu
+[A-Z]*/*/bin/limbo
+Nt/*/bin/?[acl].exe
+Nt/*/bin/5coff.exe
+Nt/*/bin/5cv.exe
+Nt/*/bin/acid.exe
+Nt/*/bin/asm.exe
+Nt/*/bin/data2s.exe
+Nt/*/bin/emu.exe
+Nt/*/bin/limbo.exe
+Nt/*/bin/ftl.exe
+Nt/*/bin/iar.exe
+Nt/*/bin/idea.exe
+Nt/*/bin/inm.exe
+Nt/*/bin/kprof.exe
+Nt/*/bin/ksize.exe
+Nt/*/bin/kstrip.exe
+Nt/*/bin/md5sum.exe
+Nt/*/bin/mkppcimage.exe
+Nt/*/bin/ms2.exe
+Nt/*/bin/ndate.exe
+Nt/*/bin/ntsrv.exe
+Nt/*/bin/sqz.exe
+Nt/*/bin/srclist.exe
+Nt/*/bin/styxtest.exe
+emu/Nt/*.map
+emu/Nt/*.exe
+keydb/keys
+keydb/countersigned
+keydb/signed
+keydb/signerkey
+tmp/*
+
+# Only Linux 386 files are needed for Docker
+arm/*
+power/*
+spim/*
+MacOSX/*
+Nt/*
+Dragonfly/*
+FreeBSD/*
+NetBSD/*
+OpenBSD/*
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 00000000..c3c4d9dd
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,36 @@
+FROM i386/ubuntu:devel
+
+RUN apt-get -y update
+RUN apt-get install -y libx11-dev \
+ libxext-dev \
+ libc6-dev \
+ gcc
+
+# if on i386 there's no need for multilib
+#RUN apt-get install -y libc6-dev-i386
+#RUN apt-get install -y libx11-6:i386, libxext-dev:i386
+#RUN apt-get install -y gcc-multilib
+
+ENV INFERNO=/usr/inferno
+COPY . $INFERNO
+WORKDIR $INFERNO
+
+# setup a custom mkconfig
+RUN echo > mkconfig ROOT=$INFERNO
+RUN echo >>mkconfig TKSTYLE=std
+RUN echo >>mkconfig SYSHOST=Linux
+RUN echo >>mkconfig SYSTARG=Linux
+RUN echo >>mkconfig OBJTYPE=386
+
+RUN echo >>mkconfig 'OBJDIR=$SYSTARG/$OBJTYPE'
+RUN echo >>mkconfig '<$ROOT/mkfiles/mkhost-$SYSHOST'
+RUN echo >>mkconfig '<$ROOT/mkfiles/mkfile-$SYSTARG-$OBJTYPE'
+
+# build code
+RUN ./makemk.sh
+ENV PATH="$INFERNO/Linux/386/bin:${PATH}"
+RUN mk nuke
+RUN mk install
+
+CMD ["emu", "-c1", "wm/wm"]
+