chipling-api / Dockerfile
Maouu's picture
Update Dockerfile
e99fbc4 verified
raw
history blame
1.15 kB
FROM python:3.9-slim
# System dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential gcc libffi-dev libpq-dev curl gnupg ca-certificates && \
apt-get clean && rm -rf /var/lib/apt/lists/*
# Install Node.js (v18)
RUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash - && \
apt-get install -y nodejs && \
node -v && npm -v
# Set workdir
WORKDIR /app
# Copy requirements and install Python deps
COPY requirements.txt .
RUN pip install --no-cache-dir --upgrade pip && \
pip install --no-cache-dir -r requirements.txt
# Copy Node.js files and install npm deps
COPY test.js ./
RUN npm install youtube-po-token-generator
# Create cache dir for pytubefix/pytube (owned by root by default)
RUN mkdir -p /app/cache && chmod 755 /app/cache
# Create logs.json with permissions
RUN touch logs.json && chmod 664 logs.json
# -- DO NOT create or switch user, run as root --
# Set environment variables
ENV PYTUBE_CACHE_DIR=/app/cache
ENV PATH="/root/.local/bin:$PATH"
# Expose port
EXPOSE 7860
# Start app
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860", "--workers", "2"]