我在gitlab上托管了一个现有的node.js应用程序。我尝试使用gitlab的ci / cd并创建gitlab-ci.yml
。有3个阶段,分别是build
,test
,deploy
,前两个阶段确实有效,但将其部署到aws弹性beantalk上,却在管道中显示错误,提示...
ERROR: This directory has not been set up with the EB CLI
You must first run "eb init".
ERROR: Job failed: exit code 1
希望你能帮助我解决我的问题:(
这是我在deploy
阶段的示例配置:
deploy_aws:
stage: deploy
image: coxauto/aws-ebcli
script:
- mkdir ~/.aws
- touch ~/.aws/config
- chmod 600 ~/.aws/config
- echo "[profile eb-cli]" >> ~/.aws/config
- echo "aws_access_key_id=${AWS_ACCESS_KEY_ID}" >> ~/.aws/config
- echo "aws_secret_access_key=${AWS_SECRET_ACCESS_KEY}" >> ~/.aws/config
- git checkout master
- eb deploy sample-sails-app-dev
AWS_ACCESS_KEY_ID
和AWS_SECRET_ACCESS_KEY
在我的gitlab的ci / cd变量中声明。
答案 0 :(得分:0)
AWS访问和秘密密钥存储在名为凭据的文件中。 (〜/ .aws / credentials)。
配置文件具有默认值,例如AWS区域和cli输出格式(json)
[default]
region = us-east-1
output = json
凭据文件具有访问权限和秘密ID
[default]
aws_access_key_id = xx
aws_secret_access_key = xxx
因此,在您的部署脚本中,将配置目录更改为凭据
- echo "aws_access_key_id=${AWS_ACCESS_KEY_ID}" >> ~/.aws/credentials
答案 1 :(得分:0)
eb
命令要求对PWD进行eb init
编辑,就像git
命令要求对PWD进行git init
编辑。
在eb deploy sample-sails-app-dev
之前,添加eb init <APP NAME> --platform <PLATFORM NAME>
。这样可以解决您的问题。