Linux package: new debian-based non-static build.

This commit is contained in:
John MacFarlane 2017-10-22 14:29:20 -07:00
parent 432be748ce
commit 5a7a3f15d2
4 changed files with 44 additions and 25 deletions

View file

@ -1,30 +1,19 @@
# USE ALPINE LINUX
FROM alpine:edge
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 \
dpkg fakeroot sed gawk grep bash linux-headers
RUN stack update
RUN stack config set system-ghc --global true
FROM debian:jessie-slim
RUN apt-get update
RUN apt-get -y install git ca-certificates zlib1g-dev curl \
dpkg fakeroot sed gawk grep bash xz-utils make build-essential clang \
libgmp-dev
RUN curl -L https://www.stackage.org/stack/linux-x86_64 | tar xz --wildcards --strip-components=1 -C /usr/bin '*/stack'
RUN mkdir -p /etc/stack
RUN echo "build: { split-objs: true }" > /etc/stack/config.yaml
#RUN echo "build: { split-objs: true }" > /etc/stack/config.yaml
RUN mkdir -p /usr/src/
WORKDIR /usr/src/
RUN git clone https://github.com/jgm/pandoc
WORKDIR /usr/src/pandoc
RUN stack setup
RUN stack install --stack-yaml stack.pkg.yaml --only-dependencies \
--flag 'pandoc:embed_data_files' \
--ghc-options '-O2 -optc-Os -optl=-pthread -optl=-static -fPIC' \
pandoc pandoc-citeproc
CMD git pull && \
git checkout -b work $TREE && \
stack install --stack-yaml stack.pkg.yaml \
--flag 'pandoc:static' \
--flag 'pandoc:embed_data_files' \
--ghc-options '-O2 -optc-Os -optl=-pthread -optl=-static -fPIC' \
--local-bin-path /artifacts \
pandoc pandoc-citeproc && \
bash linux/make_deb.sh && \
bash linux/make_tarball.sh
ARTIFACTS=/artifacts sh make_linux.sh

30
linux/Dockerfile.alpine Normal file
View file

@ -0,0 +1,30 @@
# USE ALPINE LINUX
FROM alpine:edge
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 \
dpkg fakeroot sed gawk grep bash linux-headers
RUN stack update
RUN stack config set system-ghc --global true
RUN mkdir -p /etc/stack
RUN echo "build: { split-objs: true }" > /etc/stack/config.yaml
RUN mkdir -p /usr/src/
WORKDIR /usr/src/
RUN git clone https://github.com/jgm/pandoc
WORKDIR /usr/src/pandoc
RUN stack install --stack-yaml stack.pkg.yaml --only-dependencies \
--flag 'pandoc:embed_data_files' \
--ghc-options '-O2 -optc-Os -optl=-pthread -optl=-static -fPIC' \
pandoc pandoc-citeproc
CMD git pull && \
git checkout -b work $TREE && \
stack install --stack-yaml stack.pkg.yaml \
--flag 'pandoc:static' \
--flag 'pandoc:embed_data_files' \
--ghc-options '-O2 -optc-Os -optl=-pthread -optl=-static -fPIC' \
--local-bin-path /artifacts \
pandoc pandoc-citeproc && \
bash linux/make_deb.sh && \
bash linux/make_tarball.sh

View file

@ -4,15 +4,15 @@ REVISION?=1
build:
mkdir -p $(ARTIFACTS)
docker build -t alpine-pandoc .
docker build -t debian-pandoc .
docker run --env TREE=$(TREE) --env REVISION=$(REVISION) \
-v $(ARTIFACTS):/artifacts alpine-pandoc
-v $(ARTIFACTS):/artifacts debian-pandoc
interact:
docker run --env TREE=$(TREE) --env REVISION=$(REVISION) \
-v $(ARTIFACTS):/artifacts -it alpine-pandoc bash
-v $(ARTIFACTS):/artifacts -it debian-pandoc bash
setup:
docker pull alpine:edge
docker pull debian:jessie
.PHONY: build setup interact

View file

@ -1,6 +1,6 @@
#!/bin/bash -e
ARTIFACTS=`pwd`/linux/artifacts
ARTIFACTS=?`pwd`/linux/artifacts
mkdir -p $ARTIFACTS
stack clean