|
|
FROM python:3.11-slim-bullseye |
|
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive |
|
|
|
|
|
|
|
|
RUN apt-get update && apt-get install -y \ |
|
|
|
|
|
tigervnc-standalone-server \ |
|
|
tigervnc-tools \ |
|
|
|
|
|
x11-utils \ |
|
|
x11-xserver-utils \ |
|
|
matchbox-window-manager \ |
|
|
libxtst6 \ |
|
|
libxrandr2 \ |
|
|
|
|
|
libavcodec-dev \ |
|
|
libavdevice-dev \ |
|
|
libavfilter-dev \ |
|
|
libavformat-dev \ |
|
|
libavutil-dev \ |
|
|
libswscale-dev \ |
|
|
libswresample-dev \ |
|
|
libvpx-dev \ |
|
|
libopus-dev \ |
|
|
libssl-dev \ |
|
|
|
|
|
libxcomposite1 libxcursor1 libxdamage1 libxi6 libnss3 libatk1.0-0 \ |
|
|
libatk-bridge2.0-0 libcups2 libdrm2 libgbm1 libasound2 libpangocairo-1.0-0 \ |
|
|
libgtk-3-0 fonts-liberation fonts-noto-color-emoji \ |
|
|
|
|
|
wget curl gnupg procps \ |
|
|
&& rm -rf /var/lib/apt/lists/* |
|
|
|
|
|
|
|
|
RUN curl -fsSL https://deb.opera.com/archive.key | gpg --dearmor -o /usr/share/keyrings/opera-browser-keyring.gpg && \ |
|
|
echo "deb [signed-by=/usr/share/keyrings/opera-browser-keyring.gpg] https://deb.opera.com/opera-stable/ stable non-free" \ |
|
|
| tee /etc/apt/sources.list.d/opera-stable.list && \ |
|
|
apt-get update && \ |
|
|
apt-get install -y opera-stable && \ |
|
|
rm -rf /var/lib/apt/lists/* |
|
|
|
|
|
|
|
|
RUN useradd -m -u 1000 user |
|
|
USER user |
|
|
ENV HOME=/home/user \ |
|
|
PATH=/home/user/.local/bin:$PATH |
|
|
WORKDIR $HOME/app |
|
|
|
|
|
|
|
|
COPY --chown=user:user requirements.txt . |
|
|
RUN pip install --no-cache-dir -r requirements.txt |
|
|
|
|
|
|
|
|
COPY --chown=user:user . . |
|
|
|
|
|
|
|
|
RUN mkdir -p $HOME/opera-data && \ |
|
|
mkdir -p $HOME/.vnc |
|
|
|
|
|
|
|
|
ENV DISPLAY=:99 \ |
|
|
PYTHONUNBUFFERED=1 |
|
|
|
|
|
EXPOSE 7860 |
|
|
CMD ["python", "app.py"] |