以下用 Docker 來快速建置環境與練習
可以參考 Docker Hub 選擇 Docker image 版本,這裡使用 node:4.4
做練習
HelloWorld
首先先建立 app.js
開始寫 HelloWorld 程式
console.log("HelloWorld"); |
使用 Docker 去 run 這隻程式:
docker pull node:4.4 |
輸出範例如下
$ docker run --rm -v `pwd`:/usr/src/app -w /usr/src/app node:4.4 node app.js
HelloWorld
HTTP Server
Node.js 有內建基本的 HTTP Server 可以直接使用,程式碼如下:
var server; |
不過 Docker 只要 run 下去就無法中斷了,目前問題原因還不清楚
可以換進到 Docker bash run :
docker run --rm -v `pwd`:/usr/src/app -w /usr/src/app -p 3000:3000 node:4.4 bash |
執行後會出現監聽訊息
$ node app.js
Server running at http://0.0.0.0:3000
這時開頁面就可以看到 HelloWorld 了
npm
NPM 全名為 Node Package Manager,為套件管理工具,類似 PHP 的 Composer 或 Ruby 的 Gem
使用 Docker 初始化 NPM 套件定義檔
docker run --rm -it -v `pwd`:/usr/src/app -w /usr/src/app node:4.4 npm init -y |
執行完後,會多一個檔叫 package.json
。假如要裝 Express 可以下指令安裝
docker run --rm -it -v `pwd`:/usr/src/app -w /usr/src/app node:4.4 npm install express --save |
npm Command
上述 Docker 每次執行完之後都會移除 container,所以如果有裝全域套件的需求時,建議可以使用 Dockerfile 安裝
比方說我想要用 express
的指令,首先建立一個名為 Dockerfile
的檔案:
FROM node:4.4 |
然後下指令建 image
docker build -t=mynode . |
建完後就可以用 mynode
來 run express 了
docker run --rm -it -v `pwd`:/usr/src/app -w /usr/src/app mynode express |