ontology
This commit is contained in:
59
ontology_platform/vendored/ontocast/Dockerfile
Normal file
59
ontology_platform/vendored/ontocast/Dockerfile
Normal file
@@ -0,0 +1,59 @@
|
||||
# ─── builder stage ───────────────────────────────────────────────────────────
|
||||
FROM python:3.12-slim-bullseye AS builder
|
||||
|
||||
RUN apt update -y \
|
||||
&& apt install -y curl git \
|
||||
&& curl -LsSf https://astral.sh/uv/0.9.5/install.sh | sh \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ENV PATH="${PATH}:/root/.local/bin"
|
||||
WORKDIR /app
|
||||
|
||||
COPY pyproject.toml uv.lock ./
|
||||
RUN touch README.md
|
||||
|
||||
# uv creates a venv and installs deps
|
||||
RUN --mount=type=ssh uv sync --no-group dev --no-group docs -v
|
||||
|
||||
COPY ontocast ./ontocast
|
||||
COPY README.md ./
|
||||
|
||||
# ─── runtime stage ────────────────────────────────────────────────────────────
|
||||
FROM python:3.12-slim-bullseye AS runtime
|
||||
|
||||
LABEL org.opencontainers.image.title="ontocast-mcp-server" \
|
||||
org.opencontainers.image.version="0.1.1" \
|
||||
org.opencontainers.image.description="Ontology‑assisted semantic triple extractor (MCP‑compatible)"
|
||||
|
||||
# Install curl for healthcheck
|
||||
RUN apt update -y \
|
||||
&& apt install -y curl \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Create non-root user
|
||||
RUN groupadd -r ontocast && useradd -r -g ontocast ontocast
|
||||
USER ontocast
|
||||
|
||||
WORKDIR /app
|
||||
COPY --from=builder /app /app
|
||||
|
||||
# ─── Volume Mounting Notes ──────────────────────────────────────────────────────
|
||||
# Paths are configured via .env file (ONTOCAST_WORKING_DIRECTORY,
|
||||
# ONTOCAST_ONTOLOGY_DIRECTORY, ONTOCAST_CACHE_DIR) and should be mounted
|
||||
# as volumes in docker-compose to persist data and allow host access.
|
||||
#
|
||||
# Example docker-compose volumes:
|
||||
# volumes:
|
||||
# - ./data/working:/path/to/working
|
||||
# - ./data/ontologies:/path/to/ontologies
|
||||
# - ./data/cache:/path/to/cache
|
||||
#
|
||||
# Ensure the paths in .env match the container-side mount paths.
|
||||
# Do NOT hardcode paths in Dockerfile - they must come from .env configuration.
|
||||
|
||||
# Expose & healthcheck
|
||||
EXPOSE 8999
|
||||
HEALTHCHECK --interval=30s --timeout=5s --retries=3 \
|
||||
CMD curl -f http://localhost:8999/health || exit 1
|
||||
|
||||
ENTRYPOINT ["uv", "run", "ontocast"]
|
||||
Reference in New Issue
Block a user