From 51a99c359bf06e6e5c50bbc9eab696bb079a8ec0 Mon Sep 17 00:00:00 2001 From: Cadey Dodrill Date: Mon, 21 Mar 2016 21:34:22 -0700 Subject: [PATCH] Add some development dockerfiles --- dev/dotfiles/build.sh | 17 ++++++++++++++++ dev/dotfiles/haskell/Dockerfile | 11 ++++++++++ dev/dotfiles/lisp/Dockerfile | 13 ++++++++++++ dev/dotfiles/lisp/sbclrc | 6 ++++++ dev/dotfiles/lisp/setup.lisp | 1 + dev/dotfiles/nim/Dockerfile | 5 +++++ dev/dotfiles/nim/setup.sh | 36 +++++++++++++++++++++++++++++++++ 7 files changed, 89 insertions(+) create mode 100644 dev/dotfiles/build.sh create mode 100644 dev/dotfiles/haskell/Dockerfile create mode 100644 dev/dotfiles/lisp/Dockerfile create mode 100644 dev/dotfiles/lisp/sbclrc create mode 100644 dev/dotfiles/lisp/setup.lisp create mode 100644 dev/dotfiles/nim/Dockerfile create mode 100755 dev/dotfiles/nim/setup.sh diff --git a/dev/dotfiles/build.sh b/dev/dotfiles/build.sh new file mode 100644 index 0000000..c2acbd3 --- /dev/null +++ b/dev/dotfiles/build.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +images="haskell lisp nim" +base="docker.io/xena/dotfiles" + +docker pull $base + +for image in $images +do + ( + docker rmi $base"-"$image + docker build -t $base"-"$image $image + docker push $base"-"$image + ) +done + +wait diff --git a/dev/dotfiles/haskell/Dockerfile b/dev/dotfiles/haskell/Dockerfile new file mode 100644 index 0000000..de69bf2 --- /dev/null +++ b/dev/dotfiles/haskell/Dockerfile @@ -0,0 +1,11 @@ +FROM docker.io/xena/dotfiles + +ADD https://s3.amazonaws.com/download.fpcomplete.com/fedora/23/fpco.repo /etc/yum.repos.d + +USER root +RUN dnf -y install stack + +USER xena +RUN stack setup + +CMD fish -l diff --git a/dev/dotfiles/lisp/Dockerfile b/dev/dotfiles/lisp/Dockerfile new file mode 100644 index 0000000..c44cc2f --- /dev/null +++ b/dev/dotfiles/lisp/Dockerfile @@ -0,0 +1,13 @@ +FROM docker.io/xena/dotfiles + +USER root +RUN dnf -y install sbcl + +USER xena +WORKDIR /home/xena +RUN (mkdir dl || true) +ADD ./setup.lisp dl/setup_quicklisp.lisp +ADD ./sbclrc /home/xena/.sbclrc + +RUN wget https://beta.quicklisp.org/quicklisp.lisp -O dl/quicklisp.lisp && \ + sbcl --load dl/quicklisp.lisp < dl/setup_quicklisp.lisp diff --git a/dev/dotfiles/lisp/sbclrc b/dev/dotfiles/lisp/sbclrc new file mode 100644 index 0000000..3a931d0 --- /dev/null +++ b/dev/dotfiles/lisp/sbclrc @@ -0,0 +1,6 @@ +;;; The following lines added by ql:add-to-init-file: +#-quicklisp +(let ((quicklisp-init (merge-pathnames "quicklisp/setup.lisp" + (user-homedir-pathname)))) + (when (probe-file quicklisp-init) + (load quicklisp-init))) diff --git a/dev/dotfiles/lisp/setup.lisp b/dev/dotfiles/lisp/setup.lisp new file mode 100644 index 0000000..6faf54c --- /dev/null +++ b/dev/dotfiles/lisp/setup.lisp @@ -0,0 +1 @@ +(quicklisp-quickstart:install) diff --git a/dev/dotfiles/nim/Dockerfile b/dev/dotfiles/nim/Dockerfile new file mode 100644 index 0000000..854b0e1 --- /dev/null +++ b/dev/dotfiles/nim/Dockerfile @@ -0,0 +1,5 @@ +FROM docker.io/xena/dotfiles + +ADD ./setup.sh /opt/xena/setup_nim.sh + +RUN /opt/xena/setup_nim.sh diff --git a/dev/dotfiles/nim/setup.sh b/dev/dotfiles/nim/setup.sh new file mode 100755 index 0000000..61cce4c --- /dev/null +++ b/dev/dotfiles/nim/setup.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +cd $HOME + +mkdir prefix +cd prefix +wget http://nim-lang.org/download/nim-0.13.0.tar.xz +tar xf nim-0.13.0.tar.xz + +( + cd nim-0.13.0 + ./build.sh +) + +ln -s nim-0.13.0 nim + +PATH=$PATH:$HOME/prefix/nim/bin + +mkdir -p $HOME/tmp +cd $HOME/tmp + +( + git clone https://github.com/nim-lang/nimble.git + cd nimble + git clone -b v0.13.0 --depth 1 https://github.com/nim-lang/nim vendor/nim + nim -d:release c -r src/nimble install +) + +rm -rf nimble + +PATH=$PATH:$HOME/.nimble/bin + +nimble refresh + +nimble install nimsuggest +nimble install c2nim