29 lines
948 B
Docker
29 lines
948 B
Docker
# NEON CRM — Python + PostgreSQL, без веб-фреймворков.
|
|
# NF-20: дайджест-пин базового образа (воспроизводимая сборка).
|
|
FROM python:3.12-slim@sha256:a6e34c598f2467ed0e9a8d349809fcd8b5c603269512df273a0bb1784edc11b1
|
|
|
|
ENV PYTHONUNBUFFERED=1 \
|
|
PYTHONDONTWRITEBYTECODE=1
|
|
|
|
WORKDIR /app
|
|
|
|
COPY requirements.txt .
|
|
RUN pip install --no-cache-dir -r requirements.txt
|
|
|
|
COPY server.py storage.py storage_sqlite.py notes_api.py ./
|
|
COPY seed/ ./seed/
|
|
COPY index.html ./
|
|
COPY css/ ./css/
|
|
COPY js/ ./js/
|
|
|
|
RUN groupadd --system neon && useradd --system --gid neon --create-home neon \
|
|
&& chown -R neon:neon /app
|
|
USER neon
|
|
|
|
EXPOSE 47613
|
|
|
|
HEALTHCHECK --interval=30s --timeout=5s --start-period=15s --retries=3 \
|
|
CMD python -c "import urllib.request,sys; sys.exit(0 if urllib.request.urlopen('http://127.0.0.1:47613/api/healthz', timeout=3).status == 200 else 1)"
|
|
|
|
CMD ["python", "server.py"]
|