mirror of
https://github.com/langgenius/dify.git
synced 2026-06-25 22:31:10 +08:00
Co-authored-by: yyh <yuanyouhuilyz@gmail.com> Co-authored-by: Joel <iamjoel007@gmail.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: yyh <92089059+lyzno1@users.noreply.github.com>
60 lines
1.6 KiB
Docker
60 lines
1.6 KiB
Docker
# Local sandbox image for shellctl-managed Dify Agent workspaces.
|
|
#
|
|
# Build this from the dify-agent package root:
|
|
# docker build -f docker/local-sandbox/Dockerfile -t dify-agent-local-sandbox:local .
|
|
#
|
|
# This image merges the former shellctl-only image with the sandbox-visible
|
|
# Agent Stub client CLI. It runs shellctl by default, and shellctl-managed jobs
|
|
# can call `dify-agent ...` without installing extra packages at runtime.
|
|
|
|
FROM python:3.12-slim-bookworm AS base
|
|
|
|
ENV PYTHONDONTWRITEBYTECODE=1 \
|
|
PYTHONUNBUFFERED=1 \
|
|
PIP_NO_CACHE_DIR=1 \
|
|
DIFY_AGENT_STUB_DRIVE_BASE=/mnt/drive
|
|
|
|
RUN apt-get update \
|
|
&& apt-get install -y --no-install-recommends \
|
|
ca-certificates \
|
|
curl \
|
|
tmux \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
ENV UV_VERSION=0.8.9
|
|
RUN python -m pip install --no-cache-dir "uv==${UV_VERSION}"
|
|
|
|
WORKDIR /opt/dify-agent
|
|
|
|
|
|
FROM base AS packages
|
|
|
|
ENV SHELL_SESSION_MANAGER_VERSION=2.2.1
|
|
|
|
COPY pyproject.toml uv.lock README.md ./
|
|
COPY src ./src
|
|
|
|
RUN uv sync --frozen --no-dev --no-editable --extra grpc \
|
|
&& uv pip install --python .venv/bin/python "shell-session-manager==${SHELL_SESSION_MANAGER_VERSION}"
|
|
|
|
|
|
FROM base AS production
|
|
|
|
ENV VIRTUAL_ENV=/opt/dify-agent/.venv
|
|
ENV PATH="${VIRTUAL_ENV}/bin:${PATH}"
|
|
|
|
COPY --from=packages ${VIRTUAL_ENV} ${VIRTUAL_ENV}
|
|
|
|
RUN ln -s ${VIRTUAL_ENV}/bin/dify-agent /usr/local/bin/dify-agent \
|
|
&& ln -s ${VIRTUAL_ENV}/bin/shellctl /usr/local/bin/shellctl \
|
|
&& useradd --create-home --shell /bin/sh dify \
|
|
&& mkdir -p /mnt/drive \
|
|
&& chown -R dify:dify /home/dify /mnt/drive
|
|
|
|
USER dify
|
|
WORKDIR /home/dify
|
|
|
|
EXPOSE 5004
|
|
|
|
CMD ["shellctl", "serve", "--listen", "0.0.0.0:5004"]
|