Rectifier / Dockerfile
Yakova's picture
Update Dockerfile
55f6f08 verified
# Builder stage
FROM python:3.10.0 as builder
# Create a non-root user
RUN useradd -ms /bin/bash admin
# Set the working directory
WORKDIR /srv
# Copy requirements file first to leverage caching
COPY --chown=admin requirements.txt .
# Install system dependencies
RUN apt-get update && \
apt-get install -y --no-install-recommends \
wget ffmpeg curl aria2 \
fonts-liberation \
libatk-bridge2.0-0 \
libatk1.0-0 \
libatspi2.0-0 \
libcups2 \
libdrm2 \
libgbm1 \
libgtk-3-0 \
libnspr4 \
libnss3 \
libu2f-udev \
libvulkan1 \
libxcomposite1 \
libxdamage1 \
mesa-vulkan-drivers \
libxfixes3 \
libasound2 \
libxkbcommon0 \
libxrandr2 \
xdg-utils \
software-properties-common \
npm
# Install youtubeuploader
ADD https://github.com/porjo/youtubeuploader/releases/download/23.06/youtubeuploader_23.06_Linux_x86_64.tar.gz youtubeuploader.tar.gz
RUN mkdir -p /srv/youtube && \
tar -zxvf youtubeuploader.tar.gz -C /srv/youtube && \
rm youtubeuploader.tar.gz && \
chmod +x /srv/youtube/youtubeuploader
# Install latest npm and node
RUN npm install npm@latest -g && \
npm install n -g && \
n latest
# Install Python dependencies
RUN pip install --no-cache-dir -r requirements.txt
# Install unsilence
RUN pipx ensurepath && \
pipx install unsilence
# Copy the application code
COPY --chown=admin . /srv
# Command to run the application
# CMD python -m uvicorn App.app:app --host 0.0.0.0 --port 7860 & python -m celery -A App.Worker.celery worker -c 5 --max-tasks-per-child=1 --without-heartbeat
# Give read and write permissions to the admin user
RUN chown -R admin:admin /srv
RUN chmod 755 /srv
USER admin
CMD python -m uvicorn App.app:app --workers 1 --host 0.0.0.0 --port 7860
# Expose port
EXPOSE 7860