利用Dockerfile制作node+nginx应用自启动镜像

利用Dockerfile制作node+nginx应用自启动镜像。

基础镜像:

在写Dockerfile之前首先需要建立一个完整的装好node环境与应用,以及nginx代理的基础镜像。

编辑Dockfile:

 

#FROM表明所基于的镜像

FROM testqhf

#作者信息

MAINTAINER qhf  

#安装ssh服务

RUN yum install openssh-server -y

RUN mkdir -p /var/run/sshd

RUN mkdir -p /root/.ssh

RUN sed -ri 's/session    required     pam_loginuid.so/#session    required     pam_loginuid.so/g' /etc/pam.d/sshd

RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key

RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key

#配置信息

ENV NODE_HOME=/usr/node/node-v4.2.0-linux-x64

ENV PATH=$PATH:$NODE_HOME/bin

ENV NODE_PATH=$NODE_HOME/lib/node_modules

#启动

RUN echo "#!/bin/bash"> /root/run.sh

RUN echo "service nginx start">> /root/run.sh

#进入到应用目录下启动应用

RUN echo "cd /usr/app&&npm start" >> /root/run.sh

RUN echo "/usr/sbin/sshd -D ">> /root/run.sh

RUN chmod 755 /root/run.sh

#端口

EXPOSE 80

CMD ["/root/run.sh"]

 

 

注意:

 

#启动命令需根据自己的需要编译

#pm2启动node

RUN echo "cd /usr/app&&pm2 start bin/www" >> /root/run.sh

#strongloop启动node

RUN echo "cd /usr/app;slc pm --json-file-db & slc start

" >> /root/run.sh

 

 

 

根据所写的Dockerfile构建一个镜像

docker buid -t *** .(***为自己起的镜像名,不要忘了后面的点)

注意:创建镜像要在Dockerfile所在的目录下,否则会提示找不到Dockerfile

 利用Dockerfile制作node+nginx应用自启动镜像_第1张图片

等待完成,这样一个node环境的镜像就完成了,可以通过docker run 新建一个基于此镜像的容器进行测试。

你可能感兴趣的:(Docker)