生命周期配置中的 git pull 失败

标签 git amazon-sagemaker

我正在尝试进行生命周期配置,在启动时将从 github 存储库中提取最新代码。

我在 git pull 上遇到这个错误(记录在 CloudWatch 中)。

严重:无法读取“https://github.com/toasttab/midgard”的用户名:没有这样的设备或地址

但是,只要我在服务器上打开一个终端,我就可以毫无问题地进行 git pull。当我在终端内执行 git pull 时,没有提示输入我的凭据。

这是我的生命周期配置:


#!/bin/bash
set -e
sudo -u ec2-user -i <<'EOF'

# enable conda activate & activate python3 env
source ~/anaconda3/etc/profile.d/conda.sh
conda activate python3

# configure git
git config --global user.name "Foo"
git config --global user.email "Foo@Bar.com"

# install all git repo libraries into current env
cd ~/SageMaker/my-repo
git checkout master
git pull
pip install -e .

EOF

有什么想法吗?

最佳答案

此消息表示 Git 正尝试在 /dev/tty 上提示输入用户名和密码,但无法这样做,因为您没有终端。

在您的情况下,您需要确保凭据以某种方式传递。如果在您打开终端时系统提示您输入用户名和密码,那么您需要以非交互方式提供这些凭据。通常这是通过使用凭证助手从环境中读取 token 来完成的,如 an entry in the Git FAQ 中所述。 .请注意,sudo 会清除所有环境变量,除非您使用 -E(这可能有效,也可能无效,具体取决于您的系统配置)。

您也可以尝试使用 SSH URL 并转发 SSH 代理,但同样,您不需要清除 sudo 中的环境来执行此操作,因为您的代理套接字位于环境变量中.

如果你想禁用在终端上提示的尝试并且只是让 Git 失败(比如,这样你可以获得更好的调试信息),你可以通过将 GIT_TERMINAL_PROMPT 设置为 来实现0

关于生命周期配置中的 git pull 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62924837/

相关文章:

Git 部署 : How to rollback to previous stable version of my app?

linux - 设置 Git 存储库的提交和 checkout 权限

amazon-sagemaker - SageMaker Jupyter(Lab) 中的 VIM(或其他插件)安装

amazon-sagemaker - 如何从 Amazon SageMaker 运行基于网络的 mlflow 用户界面?

python - 我可以在 sagemaker 上部署预训练的 sklearn 模型(s3 中的 pickle)吗?

scikit-learn - 使用 Scikit Learn 创建 Amazon SageMaker 超参数调整作业

git-remote-http.exe 运行了很长时间

git - git 子树推送失败,输出疯狂

linux - 如何将 git 从一台服务器备份到另一台服务器

amazon-web-services - AWS Sagemaker 中 S3 中的训练数据