git - 如何通过 Jenkins 作业在 Docker 映像上运行的 Groovy 阶段传递 Git 令牌凭据
问题描述
我创建了 Jenkins Pipeline 以将 Git Repos 迁移到 AWS Code Commit。此 Jenkins 作业提取 Docker 映像,然后运行用 Jenkins Stages 编写的代码。
在其中一个阶段,我正在执行一个 Shell 脚本,如下所示:在这个阶段,我打算使用镜像选项在 docker 容器中克隆 Git Repo,并将代码提交到远程 aws-codecommit 存储库。我在 Jenkins 的凭据存储中存储了登录详细信息
但是它失败并出现错误:致命:无法访问“https://mygitserver:myorg/myrepo.git/”:端口号以“i ”结尾。我相信这个 docker 映像无法读取凭据,但不确定如何修复此 PS:repos.txt 具有所有 repo-names
stage('Migrate Repos') {
withCredentials([string(credentialsId: 'onprem-gitbuild-token', variable: 'TOKEN')]) {
sh '''
while read r; do
echo $r
aws codecommit create-repository --repository-name $r --region us-west-2
git clone --mirror https://mygitserver:myorg/myrepos.git
cd $r.git
git push ssh://git-codecommit.us-west-2.amazonaws.com/v1/repos/$r --all
git push ssh://git-codecommit.us-west-2.amazonaws.com/v1/repos/$r --tags
sleep 10
aws codecommit update-default-branch --repository-name $r --default-branch-name master --region us-west-2
cd ../
done < repos.txt
'''
解决方案
推荐阅读
- typescript - Typescript ReferenceError: MyClass not defined,当我在构造函数中使用 MyClass 时
- rxjs - 在 Start 事件之后处理事件流,并在 End 事件发生时返回侦听
- ios - iOS 11 关闭浏览器时删除所有 cookie
- sql - 在 Excel 上导入 SQLight 数据库
- office365 - Office365 REST API - 日历事件附件对收件人不可见
- nlp - 如何获取单词的依赖信息?
- postgresql - postgresql 中的临时表在会话结束时被删除。如何解决?
- python - iPython 内核和 Anaconda 环境
- vba - 从代码中删除 .select 的 VBA 问题
- javascript - 为什么我在 Passport JS 中的自定义回调不起作用?