aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.dockerignore3
-rw-r--r--Dockerfile11
-rw-r--r--Makefile4
-rw-r--r--stage1/Dockerfile17
-rw-r--r--stage2/Dockerfile18
-rw-r--r--stage3/Dockerfile.later (renamed from Dockerfile.later)0
6 files changed, 38 insertions, 15 deletions
diff --git a/.dockerignore b/.dockerignore
deleted file mode 100644
index 1c5d569..0000000
--- a/.dockerignore
+++ /dev/null
@@ -1,3 +0,0 @@
-Dockerfile.later
-Makefile
-README.md
diff --git a/Dockerfile b/Dockerfile
deleted file mode 100644
index 169fb28..0000000
--- a/Dockerfile
+++ /dev/null
@@ -1,11 +0,0 @@
-FROM debian:jessie
-
-# OK, let's start with the horrible XiLinx stuff because that's least
-# likely to change except when we're updating the base Docker image.
-
-# In theory, using ADD in this form will cause docker to unpack the
-# tarball directly into the filesystem, thus saving us an otherwise
-# useless 6GB copy operation, which seems worthwhile.
-
-RUN mkdir /xilinx-unpack
-ADD Xilinx_ISE_DS_Lin_14.7_1015_1.tar /xilinx-unpack/
diff --git a/Makefile b/Makefile
index 47f508b..69fcb57 100644
--- a/Makefile
+++ b/Makefile
@@ -1,2 +1,4 @@
all:
- docker build -t alpha-releng .
+ cd stage1; docker build -t xilinx:loadonly .
+ cd stage2; docker build -t xilinx:intalled .
+ cd stage3; docker build -t cryptech-alpha .
diff --git a/stage1/Dockerfile b/stage1/Dockerfile
new file mode 100644
index 0000000..2881772
--- /dev/null
+++ b/stage1/Dockerfile
@@ -0,0 +1,17 @@
+FROM debian:jessie
+
+# Our goal here is just to load the XiLinx tarball into a Debian Jessie image.
+# Overriding reason for making this a separate image: we don't want to have
+# to send 6GB of build context every time we touch a later stage.
+
+ADD Xilinx_ISE_DS_Lin_14.7_1015_1.tar /xilinx-unpack/
+
+# Given our general paranoia level we probably should be building our
+# own debian:jessie image from debootstrap, but leave that for another
+# day. Process is reasonably well documented: instead of starting
+# from a base image, start by running debootstrap in --foreign mode,
+# import that into an initial Docker image, then run `debootstrap
+# --second-stage` in the next Dockerfile. Something like:
+#
+# sudo debootstrap --foreign jessie jessie_chroot
+# sudo tar -C jessie_chroot -c . | docker import - my-debian:jessie
diff --git a/stage2/Dockerfile b/stage2/Dockerfile
new file mode 100644
index 0000000..da030c8
--- /dev/null
+++ b/stage2/Dockerfile
@@ -0,0 +1,18 @@
+FROM xilinx:loadonly
+
+# Whack /bin/sh (known issue with XiLinx tools not working with /bin/dash)
+
+RUN ln -sf /bin/bash /bin/sh
+
+# Here's where it gets really fun: let's see if we can drive the
+# frelling XiLinx installation under Xvfb. Need some tools first,
+# then some manual debugging to get the details right. Don't expect
+# to need all of the following once we've debugged this.
+
+RUN apt-get update && apt-get install -y \
+ python-xvfbwrapper \
+ ratpoison \
+ x11-apps \
+ x11-utils \
+ x11-xserver-utils \
+ xautomation
diff --git a/Dockerfile.later b/stage3/Dockerfile.later
index 7f9b257..7f9b257 100644
--- a/Dockerfile.later
+++ b/stage3/Dockerfile.later