summaryrefslogtreecommitdiff
path: root/Dockerfile
diff options
context:
space:
mode:
Diffstat (limited to 'Dockerfile')
-rw-r--r--Dockerfile35
1 files changed, 35 insertions, 0 deletions
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..ba76b97
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,35 @@
+# syntax=docker/dockerfile:1
+
+FROM debian:bookworm-slim AS build
+RUN apt-get update \
+ && apt-get install -y --no-install-recommends build-essential libncurses-dev \
+ && rm -rf /var/lib/apt/lists/*
+WORKDIR /src
+COPY . .
+RUN make -j"$(nproc)" && make test
+
+FROM debian:bookworm-slim AS runtime
+RUN apt-get update \
+ && apt-get install -y --no-install-recommends libncursesw6 ca-certificates \
+ && rm -rf /var/lib/apt/lists/* \
+ && useradd --system --uid 10001 --home-dir /var/lib/bokfd \
+ --shell /usr/sbin/nologin bokfd \
+ && install -d -o bokfd -g bokfd /var/lib/bokfd /var/lib/bokfd/backup \
+ /var/lib/bokfd/export /run/bokfd
+COPY --from=build /src/build/bokfd /src/build/bokfctl /src/build/bokftui \
+ /usr/local/bin/
+COPY --from=build /src/data/bas_k2.csv /src/data/bas_k3.csv \
+ /usr/local/share/bokf/
+COPY deploy/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
+RUN chmod 0755 /usr/local/bin/docker-entrypoint.sh
+
+ENV BOKFD_DB=/var/lib/bokfd/bokfd.db \
+ BOKFD_SOCKET=/run/bokfd/bokfd.sock \
+ BOKFD_BACKUP_DIR=/var/lib/bokfd/backup \
+ BOKFD_EXPORT_DIR=/var/lib/bokfd/export
+
+VOLUME ["/var/lib/bokfd", "/run/bokfd"]
+HEALTHCHECK --interval=30s --timeout=5s --start-period=5s --retries=3 \
+ CMD ["bokfctl", "health"]
+ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
+CMD ["bokfd"]