我使用S3存储库类型设置了OpsWorks:
存储库类型:S3 存储库网址:https://myapp.s3-us-west-2.amazonaws.com/myapp.war 访问密钥ID:具有上述存储桶读取权限的密钥 秘密访问密钥:此密钥的秘密
部署到Java层(Tomcat 7)中的实例
现在,OpsWorks文档说档案应该是一个' zip'文件。但是:
将myapp.war拉入zip存档' myapp.war.zip'并更改此文件的路径会导致' myapp'包含' myapp.war'。没有部署,因为tomcat不会在webapps / myapp'
更改' myapp.war'的名称到了'myapp.zip'并更改存储库路径导致' myapp'包含单个文件' archive'试。
因此。任何人都可以描述如何从S3中正确地向OpsWorks提供war文件吗?
答案 0 :(得分:2)
问题似乎与zip档案的制作方式有关。
使用java'jar'工具创建的Jars,war等不起作用。使用zip工具创建的Zip存档,然后重命名为“.war”扩展名。
这在此解释:https://forums.aws.amazon.com/thread.jspa?messageID=559582򈧞
引用该帖子的回答:
我们当前的提取脚本无法正确识别WAR文件。如果 你解压缩WAR文件并使用zip来打包它,它应该工作到 我们更新了我们的脚本。
所以有效的程序是:
编辑:
在回答这个问题之后,我发现毕竟Grails可以生成一个爆炸的战争目录。
// BuildConfig.groovy
...
grails.project.war.exploded.dir = "path/to/exploded/war-directory"
grails.war.exploded=true
...
该目录可以压缩或震撼,也可以是构建器/部署者所需的任何内容。
答案 1 :(得分:0)