把全部的环境打包在一块,再也不须要考虑开发环境问题。
若是上线发生了错误,能够很快回滚到上一个可用的镜像,减小损失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