diff --git a/writing_env/Dockerfile b/writing_env/Dockerfile index 3e5d20d..b982dfd 100644 --- a/writing_env/Dockerfile +++ b/writing_env/Dockerfile @@ -2,13 +2,47 @@ FROM alpine:3.6 ENV LANG C.UTF-8 ENV SSL_CERT_FILE /etc/ssl/certs/ca-certificates.crt + ENV BLOG_UID 1000 ENV BLOG_GID 1000 +ENV PANDOC_VERSION 1.19.2.1 + +# prepare repositories +RUN set -ex \ + && echo "http://nl.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories \ + && apk update + +# install pandoc +RUN set -ex \ + && apk add --virtual .buildDeps \ + ghc \ + cabal \ + linux-headers \ + musl-dev \ + zlib-dev \ + curl \ + && mkdir /tmp/pandoc \ + && cd /tmp/pandoc \ + && curl -fsSL "https://hackage.haskell.org/package/pandoc-$PANDOC_VERSION/pandoc-$PANDOC_VERSION.tar.gz" | tar -xzf - \ + && cd "/tmp/pandoc/pandoc-$PANDOC_VERSION" \ + && cabal update \ + && cabal install --only-dependencies \ + && cabal configure --prefix=/usr/local \ + && cabal build \ + && cabal copy \ + && cd / \ + && rm -rf /tmp/pandoc \ + && rm -rf /root/.cabal \ + && rm -rf /root/.ghc \ + && apk del .buildDeps + +# add files ADD root / +# prepare for provisioning RUN set -ex \ - && apk add --update \ + && apk add \ ansible \ bash \ ca-certificates \ @@ -23,13 +57,18 @@ RUN set -ex \ && chmod 0440 /etc/sudoers.d/blog \ && chown -R $BLOG_UID:$BLOG_GID /home/blog +# switch user to blog USER blog +# provision RUN set -ex \ && git clone https://github.com/xsteadfastx/batcave.git ~/.batcave \ && ansible-playbook -i ~/.batcave/hosts ~/.batcave/shell.yml -c local --extra-vars="hosts=127.0.0.1" \ && ansible-playbook -c local /home/blog/playbooks/writing_env.yml \ - && /bin/zsh -c "source /home/blog/.zshrc && antigen update" \ + && /bin/zsh -c "source /home/blog/.zshrc && antigen update" + +# clean up +RUN set -ex \ && sudo rm -rf /var/cache/apk/* EXPOSE 8000