Heroku部署R(Shiny)应用时Aptfile与SQL仓库签名错误求助
解决方案
1. 解决GPG公钥缺失问题(NO_PUBKEY 7FCC7D46ACCC4CF8)
问题根源是Heroku构建容器缺少PostgreSQL官方仓库的签名公钥,需在构建流程中提前导入该密钥:
- 添加
heroku-community/apt作为首个Buildpack,确保系统依赖处理优先于R环境构建:heroku buildpacks:add --index 1 heroku-community/apt - 在项目根目录创建
prebuild.sh脚本,写入公钥导入命令:#!/bin/bash apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7FCC7D46ACCC4CF8 - 给脚本添加执行权限:
chmod +x prebuild.sh - 设置Heroku环境变量,让构建前自动执行该脚本:
heroku config:set PREBUILD_COMMAND="./prebuild.sh"
2. 处理Aptfile弃用警告
heroku-buildpack-r已标注Aptfile即将弃用,建议改用renv管理系统依赖:
- 本地初始化
renv(需先安装renv包):install.packages("renv") renv::init() - 在项目根目录的
renv/settings.dcf中添加系统依赖配置,替换原Aptfile内容:SystemRequirements: apt-transport-https ca-certificates gnupg - 提交
renv.lock和renv/目录到GitHub,确保Heroku构建时能读取依赖配置。
3. 验证生产环境配置一致性
检查生产环境与Review Apps的Buildpack顺序、环境变量是否一致:
- 查看当前Buildpack列表:
确保顺序为:heroku buildpacksheroku-community/apt→https://github.com/virtualstaticvoid/heroku-buildpack-r.git
完成以上步骤后,重新推送代码到Heroku生产环境即可完成构建。
内容的提问来源于stack exchange,提问作者PalaDean
相关产品推荐
相关产品推荐

