mirror of
https://github.com/mcloh/Enterprise-MCP-Service-Bus.git
synced 2026-11-05 22:14:11 +00:00
34 lines
1.3 KiB
Docker
34 lines
1.3 KiB
Docker
# Shared image for every RI service (Gateway, example MCP servers, ...).
|
|
# docker-compose.yml selects the process to run per service via `command:`.
|
|
#
|
|
# Verified with a real `docker build`/`docker compose up` (RI/README.md, "O
|
|
# que foi validado com Docker") -- this image originally omitted `config ./config`
|
|
# below, which built fine but made the Gateway fail closed at startup
|
|
# (`ConfigError`: config/clients not found -- `load_yaml_models`, EP-01/EP-04),
|
|
# since the container never had client registrations/profiles to load.
|
|
FROM python:3.12-slim AS base
|
|
|
|
WORKDIR /app
|
|
|
|
# System deps kept minimal on purpose -- this image has no compiled
|
|
# dependencies today; add build-essential here if that changes.
|
|
COPY pyproject.toml ./
|
|
COPY src ./src
|
|
COPY services ./services
|
|
# The Gateway loads client registrations/profiles/backend-credential config
|
|
# from `config/` at startup (EP-01/EP-04/EP-07, GatewayConfig.config_dir).
|
|
COPY config ./config
|
|
|
|
RUN pip install --no-cache-dir --upgrade pip \
|
|
&& pip install --no-cache-dir -e ".[otlp]"
|
|
|
|
# Runs as a non-root user; every RI service binds 0.0.0.0 inside its own
|
|
# container network namespace, never the host network directly.
|
|
RUN useradd --create-home --uid 10001 emcp
|
|
USER emcp
|
|
|
|
EXPOSE 8000 8100 8101
|
|
|
|
# Overridden per-service by docker-compose.yml `command:`.
|
|
CMD ["python3", "-m", "emcp_bus.gateway.server"]
|