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