背景
公司基于Vue.js的项目最近须要部署到云端,所以须要先行在公司内部Docker环境下验证相关技术,于是有本文以前提。
本文展现在Docker容器中,应用部署Nodejs程序。html
获取基础镜像
Docker Hub中有官方node镜像,按照本身的需求直接获取对应版本的image便可。我获取的是8.0-alpine
版本,由于基于alpine的node镜像足够小,仅有63.7 MB。node
获取源码
从源码库上,获取到整个源代码工程。(过程略)docker
编写Dockerfile
首先,咱们确立文档模型。目录结构以下:npm
~/nodejs
Order/ [nodejs源码目录] Dockerfile
Dockerfile内容以下markdown
# 引用镜像 FROM node:8.0-alpine # 做者 MAINTAINER yubing # 执行命令,建立文件夹 RUN mkdir -p /home/Order # 将Order目录拷贝到镜像里 ADD ./Order /home/Order # 指定工做目录 WORKDIR /home/Order # 安装依赖及构建node应用 RUN npm install RUN npm build # 配置系统变量,指定端口 ENV HOST 0.0.0.0 ENV PORT 8081 # 将端口8081开放 EXPOSE 8081 # 容器启动命令 CMD ["npm", "start"]
构建镜像
在Dockerfile所在目录执行docker build命令,构建镜像。docker build --rm -t orderui:20180531 .
其中,--rm 是删除构建过程当中,产生的临时镜像,-t 是指定镜像名称及标识,如:orderui:20180531,最后. 表明默认选择Dockerfile为构建文件。post
建立容器
docker run -p 8081:8081 --name orderui -d orderui:20180531
-p 是指定端口映射,--name 给容器命名,-d 后台执行ui
稍等片刻,等npm start执行完毕后,便可访问。spa