Spaces:
Running
Running
Update Dockerfile
Browse files- Dockerfile +14 -5
Dockerfile
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
|
|
| 1 |
FROM ubuntu:22.04
|
| 2 |
|
|
|
|
| 3 |
ENV DEBIAN_FRONTEND=noninteractive
|
| 4 |
ENV DISPLAY=:99
|
| 5 |
ENV PATH="/home/user/.local/bin:$PATH"
|
| 6 |
|
| 7 |
-
|
| 8 |
-
USER user
|
| 9 |
-
WORKDIR /app
|
| 10 |
-
|
| 11 |
RUN apt-get update && apt-get install -y \
|
| 12 |
python3 \
|
| 13 |
python3-dev \
|
|
@@ -25,16 +24,26 @@ RUN apt-get update && apt-get install -y \
|
|
| 25 |
websockify \
|
| 26 |
&& rm -rf /var/lib/apt/lists/*
|
| 27 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 28 |
COPY --chown=user . /app
|
| 29 |
|
|
|
|
| 30 |
RUN python3 -m venv /venv
|
| 31 |
ENV PATH="/venv/bin:$PATH"
|
| 32 |
|
|
|
|
| 33 |
RUN pip install --no-cache-dir --upgrade pip && \
|
| 34 |
pip install flask pygobject toga
|
| 35 |
|
| 36 |
-
|
|
|
|
| 37 |
|
|
|
|
| 38 |
CMD Xvfb :99 -screen 0 1024x768x16 & \
|
| 39 |
x11vnc -display :99 -forever -nopw & \
|
| 40 |
websockify --web /usr/share/novnc 6080 localhost:5900 & \
|
|
|
|
| 1 |
+
# Use Ubuntu 22.04 for compatibility with pygobject and toga
|
| 2 |
FROM ubuntu:22.04
|
| 3 |
|
| 4 |
+
# Set environment variables
|
| 5 |
ENV DEBIAN_FRONTEND=noninteractive
|
| 6 |
ENV DISPLAY=:99
|
| 7 |
ENV PATH="/home/user/.local/bin:$PATH"
|
| 8 |
|
| 9 |
+
# Install system dependencies as root
|
|
|
|
|
|
|
|
|
|
| 10 |
RUN apt-get update && apt-get install -y \
|
| 11 |
python3 \
|
| 12 |
python3-dev \
|
|
|
|
| 24 |
websockify \
|
| 25 |
&& rm -rf /var/lib/apt/lists/*
|
| 26 |
|
| 27 |
+
# Create a non-root user for Hugging Face Spaces
|
| 28 |
+
RUN useradd -m -u 1000 user
|
| 29 |
+
USER user
|
| 30 |
+
WORKDIR /app
|
| 31 |
+
|
| 32 |
+
# Copy application files
|
| 33 |
COPY --chown=user . /app
|
| 34 |
|
| 35 |
+
# Create and activate a virtual environment
|
| 36 |
RUN python3 -m venv /venv
|
| 37 |
ENV PATH="/venv/bin:$PATH"
|
| 38 |
|
| 39 |
+
# Install Python dependencies
|
| 40 |
RUN pip install --no-cache-dir --upgrade pip && \
|
| 41 |
pip install flask pygobject toga
|
| 42 |
|
| 43 |
+
# Expose ports for Flask (7860) and noVNC (6080)
|
| 44 |
+
EXPOSE 7860 6080
|
| 45 |
|
| 46 |
+
# Start Xvfb, VNC server, noVNC, and Flask app
|
| 47 |
CMD Xvfb :99 -screen 0 1024x768x16 & \
|
| 48 |
x11vnc -display :99 -forever -nopw & \
|
| 49 |
websockify --web /usr/share/novnc 6080 localhost:5900 & \
|