-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathDockerfile
More file actions
48 lines (38 loc) · 1.61 KB
/
Copy pathDockerfile
File metadata and controls
48 lines (38 loc) · 1.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# Use a multi-stage build or a single image with both runtimes
FROM python:3.12-slim-bookworm
# Install Node.js (needed for WEALTH CLI logic)
RUN apt-get update && apt-get install -y curl git && \
curl -fsSL https://deb.nodesource.com/setup_22.x | bash - && \
apt-get install -y nodejs && \
apt-get clean && rm -rf /var/lib/apt/lists/*
# Install uv for fast Python dependency management
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
WORKDIR /app
# Copy package.json and install Node dependencies
COPY package.json package-lock.json ./
RUN npm ci --omit=dev
# Copy pyproject.toml and install Python dependencies
# Use UV_SKIP_WHEEL_FILENAME_CHECK to allow lock file version flexibility
COPY pyproject.toml ./
COPY uv.lock ./
RUN UV_SKIP_WHEEL_FILENAME_CHECK=1 uv sync --no-dev
# Copy the rest of the application
COPY . .
# Set environment variables
ENV PATH="/app/.venv/bin:$PATH"
ENV NODE_ENV=production
ENV PYTHONUNBUFFERED=1
# Expose canonical HTTP transport port
ENV PORT=8082
EXPOSE 8082
LABEL org.opencontainers.image.source="https://github.com/ariffazil/WEALTH" \
org.opencontainers.image.description="Capital intelligence — 28-tool federation surface" \
org.opencontainers.image.version="2026.06.30" \
org.opencontainers.image.licenses="AGPL-3.0" \
arifos.organ="WEALTH" \
arifos.authority="COMPUTE_ONLY"
# Default command: Run the FastMCP server
# Use --transport sse if deploying to cloud, or keep default for stdio
# Canonical implementation is internal/monolith.py (AGENTS.md Tier A).
# server.py is a thin backward-compat wrapper.
ENTRYPOINT ["python", "internal/monolith.py"]