tfrere's picture
update
46647de
FROM node:18 as client-build
WORKDIR /app
COPY client/package*.json ./
RUN npm install
COPY client/ ./
ENV VITE_API_URL=https://mistral-ai-game-jam-dont-lookup.hf.space
RUN mkdir -p dist && npm run build
FROM python:3.10-slim
WORKDIR /app
# Create non-root user
RUN useradd -m -u 1000 user
# Install system dependencies and poetry
RUN apt-get update && apt-get install -y \
netcat-openbsd \
&& rm -rf /var/lib/apt/lists/* \
&& pip install poetry
# Copy and install Python dependencies
COPY server/pyproject.toml server/poetry.lock* ./
RUN poetry config virtualenvs.create false \
&& poetry install --no-interaction --no-ansi --only main --no-root
# Copy server code to the root directory to maintain import structure
COPY server/* ./
COPY server/core ./core
COPY server/api ./api
COPY server/services ./services
# Copy client build
COPY --from=client-build /app/dist ./static
# Environment variables
ENV API_HOST=0.0.0.0 \
API_PORT=7860 \
STATIC_FILES_DIR=static \
DOCKER_ENV=true
# Create cache directory and set permissions
RUN mkdir -p /app/cache && chown -R user:user /app/cache
# Switch to non-root user
USER user
EXPOSE 7860
# Start the server
CMD ["python", "-m", "uvicorn", "server:app", "--host", "0.0.0.0", "--port", "7860"]