事緣:
Dotcloud Beta 時就已經申請了,只可惜一直沒時間嘗試
今天回過頭來才發現原來有支持 Node.js
所以決定將昨天所寫的 Simple Todo 放上去了進行測試
先記錄一下筆記
注釋:
- 這裡的 Project 叫 node-simple-todo
- 這裡用的 Services 是 node.js
安裝:
- cd ~/Venv && virtualenv –no-site-package dotcloud
- source dotcloud/bin/activate
- 指令行前方應該會多了 (dotcloud) 才算是成功
- pip install dotcloud
- dotcloud
– (初次使用這指令時會提示輸入 API Key,可從 https://www.dotcloud.com/accounts/settings 取得)
準備:
- 先在桌面建立一個 dotcloud 的目錄
- 之後再將 Project 複制一份放進 dotcloud 目錄裡
- 之後在 dotcloud 目的中建立 dotcloud.yml 檔案,內容如:
1
2
3www:
type: nodejs
approot: node-simple-todo - 再來就是於 Project 目錄裡建立 supervisord.conf 檔案,內容如:
1
2
3[program:node]
command = node app.js
directory = /home/dotcloud/current - 先切換到原來的 Project 目錄,輸入指令:
1
2
3
4
5
6
7
8
9
10
11
12
13
14npm list
# 以我的 Project 為列.輸出
application-n[email protected] /Applications/XAMPP/xamppfiles/htdocs/node-simple-todo
├─┬ [email protected] extraneous
│ └─┬ [email protected]
│ └── [email protected]
├── [email protected]
├─┬ [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ └── [email protected]
├── [email protected] extraneous
└── [email protected] extraneous - 之後換回 dotcloud 目錄裡對應的 Project 目錄,並打開 package.json,修改為:
1
2
3
4
5
6
7
8
9
10
11{
"name": "node-simple-todo",
"version": "0.0.1",
"dependencies": {
"date-utils": "1.2.0",
"ejs": "0.4.3",
"express": "2.4.3",
"express-csrf": "0.3.3",
"sqlite3": "2.0.14"
}
}
部署:
- 回到 dotcloud 的根目錄
- 再來建立 namespace
1
dotcloud create nodesimpletodo
- 接著再輸入以下指令部署/提交到 dotcloud.com 裡
1
dotcloud push nodesimpletodo
問題:
- 於 dotcloud 裡部署 node.js 應用,程式需要監聽 8080 端口(Port)
- 查看目前已建立的 applications 可用以下指令
1
dotcloud list
- 如果部署時出現網址後,發現 502 bad gateway 錯誤,可以查看 Log 情況
1
dotcloud logs nodesimpletodo.www