一些客户端库(例如 GitHub - googleapis/google-auth-library-ruby: Google Auth Library for Ruby · GitHub yml 文件传递它们?
我尝试了以下方法:
- 在
yml文件的自定义命令部分添加export VAR=VALUE。 - 在
yml文件的env部分添加VARIABLE: VALUE。
一些客户端库(例如 GitHub - googleapis/google-auth-library-ruby: Google Auth Library for Ruby · GitHub yml 文件传递它们?
我尝试了以下方法:
yml 文件的自定义命令部分添加 export VAR=VALUE。yml 文件的 env 部分添加 VARIABLE: VALUE。@merefield 向我指出这确实是可行的。
在自定义命令部分执行以下操作:
# 将变量添加到 .bashrc 文件
exec: echo 'export VAR=value' >> ~/.bashrc
...
# 重新加载文件
exec: source ~/.bashrc
我可以确认这种方法确实有效。![]()
附注:
不知为何,source ~/.bashrc 并未更新环境变量。可能是调用得太早了。
也尝试过:
- exec: /bin/bash -c "source ~/.bashrc"
难道不能用容器定义的 env: 部分来实现吗?这样应该能创建一个 Rails 应用可以访问的环境变量。
就像这样:
env:
CUSTOM_ENV: "value"
否则,看起来 pups 已经代为主机注入了环境变量 了。
这会导致一个与 Docker 相关的错误。如果它能那样工作,那将非常直观。
或者是我搞错了。我想应该有一条规则,允许以 DISCOURSE_ 开头的自定义变量。
我明天一到办公桌前就再试一次那个环境变量设置。
所以,我之前想多了。这其实没问题。问题出在换行值上。我把它移除后,构建就成功了。但问题是,该如何使用换行值呢?
太棒了,我成功解决了!问题在于我将 RSA 私钥作为环境变量使用。要让这生效,需要这样做:
将密钥用单引号 '' 包裹起来,并在密钥中所有的 \n 前额外添加一个 \。例如,\n 应变为 \\n。
顺便提一下,有更简单的方法来实现这一点,而不是直接更新所有的 \n。
例如:
key: |
---BEGIN SECRET KEY---
SHH 不要读,这是机密
---END SECRET KEY---
您的意思是直接粘贴密钥的中间部分吗?这样会更简洁一些。
我的意思是,YML 从 | 字符开始支持多行(以及可选的变体)
然后你可以直接粘贴键名,无需任何修改(除了前导空格)。
我试了个傻办法:我用 | 和一个实际换行符替换了每个 \n,但这样行不通。