63 lines
1.9 KiB
Docker
63 lines
1.9 KiB
Docker
ARG BEANCOUNT_VERSION=2.3.6
|
|
ARG FAVA_VERSION=1.27.3
|
|
|
|
FROM node:lts-slim as node_build_env
|
|
ARG FAVA_VERSION
|
|
|
|
RUN set -eux; \
|
|
apt-get update; \
|
|
apt-get install -y python3-babel git make;
|
|
|
|
RUN git clone --depth 1 --branch v${FAVA_VERSION} https://github.com/beancount/fava /tmp/build/fava
|
|
|
|
WORKDIR /tmp/build/fava
|
|
RUN set -eux; \
|
|
make -j $(nproc); \
|
|
rm -rf .*cache .eggs .tox build dist frontend/node_modules; \
|
|
find . -type f -name '*.py[c0]' -delete; \
|
|
find . -type d -name "__pycache__" -delete
|
|
|
|
FROM python:3.12.3-slim as build_env
|
|
ARG BEANCOUNT_VERSION
|
|
|
|
RUN set -eux; \
|
|
apt-get update; \
|
|
apt-get install -y build-essential libxml2-dev libxslt-dev curl git;
|
|
|
|
ENV PATH "/app/bin:$PATH"
|
|
RUN python -mvenv /app
|
|
COPY --from=node_build_env /tmp/build/fava /tmp/build/fava
|
|
|
|
RUN git clone --depth 1 --branch ${BEANCOUNT_VERSION} https://github.com/beancount/beancount /tmp/build/beancount
|
|
|
|
WORKDIR /tmp/build/beancount
|
|
RUN set -eux; \
|
|
CFLAGS=-s pip3 install -U /tmp/build/beancount; \
|
|
pip3 install -U /tmp/build/fava; \
|
|
pip3 install \
|
|
beancount-reds-plugins \
|
|
git+https://github.com/andreasgerstmayr/fava-dashboards.git \
|
|
git+https://github.com/beancount/beangrow.git \
|
|
git+https://github.com/redstreet/fava_investor.git \
|
|
git+https://github.com/daniel-wells/beancount_checkclosed.git \
|
|
git+https://github.com/PhracturedBlue/fava-portfolio-summary.git \
|
|
git+https://github.com/polarmutex/fava-envelope.git \
|
|
git+https://github.com/scauligi/refried.git \
|
|
git+https://github.com/beancount/beanprice.git@41576e2ac889e4825e4985b6f6c56aa71de28304 \
|
|
; \
|
|
pip3 uninstall -y pip; \
|
|
find /app -name __pycache__ -exec rm -rf -v {} +
|
|
|
|
FROM python:3.12.3-slim
|
|
COPY --from=build_env /app /app
|
|
|
|
# Default fava port number
|
|
EXPOSE 5000
|
|
|
|
ENV BEAN_ROOT ""
|
|
ENV BEANCOUNT_FILE ""
|
|
|
|
ENV FAVA_HOST "0.0.0.0"
|
|
ENV PATH "/app/bin:$PATH"
|
|
|
|
CMD ["fava"]
|