AdithyaSK HF Staff commited on
Commit
5f78cc4
Β·
verified Β·
1 Parent(s): ffb33e5

update: openreward-aligned action schema + Anthropic-compat tools

Browse files
Files changed (1) hide show
  1. Dockerfile +60 -6
Dockerfile CHANGED
@@ -1,13 +1,67 @@
1
- FROM python:3.12-slim
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
 
3
  WORKDIR /app
4
 
5
- RUN pip install --no-cache-dir uv
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
 
7
- COPY . .
 
8
 
9
- RUN uv pip install --system -e .
 
 
 
 
 
10
 
11
- EXPOSE 7860
12
 
13
- CMD ["uvicorn", "server.app:app", "--host", "0.0.0.0", "--port", "7860"]
 
1
+ # syntax=docker/dockerfile:1
2
+ # Multi-stage build for desktop-openenv
3
+ # Follows the same pattern as OpenEnv's jupyter-agent Dockerfile.
4
+ #
5
+ # Build:
6
+ # docker build -t desktop-openenv .
7
+ #
8
+ # Run:
9
+ # docker run -p 8000:8000 \
10
+ # -e E2B_API_KEY=e2b_... \
11
+ # -e ENABLE_WEB_INTERFACE=true \
12
+ # desktop-openenv
13
+
14
+ ARG BASE_IMAGE=ghcr.io/meta-pytorch/openenv-base:latest
15
+
16
+ # ── Stage 1: builder ──────────────────────────────────────────────────────────
17
+ FROM ${BASE_IMAGE} AS builder
18
 
19
  WORKDIR /app
20
 
21
+ COPY . /app/env
22
+ WORKDIR /app/env
23
+
24
+ # Ensure uv is available
25
+ RUN if ! command -v uv >/dev/null 2>&1; then \
26
+ curl -LsSf https://astral.sh/uv/install.sh | sh && \
27
+ mv /root/.local/bin/uv /usr/local/bin/uv && \
28
+ mv /root/.local/bin/uvx /usr/local/bin/uvx; \
29
+ fi
30
+
31
+ RUN apt-get update && apt-get install -y --no-install-recommends \
32
+ git \
33
+ && rm -rf /var/lib/apt/lists/*
34
+
35
+ # Install dependencies (cache-friendly two-pass)
36
+ RUN --mount=type=cache,target=/root/.cache/uv \
37
+ if [ -f uv.lock ]; then \
38
+ uv sync --frozen --no-install-project --no-editable; \
39
+ else \
40
+ uv sync --no-install-project --no-editable; \
41
+ fi
42
+
43
+ RUN --mount=type=cache,target=/root/.cache/uv \
44
+ if [ -f uv.lock ]; then \
45
+ uv sync --frozen --no-editable; \
46
+ else \
47
+ uv sync --no-editable; \
48
+ fi
49
+
50
+ # ── Stage 2: runtime ──────────────────────────────────────────────────────────
51
+ FROM ${BASE_IMAGE}
52
+
53
+ WORKDIR /app
54
 
55
+ COPY --from=builder /app/env/.venv /app/.venv
56
+ COPY --from=builder /app/env /app/env
57
 
58
+ ENV PATH="/app/.venv/bin:$PATH"
59
+ ENV PYTHONPATH="/app/env:$PYTHONPATH"
60
+ ENV PYTHONDONTWRITEBYTECODE=1
61
+ ENV PYTHONUNBUFFERED=1
62
+ HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
63
+ CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')" || exit 1
64
 
65
+ EXPOSE 8000
66
 
67
+ CMD ["sh", "-c", "cd /app/env && uvicorn server.app:app --host 0.0.0.0 --port 8000"]