问题描述
我想在Postgresql中使用botpress。
在https://hub.docker.com/r/botpress/server上找到
示例
docker run --detach \
--name=botpress \
--publish 3000:8080 \
--volume botpress_data:/botpress/data \
--env PORT=8080 \ # Don't forget to adjust "--publish" then
--env BP_HOST=0.0.0.0 \ # all zeroes means listen to all interfaces
--env NODE_ENV=production \
--env PG_HOST=192.168.0.11 \
--env PG_PORT=5432 \
--env PG_USER=bp_user \
--env PG_PASSWORD=<********> \
--env PG_SSL=false \
botpress/server:latest
在我的本地环境中,我在Docker Postgresql中运行
0d530862c5c3 postgres "docker-entrypoint.s…" 6 weeks ago Up 38 minutes 0.0.0.0:54320->5432/tcp postgresql_inclouds
在此数据库中,我创建了用户botpress和数据库botpress,并将所有特权授予了botpress用户。
在docker botpress中启动
docker run --detach \
--name=botpres \
--net=inclouds_network \
--publish 3000:3000 \
--volume /opt/docker/botpress:/botpress/data \
--env BP_HOST=0.0.0.0 \
--env NODE_ENV=production \
--env PG_HOST=postgresql_inclouds \
--env PG_PORT=5432 \
--env PG_USER=botpress \
--env PG_PASSWORD=b0tpress \
--env PG_SSL=false \
botpress/server:v12_10_7
启动了botpress的Docker容器
webGUI正在工作
但是botpress使用sqlite。
如何使其与Postgresql DB一起使用?
解决方法
大多数这些变量可以在配置文件data / global / botpress.config.json中设置。配置文件中的基础结构配置(例如数据库,集群模式等)不可用,因为在加载配置之前这是必需的。
Botpress支持.env文件。
您必须在“ .env”文件中设置环境变量,然后使用新变量重新启动Botpress服务。
DATABASE = postgres
DATABASE_URL = postgres:// login:password @ host:port / database
示例:
SHOW FUNCTIONS
“。env”文件必须与“ bp”可执行文件位于同一目录中。
我在没有Docker的情况下通过pm2实用程序作为node.js启动了botpress服务。
我使用了命令:
DATABASE=postgres
DATABASE_URL=postgres://johnlogin:Password987@127.0.0.1:5432/botpressdb
您可以尝试在docker run命令中添加相同的环境变量。
毕竟,您可以在Botpress菜单“生产清单”中检查正确的设置