1.编译Nodejs
要编译Nodejs,使用docker非常方便。
首先从hub.docker.com下载最新图片。https://hub.docker.com/_/node/
大多数项目使用node6的图像。
docker拉节点:6-alpine
然后可以直接使用npm安装。
Alpine是一个非常小的操作系统。docker喜欢在编译运行时使用这个系统,因为它体积小,占用磁盘小,下载快,部署快。
节省磁盘空间和部署时间。
2.使用docker映像提前下载库
但是有一个问题,就是下载编译时间太长。
一般用nodejs开发时,package.json中有一个特定的项目依赖包,下载这个依赖需要很长时间。一般使用阿里巴巴云的镜像安装。
NPM install-registry=https://registry . NPM .淘宝. org
当使用docker构建和编译时,应该每次都下载这些依赖项。大大增加了编译时间。
FROM docker.io/library/node:6-alpineRUN echo-e ' http://mirrors . aliyun.com/alpine/v 3.4/main n http://mirrors . aliyun.com/alpine/v 3.4/community '/etc/apk/repositories copypackage.json/root/runcd/rootnpminstall-registry=https://registry.npm.taobao.org可以提前下载映像,然后进行编译。制作一个基本的镜像。如下所示:
建立这个基本形象:
docker build-t my-demo/node 6-alpine 3360 latest。
使用此图像编译后:
#!/bin/shmkdir/app CD/app git clone XXX . git/appln-s/root/。gnupg /app/。gnupgln -s /root/。npm /app/。npmln-s/root/Node _ modules/app/Node _ modules NPM install-registry=https://registry.npm.taobao.org NPM运行build.sh然后使用这个基本的镜像进行编译,这激怒了之前的安装过程。
中期node_modules是节点的模块文件夹。编译的文件在dist文件夹中。
3.从nginx开始
首先从https://hub.docker.com/_/nginx/:下载一张图片
来自docker.io/library/nginx:1-alpineADD。/dist/*/usr/share/nginx/html/EXPOSE 80 entrypoint[' nginx ','-g ',' daemon off']使用nginx image启动,直接将节点编译的文件放入html目录
编译摘要:
docker build-t my-demo/ngin x : latest。
要启动docker:
docker run-itd-p 8080:80 my-demo/nginx : latest
然后直接接入端口8080。
总结:
(首发,请勿转载。)
现在,拆分前端和后端可以提高开发效率。但是部署起来有点麻烦,需要前后编译,前端编译也需要很长时间。可以提前将依赖库构建成节点基本镜像,然后进行编译,这样可以大大提高编译时间。同时运行环境使用了一个nginx,里面放html、css、js等资源文件,只有20 MB多。此外,后台api可以在nginx中配置,以集成前端和后端。同时,docker的形象大大提高了开发效率,环境安装的问题一下子就解决了。