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

使用Go Module在Heroku构建Go应用时如何配置项目根目录

Heroku 部署src目录存放Go源码的可行配置

Heroku Go buildpack 默认读取仓库根目录的go.mod文件执行构建,源码全部移到src子目录后,buildpack无法在根目录定位模块定义文件,就会触发部署错误,可通过以下两种方案实现目标目录结构下的正常部署:

方案1:配置构建目录环境变量(推荐,零代码结构改动)

  • 给Heroku应用添加配置变量GO_BUILD_DIR=src,该参数会指定Go buildpack将src目录作为模块根目录,自动进入该路径查找go.mod、执行编译流程,完全不需要调整现有src目录下的代码和go.mod配置。
  • 配置方式任选其一:
    • 本地安装Heroku CLI后执行命令:heroku config:set GO_BUILD_DIR=src -a 你的Heroku应用名
    • 登录Heroku控制台,进入对应应用的Settings - Config Vars页面,手动添加键为GO_BUILD_DIR、值为src的配置项。
  • 配置完成后重新推送代码即可完成部署。

方案2:根目录配置模块映射(无需修改平台侧配置)

如果不想调整Heroku平台配置,可以在仓库根目录(和README.md、src文件夹同级)新建go.mod文件,通过replace指令关联子目录源码:

  1. 根目录go.mod参考内容:
module your-project-root

go 1.18

replace xxx => ./src
  1. 配置注意事项:
  • 根目录go.mod声明的Go版本要和src/go.mod中指定的版本保持一致
  • replace后的模块名必须和src/go.mod里定义的module名完全匹配
  • 根目录添加Procfile文件,启动命令中明确对应二进制的构建路径即可

注意:该方案需要保证根目录与子目录go.mod的依赖版本完全一致,否则构建时会出现依赖冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 08:48:25