Amazon web services CodeBuild中的工件不能与CodeDeploy一起部署
使用CodeBuild,我编译我的SpringBoot应用程序,并将生成的jar放在名为Amazon web services CodeBuild中的工件不能与CodeDeploy一起部署,amazon-web-services,aws-code-deploy,aws-codepipeline,aws-codebuild,Amazon Web Services,Aws Code Deploy,Aws Codepipeline,Aws Codebuild,使用CodeBuild,我编译我的SpringBoot应用程序,并将生成的jar放在名为deploy/的文件夹中。在我的buildspec.yml中,最后我提供了: artifacts: files: - deploy/* 当我将其插入到CodePipeline时,这将在S3中创建一个zip文件。但问题是,此zip文件包含根文件夹,即deploy。因此,zip文件的结构是: deploy.zip - deploy/ - appspec.yml - app.
deploy/
的文件夹中。在我的buildspec.yml
中,最后我提供了:
artifacts:
files:
- deploy/*
当我将其插入到CodePipeline时,这将在S3中创建一个zip文件。但问题是,此zip文件包含根文件夹,即deploy
。因此,zip文件的结构是:
deploy.zip
- deploy/
- appspec.yml
- app.jar
- ...
这导致CodeDeploy无法找到appspec.yml
,因为它没有在deploy文件夹中查找。我一直在努力克服这个问题,在构建过程结束时提供一个zip文件作为工件,但是在管道中它又被压缩了
任何解决这个问题的想法都将不胜感激 您可以添加
放弃路径:是
artifacts:
files:
- deploy/*
discard-paths: yes
请记住,它会丢弃所有路径,包括子目录
来源:您可以在名为
基本目录的工件部分添加一个新标志,以指定工件包的基本路径。这将允许您截断工件中的deploy/
路径,而不会丢失底层结构的其余部分
artifacts:
files:
- **/*
base-directory: deploy
只有当文件值为字符串时,此答案才有效,例如:-“deploy/*”