update
This commit is contained in:
41
docker/Dockerfile
Normal file
41
docker/Dockerfile
Normal file
@@ -0,0 +1,41 @@
|
||||
# syntax=docker/dockerfile:1
|
||||
|
||||
FROM python:3.12-slim AS base
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
build-essential \
|
||||
curl \
|
||||
git \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN pip install --no-cache-dir uv
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
ENV UV_PROJECT_ENVIRONMENT=/app/.venv
|
||||
ENV UV_PIP_INDEX_URL=https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
|
||||
ENV HF_ENDPOINT=https://hf-mirror.com
|
||||
ENV HF_HOME=/app/.cache/huggingface
|
||||
ENV TRANSFORMERS_CACHE=/app/.cache/huggingface/transformers
|
||||
ENV HF_DATASETS_CACHE=/app/.cache/huggingface/datasets
|
||||
ENV EMBEDDING_ATLAS_DEVICE=cpu
|
||||
|
||||
RUN mkdir -p "$HF_HOME" "$TRANSFORMERS_CACHE" "$HF_DATASETS_CACHE"
|
||||
VOLUME ["/app/.cache/huggingface"]
|
||||
|
||||
COPY pyproject.toml README.md ./
|
||||
COPY src ./src
|
||||
COPY script ./script
|
||||
|
||||
# Install dependencies with uv. When a lock file is present it will be used automatically.
|
||||
RUN uv sync --no-dev || uv sync --no-dev
|
||||
|
||||
ENV PATH="/app/.venv/bin:$PATH"
|
||||
ENV EMBEDDING_API_HOST=0.0.0.0
|
||||
ENV EMBEDDING_API_PORT=9000
|
||||
|
||||
EXPOSE 9000
|
||||
|
||||
39
docker/docker-compose.yml
Normal file
39
docker/docker-compose.yml
Normal file
@@ -0,0 +1,39 @@
|
||||
version: "3.9"
|
||||
|
||||
services:
|
||||
engine:
|
||||
image: docker:25.0-dind
|
||||
privileged: true
|
||||
environment:
|
||||
- DOCKER_TLS_CERTDIR=
|
||||
command: ["--host=tcp://0.0.0.0:2375"]
|
||||
ports:
|
||||
- "2375:2375"
|
||||
volumes:
|
||||
- engine-data:/var/lib/docker
|
||||
- sessions-data:/sessions
|
||||
restart: unless-stopped
|
||||
|
||||
orchestrator:
|
||||
# Ensure the embedding-atlas image exists (e.g. docker build -f docker/embedding-atlas.Dockerfile -t embedding-atlas:latest ..)
|
||||
build:
|
||||
context: ..
|
||||
dockerfile: docker/Dockerfile
|
||||
depends_on:
|
||||
- engine
|
||||
environment:
|
||||
- EMBEDDING_DOCKER_URL=tcp://engine:2375
|
||||
- EMBEDDING_CONTAINER_IMAGE=embedding-atlas:latest
|
||||
- EMBEDDING_CONTAINER_NAME_PREFIX=embedding-atlas
|
||||
- EMBEDDING_API_HOST=0.0.0.0
|
||||
- EMBEDDING_API_PORT=9000
|
||||
- EMBEDDING_SESSION_ROOT=/sessions
|
||||
volumes:
|
||||
- sessions-data:/sessions
|
||||
ports:
|
||||
- "9000:9000"
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
engine-data:
|
||||
sessions-data:
|
||||
17
docker/embedding-atlas.Dockerfile
Normal file
17
docker/embedding-atlas.Dockerfile
Normal file
@@ -0,0 +1,17 @@
|
||||
FROM python:3.12-slim
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
build-essential \
|
||||
curl \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN pip install --no-cache-dir embedding-atlas
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
EXPOSE 5055
|
||||
|
||||
CMD ["embedding-atlas"]
|
||||
Reference in New Issue
Block a user