利用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
等待完成,這樣一個node環境的鏡像就完成了,可以通過docker run 新建一個基於此鏡像的容器進行測試。