当我通过ssh在aws实例中运行这个命令时
docker run hello-world
aws ecr get-login --no-include-email --region ap-south-1 > ./login
source ./loginit输出
警告!通过CLI使用密码是不安全的。使用.密码-stdin。警告!您的密码将未加密存储在/home/ubuntu/..docker/config.json中。配置凭据助手以删除此警告。见https://docs.docker.com/engine/reference/commandline/login/#credentials-store登录成功
那就是成功。但是当在jenkins中输入相同的命令时,如

输出是

出什么问题了?
发布于 2020-04-27 17:18:00
source不是一个标准的shell命令;它不是POSIX.1规范中的“特殊内置实用程序”之一。有些shell碰巧有一个名为source的命令,但它不需要出现。
有一个类似的标准命令 .,它在当前shell的上下文中执行文件。如果您使用的是bash特定的source,则通常只需将其更改为标准的.,而无需进行任何进一步的更改。
. ./login注意,.在$PATH中搜索要运行的文件;除非特别通知它,否则它不会搜索当前目录。还请注意,通常只对具有副作用的脚本使用.,比如设置环境变量,并且在类似于显示每个命令在单独的shell中运行的上下文中,这不会产生更持久的效果。
由于aws ecr get-login命令的输出是一个不直接更改shell上下文的docker login命令,所以您也可以将其作为shell脚本运行
sh ./loginhttps://stackoverflow.com/questions/61463887
复制相似问题