docker環境中安裝node、pm2,映射項目文件守護程序


1.docker安裝完成後,獲取對應版本,可自定義node版本,默認爲最新版本。node

git pull node:<version>
2.編寫Dockerfile,在文件中添加安裝pm2命令。建議新建一個單獨docker的文件,文件中存放Dockerfile,不然在build鏡像的時候會將整個目錄下的文件都發送至docker。
FROM node:8.12 
RUN apt-get update && apt-get install -y apt-transport-https && \
    curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
    echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \
    apt-get update && apt-get install -y yarn
 
RUN yarn config set registry https://registry.npm.taobao.org --global && \
    yarn config set disturl https://npm.taobao.org/dist --global
 
RUN npm config set registry https://registry.npm.taobao.org --global && \
    npm config set disturl https://npm.taobao.org/dist --global
 
RUN npm install -g pm2
 
ADD ./entry.sh /
RUN chmod +x /entry.sh
 
EXPOSE 3000 6001
CMD ["/entry.sh"]
 
3.編寫啓動腳本文件(entry.sh),在dockerfile中添加後有效,當建立容器時會自動執行該文件。注意#!/bin/sh
 
#!/bin/sh
cd /opt/appfile
pm2 start ./start.js --name myapp
pm2 logs -f myapp
 
4.執行build(在dockerFile同目錄下執行),開始建立基於node鏡像的新鏡像,包含了pm2,也可以使用save(打包)、load(解壓)命令從其餘服務器複製鏡像使用。
sudo docker build -t node_pm2:0.1 . 
 
5.鏡像建立完成後,開始建立容器,本機端口以及項目文件和容器的映射,設置容器名。
docker run -p 3000:3000 -v /home/jlj/work/myapp:/opt/myapp --name myapp -d node_pm2:0.1
docker run -d --name miaozhen_loopback -p 6201:6201 -p 6202:6202 -v /opt/starviews/miaozhenlb:/opt/bianque/nodeserver bianque_nodejs:latest
 
6.查看日誌,是否啓動成功
docker logs -f myapp
sudo docker logs -f myapp -t --tail 行數 容器名

 7.調試容器時,可執行代碼進入,僅限正在運行的容器有效git

docker exec -it myapp /bin/bashweb

8.若是牽扯到跨主機服務訪問時,可採起--link方式啓動容器,服務名稱改成http://host:6001docker

docker run --link container_name:host -p 3000:3000 -v /home/jlj/work/myapp:/opt/myapp --name myapp -d node_pm2:0.1npm

 docker run -d --name miaozhen_manage -p 6213:3001 -v /opt/starview/miaozhenmanage/webapp:/opt/bianque/nodeserver bianque_nodejs:latestbash

相關文章
相關標籤/搜索