> ## Documentation index
> Fetch the complete documentation index at: https://dify-docs.docs7.io/llms.txt
> Ask it with GET https://dify-docs.docs7.io/ask?q=<keywords or question>. Short keywords rank best.
> Use these to discover all available pages before exploring further.

# 使用 Docker Compose 部署 Dify

> 本文档由 AI 自动翻译。如有任何不准确之处，请参考 [英文原版](/en/self-host/deploy/quick-start/docker-compose)。

<Tip>
    常见部署问题，详见 [常见问题解答](/zh/self-host/deploy/quick-start/faqs)。
</Tip>

## 部署前准备

确保机器满足以下最低系统要求。

### 硬件

- CPU >= 2 Core
- RAM >= 4 GiB

### 软件

| 操作系统 | 所需软件 | 说明 |
| :--- | :--- | :--- |
| macOS 10.14 或更高版本 | Docker Desktop（含 Docker Compose 2.24.0+） | Docker 虚拟机至少配置 2 个虚拟 CPU 和 8 GiB 内存。<br></br><br></br>安装说明详见 [Mac 版 Docker Desktop 安装指南](https://docs.docker.com/desktop/mac/install/)。 |
| Linux 发行版 | Docker 19.03+<br></br><br></br>Docker Compose 2.24.0+ | 安装说明详见 [Docker 引擎安装指南](https://docs.docker.com/engine/install/) 和 [Docker Compose 安装指南](https://docs.docker.com/compose/install/)。 |
| Windows（启用 WSL 2） | Docker Desktop（含 Docker Compose 2.24.0+） | 源代码和绑定到 Linux 容器的数据建议存储在 Linux 文件系统中，而非 Windows。<br></br><br></br>安装说明详见 [Windows 版 Docker Desktop 安装指南](https://docs.docker.com/desktop/windows/install/#wsl-2-backend)。 |

## 部署并启动

<Steps>
  <Step title="克隆 Dify">
    克隆 Dify 源代码到本地机器。

    ```bash
    git clone --branch "$(curl -s https://api.github.com/repos/langgenius/dify/releases/latest | jq -r .tag_name)" https://github.com/langgenius/dify.git
    ```

    <Info>
      此命令需要 `git`、`curl` 和 `jq`。如提示 `command not found`，安装缺少的工具后重新运行命令。

      报 `fatal: Remote branch null not found in upstream origin` 错误时，改用显式版本号重试，最新版本号见 [Dify releases](https://github.com/langgenius/dify/releases)：

      ```bash
      git clone --branch <version> https://github.com/langgenius/dify.git
      ```

      详见 [克隆报错「Remote branch null not found」](/zh/self-host/deploy/quick-start/faqs#克隆报错「remote-branch-null-not-found」)。

    </Info>
  </Step>
  <Step title="启动 Dify">

    1. 进入 Dify 源代码中的 `docker` 目录：

        ```bash
        cd dify/docker
        ```

    2. 复制必要的环境配置文件：

        ```bash
        cp .env.example .env
        ```

        如需自定义部署，参见 [自定义](#自定义)。

    3. 启动容器：
        <Note>
          Dify 需要 Docker Compose 2.24.0 或更高版本。运行 `docker compose version` 确认版本。
        </Note>

        ```bash
        docker compose up -d
        ```

        启动以下容器：

        - 7 个核心服务：`api`、`api_websocket`、`worker`、`worker_beat`、`web`、`plugin_daemon`、`agent_backend`
        - 8 个依赖组件：`weaviate`、`db_postgres`、`redis`、`nginx`、`ssrf_proxy`、`agent_ssrf_proxy`、`sandbox`、`local_sandbox`
        - 1 个一次性任务：`init_permissions`，用于设置存储文件权限，完成后自动退出。

    4. 验证所有容器是否成功运行：

        ```bash
        docker compose ps
        ```

        每个容器的状态应为 `Up` 或 `healthy`。`init_permissions` 状态显示为 `Exited` 是正常的。
  </Step>
</Steps>

## 访问

1. 打开管理员初始化页面，设置管理员账户：

    ```bash
    # 本地环境
    http://localhost/install

    # 服务器环境
    http://your_server_ip/install
    ```

2. 完成管理员账户设置后，在以下地址登录 Dify：

    ```bash
    # 本地环境
    http://localhost  

    # 服务器环境
    http://your_server_ip
    ```

## 自定义

如需自定义部署，编辑相关文件中的环境变量，然后重启 Dify。

<Steps>
  <Step title="编辑环境变量">

    - **必要的启动值** 位于 `docker/.env` 文件中（部署时从 `docker/.env.example` 复制创建）。直接编辑即可。

    - **可选或特定提供商的设置** 在 `docker/envs/` 下有对应模板。要覆盖默认值，复制相应模板（去掉 `.example` 后缀），然后编辑副本。

      例如：

        ```bash
        cd dify/docker
        cp envs/vectorstores/milvus.env.example envs/vectorstores/milvus.env
        ```

    `docker/.env` 中的值优先于任何 `docker/envs/*.env` 文件中的值。

    <Tip>
      所有变量的说明，详见 [环境变量](/zh/self-host/deploy/configuration/environments)。
    </Tip>

  </Step>
  <Step title="重启 Dify">

    ```bash
    docker compose down
    docker compose up -d
    ```

  </Step>
</Steps>

## 升级

不同版本的升级步骤可能有所不同。详见 [Releases](https://github.com/langgenius/dify/releases) 页面中提供的目标版本升级指南。

<Note>
  升级后，对照各 `.env.example` 文件检查对应的 `.env`，确认是否有新增或变更的变量。
  
  若你自定义过 `docker-compose.yaml`，请把自定义内容重新应用到新版本的文件上，而不是沿用旧文件。新版本可能新增 Dify 运行所需的服务。
</Note>
