Skip to content
Permalink
Browse files

package: added Dockerfile

  • Loading branch information...
adept authored and simonmichael committed Jan 26, 2019
1 parent 5bb20fc commit c719eb7c674c074d473e3399c02f51a23e5aa1f4
Showing with 72 additions and 0 deletions.
  1. +1 −0 .dockerignore
  2. +41 −0 Dockerfile
  3. +11 −0 docker/README.md
  4. +19 −0 docker/start.sh
@@ -0,0 +1 @@
**/.stack-work
@@ -0,0 +1,41 @@
FROM debian:stable-slim as dev

RUN apt-get update
RUN apt-get install -y curl libtinfo-dev
RUN (curl -sSL https://get.haskellstack.org/ | sh)
RUN mkdir /root/hledger
WORKDIR /root/hledger

# Install GHC
COPY ./stack*.yaml ./
RUN stack setup

# Pre-cache dependencies
RUN mkdir hledger-lib hledger hledger-ui hledger-web hledger-api
COPY hledger-lib/package.yaml hledger-lib/package.yaml
COPY hledger/package.yaml hledger/package.yaml
COPY hledger-ui/package.yaml hledger-ui/package.yaml
COPY hledger-web/package.yaml hledger-web/package.yaml
COPY hledger-api/package.yaml hledger-api/package.yaml
RUN stack install --dependencies-only

# Actually compile sources
COPY . .
RUN stack install

FROM debian:stable-slim

RUN apt-get update && apt-get install libgmp10 && rm -rf /var/lib/apt/lists

COPY --from=dev /root/.local/bin/hledger* /usr/bin/

ENV LC_ALL C.UTF-8

RUN mkdir /data && touch /data/hledger.journal
VOLUME /data

EXPOSE 5000 5001

COPY docker/start.sh /start.sh

CMD ["/start.sh"]
@@ -0,0 +1,11 @@
## Build instructions

Build slim container with binaries only
```
docker image build --rm --tag hledger .
```

Build container suitable for development
```
docker image build --tag hledger --target dev .
```
@@ -0,0 +1,19 @@
#!/bin/bash

echo "host: ${HLEDGER_HOST:=0.0.0.0}"
echo "port: ${HLEDGER_PORT:=5000}"
echo "base url: ${HLEDGER_BASE_URL:="http://localhost:$HLEDGER_PORT"}"
echo "file url: ${HLEDGER_FILE_URL:=}"
echo "input file: ${HLEDGER_JOURNAL_FILE:=/data/hledger.journal}"
echo "debug level: ${HLEDGER_DEBUG:=1}"
echo "rules file: ${HLEDGER_RULES_FILE:=/data/hledger.rules}"

exec hledger-web \
--server \
--host=$HLEDGER_HOST \
--port=$HLEDGER_PORT \
--file "$HLEDGER_JOURNAL_FILE" \
--debug=$HLEDGER_DEBUG \
--base-url=$HLEDGER_BASE_URL \
--file-url=$HLEDGER_FILE_URL \
--rules-file="$HLEDGER_RULES_FILE"

0 comments on commit c719eb7

Please sign in to comment.
You can’t perform that action at this time.