git - 使用 ssh 将 codecommit 存储库克隆到 Codebuild 时遇到问题
问题描述
我需要从多个 Codecommit 存储库中获取一些文件到 Ubuntu Codebuild 实例上。所以我正在尝试使用 ssh 身份验证克隆存储库。我已经在实例上设置了 ssh 密钥和配置文件,当我执行git clone
. 我expect
用来响应第一次 ssh 连接提示。这是我的期望脚本,cloneRepo.sh
:
#!/usr/bin/expect
设置超时 20
生成 git clone ssh://git-codecommit.us-east-1.amazonaws.com/v1/repos/myrepo /tmp/myrepo
期望“您确定要继续连接(是/否)?” {发送“是\r”}
期望“解决增量:100% (*/*),完成。” {}
相互影响
当我在 Codebuild 中运行它时,一切看起来都很好:
[容器] 运行命令 echo "Cloning Git repositories"
克隆 Git 存储库[容器] 运行命令 sudo ./cloneRepo.sh
spawn git clone ssh://git-codecommit.us-east-1.amazonaws.com/v1/repos/myrepo /tmp/myrepo
克隆到 '/tmp/myrepo'。 ..
无法确定主机“git-codecommit.us-east-1.amazonaws.com”的真实性。
RSA 密钥指纹是 a6:9c:7d:bc:35:f5:d4:5f:8b:ba:6f:c8:bc:d4:83:84。
您确定要继续连接(是/否)?是
警告:将 'git-codecommit.us-east-1.amazonaws.com' (RSA) 永久添加到已知主机列表中。远程:
远程:计数对象:0
远程:计数对象:40,完成。
接收对象:2% (1/40)
...
接收对象:100% (40/40)
接收对象:100% (40/40), 6.66 KiB | 6.66 MiB/s,完成。
解决增量:0% (0/20)
...
解决增量:100% (20/20),完成。
解决增量:100% (20/20)
但是,/tmp/
仍然为空:
[容器] 运行命令 ls -la /tmp/
total 8
drwxrwxrwt 2 root root 4096 Aug 1 02:04 。
drwxr-xr-x 22 根 4096 8 月 1 日 02:02 ..
它看起来像是某种权限错误,但我就是无法解决。
提前致谢!
解决方案
我已经通过在期望脚本中添加sleep 10
之前解决了这个问题。interact
我认为当期望脚本结束并且 Codebuild 继续运行时,克隆过程并没有完全完成。添加暂停允许克隆完成。
推荐阅读
- json - 解组 JSON 时的零日期
- haskell - 定义 Haskell Fibonacci 时的堆栈溢出
- javascript - while(i--) 如何在 JS 的 IIFE 中传递“i”值?
- node.js - NodeJS:错误配置的csrf
- spring-boot - Spring Flux:如何配置多个 WebFilter
- android - 如何使用两个相似的依赖项?
- symfony - Symfony - 简单的数组和表单
- r - R SQLDF 两个时间戳之间的天数差异?
- python - 如何在 django 中从父模型访问子模型数据
- android-studio - 我如何将颤振项目迁移到 androidx:任务“:app:preDebugBuild”的执行失败。> Android 依赖 'androidx.versionedparcelable