Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

Docker 覆盖

使用 docker-compose.override.yml 文件来自定义 LibreChat 的 Docker 设置,而无需编辑主 docker-compose.yml 文件。

Docker Compose 覆盖文件允许您更改 docker-compose.yml 中的默认配置,而无需编辑或复制它。覆盖文件主要用于本地自定义。当您运行 docker compose up 时,Compose 会自动将 docker-compose.ymldocker-compose.override.yml 合并。

更多示例

请参阅仓库中的 docker-compose.override.yml.example,以获取更多可供复制的覆盖代码片段。

配置覆盖 (Override)

创建覆盖文件。 如果你还没有该文件,请复制示例文件。当你运行 docker compose 命令时,Docker Compose 会自动识别并加载它。

cp docker-compose.override.yml.example docker-compose.override.yml

编辑覆盖文件。 在编辑器中打开 docker-compose.override.yml,然后取消注释并自定义您需要的部分。

每个服务对应一个条目

每个服务名称(apimongodbmeilisearch 等)只能出现一次。若要覆盖单个服务上的多个设置,请将它们合并在该条目下。

应用更改。 像往常一样运行 Docker Compose。它会自动为您合并 docker-compose.ymldocker-compose.override.yml

docker compose up -d

验证更改。 列出正在运行的容器及其属性(例如端口),以确认您的覆盖配置已生效。

docker ps

示例

若要挂载您的 librechat.yaml 配置文件,以便 Docker 可以将其用于 Custom Endpoints & Configuration

services:
  api:
    volumes:
      - ./librechat.yaml:/app/librechat.yaml

要本地构建 api 镜像、挂载配置文件,并使用不需要 AVX 支持的旧版 MongoDB,请执行:

services:
  api:
    volumes:
      - ./librechat.yaml:/app/librechat.yaml
    image: librechat
    build:
      context: .
      target: node
 
  mongodb:
    image: mongo:4.4.18

监控暴露的端口

将 MongoDB 或 Meilisearch 端口暴露给公网可能会使您的数据面临风险。在生产环境或敏感环境中,请避免使用默认端口。

使用 deploy-compose.yml

当使用非默认的 Compose 文件(例如 deploy-compose.yml)时,覆盖配置不会自动加载。请使用 -f(或 --file)显式传入这两个文件;后续文件中的设置会覆盖或添加到前面的文件中。

覆盖文件可以取任何名称,尽管您可能已经有了 docker-compose.override.yml。请按如下方式运行命令:

docker compose -f deploy-compose.yml -f docker-compose.override.yml pull
docker compose -f deploy-compose.yml -f docker-compose.override.yml up

参考

  • 优先级顺序: 覆盖文件中的值优先于 docker-compose.yml 中的相同值。
  • 安全性: 在自定义端口并公开服务时,请注意相关的安全隐患,并避免在生产环境中使用默认设置。

有关更多详细信息,请参阅官方 Docker 文档:

这篇指南怎么样?