本文意在让你掌握极速搭建Node服务端(任何Project)

$ 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 know

本项目github:Here , 欢迎Start

> 当然可直接使用该镜像:

$ docker pull kelvv/nvmhome-docker

该项目由一份Dockerfile和.bashrc组成:

#Dockerfile

FROM ubuntu:14.04

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_config # SSH登录
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd 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无密登录,我对该技术有文章:传送门
  3. 该镜像对外开放两个端口,
  • 22: ssh端口
  • 80: 默认网站端口
  1. 大家可以以该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传送门

Node服务端极速搭建 - nvmhome的更多相关文章

  1. Node服务端极速搭建 -- nvmhome

    > 本文意在让你掌握极速搭建Node服务端(任何Project) ```$ whoaminame: kelvinemail: kelvv@outlook.comhomepage: www.kel ...

  2. node服务端搭建学习笔记

    咳咳,终于迈出这一步了...这篇文章将是边学边写的真正笔记...用于mark下学习过程中的点滴~ 开篇先把我学习参考的文章来源给出,以表示对前人的尊敬: https://github.com/nswb ...

  3. spring-oauth-server实践:客户端和服务端环境搭建

    客户端:http://localhost:8080/spring-oauth-client/index.jsp 服务端:http://localhost:8080/spring-oauth-serve ...

  4. GraphQL-- 使用Apollo Server搭建Node服务端

    一.关于Apollo Server Apollo Server是一种使用JS创建GraphQL服务端的一个方案.它的兼容性比较好,可以很好地和GraphQL客户端进行兼容.同时它可以 独立作为服务端进 ...

  5. Vue+koa2开发一款全栈小程序(5.服务端环境搭建和项目初始化)

    1.微信公众平台小程序关联腾讯云 腾讯云的开发环境是给免费的一个后台,但是只能够用于开发,如果用于生产是需要花钱的,我们先用开发环境吧 1.用小程序开发邮箱账号登录微信公众平台 2.[设置]→[开发者 ...

  6. node服务端渲染(完整demo)

    简介 nodejs搭建多页面服务端渲染 技术点 koa 搭建服务 koa-router 创建页面路由 nunjucks 模板引擎组合html webpack打包多页面 node端异步请求 服务端日志打 ...

  7. Android中直播视频技术探究之---视频直播服务端环境搭建(Nginx+RTMP)

    一.前言 前面介绍了Android中视频直播中的一个重要类ByteBuffer,不了解的同学可以 点击查看 到这里开始,我们开始动手开发了,因为我们后续肯定是需要直播视频功能,然后把视频推流到服务端, ...

  8. Redis服务端的搭建(初级)

    前方低能,仅适合入门级菜鸟阅读,大神大牛通通闪开! 前言:redis经常被用来做缓存(原因自行科普),基于学习的需要自己搭建了一个redis服务器,考虑到项目的分布式部署,所以前期开始的时候,redi ...

  9. Netty入门一:服务端应用搭建 & 启动过程源码分析

    最近周末也没啥事就学学Netty,同时打算写一些博客记录一下(写的过程理解更加深刻了) 本文主要从三个方法来呈现:Netty核心组件简介.Netty服务端创建.Netty启动过程源码分析 如果你对Ne ...

随机推荐

  1. docker入门之基础操作

    docker,我们可以把docker当作是简单的虚拟机.但这个虚拟机不像vm一样安装系统.所以我们又称之为容器.你可以理解成,容器就是虚拟机 docker与vm的对比 vmware:下载镜像——安装系 ...

  2. 自定义 mapper

    1. 定义一个接口 public interface ItemMapper { List<Item> getItemList(); } 2. 编写  xml  文件 ,  将sql 语句填 ...

  3. Q221 最大正方形

    在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积. 示例: 输入: 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 输出: 4 cla ...

  4. WCF系列教程之WCF服务宿主与WCF服务部署

    本文参考自http://www.cnblogs.com/wangweimutou/p/4377062.html,纯属读书笔记,加深记忆. 一.简介 任何一个程序的运行都需要依赖一个确定的进程中,WCF ...

  5. mongo 固定集合,大文件存储,简单优化 + 三招解决MongoDB的磁盘IO问题

    1.固定集合 > db.createCollection(, max:});//固定集合 必须 显式创建. 设置capped为true, 集合总大小xxx字节, [集合中json个数max] { ...

  6. jmeter笔记

    Jmeter性能测试 入门 Jmeter 录制脚本:使用一个叫badbody的工具录制脚步供jmeter使用,http://www.badboy.com.au/:也可以用jmeter来录制 Jmete ...

  7. Javac的命令

    关于命令,还可以查看<Java 7程序设计>一书后面的附录A As per javac source docs, there are 4 kinds of options: standar ...

  8. 十分钟理解Actor模式

    Actor模式是一种并发模型,与另一种模型共享内存完全相反,Actor模型share nothing.所有的线程(或进程)通过消息传递的方式进行合作,这些线程(或进程)称为Actor.共享内存更适合单 ...

  9. Training Logisches Denken

    1.Das Begriff 1.1 Die Arten von Begriff 1.1.1 alleines Begriff,universales Begriff,Leeres Begriff: A ...

  10. [转]使用ASP.NET Web API 2创建OData v4 终结点

    本文转自:http://www.cnblogs.com/farb/p/ODataAspNetWebAPI.html 开放数据协议(Open Data Protocol[简称OData])是用于Web的 ...