# --- Stage 1: Python Backend dev --- FROM python:3.14-slim AS dev LABEL org.opencontainers.image.title="The-DisExcel-project-dev" LABEL org.opencontainers.image.source="https://git.homyk.space/MH.Dmitrii/The_DisExcel_project" WORKDIR /home/excel-project COPY pyproject.toml poetry.lock docker/entrypoint.sh alembic.ini ./ RUN chmod +x ./entrypoint.sh RUN pip install --no-cache-dir --break-system-packages poetry \ && poetry config virtualenvs.create false \ && poetry install --no-root --no-interaction # --- Stage 2: Python Backend prod --- FROM python:3.14-slim AS prod LABEL org.opencontainers.image.title="The-DisExcel-project-prod" LABEL org.opencontainers.image.source="https://git.homyk.space/MH.Dmitrii/The_DisExcel_project" WORKDIR /home/excel-project COPY pyproject.toml poetry.lock main.py docker/entrypoint.sh alembic.ini ./ COPY src/ ./src/ RUN chmod +x ./entrypoint.sh RUN pip install --no-cache-dir --break-system-packages poetry \ && poetry config virtualenvs.create false \ && poetry install --no-root --no-interaction --only main RUN groupadd --gid 1000 appuser \ && useradd --uid 1000 --gid appuser --shell /bin/bash --create-home appuser \ && chown -R appuser:appuser /home/excel-project USER appuser ENTRYPOINT ["./entrypoint.sh", "--prod"]