欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

docker中編譯nodejs并使用nginx啟動(dòng)

 更新時(shí)間:2017年06月23日 08:55:10   作者:極客腦司機(jī)  
這篇文章主要介紹了docker中編譯nodejs并使用nginx啟動(dòng)的相關(guān)資料,需要的朋友可以參考下

1.編譯Nodejs

要進(jìn)行Nodejs編譯,使用docker就變得非常的方便了。

首先從hub.docker.com下載最新的鏡像。https://hub.docker.com/_/node/

一般的項(xiàng)目都使用的是node6的鏡像。

docker pull node:6-alpine

然后就可以直接使用npm install了。

Alpine是一個(gè)非常小的操作系統(tǒng),在編譯,運(yùn)行docker非常喜歡使用這個(gè)系統(tǒng),因?yàn)樾。加么疟P小,下載速度快,部署也快。

節(jié)省磁盤空間,節(jié)省部署時(shí)間。

2.使用docker鏡像提前下載庫

但是遇到一個(gè)問題,就是下載編譯的時(shí)間太長(zhǎng)了。

一般使用nodejs進(jìn)行開發(fā)的時(shí)候都有一個(gè)package.json 里面具體的項(xiàng)目依賴 包,下載這個(gè)依賴需要很長(zhǎng)時(shí)間。一般使用阿里云的鏡像安裝。

npm install --registry=https://registry.npm.taobao.org

而在使用docker 進(jìn)行構(gòu)建,編譯的時(shí)候每次都是要下載這些依賴。大大增加了編譯的時(shí)間。

FROM docker.io/library/node:6-alpine

RUN echo -e "http://mirrors.aliyun.com/alpine/v3.4/main\n\

http://mirrors.aliyun.com/alpine/v3.4/community" > /etc/apk/repositories

COPY package.json /root/

RUN cd /root && npm install --registry=https://registry.npm.taobao.org

可以提前將鏡像下載好,然后在編譯。做一個(gè)基礎(chǔ)的鏡像。如下:

構(gòu)建這個(gè)基礎(chǔ)鏡像:

docker build -t my-demo/node6-alpine:latest .

在利用這個(gè)鏡像進(jìn)行編譯:

#!/bin/sh

mkdir /app && cd /app

git clone xxx.git /app

ln -s /root/.gnupg /app/.gnupg

ln -s /root/.npm /app/.npm

ln -s /root/node_modules /app/node_modules

npm install --registry=https://registry.npm.taobao.org

npm run build

build.sh

然后利用這個(gè)基礎(chǔ)鏡像進(jìn)行編譯,生氣了之前的instal 過程。

期中的node_modules是node的模塊文件夾。編譯后的文件在dist文件夾內(nèi)。

3.使用nginx啟動(dòng)

首先從https://hub.docker.com/_/nginx/  下載一個(gè)鏡像:

FROM docker.io/library/nginx:1-alpine

ADD ./dist/* /usr/share/nginx/html/

EXPOSE 80

ENTRYPOINT ["nginx","-g","daemon off;"]

使用nginx鏡像啟動(dòng),直接將node編譯后的文件放到html目錄

編譯docker :

docker build -t my-demo/nginx:latest .

啟動(dòng)docker:

docker run -itd -p 8080:80 my-demo/nginx:latest

然后直接訪問 8080 端口就可以了。

總結(jié):

(首發(fā),請(qǐng)勿轉(zhuǎn)載。)

現(xiàn)在前后端的拆分,可以提高開發(fā)效率。但是部署起來稍微麻煩,需要前后的分別進(jìn)行編譯,前端編譯也需要很長(zhǎng)時(shí)間。可以提前將依賴庫大成一個(gè)node基礎(chǔ)鏡像,然后再進(jìn)行編譯,這樣可以大大的提高編譯時(shí)間。同時(shí)運(yùn)行環(huán)境使用一個(gè)nginx,將html,css,js等資源文件都放上,也才20多MB。而且在nginx中也可以將后臺(tái)api在進(jìn)行配置,將前后端集成進(jìn)來。同時(shí)docker的鏡像大大的提高了開發(fā)效率,環(huán)境的安裝問題一下子得到了解決。

相關(guān)文章

最新評(píng)論