Files
tfm_ainventory/backend/Dockerfile
2026-04-15 17:31:58 +03:00

40 lines
967 B
Docker

FROM python:3.12-slim
# Install system dependencies
RUN apt-get update && apt-get install -y \
build-essential \
libldap2-dev \
libsasl2-dev \
gosu \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
# Copy requirements and install
COPY backend/requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Create non-root user
RUN adduser --system --group appuser
# Copy application files
COPY backend ./backend
# Copy initialization scripts (shared with start_server.sh)
COPY scripts ./scripts
# We define the data dir explicitly for Docker
ENV DATA_DIR="/app/data"
ENV LOGS_DIR="/app/logs"
# Pre-create directories and ensure they are writable
RUN mkdir -p /app/data /app/logs && chown -R appuser:appuser /app
# Make initialization scripts executable
RUN chmod +x /app/scripts/init_data.sh /app/backend/entrypoint.sh
EXPOSE 8000
# Entrypoint runs init_data.sh first, then starts uvicorn
ENTRYPOINT ["/app/backend/entrypoint.sh"]