docker - 詹金斯->来源:未找到
问题描述
当我通过 ssh 将此命令运行到 aws 实例中时
docker run hello-world
aws ecr get-login --no-include-email --region ap-south-1 > ./login
source ./login
它输出
WARNING! Using --password via the CLI is insecure. Use --password-stdin. WARNING! Your password will be stored unencrypted in /home/ubuntu/.docker/config.json. Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded
这就是成功。但是当在 jenkins 中输入相同的命令时, 输出是
我添加了用户
sudo usermod -a -G docker jenkins sudo usermod -a -G docker user
出了什么问题?
解决方案
source
不是标准的 shell 命令;它不是POSIX.1 规范中的“特殊内置实用程序”之一。一些 shell 碰巧有一个名为的命令source
,但它不需要存在。
有一个类似的标准命令 .
可以在当前 shell 的上下文中执行文件。如果您使用的是 bash-specific source
,您通常可以将其更改为标准,.
而无需进行任何进一步的更改
. ./login
请注意,.
搜索$PATH
要运行的文件;除非特别告知,否则它不会搜索当前目录。另请注意,您通常仅.
用于具有副作用的脚本,例如设置环境变量,并且在您显示每个命令在单独的 shell 中运行的位置这样的上下文中,这不会产生更持久的影响。
由于aws ecr get-login
命令的输出是一个docker login
不直接更改 shell 上下文的命令,因此您也可以将其作为 shell 脚本运行
sh ./login
推荐阅读
- c - C语言计算程序
- javascript - JavaScript 中的自动装箱是暂时的还是永久的?
- java - 类型不匹配:无法将字符串解析为 int
- tensorflow - AttributeError:模块“tensorflow._api.v1.config”没有属性“set_visible_devices”
- javascript - 想要捕获在 WebViewer 中加载带/不带注释的文档的开始和结束时间
- php - html 表单成功完成了它的工作,但是有一条错误消息说有问题
- svelte - Svelte 中的单身人士
- firebase - 使用 Firebase 托管时,视频 (.mp4) 无法在 Safari 中加载
- postgresql - 对 postgreSQL v12 触发器的 COPY 支持
- swift - Swift Inject Javascript 将 HTML 元素删除到 WebView