Update intranet tools and voucher comparison
This commit is contained in:
+54
@@ -0,0 +1,54 @@
|
||||
FROM python:3.12-slim-bookworm
|
||||
|
||||
ARG SQLITE_ARCHIVE=sqlite-autoconf-3530100.tar.gz
|
||||
ARG SQLITE_URL=https://www.sqlite.org/2026/sqlite-autoconf-3530100.tar.gz
|
||||
ARG SQLITE_SHA3_256=36ca143645cf76997d07b66e9244c636b8ccdec64a1d50558259c4e415e6558b
|
||||
ARG APP_UID=1000
|
||||
ARG APP_GID=1000
|
||||
|
||||
ENV PYTHONDONTWRITEBYTECODE=1 \
|
||||
PYTHONUNBUFFERED=1 \
|
||||
LD_LIBRARY_PATH=/usr/local/lib \
|
||||
INTRANET_DB_PATH=/runtime/db/data.db \
|
||||
INTRANET_BACKUP_DIR=/runtime/backups \
|
||||
INTRANET_CACHE_ROOT=/runtime/cache \
|
||||
INTRANET_COMPARE_EXPORT_DIR=/runtime/exports/wehago_compare \
|
||||
INTRANET_HANMAC_EXPORT_DIR=/runtime/exports/hanmac \
|
||||
WEHAGO_SOURCE_ROOT=/source/wehago \
|
||||
INTRANET_REQUIRE_SAFE_SQLITE=1
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends build-essential ca-certificates curl \
|
||||
&& curl -fsSL "${SQLITE_URL}" -o "/tmp/${SQLITE_ARCHIVE}" \
|
||||
&& python -c "import hashlib, pathlib; p=pathlib.Path('/tmp/${SQLITE_ARCHIVE}'); actual=hashlib.sha3_256(p.read_bytes()).hexdigest(); expected='${SQLITE_SHA3_256}'; assert actual == expected, (actual, expected)" \
|
||||
&& mkdir -p /tmp/sqlite-src \
|
||||
&& tar -xzf "/tmp/${SQLITE_ARCHIVE}" -C /tmp/sqlite-src --strip-components=1 \
|
||||
&& cd /tmp/sqlite-src \
|
||||
&& ./configure --prefix=/usr/local --enable-shared --disable-static \
|
||||
&& make -j2 \
|
||||
&& make install \
|
||||
&& ldconfig \
|
||||
&& python -c "import sqlite3; assert sqlite3.sqlite_version_info >= (3, 51, 3), sqlite3.sqlite_version" \
|
||||
&& rm -rf /tmp/sqlite-src "/tmp/${SQLITE_ARCHIVE}" \
|
||||
&& apt-get purge -y --auto-remove build-essential curl \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY requirements.txt /app/requirements.txt
|
||||
RUN pip install --no-cache-dir -r /app/requirements.txt
|
||||
|
||||
COPY . /app
|
||||
|
||||
RUN mkdir -p /runtime/db /runtime/backups /runtime/cache /runtime/exports/wehago_compare /runtime/exports/hanmac \
|
||||
&& groupadd --gid "${APP_GID}" intranet \
|
||||
&& useradd --create-home --uid "${APP_UID}" --gid "${APP_GID}" intranet \
|
||||
&& chown -R intranet:intranet /app /runtime
|
||||
|
||||
USER intranet
|
||||
EXPOSE 8010
|
||||
|
||||
HEALTHCHECK --interval=30s --timeout=5s --start-period=20s --retries=3 \
|
||||
CMD python -c "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8010/health', timeout=3).read()"
|
||||
|
||||
CMD ["python", "main.py"]
|
||||
Reference in New Issue
Block a user