Skip to content

Commit bd3ec27

Browse files
committed
build(docker): replace Dockerfile with simple python:3.12-slim base; add HEALTHCHECK; install build-essential to build fastuuid
1 parent c44996a commit bd3ec27

File tree

1 file changed

+13
-218
lines changed

1 file changed

+13
-218
lines changed

Dockerfile

Lines changed: 13 additions & 218 deletions
Original file line numberDiff line numberDiff line change
@@ -1,231 +1,26 @@
1-
# syntax=docker/dockerfile:1
1+
FROM python:3.12-slim
22

3-
ARG PYTHON_VERSION=3.12
4-
5-
FROM ghcr.io/astral-sh/uv:0.4.17 as builder
6-
ARG PYTHON_VERSION
7-
WORKDIR /app
8-
COPY pyproject.toml README.md .
9-
COPY micro_agent micro_agent
10-
COPY evals evals
11-
COPY tests tests
12-
13-
ENV UV_HTTP_TIMEOUT=60
14-
RUN uv venv --python $PYTHON_VERSION && . .venv/bin/activate && uv pip install -e .
15-
16-
FROM python:${PYTHON_VERSION}-slim
173
ENV PYTHONDONTWRITEBYTECODE=1 \
184
PYTHONUNBUFFERED=1 \
19-
UV_HTTP_TIMEOUT=60 \
205
TRACES_DIR=/data/traces
216

22-
RUN useradd -m appuser
237
WORKDIR /app
24-
COPY --from=builder /app /.build
25-
COPY --from=builder /app/.venv /app/.venv
26-
ENV PATH="/app/.venv/bin:$PATH"
8+
COPY pyproject.toml README.md /app/
9+
COPY micro_agent /app/micro_agent
10+
COPY evals /app/evals
11+
12+
RUN apt-get update && apt-get install -y --no-install-recommends \
13+
build-essential \
14+
&& rm -rf /var/lib/apt/lists/*
2715

28-
# Copy source for runtime (editable install already baked in)
29-
COPY micro_agent micro_agent
30-
COPY evals evals
31-
COPY README.md README.md
16+
RUN pip install --no-cache-dir --upgrade pip && \
17+
pip install -e . && \
18+
pip install --no-cache-dir uvicorn
3219

33-
RUN mkdir -p /data/traces && chown -R appuser:appuser /data
34-
USER appuser
20+
RUN mkdir -p /data/traces
3521

3622
EXPOSE 8000
3723
HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
38-
CMD python -c "import sys,urllib.request;\
39-
40-
41-
import contextlib;\
42-
43-
44-
45-
46-
47-
48-
49-
50-
51-
52-
53-
54-
55-
56-
57-
58-
59-
60-
61-
62-
63-
64-
65-
66-
67-
68-
69-
70-
71-
72-
73-
74-
75-
76-
77-
78-
79-
80-
81-
82-
83-
84-
85-
86-
87-
88-
89-
90-
91-
92-
93-
94-
95-
96-
97-
98-
99-
100-
101-
102-
103-
104-
105-
106-
107-
108-
109-
110-
111-
112-
113-
114-
115-
116-
117-
118-
119-
120-
121-
122-
123-
124-
125-
126-
127-
128-
129-
130-
131-
132-
133-
134-
135-
136-
137-
138-
139-
140-
141-
142-
143-
144-
145-
146-
147-
148-
149-
150-
151-
152-
153-
154-
155-
156-
157-
158-
159-
160-
161-
162-
163-
164-
165-
166-
167-
168-
169-
170-
171-
172-
173-
174-
175-
176-
177-
178-
179-
180-
181-
182-
183-
184-
185-
url='http://127.0.0.1:8000/healthz';\
186-
187-
188-
189-
190-
191-
192-
193-
194-
195-
196-
197-
198-
199-
200-
201-
202-
203-
204-
205-
206-
207-
208-
209-
210-
211-
212-
213-
214-
215-
216-
217-
218-
219-
220-
221-
222-
223-
224-
225-
226-
227-
228-
229-
with contextlib.ExitStack() as s: r=s.enter_context(urllib.request.urlopen(url, timeout=3)); sys.exit(0 if r.status==200 else 1)"
24+
CMD ["python", "-c", "import sys,urllib.request; sys.exit(0 if urllib.request.urlopen('http://127.0.0.1:8000/healthz', timeout=3).status==200 else 1)"]
23025

23126
CMD ["uvicorn", "micro_agent.server:app", "--host", "0.0.0.0", "--port", "8000"]

0 commit comments

Comments
 (0)