32 lines
1.2 KiB
Docker
32 lines
1.2 KiB
Docker
FROM python:3.12-slim
|
|
|
|
WORKDIR /
|
|
|
|
# Install system dependencies and Poetry
|
|
RUN apt-get update && apt-get install -y --no-install-recommends gcc && rm -rf /var/lib/apt/lists/* && pip install --no-cache-dir poetry
|
|
|
|
# Copy Poetry configuration
|
|
COPY /pyproject.toml ./pyproject.toml
|
|
|
|
# Configure Poetry and install dependencies with optimizations
|
|
RUN poetry config virtualenvs.create false && poetry install --no-interaction --no-ansi --no-root --only main && pip cache purge && rm -rf ~/.cache/pypoetry
|
|
|
|
# Copy application code
|
|
COPY /ServicesApi/Initializer /Initializer
|
|
COPY /ServicesApi/Controllers /Controllers
|
|
COPY /ServicesApi/Validations /Validations
|
|
COPY /ServicesApi/Schemas /Schemas
|
|
COPY /ServicesApi/Extensions /Extensions
|
|
|
|
COPY /ServicesApi/Builds/Management/endpoints /Initializer/endpoints
|
|
COPY /ServicesApi/Builds/Management/events /Initializer/events
|
|
COPY /ServicesApi/Builds/Management/validations /Initializer/validations
|
|
COPY /ServicesApi/Builds/Management/index.py /Initializer/index.py
|
|
# COPY /ServicesApi/api_middlewares /api_middlewares
|
|
|
|
# Set Python path to include app directory
|
|
ENV PYTHONPATH=/ PYTHONUNBUFFERED=1 PYTHONDONTWRITEBYTECODE=1
|
|
|
|
# Run the application using the configured uvicorn server
|
|
CMD ["poetry", "run", "python", "/Initializer/app.py"]
|