Spaces:
Running
Running
| # Use an official Python runtime as a parent image | |
| FROM python:3.11-slim | |
| # Set environment variables for Python | |
| ENV PYTHONDONTWRITEBYTECODE 1 | |
| ENV PYTHONUNBUFFERED 1 | |
| # Set the working directory in the container | |
| WORKDIR /app | |
| # Install system dependencies that might be needed by Python packages | |
| # Example: build-essential for some packages, libpq-dev for psycopg2 from source (though -binary avoids this) | |
| # For psycopg2-binary, typically no extra system deps are needed for common platforms if using a compatible wheel. | |
| # RUN apt-get update && apt-get install -y --no-install-recommends build-essential libpq-dev && rm -rf /var/lib/apt/lists/* | |
| # Copy the requirements file into the container | |
| COPY requirements.txt . | |
| # Install Python dependencies | |
| RUN pip install --no-cache-dir -r requirements.txt | |
| # Copy the application source code into the container | |
| # This structure assumes your main application code is within the 'tensorus' directory. | |
| COPY ./tensorus ./tensorus | |
| # If your app.py or main.py is at the root alongside Dockerfile, you'd copy it too: | |
| # COPY app.py . # Or specific main file if it's at the root. | |
| # Based on `CMD ["uvicorn", "tensorus.api.main:app"...]`, main:app is in tensorus/api/main.py. | |
| # Set default environment variables for the application | |
| # These can be overridden when running the container (e.g., via docker run -e or docker-compose.yml) | |
| ENV TENSORUS_STORAGE_BACKEND="in_memory" | |
| ENV TENSORUS_POSTGRES_HOST="db" | |
| ENV TENSORUS_POSTGRES_PORT="5432" | |
| ENV TENSORUS_POSTGRES_USER="tensorus_user_dockerfile" | |
| ENV TENSORUS_POSTGRES_PASSWORD="tensorus_pass_dockerfile" | |
| ENV TENSORUS_POSTGRES_DB="tensorus_db_dockerfile" | |
| ENV TENSORUS_POSTGRES_DSN="" | |
| ENV TENSORUS_API_KEY_HEADER_NAME="X-API-KEY" | |
| ENV TENSORUS_VALID_API_KEYS="[]" | |
| ENV TENSORUS_AUTH_JWT_ENABLED="False" | |
| ENV TENSORUS_AUTH_JWT_ISSUER="" | |
| ENV TENSORUS_AUTH_JWT_AUDIENCE="" | |
| ENV TENSORUS_AUTH_JWT_ALGORITHM="RS256" | |
| ENV TENSORUS_AUTH_JWT_JWKS_URI="" | |
| ENV TENSORUS_AUTH_DEV_MODE_ALLOW_DUMMY_JWT="False" | |
| # Expose the port the app runs on | |
| EXPOSE 7860 | |
| # Define the command to run the application | |
| # Use the package export from ``tensorus.api`` which exposes ``app`` in | |
| # ``tensorus/api/__init__.py``. This lets Uvicorn import the app directly | |
| # from the package without referencing the module path. | |
| CMD ["uvicorn", "tensorus.api:app", "--host", "0.0.0.0", "--port", "7860"] | |