2016-10-03 1 views
2

非常に私のセットアップ(BitBucket to AWS)に行くために単純なnodejsアプリケーションを取得しようとしています。 :Amazon Webサービス> CodeDeploy> BitBucket>私のnodejs Appspec.ymlが壊れている

https://github.com/awslabs/aws-codedeploy-samples/tree/master/applications/SampleApp_Linux

しかし、この例では、Apacheのhttpdのであるので、私はnodejs、セットアップブレーキ用appspec.ymlを変更しようとします。

version: 0.0 
os: linux 
files: 
    - source:/
    destination: /var/www/app 
hooks: 
    BeforeInstall: 
    - location: scripts/install_dependencies 
     timeout: 300 
     runas: root 
    - location: scripts/start_server 
     timeout: 300 
     runas: root 

install_dependencies:これは私のappspec.ymlある

#!/bin/bash 
yum install -y nodejs npm 
npm install 

START_SERVER:私はEC2のイベントログや他の場所からそれを考え出し

#!/bin/bash 
node server.js 
+0

あなたは私たちにそれがどのように分割するかのような、より詳細を与えることはできますか?どこでもエラーメッセージが出ますか? –

+0

実際は、これ以上の情報がなければ、バックグラウンドでLinuxサービスを開始する例とは異なり、 'start_server'スクリプトは' timeout 'を引き起こしていると思います。 'node server.js'はアプリケーションをフォアグラウンドで起動するからです。 'node server.js'は、プロセスが終了するまで決して戻りません。 –

+0

展開では、最後のrecetイベントはbeforeInstallでした。 ():このコンテキストで8行目の11行目のマッピング値は使用できません。start_serverは返されないと言っています。つまり、ApplicationStartに配置する必要がありますか? –

答えて

1

。ここで私が持っているものです。

appspec.yml

version: 0.0 
os: linux 
files: 
    - source:/
    destination: /tmp/ 
hooks: 
    AfterInstall: 
    - location: scripts/install_dependencies 
     timeout: 100 
     runas: root 
    ApplicationStart: 
    - location: scripts/start_server 
     timeout: 100 
     runas: root 

install_dependencies:START_SERVERについては

#!/bin/bash 
cd /tmp/ 

curl --silent --location https://rpm.nodesource.com/setup_6.x | bash - 
yum install -y gcc-c++ make 
yum install -y nodejs npm 

npm install -g pm2 
npm install 

、HTTPDを停止し、削除します。その後、pm2を開始します。それから、 "node server.js"の問題は決して解決されないということです。

START_SERVER:

#!/bin/bash 
cd /tmp/ 

isExistApp = `pgrep httpd` 
if [[ -n $isExistApp ]]; then 
    service httpd stop 
fi 

yum remove -y httpd 

pm2 delete all 
pm2 start server.js 
+0

これはかなり古いスレッドですが、これまでに解決しましたか?私はRubyとSinatraフレームワークを除いて同様の問題を抱えています。ログで知ることができるものから、私のappspec.ymlを使って、すべてを稼働させていますが、コード化されたアプリケーションは、それが成功したことを認識していないため時間がかかります。だから、タイムアウトヒットの前には正常に起動しています。私はCodeDeployに成功を認識させる方法を理解するのに苦労しています。 – Mike

関連する問題