diff options
author | Rob Austein <sra@hactrn.net> | 2019-02-10 23:58:32 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2019-02-10 23:58:32 +0000 |
commit | 71861b6ea54738950ac5c8e83e78bbd1215a11ed (patch) | |
tree | b18d6c8087b1e3cdd936a00565b3ddce124435aa | |
parent | b0daf8cf8c9cd39dd5e76aacfa5a5c7c4d500b8b (diff) |
Separate into multiple stages, at least during development.
Docker is pretty clever about not rebuilding stuff, but
simply having the 6GB XiLinx tarball in the build context
is painful, so let's avoid that as much as we can.
-rw-r--r-- | .dockerignore | 3 | ||||
-rw-r--r-- | Dockerfile | 11 | ||||
-rw-r--r-- | Makefile | 4 | ||||
-rw-r--r-- | stage1/Dockerfile | 17 | ||||
-rw-r--r-- | stage2/Dockerfile | 18 | ||||
-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/ @@ -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 |