Files
ripe-cidr-collector/Dockerfile
T

26 lines
1.1 KiB
Docker
Raw Normal View History

2026-09-21 07:29:38 +03:00
FROM python:3.11-slim
ENV PYTHONUNBUFFERED=1 \
PYTHONDONTWRITEBYTECODE=1 \
RIPE_DATA_DIR=/data
WORKDIR /app
COPY requirements.txt constraints.txt ./
RUN pip install --no-cache-dir -c constraints.txt -r requirements.txt
2026-09-21 07:29:38 +03:00
# Все модули приложения из корня (тесты и прочее лежат в подкаталогах или исключены .dockerignore)
COPY *.py ./
# Забытый или сломанный модуль ломает сборку, а не запуск
RUN python -c "import api_server, collector_daemon, db, healthcheck"
2026-09-21 07:29:38 +03:00
# Без root; том /data создаётся с владельцем ripe (именованный том наследует его при первом создании)
RUN useradd --system --uid 10001 --no-create-home ripe \
&& mkdir /data && chown ripe /data
USER ripe
VOLUME /data
EXPOSE 8000
# exec-форма: SIGTERM доходит до процесса. Сборщик переопределяет команду в docker-compose.yml
CMD ["uvicorn", "api_server:app", "--host", "0.0.0.0", "--port", "8000"]