Node服務端極速搭建 -- nvmhome

> 本文意在讓你掌握極速搭建Node服務端(任何Project)node

```
$ whoami
name: kelvin
email: kelvv@outlook.com
homepage: www.kelvv.com
github: https://github.com/kelvv
```
****
本文利用Docker搭建一個預安裝好:
* pm2 -- Node應用的進程管理器
* git -- 代碼管理
* ssh -- 遠程登陸
* nvm -- node版本管理
* npm -- node包安裝
* node -- So,you knowgit

**本項目github:[Here](https://github.com/kelvv/nvmhome-docker)** , 歡迎Startgithub

**> 固然可直接使用該鏡像:**
```
$ docker pull kelvv/nvmhome-docker
```docker

****npm

該項目由一份Dockerfile和.bashrc組成:
```
#Dockerfileubuntu

FROM ubuntu:14.04 bash

RUN apt-get update
#安裝git ssh
RUN apt-get install -y curl git-all openssh-server
ADD .bashrc /root/.bashrc服務器

#nvm安裝
RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash
RUN . /root/.bashrc;nvm install 4.3.1;nvm use 4.3.1;npm install pm2 -g;pm2 startup ubuntu

RUN mkdir /var/run/sshd
RUN echo 'root:myssh' | chpasswd
RUN sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_configsession

# SSH登陸
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshdapp

ENV NOTVISIBLE "in users profile"
RUN echo "export VISIBLE=now" >> /etc/profile

#對外開放端口
EXPOSE 22
EXPOSE 80

#啓動ssh服務
CMD ["/usr/sbin/sshd", "-D"]
```

上面給出了簡單的註釋,下面補充說明一下
1. ADD .bashrc /root/.bashrc 爲何須要把.bashrc添加進去呢?由於裏面把**互動**去掉,這樣pm2環境變量才能生效。
2. 默認ssh的密碼爲:'myssh',若有須要,自行添加ssh無密登陸,我對該技術有文章:[傳送門](http://www.jianshu.com/p/27d8b8d1d571)
3. 該鏡像對外開放兩個端口,
* **22: ssh端口**
* **80: 默認網站端口**
4. 你們能夠以該Dockerfile爲基礎,繼續寫屬於本身應用的Dockerfile。Happy Node

##使用

* 使用該鏡像
鏈接到服務器,執行如下命令
```
$ docker pull kelvv/nvmhome-docker
$ docker run -p 0.0.0.0:3000:22 -p 0.0.0.0:80:80 -d kelvv/nvmhome-docker
```
你能夠回到本身的電腦,使用ssh root@xxx.xxx.xxx.xxx鏈接到剛建立的應用服務端,自由發揮。

* 對該鏡像有改進,需從新構建
鏈接到服務器,下載Dockerfile,修改後執行如下命令
```
$ docker build -t name .
$ docker run -p 0.0.0.0:3000:22 -p 0.0.0.0:80:80 -d name
```

##總結

以上已經創建好基礎,下一篇文章會說說:如何使用nvmhome+pm2,一鍵發佈、管理本身的應用,,是一個很簡單的我的主頁,但願大家喜歡!

個人我的主頁就是這樣部署的:[Homepage傳送門](http://www.kelvv.com/)

相關文章
相關標籤/搜索