ojaskittur commited on
Commit
39962fc
·
1 Parent(s): 6a99b17

Fix Dockerfile user creation and permissions

Browse files
Files changed (1) hide show
  1. Dockerfile +18 -9
Dockerfile CHANGED
@@ -2,24 +2,33 @@ FROM python:3.11-slim
2
 
3
  WORKDIR /app
4
 
5
- # Install Java
6
  RUN apt-get update && \
7
- apt-get install -y openjdk-17-jdk-headless && \
8
  rm -rf /var/lib/apt/lists/*
9
 
10
- # Copy files
11
  COPY . .
12
 
13
- # Install dependencies
14
- RUN pip install --no-cache-dir -r requirements.txt
 
 
15
 
16
- # Setup user permissions (HF Security Requirement)
17
- RUN useradd -m -u 1000 user
 
 
 
 
 
 
 
 
18
  USER user
19
  ENV HOME=/home/user \
20
  PATH=/home/user/.local/bin:$PATH
21
 
 
22
  EXPOSE 7860
23
-
24
- # Run Streamlit on port 7860
25
  CMD ["streamlit", "run", "app.py", "--server.port=7860", "--server.address=0.0.0.0"]
 
2
 
3
  WORKDIR /app
4
 
5
+ # 1. Install System Dependencies (Java for LanguageTool, Build tools for safety)
6
  RUN apt-get update && \
7
+ apt-get install -y openjdk-17-jdk-headless build-essential git && \
8
  rm -rf /var/lib/apt/lists/*
9
 
10
+ # 2. Copy files
11
  COPY . .
12
 
13
+ # 3. Install Python libraries
14
+ # We add --verbose to see errors if pip fails
15
+ RUN pip install --no-cache-dir --upgrade pip && \
16
+ pip install --no-cache-dir -r requirements.txt
17
 
18
+ # 4. Create User (Robust Version)
19
+ # Checks if user exists; if not, creates it. Handles existing ID 1000.
20
+ RUN id -u user &>/dev/null || useradd -m -u 1000 user
21
+
22
+ # 5. Fix Permissions
23
+ # Ensure the new user owns the app directory and home directory
24
+ RUN chown -R user:user /app && \
25
+ chown -R user:user /home/user
26
+
27
+ # 6. Switch to User
28
  USER user
29
  ENV HOME=/home/user \
30
  PATH=/home/user/.local/bin:$PATH
31
 
32
+ # 7. Run
33
  EXPOSE 7860
 
 
34
  CMD ["streamlit", "run", "app.py", "--server.port=7860", "--server.address=0.0.0.0"]