我在尝试使用Codebuild + CodeDeploy部署Java应用程序时遇到问题。我在这方面还是个新手,所以这个问题很容易发现,已经解决了上千次,但是我无法解决这个问题。
我将尝试尽可能详细地说明问题:
源代码(简体)
appspec.yml
build.sbt
buildspec.yml
scripts
src
buildspec.yml
phases:
build:
commands:
- sbt compile
- sbt assembly
post_build:
commands:
- mkdir deploy
- cp target/scala-2.12/myapp.jar deploy/myapp.jar
artifacts:
type: zip
files:
- deploy/myapp.jar
- appspec.yml
- scripts/*
appspec.yml
version: 0.0
os: linux
hooks:
BeforeInstall:
- location: scripts/install_dependencies
timeout: 300
runas: root
- location: scripts/start_server
timeout: 300
runas: root
ApplicationStop:
- location: scripts/stop_server
timeout: 300
runas: root
手动部署后,S3的内容。这一切都在s3:// myuser / myapp
上deploy
myapp.jar
appspec.yml
scripts
install_dependencies
start_server
stop_server
据我所知,到目前为止看起来还可以(或有什么问题吗?)
使用CodeDeploy进行部署(简化):
revision location: s3://myuser/myapp/deploy/jazzquestions-back.jar
revision type file: zip
当我尝试手动部署时,此操作将失败。如果我进入细节,它会显示
The CodeDeploy agent did not find an AppSpec file within the unpacked revision directory at revision-relative path "appspec.yml"
根据我的阅读,这是由于CodeDeploy服务器找不到我的appspec.yml。我想我没有正确指出它在哪里...
此外,也许这是正确的,但是在同一页面中,我可以看到: 修订位置:s3://myuser/myapp/deploy/myapp.jar.zip <---注意,这不是myapp.jar,而是添加了“ .zip”
有人可以发现我在做什么错吗?另外,如果这有帮助,我的最终目标是创建完整的代码管道:)
非常感谢您的帮助。