把全部的環境打包在一塊,再也不須要考慮開發環境問題。
若是上線發生了錯誤,能夠很快回滾到上一個可用的鏡像,減小損失node
FROM node:8.2.1
RUN mkdir -p /app
COPY . /app
WORKDIR /app
EXPOSE 3000
RUN npm install
RUN npm run build
而且生成一個.nuxt 文件夾,瓜熟蒂落的想 執行 npm start
這個命令在docker 怎麼弄呢?想到 CMD 容器啓動的時候須要執行的命令,務必記住,只能寫一個git
CMD ["npm","start"]
RUN mkdir -p /app COPY . /app WORKDIR /app EXPOSE 3000 RUN npm install RUN npm run build CMD [ "npm", "start" ]
ok!!!,一切就緒,此時耐不住性子確定想構建這個鏡像了
因而github
docker build -t nuxt-demo .docker
通過漫長的構建,主要是npm install 花的時間最長,因而你會思考,可否設置成國內環境,讓它下載更快一些 因而 把下面的命令寫在了 npm install 以前shell
RUN npm config set registry https://registry.npm.taobao.orgexpress
從新構建的時候的確比上次快了npm
此時確定想體驗一下本身的勞動成果了
docker run -it --rm -p 8080:3000 nuxt-demo瀏覽器
建立了一個一個基於 nuxt-demo鏡像的容器而且對外暴漏的是8080端口app
因而愉快的使用瀏覽器訪問
127.0.0.1:8080ui
通過思考後發現,容器內部映射的是127.0.0.1:3000 而不是對外暴漏的ip
怎麼辦? 去百度? 谷歌? Stack Overflow 無濟於事,發現這個東西太新,尚未相似的問題, 因而想主動去提問
算了,仍是先找找別人的項目吧, 打開github 搜索 docker-nuxt 找到了本身想要的項目
git clone https://github.com/wsdo/docker-nuxt
docker build -t nuxt-demo .
docker run -dt -p 8080:3000 nuxt-demo
127.0.0.1:8080
ENV NODE_ENV=production ENV HOST 0.0.0.0
FROM node:8.2.1 MAINTAINER stark.wang ENV NODE_ENV=production ENV HOST 0.0.0.0 RUN mkdir -p /app COPY . /app WORKDIR /app EXPOSE 3000 #If the environment in China build please open the following comments #若是在中國環境下構建請把下面註釋打開 #RUN npm config set registry https://registry.npm.taobao.org RUN npm install RUN npm run build CMD ["npm", "start"]
在你的項目中新建一個Dockerfile文件寫入最後Dockerfile上面文件
# build image $ docker build -t nuxt-demo . # serve at localhost:8080 $ docker run -dt -p 8080:3000 nuxt-p
對於此教程,模擬構建思路,若是在操做過程當中有什麼問題的能夠經過如下方式聯繫。
author:
blog:http://blog.shudong.wang/
github: wsdo