Windows下Gcloud App部署Go应用私有仓库导入报错
解决Google App Engine Golang应用部署依赖问题的步骤
1. 修正部署上下文与依赖路径
gcloud app deploy默认以当前工作目录为构建上下文,你的go.mod在app目录,但依赖同仓库的Work目录,需调整部署路径:
- 切换到仓库根目录执行部署命令,明确指定配置文件路径:
gcloud app deploy app/app.yaml app/cron.yaml --no-promote --project testgoprivate -v testgoprivate-2024-10-09 - 同步修改
app目录下的go.mod,用相对路径映射内部依赖:require github.com/ThePiachu/TestGoPrivate/Work v0.0.0-00010101000000-000000000000 replace github.com/ThePiachu/TestGoPrivate/Work => ../Work
2. 验证Netrc权限配置
确认%HOME%\_netrc(Windows)格式正确,令牌权限覆盖目标仓库:
machine github.com login <你的GitHub用户名> password <你的细粒度只读令牌>
- 在仓库根目录执行
go mod tidy,验证本地能否正常拉取依赖,排除权限问题。
3. 自定义构建流程(可选)
若根目录部署仍报错,在app目录添加cloudbuild.yaml指定构建规则:
steps: - name: 'golang:1.22.8' args: ['go', 'build', '-o', 'app'] env: - 'GO111MODULE=on' dir: 'app' artifacts: objects: location: 'gs://$PROJECT_ID.appspot.com/' paths: ['app']
执行以下命令完成部署:
gcloud builds submit --config app/cloudbuild.yaml . gcloud app deploy app/app.yaml app/cron.yaml --no-promote --project testgoprivate -v testgoprivate-2024-10-09
4. 检查代码内包引用
确保app目录代码中引用Work包的路径与go.mod一致:
import "github.com/ThePiachu/TestGoPrivate/Work"
本地执行go run main.go确认代码可正常运行,排除路径引用错误。
内容的提问来源于stack exchange,提问作者ThePiachu
相关产品推荐
相关产品推荐

