Raymond Weitekamp commited on
Commit
09d544d
·
1 Parent(s): 270241f

Fix ocp_vscode config file permissions by running as non-root user

Browse files
Files changed (1) hide show
  1. Dockerfile +12 -2
Dockerfile CHANGED
@@ -25,6 +25,12 @@ RUN mkdir -p /.cache/ezdxf && \
25
  # Set OCP_VSCODE_LOCK_DIR environment variable
26
  ENV OCP_VSCODE_LOCK_DIR=/tmp/ocpvscode
27
 
 
 
 
 
 
 
28
  # Install uv and create virtual environment
29
  RUN pip install uv && \
30
  uv venv /opt/venv
@@ -46,10 +52,14 @@ RUN wget https://github.com/gitpod-io/openvscode-server/releases/download/openvs
46
  tar -xzf /tmp/openvscode-server.tar.gz -C /opt && \
47
  rm /tmp/openvscode-server.tar.gz && \
48
  mv /opt/openvscode-server-v1.86.2-linux-x64 /opt/openvscode-server && \
49
- chown -R 1000:1000 /opt/openvscode-server
 
 
 
 
50
 
51
  # Expose port 7860 for Hugging Face Spaces
52
  EXPOSE 7860
53
 
54
  # Run the application
55
- CMD ["sh", "-c", "OCP_VSCODE_LOCK_DIR=/tmp/ocpvscode python -c 'import cadviewer; from nicegui import app; app.native.start_args[\"port\"] = 7860; cadviewer.ui.run(native=False, host=\"0.0.0.0\", port=7860)'"]
 
25
  # Set OCP_VSCODE_LOCK_DIR environment variable
26
  ENV OCP_VSCODE_LOCK_DIR=/tmp/ocpvscode
27
 
28
+ # Create a non-root user and set up home directory
29
+ RUN useradd -m -d /home/appuser -s /bin/bash appuser && \
30
+ mkdir -p /home/appuser/.ocpvscode && \
31
+ chown -R appuser:appuser /home/appuser && \
32
+ chmod 777 /home/appuser/.ocpvscode
33
+
34
  # Install uv and create virtual environment
35
  RUN pip install uv && \
36
  uv venv /opt/venv
 
52
  tar -xzf /tmp/openvscode-server.tar.gz -C /opt && \
53
  rm /tmp/openvscode-server.tar.gz && \
54
  mv /opt/openvscode-server-v1.86.2-linux-x64 /opt/openvscode-server && \
55
+ chown -R appuser:appuser /opt/openvscode-server
56
+
57
+ # Switch to non-root user
58
+ USER appuser
59
+ ENV HOME=/home/appuser
60
 
61
  # Expose port 7860 for Hugging Face Spaces
62
  EXPOSE 7860
63
 
64
  # Run the application
65
+ CMD ["python", "-c", "import cadviewer; from nicegui import app; app.native.start_args['port'] = 7860; cadviewer.ui.run(native=False, host='0.0.0.0', port=7860)"]