使用 CodeBuild,我编译了 SpringBoot 应用程序,并将生成的 jar 放入名为 deploy/
的文件夹中。在我最后的 buildspec.yml
中,我提供:
artifacts:
files:
- deploy/*
当我将其插入 CodePipeline 时,这会在 S3 中创建一个 zip 文件。但问题是,这个 zip 文件包含根文件夹,即 deploy
。所以zip文件的结构是:
deploy.zip
- deploy/
- appspec.yml
- app.jar
- ...
这会导致 CodeDeploy 找不到 appspec.yml
的问题,因为它没有在部署文件夹中查找。我一直在尝试克服这个问题,在构建过程结束时提供一个 zip 文件作为工件,但随后在管道中它会再次被压缩..
任何解决此问题的想法将不胜感激。
最佳答案
您可以在工件部分中添加一个名为 base-directory
的新标志,以指定工件包的基本路径。这将允许您截断工件中的 deploy/
路径,而不会丢失下面结构的其余部分。
artifacts:
files:
- **/*
base-directory: deploy
http://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html
关于amazon-web-services - CodeBuild 中的工件无法使用 CodeDeploy 进行部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41616305/