broadfield-dev commited on
Commit
b5047c3
·
verified ·
1 Parent(s): f1c870b

Update Dockerfile

Browse files
Files changed (1) hide show
  1. 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
- RUN useradd -m -u 1000 user
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
- EXPOSE 7860
 
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 & \