在GitLab CI的环境变量中不能使用$$
字符。
我将我的secret存储在GitLab CI环境变量中,其中我的密码字符串中的一个末尾带有$$字符(例如:Ab1ab $$)。当我将其回显或使用envsubst时,输出将为Ab1ab $,最后去除多余的$。
我尝试使用将字符串括在'',“”中,但都没有帮助。有人在gitlab社区上看到了一些关于在env变量中使用$字符的问题,但找不到确切的解决方法。
https://gitlab.com/gitlab-org/gitlab-ce/issues/27436
export VAR ='Ab1ab $$' echo $ VAR = Ab1ab $
答案 0 :(得分:0)
在CI中设置环境变量是一个非常普遍的问题!我在CircleCI中也遇到过很多次。通常,我已经在反斜杠上找到了很大的成功,但是我猜您已经尝试过了。
我找到了一个讨论我认为可能与之息息相关的问题的话题: https://gitlab.com/gitlab-org/gitlab-ce/issues/27436
关键要点是,至少在那个版本的GitLab产品中,他们还没有找到好的答案。我决定开始做一些实验:
https://gitlab.com/mattbornski/gitlab-ci-exploration
我设置了许多不同格式的环境变量,以查看导致美元符号的结果。
$ python3 audit_environment.py
DOLLA_DOUBLE_MIDSTRING = 1$234
DOLLA_QUAD_MIDSTRING = 1$$234
DOLLA_SINGLE_MIDSTRING_BACKSLASHED = 1\34
DOLLA_DOUBLE_MIDSTRING_BACKSLASHED = 1\\34
DOLLA_DOUBLE_MIDSTRING_LEADING_BACKSLASHED = 1\$234
DOLLA_QUAD_ENDSTRING = 1234$$
DOLLA_SINGLE_MIDSTRING_BACKSLASHED_DOUBLE_QUOTED = "1\34"
DOLLA_SINGLE_MIDSTRING_DOUBLE_QUOTED = "134"
DOLLA_SINGLE_MIDSTRING_BACKSLASHED_SINGLE_QUOTED = '1\34'
DOLLA_SINGLE_MIDSTRING = 134
Job succeeded
所以,在这里外卖:
因此,您的选择如下所示:
为进一步探索,请尝试以下更多有趣的选择:https://unix.stackexchange.com/a/309791