You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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 buildpacks
    
    确保顺序为:heroku-community/apt → https://github.com/virtualstaticvoid/heroku-buildpack-r.git

完成以上步骤后,重新推送代码到Heroku生产环境即可完成构建。

内容的提问来源于stack exchange,提问作者PalaDean

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 07:29:57