【Docker】记 Docker 下,基于 Ubuntu:14.04 安装 nodejs ,并配置相关环境
2018-03-17 13:39
966 查看
消息中心本地 Docker 配置
起因:因消息中心所用的消息队列服务,是基于阿里云提供的。官方并没有
NodeJS的 API 接口。其
C++模块在
Mac与
Ubuntu上的表现形式差别很大。在本地
Mac上开发,不能完全模拟 服务器 上的表现,所以需要在本地模拟服务器环境进行开发。
Docker 安装
这个比较简单,可以参考 Mac 上安装 Docker选择镜像版本
因为服务器使用的是Ubuntu 14.04,所以选择的 Docker 基础镜像为
Ubuntu:14.04。
docker pull ubuntu:14.041
[/code]
在控制台/命令行输入上述指令,等待片刻即可完成下载。
创建 Dockerfile 文件
第一版本:漏洞,安装东西过多,且出现apt-get更新不完全,导致
npm的版本过低,无法完成后续安装。
FROM ubuntu:14.04 RUN sudo apt update \ && sudo apt-get install -y python-software-properties \ && sudo apt-get install -y curl \ && sudo apt-get install make \ && curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - \ && curl -L https://www.npmjs.com/install.sh \ && sudo apt-get install -y nodejs \ && alias cnpm="npm --registry=https://registry.npm.taobao.org \ --cache=$HOME/.npm/.cache/cnpm \ --disturl=https://npm.taobao.org/dist \ --userconfig=$HOME/.cnpmrc" \ && npm install npm@latest -g \ && curl https://raw.githubusercontent.com/creationix/nvm/v0.16.1/install.sh1
2
3
4
5
6
7
8
9
10
11
12
13
14
[/code]
这个版本的 Dockerfile 比较烦琐,安装了比较基础的东西。
因为没有解决掉
bash与
sh在
Dockerfile中的切换问题,还是需要手动去安装一些环境。而过多的 RUN 会在增加镜像的生成层。所以,直接写了下面的一个简洁版本。
FROM Ubuntu:14.04 RUN bash | echo start to install things \ && sudo apt update \ && sudo apt-get install -y python-software-properties \ && sudo apt-get install -y curl \ && sudo apt-get install -y make \ && apt-get install -y gcc \ && apt-get install g++ \ && curl https://raw.githubusercontent.com/creationix/nvm/v0.16.1/install.sh | bash \1
2
3
4
5
6
7
8
9
[/code]
生成镜像
将工作目录切换至Dockerfile所在的目录下,运行:
docker build -t msgcenter_docker .1
[/code]
因为创建镜像过程中,上下文
.的影响,所以将共享目录没有放在
Dockerfile中实现。
生成容器
镜像生成之后,使用docker image ls查看当前镜像。
基于
msgcenter_docker镜像,可以生成运行的容器:
docker run -dit -v 消息中心目录:/YourProject \ -p 7077:7077 \ -p 80:80 \ -p 7080:7080 \ -p 81:81 \ -p 8080:8080 \ msgCenterContainer \ /bin/bash1
2
3
4
5
6
7
8
[/code]
-dit: 表示后台,标准输入/输出流,类终端形式运行容器
手动安装剩余配置
接下来的部分比较烦琐,我也很想全部放在 Dockerfile 中实现。。。这个部分等待后续全部在 Dockerfile 中实现!~~~
1. 安装 npm ,node
nvm install v6.10.21
[/code]
因为 npm 依赖于 node 产生。所以第二个 Dockerfile 采用更简洁的方式,防止了由基础镜像得到的容器,获取不到最新版本的 bug.
2. 安装 snpm – 私有库安装
npm install snpm -g --registry=你的库1
[/code]
3. 安装 node-gyp、make、gcc、g++ 等编译工具
apt-get install -y make apt-get install -y gcc apt-get install -y g++ npm install node-gyp1
2
3
4
[/code]
上述四行代码,与 Dockerfile 有部分重合,可以去掉重合的部分。
4. 迁移项目代码
因为 Mac 跟 Ubuntu 上有些模块的表现形式不一样,所以需要移除node_module文件夹及其下所有内容,进行重新安装。又因为挂载的目录下修改文件,会对真实文件产生同样的更改。所以,将其移到至新的目录。
* 创建新目录:
mkdir /YourProject1
[/code]
复制项目:
cp -r /YouWantPut /YourProject1
[/code]
删除原模块
rm -rf /YouWantPut/node_moudle/1
[/code]
5. 配置项目
安装内部模块,移至项目目录下 :shell snpm install
安装其它模块:
npm install1
[/code]
编译环境:
make config-dev1
[/code]
6. 全局安装 bunyan 与运行
安装 bunyan:npm install -g bunyan1
[/code]
运行:
node app | bunyan1
[/code]
坑
本来,准备写一些安装过程中遇到的各种坑。实在太晚了,基本上的坑都在上文中写完了。都是 Ubuntu 镜像太基础了,没有”任何“现成命令。关于加速
apt-get 的加速cd /etc/apt/ mv sources.list sources.list.bak curl -O http://mirrors.163.com/.help/sources.list.precise mv sources.list.precise sources.list1
2
3
4
[/code]
npm 加速
alias cnpm="npm --registry=https://registry.npm.taobao.org \ # --cache=$HOME/.npm/.cache/cnpm \ # --disturl=https://npm.taobao.org/dist \ # --userconfig=$HOME/.cnpmrc"1
2
3
4
[/code]
关于保存镜像
将启动的容器一路配置到开发环境是件不太”容易“且费时的事。所以,最好在配置完成之后,进行一次打包,使之生成新的镜像。docker commit b23 msgserver/base:11
[/code]
b23 : 为生成窗口的 ID 前三位
后面的参数为生成的新镜像命名。
关于体积
可以观察,生成的镜像的体积无比巨大(跟原始镜像相比)。相关文章推荐
- 嵌入式环境搭建之基于Ubuntu 14.04下NFS安装配置
- Ubuntu14.04中安装nodejs及其代码环境配置
- Ubuntu14.04下安装配置Android开发环境
- linux开发环境搭建-----ubuntu14.04安装 配置FTP SSH NFS 服务
- Ubuntu 14.04 java环境安装配置(不是openJAVA)
- WIN8.1上VMWare10虚拟机安装Ubuntu 14.04,安装JDK和SDK以及环境变量配置
- Ubuntu环境下sublime3 nodejs安装与插件配置
- Ubuntu 14.04 java环境安装配置(不是openJAVA)
- Ubuntu下安装Go语言开发环境及编辑器的相关配置
- 0046 Linux(ubuntu14.04)下安装java及其环境配置
- ubuntu 开发环境配置及安装 nodejs
- Ubuntu 14.04 下安装Qt5 并配置开发环境(终端下使用)
- RTEMS 最新基于ubuntu和RSB编译环境的安装配置
- ubuntu 14.04/15.10 安装基于eclipse的android app开发环境
- Ubuntu14.04环境下,Docker安装
- Android系统编译环境搭建—Ubuntu14.04安装&root登录&Chromium root启动&安装配置交叉编译环境
- Ubuntu 14.04 java环境安装配置(不是openJAVA)
- ubuntu 开发环境配置及安装 nodejs
- 基于Ubuntu 14.04和CUDA 7.0为基础的caffe环境配置