如何部署独立容器¶
在部署之前,请查阅独立容器部署选项的概念性指南。
先决条件¶
- 使用LangGraph CLI在本地测试您的应用程序(本地测试)。
- 使用LangGraph CLI构建Docker镜像(即
langgraph build
)。 -
以下环境变量是独立容器部署所必需的。
-
REDIS_URI
: 连接到Redis实例的连接详情。Redis将用作发布/订阅代理,以实现实时输出流。REDIS_URI
的值必须是一个有效的Redis连接URI。共享Redis实例
多个自托管部署可以共享同一个Redis实例。例如,对于
部署A
,REDIS_URI
可以设置为redis://<hostname_1>:<port>/1
,对于部署B
,REDIS_URI
可以设置为redis://<hostname_1>:<port>/2
。1
和2
是同一实例中的不同数据库编号,但<hostname_1>
是共享的。不能在同一部署中使用相同的数据库编号。 -
DATABASE_URI
: PostgreSQL连接详情。PostgreSQL将用于存储助手、线程、运行、持久化线程状态和长期记忆,并管理后台任务队列的状态,具有“恰好一次”的语义。DATABASE_URI
的值必须是一个有效的PostgreSQL连接URI。共享PostgreSQL实例
多个自托管部署可以共享同一个PostgreSQL实例。例如,对于
部署A
,DATABASE_URI
可以设置为postgres://<user>:<password>@/<database_name_1>?host=<hostname_1>
,对于部署B
,DATABASE_URI
可以设置为postgres://<user>:<password>@/<database_name_2>?host=<hostname_1>
。<database_name_1>
和database_name_2
是同一实例中的不同数据库,但<hostname_1>
是共享的。不能在同一部署中使用相同的数据库。 -
LANGSMITH_API_KEY
: (如果使用Lite)LangSmith API密钥。这将在服务器启动时一次性用于身份验证。 LANGGRAPH_CLOUD_LICENSE_KEY
: (如果使用Enterprise)LangGraph平台许可证密钥。这将在服务器启动时一次性用于身份验证。LANGSMITH_ENDPOINT
: 要将跟踪发送到self-hosted LangSmith实例,请将LANGSMITH_ENDPOINT
设置为self-hosted 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
。
这将启动一个 LangGraph 服务器,监听端口 8123
(如果您想更改此端口,可以在 langgraph-api
中更改端口号)。您可以通过运行以下命令来测试应用程序是否健康:
假设一切正常运行,您应该会看到如下响应: