首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何自动加载特定于一个文件路径的环境变量?

如何自动加载特定于一个文件路径的环境变量?
EN

Stack Overflow用户
提问于 2017-06-16 08:59:06
回答 1查看 995关注 0票数 2

我正在开发一个解决方案,简化了对失败的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本身,我是开放的其他解决方案。

EN

回答 1

Stack Overflow用户

发布于 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,使其包含以下内容:

代码语言:javascript
复制
[whitelist]
prefix = [ "/home/foo/bar" ]

或者,如果有要白名单的特定路径的固定列表,则可以使用exact而不是prefix

代码语言:javascript
复制
[whitelist]
exact = [ "/home/foo/projectA", "/home/foo/projectB" ]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44585042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档