Alina Lozovskaya commited on
Commit
e1a6c20
·
1 Parent(s): 80b5d72

Fix Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +18 -26
Dockerfile CHANGED
@@ -14,39 +14,31 @@ RUN curl -LsSf https://astral.sh/uv/install.sh | sh && \
14
  RUN uv --version
15
 
16
  # Create a non-root user for security
17
- RUN useradd -m -u 1000 uvuser
18
 
19
- # Set environment variables properly
20
- ENV HOME=/home/uvuser \
21
- PATH="/usr/local/bin:$PATH" \
22
- XDG_CACHE_HOME=/home/uvuser/.cache \
23
- UV_VENV_PATH="/home/uvuser/.venv"
24
-
25
- # Set working directory
26
- WORKDIR /home/uvuser/app
27
 
28
- # Ensure necessary directories exist and are writable
29
- RUN mkdir -p /app/uploaded_files /home/uvuser/.cache && chown -R uvuser:uvuser /app /home/uvuser
 
 
30
 
31
- # Copy pyproject.toml and uv.lock to the working directory
32
- COPY pyproject.toml uv.lock ./
33
 
34
- # Create the virtual environment and install dependencies as root
35
- RUN uv venv && uv sync $(test -f uv.lock && echo "--frozen" || echo "")
36
 
37
- # Fix ownership of cache and installed dependencies
38
- RUN chown -R uvuser:uvuser /home/uvuser/.cache /home/uvuser/.venv /home/uvuser/app || true
 
 
39
 
40
- # Switch to non-root user before running the app
41
- USER uvuser
42
 
43
- # Copy the rest of the application code
44
- COPY --chown=uvuser:uvuser . ./
45
 
46
- # Expose Gradio app port
47
  EXPOSE 7860
48
- ENV GRADIO_SERVER_NAME="0.0.0.0"
49
- ENV SYSTEM=spaces
50
-
51
  # Run the application
52
- CMD ["uv", "run", "python", "yourbench_space/app.py"]
 
14
  RUN uv --version
15
 
16
  # Create a non-root user for security
17
+ RUN useradd -m -u 1000 user
18
 
19
+ # Switch to the "user" user
20
+ USER user
 
 
 
 
 
 
21
 
22
+ # Set environment variables properly
23
+ ENV HOME=/home/user
24
+ ENV PATH=/home/user/.local/bin:$PATH
25
+ ENV XDG_CACHE_HOME=$HOME/.cache
26
 
27
+ ENV GRADIO_SERVER_NAME="0.0.0.0"
28
+ ENV SYSTEM=spaces
29
 
30
+ # Set working directory
31
+ WORKDIR $HOME/app
32
 
33
+ # Install dependencies
34
+ RUN --mount=type=bind,source=uv.lock,target=uv.lock \
35
+ --mount=type=bind,source=pyproject.toml,target=pyproject.toml \
36
+ uv sync --frozen --no-cache --no-install-project
37
 
38
+ COPY --chown=user . $HOME/app
 
39
 
40
+ RUN uv sync --no-cache --frozen
 
41
 
 
42
  EXPOSE 7860
 
 
 
43
  # Run the application
44
+ CMD ["uv", "run", "python", "yourbench_space/app.py"]