如何将文件存储为bitbucket管道变量?

问题描述 投票:0回答:2

我正在使用 bitbucket 管道,并且我需要将 .env 文件(例如)存储为变量,以便我可以在部署中使用它。当我将其存储为纯文本变量时,它作为单行文本回显,并且应用程序无法使用它。

bitbucket bitbucket-pipelines
2个回答
4
投票

如果您的文件包含换行符,它们将被管道变量页面中的输入字段破坏。

解决方案是对文件内容进行base64编码,并在写回文件时对变量进行解码。

base64 < .env
pipelines:
  default:
    - step:
        script: 
          - echo $MYVAR | base64 --decode > .env

请注意,如果您的文件包含机密并将 Base64 编码变量标记为机密,您将失去一项安全功能,该功能可防止在管道日志中意外打印其值。请参阅Bitbucket:显示标记为秘密的变量的值


0
投票

上述答案是正确的,但我没有足够的声誉来添加评论。因此,对于任何获得

base64: invalid input
的人,只需在解码时添加
-i, --ignore-garbage
选项,或在编码时添加
-w, --wrap=0
禁用换行符。

© www.soinside.com 2019 - 2024. All rights reserved.