tiny-desktop / Dockerfile
Likho User
Fix: Upgrade pip and pin exact versions of gradio/huggingface_hub
e9861d4
FROM debian:bullseye-slim
# Prevent interactive prompts
ENV DEBIAN_FRONTEND=noninteractive
ENV DISPLAY=:1
ENV VNC_PORT=5901
ENV NO_VNC_PORT=6080
ENV VNC_PASSWORD=vncpassword
# Install minimal dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
# Window Manager
openbox \
# VNC
tigervnc-standalone-server \
tigervnc-common \
novnc \
websockify \
# Browser
firefox-esr \
# Python
python3 \
python3-pip \
python3-venv \
# Tools
xdotool \
scrot \
procps \
curl \
ca-certificates \
# Cleanup
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# Create user
RUN useradd -m -s /bin/bash vncuser && \
mkdir -p /home/vncuser/.vnc && \
chown -R vncuser:vncuser /home/vncuser
# Set VNC password
USER vncuser
RUN echo "${VNC_PASSWORD}" | vncpasswd -f > /home/vncuser/.vnc/passwd && \
chmod 600 /home/vncuser/.vnc/passwd
# Configure Openbox
RUN mkdir -p /home/vncuser/.config/openbox
# VNC Startup Script
RUN echo '#!/bin/bash' > /home/vncuser/.vnc/xstartup && \
echo 'exec openbox-session' >> /home/vncuser/.vnc/xstartup && \
chmod +x /home/vncuser/.vnc/xstartup
USER root
# Python dependencies
COPY requirements.txt /tmp/requirements.txt
RUN pip3 install --no-cache-dir --upgrade pip && \
pip3 install --no-cache-dir -r /tmp/requirements.txt
# App Setup
WORKDIR /app
COPY . /app
RUN mkdir -p /app/scripts /app/agent /app/logs && \
chown -R vncuser:vncuser /app
# Copy scripts
COPY scripts/start-desktop.sh /app/scripts/start-desktop.sh
RUN chmod +x /app/scripts/start-desktop.sh
# Expose ports
EXPOSE ${VNC_PORT} ${NO_VNC_PORT} 7860 8000
CMD ["/app/scripts/start-desktop.sh"]