2017-02-17 24 views
2

所以我试图从我的谷歌容器注册表使用图像,因为这是一个私人注册表,我需要进行身份验证。Bitbucket管道:从环境变量拉GCR图像失败

显然,我不想每小时更新我的​​授权令牌,以使我的管道工作,所以我需要去json密钥文件。

它工作时,我定义图片如下:

image: 
    name: eu.gcr.io/project_id/image:latest 
    username: _json_key 
    password: > 
     {JSON file content} 
    email: [email protected] 

但是,这意味着你的JSON密钥文件是在开放供大家可以访问蛮好看的,不是我想的管道喜欢。

然后,我已经把JSON文件的内容到一个环境变量与环境变量替换实际的JSON如下:

image: 
    name: eu.gcr.io/project_id/image:latest 
    username: _json_key 
    password: > 
     ${JSON_KEY} 
    email: [email protected] 

不知怎的,在第二种情况下它不工作:(

+0

我也把它放在这里: https://bitbucket.org/site/master/issues/13869/prob lem-with-environment-variables-while – TheWolfNL

+1

你是如何设置env var的?正如我从GCP获得的JSON密钥包含换行符 - 是否只删除这些新行? –

+1

如果我没有记错,bitbucket会自动删除这些内容,所以你应该能够将paste复制到bitbucket的管道配置中的ENV变量中。 (回购 - >设置 - >标题下的“管道” - 环境变量) – TheWolfNL

回答

5

一些更多的测试后,我发现这工作:

image: 
    name: eu.gcr.io/project_id/image:latest 
    username: _json_key 
    password: '$JSON_KEY'