diff options
author | John MacFarlane <jgm@berkeley.edu> | 2017-03-17 14:17:41 +0100 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2017-03-17 14:19:08 +0100 |
commit | 63c96f8b91b26f4c12a48ea30f330d689b4c67fa (patch) | |
tree | 8e1a26b024aa0b5d185b0c815d6bd99f5bcc2116 | |
parent | 090165d714221bcfc1e4da7c43e8ad0b585d6dff (diff) | |
download | pandoc-63c96f8b91b26f4c12a48ea30f330d689b4c67fa.tar.gz |
Added static-linux directory.
This provides a Makefile and Dockerfile sufficient for
producing a completely statically linked linux executable
for maximum portability.
If docker is installed, this should suffice:
make setup
make build
The binary will be placed in artifacts/.
-rw-r--r-- | static-linux/Dockerfile | 18 | ||||
-rw-r--r-- | static-linux/Makefile | 11 |
2 files changed, 29 insertions, 0 deletions
diff --git a/static-linux/Dockerfile b/static-linux/Dockerfile new file mode 100644 index 000000000..3c62ebcf9 --- /dev/null +++ b/static-linux/Dockerfile @@ -0,0 +1,18 @@ +# USE ALPINE LINUX +FROM alpine:edge +RUN apk update +# INSTALL BASIC DEV TOOLS, GHC, GMP & ZLIB +RUN echo "https://s3-us-west-2.amazonaws.com/alpine-ghc/8.0" >> /etc/apk/repositories +ADD https://raw.githubusercontent.com/mitchty/alpine-ghc/master/mitch.tishmack%40gmail.com-55881c97.rsa.pub \ + /etc/apk/keys/mitch.tishmack@gmail.com-55881c97.rsa.pub +RUN apk update +RUN apk add alpine-sdk git ca-certificates ghc cabal stack zlib-dev +RUN stack update +RUN stack config set system-ghc --global true +ADD ./ /usr/src/ +WORKDIR /usr/src/ +RUN git clone https://github.com/jgm/pandoc +WORKDIR /usr/src/pandoc +CMD git pull +CMD stack install --local-bin-path /usr/bin hsb2hs +CMD stack install --local-bin-path /artifacts --flag 'pandoc:embed_data_files' --test --ghc-options '-optl-static -fPIC' diff --git a/static-linux/Makefile b/static-linux/Makefile new file mode 100644 index 000000000..d8dc8151d --- /dev/null +++ b/static-linux/Makefile @@ -0,0 +1,11 @@ +ARTIFACTS=`pwd`/artifacts + +build: + mkdir -p $(ARTIFACTS) + docker run -v $(ARTIFACTS):/artifacts alpine-pandoc + +setup: + docker pull alpine:edge + docker build -t alpine-pandoc . + +.PHONY: build setup |