Files
infstellar 1e4727cf2b chore(compose): containerize services and lifecycle management
Run the API, visual backend, and authenticated Agent executor through Compose with persistent volumes and safe start/stop diagnostics.

通过 Compose 运行 API、视觉后端和带认证的 Agent executor,提供持久卷及安全启停诊断。
2026-08-15 15:24:02 +08:00

39 lines
1.5 KiB
Docker

FROM node:22-slim
WORKDIR /opt/mememeow
# Agent 镜像只包含运行时工具和项目 Skill,不复制项目源码、配置或数据库凭据。
RUN apt-get update && apt-get install -y --no-install-recommends \
bash ca-certificates curl file jq \
imagemagick ffmpeg \
tesseract-ocr tesseract-ocr-eng tesseract-ocr-chi-sim tesseract-ocr-chi-tra \
python3 python3-pip python3-venv python3-dotenv \
git unzip zip procps findutils grep sed gawk \
&& rm -rf /var/lib/apt/lists/*
COPY .opencode/package*.json /opt/mememeow/
RUN npm ci --omit=dev
RUN npm install --global --no-fund --no-audit opencode-ai@1.18.18
COPY skills/research-meme-context /skills/research-meme-context
COPY executor /opt/mememeow/executor
RUN groupadd --gid 1003 mememeow-agent \
&& useradd --uid 1003 --gid 1003 --create-home --shell /bin/bash mememeow-agent \
&& mkdir -p /runtime/task-results /runtime/workspace /images /run/agent-executor-secret \
&& chown -R mememeow-agent:mememeow-agent /runtime /images /run/agent-executor-secret \
&& chmod 700 /run/agent-executor-secret \
&& chmod -R a=rX /opt/mememeow/node_modules \
&& chmod -R a=rX /skills/research-meme-context
ENV HOME=/home/mememeow-agent \
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
PYTHONPATH=/opt/mememeow \
PYTHONUNBUFFERED=1
USER mememeow-agent
WORKDIR /runtime/workspace
# executor 是容器唯一入口;后端通过 Compose 内部网络调用它,不需要 Docker CLI 或 socket。
CMD ["python3", "-m", "executor.server"]