package: added Dockerfile
This commit is contained in:
parent
5bb20fcdec
commit
c719eb7c67
1
.dockerignore
Normal file
1
.dockerignore
Normal file
@ -0,0 +1 @@
|
|||||||
|
**/.stack-work
|
||||||
41
Dockerfile
Normal file
41
Dockerfile
Normal file
@ -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"]
|
||||||
11
docker/README.md
Normal file
11
docker/README.md
Normal file
@ -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 .
|
||||||
|
```
|
||||||
19
docker/start.sh
Executable file
19
docker/start.sh
Executable file
@ -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"
|
||||||
Loading…
Reference in New Issue
Block a user