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 对容器进行代理,避免直接以端口的形式访问容器。

标签:
Docker部署Nuxt

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
千金楼资源网 Copyright www.htabc.com

评论“Docker部署Nuxt.js项目的实现”

暂无“Docker部署Nuxt.js项目的实现”评论...

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。