如何部署独立容器¶
在部署之前,请查看 独立容器概念指南 部署选项。
前提条件¶
- 使用 LangGraph CLI 在本地测试你的应用程序。
- 使用 LangGraph CLI 构建 Docker 镜像(即
langgraph build
)。 -
独立容器部署需要以下环境变量。
-
REDIS_URI
:Redis 实例的连接详细信息。Redis 将用作发布 - 订阅代理,以实现后台运行的实时流式输出。REDIS_URI
的值必须是有效的 Redis 连接 URI。共享 Redis 实例
多个自托管部署可以共享同一个 Redis 实例。例如,对于
部署 A
,REDIS_URI
可以设置为redis://<主机名_1>:<端口>/1
,对于部署 B
,REDIS_URI
可以设置为redis://<主机名_1>:<端口>/2
。1
和2
是同一实例内不同的数据库编号,但<主机名_1>
是共享的。不同的部署不能使用相同的数据库编号。 -
DATABASE_URI
:Postgres 连接详细信息。Postgres 将用于存储助手、线程、运行记录,持久化线程状态和长期记忆,并以“仅执行一次”的语义管理后台任务队列的状态。DATABASE_URI
的值必须是有效的 Postgres 连接 URI。共享 Postgres 实例
多个自托管部署可以共享同一个 Postgres 实例。例如,对于
部署 A
,DATABASE_URI
可以设置为postgres://<用户>:<密码>@/<数据库名_1>?host=<主机名_1>
,对于部署 B
,DATABASE_URI
可以设置为postgres://<用户>:<密码>@/<数据库名_2>?host=<主机名_1>
。<数据库名_1>
和数据库名_2
是同一实例内不同的数据库,但<主机名_1>
是共享的。不同的部署不能使用相同的数据库。 -
LANGSMITH_API_KEY
:(如果使用 Lite)LangSmith API 密钥。此密钥将在服务器启动时用于一次性身份验证。 LANGGRAPH_CLOUD_LICENSE_KEY
:(如果使用 Enterprise)LangGraph 平台许可证密钥。此密钥将在服务器启动时用于一次性身份验证。LANGSMITH_ENDPOINT
:要将跟踪信息发送到 自托管的 LangSmith 实例,请将LANGSMITH_ENDPOINT
设置为自托管 LangSmith 实例的主机名。
-
Kubernetes(Helm)¶
使用此 Helm 图表 将 LangGraph 服务器部署到 Kubernetes 集群。
Docker¶
运行以下 docker
命令:
docker run \
--env-file .env \
-p 8123:8000 \
-e REDIS_URI="foo" \
-e DATABASE_URI="bar" \
-e LANGSMITH_API_KEY="baz" \
my-image
Note
- 你需要将
my-image
替换为你在前置步骤(通过langgraph build
)中构建的镜像名称,并且应该为REDIS_URI
、DATABASE_URI
和LANGSMITH_API_KEY
提供合适的值。 - 如果你的应用程序需要额外的环境变量,你可以以类似的方式传递它们。
Docker Compose¶
Docker Compose YAML 文件:
volumes:
langgraph-data:
driver: local
services:
langgraph-redis:
image: redis:6
healthcheck:
test: redis-cli ping
interval: 5s
timeout: 1s
retries: 5
langgraph-postgres:
image: postgres:16
ports:
- "5433:5432"
environment:
POSTGRES_DB: postgres
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
volumes:
- langgraph-data:/var/lib/postgresql/data
healthcheck:
test: pg_isready -U postgres
start_period: 10s
timeout: 1s
retries: 5
interval: 5s
langgraph-api:
image: ${IMAGE_NAME}
ports:
- "8123:8000"
depends_on:
langgraph-redis:
condition: service_healthy
langgraph-postgres:
condition: service_healthy
env_file:
- .env
environment:
REDIS_URI: redis://langgraph-redis:6379
LANGSMITH_API_KEY: ${LANGSMITH_API_KEY}
POSTGRES_URI: postgres://postgres:postgres@langgraph-postgres:5432/postgres?sslmode=disable
你可以在包含此 Docker Compose 文件的同一文件夹中运行 docker compose up
命令。
这将在端口 8123
上启动一个 LangGraph 服务器(如果你想更改此端口,可以通过修改 langgraph-api
服务中的端口来实现)。你可以通过运行以下命令来测试应用程序是否正常运行: