这里以作为nodejs根目录为例,并且用的pm2作为node的守护进程,

FROM keymetrics/pm2:latest-alpine

MAINTAINER shadowprompt (huixiong.cn@gmail.com)
# create and set app directory
RUN mkdir -p /node/www

# Bundle app source
WORKDIR /node/www

# Install app dependencies
ENV NPM_CONFIG_LOGLEVEL warn

# Show current folder structure in logs
RUN ls -al -R

CMD [ "pm2-runtime", "start", "pm2.json" ]

keymetrics/pm2:latest-alpine是不错的pm2镜像,本例在此基础上进行封装,比如封装成名为node_web_pm2:dockerfile的镜像
在dockerfile里面创建一个目标文件夹,即/node/www,接下来的重点就是启动容器的命令了

docker run -v /Users/shadow/Devops/docker/node_web_pm2:/node/www -p 9090:80 -it --name=node_web_pm2 -d node_web_pm2:dockerfile

上面就实现了将/Users/shadow/Devops/docker/node_web_pm2文件夹里面的内容作为根目录了。
个人比较喜欢这种模式,很多同学喜欢用COPY将主机目录复制到容器内,并且执行npm install等操作,这样的话就会灵活性不高。

分类: Javascript

发表评论

电子邮件地址不会被公开。 必填项已用*标注