Backstage构建Docker镜像部署Heroku是否需添加PostgreSQL依赖
Backstage Docker镜像部署Heroku对接PostgreSQL配置说明
核心结论:不需要在Backstage初始化时自动生成的Dockerfile里额外添加PostgreSQL相关系统依赖
- 依赖逻辑说明:Backstage连接PostgreSQL依赖的
pg驱动是Node.js生态的npm包,会在Docker构建阶段执行yarn install时自动安装并打包进最终运行镜像,不需要在镜像系统层额外安装postgresql-client这类系统包,强行添加只会平白增加镜像体积,没有实际作用。 - 你只需要调整以下3项配置,全程不需要修改Dockerfile:
- 先在本地项目根目录确认已安装pg驱动,没装的话执行下面的命令把依赖加到项目依赖列表:
yarn add pg - 替换配置文件里默认的SQLite数据库配置,生产环境直接读取Heroku自动注入的环境变量,不要硬编码数据库连接串,配置参考:
database: client: pg connection: connectionString: ${DATABASE_URL} ssl: rejectUnauthorized: false - 适配Heroku的动态端口规则,Backstage启动时不要写死默认的7007端口,改为读取Heroku动态分配的
PORT环境变量,启动命令参考:yarn start --port ${PORT}
- 先在本地项目根目录确认已安装pg驱动,没装的话执行下面的命令把依赖加到项目依赖列表:
- Backstage默认生成的Dockerfile是标准Node.js多阶段构建配置,逻辑已经覆盖了生产依赖安装、项目构建、运行时打包全流程,只要项目
package.json里声明了pg依赖,构建出来的镜像天然支持PostgreSQL连接,完全不需要额外修改Dockerfile添加依赖。
内容的提问来源于stack exchange,提问作者Remya R Praveen
相关产品推荐
相关产品推荐

