trevorpfiz commited on
Commit
246c6a1
·
1 Parent(s): 0a2029b

Spaces: switch to user 1000, port 7860, Gradio metadata; uv cache in HOME; run python -m vlm_playground.app

Browse files
Files changed (2) hide show
  1. Dockerfile +20 -7
  2. README.md +6 -7
Dockerfile CHANGED
@@ -1,25 +1,38 @@
1
  FROM ghcr.io/astral-sh/uv:python3.12-bookworm-slim
2
 
3
- WORKDIR /app
 
 
 
 
 
 
 
 
4
 
5
  # Enable bytecode compilation and copy mode for mounted volumes
6
  ENV UV_COMPILE_BYTECODE=1
7
  ENV UV_LINK_MODE=copy
8
 
 
 
 
 
 
9
  # Install dependencies from lockfile using cache/bind mounts
10
- RUN --mount=type=cache,target=/root/.cache/uv \
11
- --mount=type=bind,source=uv.lock,target=uv.lock \
12
- --mount=type=bind,source=pyproject.toml,target=pyproject.toml \
13
  uv sync --locked --no-install-project --no-dev
14
 
15
  # Then, add the rest of the project source code and install it
16
  # Installing separately from its dependencies allows optimal layer caching
17
- COPY . /app
18
- RUN --mount=type=cache,target=/root/.cache/uv \
19
  uv sync --locked --no-dev
20
 
21
  # Place executables in the environment at the front of the path
22
- ENV PATH="/app/.venv/bin:$PATH"
23
 
24
  # Reset entrypoint; don't invoke uv directly
25
  ENTRYPOINT []
 
1
  FROM ghcr.io/astral-sh/uv:python3.12-bookworm-slim
2
 
3
+ ARG USERNAME=user
4
+ ARG USER_UID=1000
5
+ ARG USER_GID=1000
6
+
7
+ RUN groupadd --gid ${USER_GID} ${USERNAME} \
8
+ && useradd --uid ${USER_UID} --gid ${USER_GID} --create-home ${USERNAME}
9
+
10
+ ENV HOME=/home/${USERNAME}
11
+ WORKDIR ${HOME}/app
12
 
13
  # Enable bytecode compilation and copy mode for mounted volumes
14
  ENV UV_COMPILE_BYTECODE=1
15
  ENV UV_LINK_MODE=copy
16
 
17
+ USER ${USERNAME}
18
+
19
+ # Writable UV cache for non-root user
20
+ ENV UV_CACHE_DIR=${HOME}/.cache/uv
21
+
22
  # Install dependencies from lockfile using cache/bind mounts
23
+ RUN --mount=type=cache,target=${HOME}/.cache/uv \
24
+ --mount=type=bind,source=uv.lock,target=uv.lock,readonly \
25
+ --mount=type=bind,source=pyproject.toml,target=pyproject.toml,readonly \
26
  uv sync --locked --no-install-project --no-dev
27
 
28
  # Then, add the rest of the project source code and install it
29
  # Installing separately from its dependencies allows optimal layer caching
30
+ COPY --chown=${USERNAME}:${USERNAME} . ${HOME}/app
31
+ RUN --mount=type=cache,target=${HOME}/.cache/uv \
32
  uv sync --locked --no-dev
33
 
34
  # Place executables in the environment at the front of the path
35
+ ENV PATH="${HOME}/app/.venv/bin:$PATH"
36
 
37
  # Reset entrypoint; don't invoke uv directly
38
  ENTRYPOINT []
README.md CHANGED
@@ -4,16 +4,15 @@ emoji: 🚀
4
  colorFrom: red
5
  colorTo: red
6
  sdk: docker
7
- app_port: 8501
8
  tags:
9
- - streamlit
10
  pinned: false
11
- short_description: Streamlit template space
12
  ---
13
 
14
- # Welcome to Streamlit!
15
 
16
- Edit `/src/streamlit_app.py` to customize this app to your heart's desire. :heart:
17
 
18
- If you have any questions, checkout our [documentation](https://docs.streamlit.io) and [community
19
- forums](https://discuss.streamlit.io).
 
4
  colorFrom: red
5
  colorTo: red
6
  sdk: docker
7
+ app_port: 7860
8
  tags:
9
+ - gradio
10
  pinned: false
11
+ short_description: Gradio docker space
12
  ---
13
 
14
+ # VLM Playground (Gradio)
15
 
16
+ This Space runs a minimal Gradio app served on port 7860 via Docker.
17
 
18
+ Local dev: `./run.sh` (exposes `http://localhost:7860`).