我在 gitlab 上托管了一个现有的 node.js 应用程序。我尝试使用 gitlab 的 ci/cd 并创建 gitlab-ci.yml 。有 3 个阶段,即 build
、test
、deploy
,前两个阶段实际上有效,但将其部署到 aws elastic beanstalk 时出现错误管道说...
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_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 变量中声明。
最佳答案
AWS 访问 key 和 key 存储在名为凭证的文件中。 (~/.aws/credentials)。
配置文件具有 AWS 区域和 cli 输出格式 (json) 等默认设置
[default]
region = us-east-1
output = json
凭证文件具有访问权限和 secret ID
[default]
aws_access_key_id = xx
aws_secret_access_key = xxx
因此,在部署脚本中将配置目录更改为凭据
- echo "aws_access_key_id=${AWS_ACCESS_KEY_ID}" >> ~/.aws/credentials
关于node.js - 从 gitlab 管道将 Node.js 应用程序部署到 AWS EB 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56141160/