0

私はElastic Beanstalkを使用してCodePipelineを設定しています。 Elastic Beanstalkは、warファイルをTomcatのwebappsフォルダにデプロイする必要があります。 しかし、webapps/ROOTフォルダにwarファイルをデプロイしています。 以下のスクリプトserver-update.config.ebextensionsというフォルダに作成して、webapps/ROOT /からwebappsフォルダにwarファイルをコピーします。Elastic Beanstalk:.ebextensionsの設定が実行され、削除されました

.ebextensions /サーバー・update.configコードの上

container_commands: 
    copy_file: 
    command: sudo cp /var/lib/tomcat8/webapps/ROOT/test/* /var/lib/tomcat8/webapps/ 
    leader_only: true 

が正常に実行されます。以下はログです。

[2016-04-18T14:06:30.939Z] INFO [1128] - [Application update code-pipelin[email protected]15/AppDeployStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild/postbuild_0_SampleEB/Command copy_file] : Starting activity... 
[2016-04-18T14:06:30.973Z] INFO [1128] - [Application update code-pipelin[email protected]15/AppDeployStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild/postbuild_0_SampleEB/Command copy_file] : Completed activity. 

しかし、私はどのように知らない

+ EB_APP_DEPLOY_BASE_DIR=/var/lib/tomcat8/webapps 
    + rm -rf /var/lib/tomcat8/webapps/ROOT /var/lib/tomcat8/webapps/sampleapp.war 

(内部/opt/elasticbeanstalk/hooks/appdeploy/enact/02clean.shを実行している間)ElasticBeanstalkは、Tomcatのwebappsフォルダの後に実行さ.ebextensionsファイルを掃除されます最後に実行するようにスクリプトを設定します。 上記の要件をお手伝いください。

答えて

0

何かのポストデプロイメントを実行するにはElastic Beanstalkが必要な場合は、AppDeployPostHookに追加することができます。私はあなたの特定のニーズに適応することができるhttps://stackoverflow.com/a/36603033/3167238ここでそれを行う方法を詳述しました。

1

同様の問題がありました。 Djangoが正しくセットアップされた後、セロリを再起動する必要がありました。私たちはこれを最後のようにとても簡単に解決しました。

files: 
"/opt/elasticbeanstalk/hooks/appdeploy/post/99_restart_service.sh": 
    mode: "000755" 
    owner: root 
    group: root 
    content: | 
     #!/usr/bin/env bash 
     service celeryd restart 

これは、Elastic Beanstalkがコンテナに魔法をかけた後で実行されています。

+0

重要:container_commands、packages、services、files –

関連する問題