1

コマンドラインツールを使用して、単純なNode.jsアプリケーションをElastic Beanstalkにインストールしようとしています。私のgitリポジトリで ディレクトリのアクセス許可のためにAmazon Elastic BeanstalkでNode.jsのデプロイメントが失敗する

は、私は私のgitリポジトリの内容を展開するコマンド

$ eb deploy 

を実行します。ただし、アプリケーションの正常性ステータスは赤ですが、正常にデプロイします。ディレクトリを自分で作成

  1. :私はのようにいろいろなことを試してみました

    > [email protected] install /tmp/deployment/application/node_modules/nodemon/node_modules/chokidar/node_modules/fsevents 
    > node-pre-gyp install --fallback-to-build 
    
    gyp ERR! configure error 
    gyp ERR! stack Error: EACCES: permission denied, mkdir '/tmp/deployment/application/node_modules/nodemon/node_modules/chokidar/node_modules/fsevents/build' 
    gyp ERR! stack at Error (native) 
    gyp ERR! System Linux 4.1.17-22.30.amzn1.x86_64 
    gyp ERR! command "/opt/elasticbeanstalk/node-install/node-v4.3.0-linux-x64/bin/node" "/opt/elasticbeanstalk/node-install/node-v4.3.0-linux-x64/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "configure" "--fallback-to-build" "--module=/tmp/deployment/application/node_modules/nodemon/node_modules/chokidar/node_modules/fsevents/lib/binding/Release/node-v46-linux-x64/fse.node" "--module_name=fse" "--module_path=/tmp/deployment/application/node_modules/nodemon/node_modules/chokidar/node_modules/fsevents/lib/binding/Release/node-v46-linux-x64" 
    gyp ERR! cwd /tmp/deployment/application/node_modules/nodemon/node_modules/chokidar/node_modules/fsevents 
    gyp ERR! node -v v4.3.0 
    gyp ERR! node-gyp -v v3.0.3 
    gyp ERR! not ok 
    

    :私はElastic Beanstalkでのウェブサイト上のログを見れば

    は、それがログに次のエラーに私を指します(ディレクトリはrootによって所有されています)。

  2. /tmpからすべてを削除して、次回の修正がうまくいくようにします。
  3. node_modulesディレクトリを削除しています。

これらのオプションは機能しません。回避策やその理由が見つかりません。 node.jsアプリケーションをローカルで実行するだけでなく、AzureとHerokuに問題なく展開できます。

+0

私はこの同じ問題を抱えています。提案された答えは私の問題ではありません – ParoX

+0

モジュールは、package.jsonの 'preinstall'セクションに' npm install'を使って別のモジュールをインストールしようとしていました。うまくいけばそれもあなたの問題です。 – ParoX

+0

gitリポジトリの 'node_modules'をチェックインしないことで問題を解決しました。 'npm install'はそれらを自動的に作成します。 –

答えて

4

このエラーをデバッグするのに一日を費やしました。あなたの.ebignoreファイルのディレクトリの末尾にスラッシュが必要です。最後のスラッシュなし

.ebignore

node_modules/ 

、お近くのnode_modulesフォルダがEBによってアップロードされる - のdevの依存関係を含みます。

+1

'.gitignore'ファイルに' node_modules'を追加することが望ましいです。それがこの問題を解決します。 –

+0

あなたは正しいです - それも問題を解決します。私は '.gitignore'を持っていましたが、' .gitignore'にあるビルドファイルをアップロードするために別の '.ebignore'が必要でした。ドキュメントは '.ebignore'が' .gitignore'と同じ構文に従っていると主張していますが、これは真実ではありません – jschr

関連する問題