ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Docker 部署 Nuxt.js 项目

2020-05-19 13:06:37  阅读:548  来源: 互联网

标签:npm src RUN app js 镜像 Docker Nuxt


Docker

      官方文档: https://docs.docker.com/

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

使用 docker 部署 nuxt.js 项目

1、构建 node 镜像

FROM node:alpine

为啥使用 alpine 版本?

相比于其他 Docker 镜像,它的容量非常小,仅仅只有 5 MB 左右(对比 Ubuntu 系列镜像接近 200 MB),且拥有非常友好的包管理机制。官方镜像来自 docker-alpine 项目。 目前 Docker 官方已开始推荐使用 Alpine 替代之前的 Ubuntu 做为基础镜像环境。这样会带来多个好处。包括镜像下载速度加快,镜像安全性提高,主机之间的切换更方便,占用更少磁盘空间等。

2、设置项目保存目录

RUN mkdir -p /app/src

3、复制项目代码到镜像

COPY ./src /app/src

4、指定命令执行的目录

WORKDIR /app/src

5、设置 host

ENV HOST 0.0.0.0

6、执行项目安装及编译

RUN npm install RUN npm run build RUN npm cache clean --force

7、设置外部访问端口

EXPOSE 3000

8、执行 nuxt 项目运行命令

CMD ["npm", "start"]

完整的 Dockerfile 文件

FROM node:alpine

RUN mkdir -p /app/src
COPY ./src /app/src
WORKDIR /app/src

ENV HOST "0.0.0.0"

RUN sed -i "s/dl-cdn.alpinelinux.org/${ALPINE_REPOSITORIES}/g" /etc/apk/repositories

RUN apk add --no-cache make gcc g++ python

RUN npm install
RUN npm run build
RUN npm cache clean --force

RUN apk del make gcc g++ python

EXPOSE 3000
CMD ["npm", "start"]

当在项目中使用 sass 或者 scss 时,需依赖 python 环境,所以需要安装 python,当然在编译相关资源后,可以删除相应的依赖以减小镜像体积。

运行 Docker

1、构建镜像

docker build -t nuxt-demo

2、启动容器

docker run -dt -p 3000:3000 nuxt-demo

3、访问

打开浏览器,访问 127.0.0.1:3000

后记

  • 1、可以用 Docker Compose 对容器进行编排,快速的部署多容器应用。
  • 2、可以用 nginx 对容器进行代理,避免直接以端口的形式访问容器。


    本篇分享到这里就结束啦,给朋友们推荐一个前端公众号,里面都是前端技术干货。 

   

标签:npm,src,RUN,app,js,镜像,Docker,Nuxt
来源: https://www.cnblogs.com/cczlovexw/p/12916310.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有