使用 Bitbucket AWS CodeDeploy 插件部署时生成“.env”
Generate ".env" when Deploying with Bitbucket AWS CodeDeploy add-on
使用 Bitbucket AWS CodeDeploy 插件部署时如何生成“.env”?
我看到 bitbucket-pipelines.yml
可以从 bitbucket 环境变量生成 .env,但是,如何将它与 Bitbucket AWS CodeDeploy 附加组件联系起来?
appspec.yml
- 可以在部署时触发脚本,但我怎样才能让它从 bitbucket 环境变量中获取 .env?
查看 documentation,BitBucket 应该使环境在构建环境中可用,并且您应该能够通过 appspec.yml
在您的脚本 运行 中直接访问它们就像您访问任何其他环境变量一样。
例如,如果我们有这样的应用规范:
hooks:
AfterInstall:
- location: scripts/runTests.sh
timeout: 180
您可以像这样访问 scripts/runTests.sh
中的环境变量:
# scripts/runTests.sh
echo "$BITBUCKET_BUILD_NUMBER"
# Or, use in some other valid way in your script
BitBucket
不应该创建 .env
,此服务应该对生产 .env
一无所知。相反,生产 .env
应该位于安全的 AWS S3 bucket
上,只有 AWS CodeDeploy
脚本可以使用它并放在实例上。
会这样复制
sudo aws --region us-east-2 s3 cp "s3://${S3_NAME}/prod.env" "${EC2_DIRECTORY}/.env"
使用 Bitbucket AWS CodeDeploy 插件部署时如何生成“.env”?
我看到 bitbucket-pipelines.yml
可以从 bitbucket 环境变量生成 .env,但是,如何将它与 Bitbucket AWS CodeDeploy 附加组件联系起来?
appspec.yml
- 可以在部署时触发脚本,但我怎样才能让它从 bitbucket 环境变量中获取 .env?
查看 documentation,BitBucket 应该使环境在构建环境中可用,并且您应该能够通过 appspec.yml
在您的脚本 运行 中直接访问它们就像您访问任何其他环境变量一样。
例如,如果我们有这样的应用规范:
hooks:
AfterInstall:
- location: scripts/runTests.sh
timeout: 180
您可以像这样访问 scripts/runTests.sh
中的环境变量:
# scripts/runTests.sh
echo "$BITBUCKET_BUILD_NUMBER"
# Or, use in some other valid way in your script
BitBucket
不应该创建 .env
,此服务应该对生产 .env
一无所知。相反,生产 .env
应该位于安全的 AWS S3 bucket
上,只有 AWS CodeDeploy
脚本可以使用它并放在实例上。
会这样复制
sudo aws --region us-east-2 s3 cp "s3://${S3_NAME}/prod.env" "${EC2_DIRECTORY}/.env"