我有下面的bitbucket管道,它用于部署带有Mup的Meteor应用程序。
一切都在进行,直到最后的mup deploy command,它似乎无法读取生成的config.json文件,应该有我的安全芒果url注入到它。
这就是secure_mongo.json文件的样子
{
"secret": $STAGING_MONGO_URL
}在mup文件中,我访问的方式如下
var mongo = require('./config.json');
module.exports = {
MONGO_URL: mongo.secret,
}image: node:14.16.0
pipelines:
branches:
staging:
- step:
name: Deploy to staging CI/CD Environment
script:
- mkdir -p ~/.ssh
- apt-get update && apt-get install gettext-base
- curl https://install.meteor.com/ | sh
- export METEOR_ALLOW_SUPERUSER=true
- cd .bot-staging-ci-cd
- (umask 077 ; echo $DO_STAGING_CICD_SSH_KEY | base64 --decode > ~/.ssh/id_rsa)
- cat secure_mongo.json | envsubst > config.json
- cat config.json && realpath config.json
- npm install -g mup
- npm install -g ssh2
- mup deploy我在存储库中确实有一个名为$STAGING_MONGO_URL的安全变量。所以不能完全确定到底出了什么问题。任何帮助都会很好。
这个问题是相关的,帮助我走了这么远,Storing secrets into Bitbucket Pipelines and then deploy on App Engine?,但它不是同一个问题。
要明确的是,我得到的错误是Mup部署是说config.json文件到达了一个Unexpected token
精确误差
Error loading config file:
SyntaxError: /opt/atlassian/pipelines/agent/build/.bot-staging-ci-cd/config.json: Unexpected token m in JSON at position 13更新:
因此,我认为json错误与config.json文件的要求有关,并试图直接用module.exports .js文件编写use envsubst,但它似乎根本没有替换变量,Mup在应该替换变量的位置直接失败。
谢谢
发布于 2022-09-23 18:45:01
除非您的STAGING_MONGO_URL变量以双引号开头并以双引号结尾,否则一旦envsubst将其呈现到config.json中,该文件就不再是有效的json。
在secure_mongo.json模板中用双引号包装值占位符
{
"secret": "$STAGING_MONGO_URL"
}此外,要小心避免秘密值中的实际双引号,因为一旦呈现,就会再次中断json解析。
即使您成功地呈现了config.json文件,将其打印到stdout也是无用的: Bitbucket安全特性将阻止您在管道日志中打印您的秘密变量,例如,请参阅:
发布于 2022-09-26 21:19:28
对于任何试图让这个和Meteor一起工作的人来说,这对我来说是有效的。
image: node:14
pipelines:
branches:
staging:
- step:
name: Deploy to staging CI/CD Environment
script:
- mkdir -p ~/.ssh
- apt-get update && apt-get install gettext-base
- curl https://install.meteor.com/ | sh
- export METEOR_ALLOW_SUPERUSER=true
- cd .bot-staging-ci-cd
- (umask 077 ; echo $DO_STAGING_CICD_SSH_KEY | base64 --decode > ~/.ssh/id_rsa)
- cat mup-secure.js | envsubst > mup.js
- cat settings-secure.json | envsubst > settings.json
- rm -rf node_modules
- npm install -g mup
- npm install -g ssh2
- meteor npm i
- mup setup
- mup deploy --settings settings.jsonhttps://stackoverflow.com/questions/73807001
复制相似问题