2013-08-20 108 views
4

我是新來的yeoman,並試圖獲得一個基本的yeoman生成的angularjs站點部署到彈性beanstalk。在我部署的那一刻,我收到502:錯誤網關。我能像如何部署yeoman構建到aws node.js

server.js

var http = require("http"); 

http.createServer(function(request, response) { 
response.writeHead(200, {"Content-Type": "text/plain"}); 
response.write("Hello World"); 
response.end(); 
}).listen(process.env.PORT || 8888); 

東西來部署一個簡單的NodeJS應用AWS沒有在URL中指定的端口,這個頁面正常工作。不確定這是否與這個問題有關。

使用yeoman角發生器的過程非常標準,即。

yo angular 
yo angular:controller testController 
..add some directives/views etc.. 
grunt server -- serves up pages correctly on port 9000 
grunt -- which creates the dist folder 

在這個階段,我有一個工作angularjs應用程序在本地,在這裏我遵循正確部署較早的hello world樣本相同的工作流程(提交到git倉庫,彈性青苗cli..etc提供圖像.. )。我根據/ dist文件夾的內容製作了一個回購站,並將其部署在獲取502的地方..

有2個導致我在這裏,首先我應該聽80端口 - 雖然我的早期樣本: 8888工作,所以我認爲下一個要求是最相關的,這是 根目錄中名爲server.js的文件。

繁重的生成輸出\ DIST包含:

bower_components 
views 
styles 
scripts 
    25e920e4.modules.js 
    5e188624.scripts.js 
    76c21dca.plugins.js 

所以我不知道下一步。我注意到app.js不是dist輸出的一部分,但現在我有了這3個新的腳本js文件。我需要配置什麼來使nodejs容器爲這個新結構提供服務?

這裏的原app.js什麼

'use strict'; 

angular.module('nodealphaApp', []) 
    .config(function ($routeProvider) { 
    $routeProvider 
     .when('/', { 
     templateUrl: 'views/main.html', 
     controller: 'MainCtrl' 
     }) 
     .otherwise({ 
     redirectTo: '/' 
     }); 
    }); 

讓我知道如果我可以提供更多信息

乾杯!

回答

0

這裏有一個角模板的NodeJS的例子:https://github.com/joshdmiller/ng-boilerplate

也許你應該檢查咕嚕的配置文件,如果端口相匹配。在您的Gruntfile.js中,您將擁有端口9000以及您在8888上監聽的Nodejs代碼。因此,請更改其中的一個,使其具有相同的端口。

看看:

grunt.registerTask('server', function (target) { 

它會運行一些任務,並在任務之一(「開放」也許)端口從咕嚕的配置數量將被使用。見

grunt.initConfig({ ... 

我希望這會幫助你。

1

我有同樣的確切問題!他們真的希望你使用grunt buildcontrol,但沒有AWS的選擇。 grunt buildcontrol推送到遠程,這不是Elastic Beanstalk部署的方式。

當您鍵入eb deploy時,它將在.git目錄中部署所有內容,而不僅僅是您的dist/目錄。我的解決方法是在dist/內創建一個本地git存儲庫。

  1. 刪除回購庫中的所有Elastic Beanstalk文件。僅供參考,它們是隱藏的。
  2. 使用項目根文件夾中的終端cd dist/
  3. 運行git init創建本地git回購。
  4. 進行初始提交,因爲dist/一直是.gitignore -d。
  5. 運行eb init,eb create,eb deploy正常情況下在dist/內。
  6. 設置你的環境變量,如果你需要它們;你的應用沒有。
  7. eb open,用你的手指交叉。
+0

因此,要麼我寫我自己的小eb配置文件,我運行我需要的命令,或者我有一個生成服務器或類似bitbucket管道的東西,首先構建我的應用程序,然後部署到eb。 我認爲首選選項是先建設,然後再部署到eb。 – IroNEDR