我正在开发一个解决方案,简化了对失败的Jenkins构建的手工调试。这涉及到SSH-ing到右边Jenkins节点并直接进入工作区,这样您就可以交互地尝试不同的更改,从而解决您的问题。
虽然我解决了在正确的目录中启动SSH会话的问题,但是有一个缺位:您的shell缺少Jenkins定义的原始环境变量,这些对于在此之后运行任何命令都是至关重要的。因此,构建的第一个命令不是set > .envrc,它将全部保存到这个shell文件中。
我的例子提到了direnv工具,它能够自动加载.envrc文件。出于安全考虑,该工具不自动加载这些文件,并给出消息direnv: error .envrc is blocked. Rundirenv允许to approve its content.。
因此,我的当前解决方案是在正确的文件夹中结束后手动运行direnv allow。
我怎样才能自动完成这个操作,这样我就不需要输入这个了?提示可能是可以的,因为它只需要按一个键,而不是键入~12。
请注意,我没有被迫使用direnv本身,我是开放的其他解决方案。
发布于 2018-07-19 11:57:35
从v2.15.0开始,您现在可以使用direnv的白名单配置来实现您所描述的目标:
指定白名单指令将特定目录层次结构或特定目录标记为“受信任的”-- direnv将评估任何匹配的.envrc文件,而不管它们是否被专门允许。应该非常小心地使用此特性,因为任何能够将文件写入该目录的人(包括VCS存储库上的协作者)都可以在您的计算机上执行任意代码。
例如,假设包含您想要计算的.envrc而不必运行direnv allow的目录层次结构位于/home/foo/bar下。
创建文件/home/foo/.config/direnv/config.toml,使其包含以下内容:
[whitelist]
prefix = [ "/home/foo/bar" ]或者,如果有要白名单的特定路径的固定列表,则可以使用exact而不是prefix。
[whitelist]
exact = [ "/home/foo/projectA", "/home/foo/projectB" ]https://stackoverflow.com/questions/44585042
复制相似问题