如何用docker容器部署nuxt3项目

这篇具有很好参考价值的文章主要介绍了如何用docker容器部署nuxt3项目。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

docker nuxt,docker,容器,微服务

 Nuxt3是基于Vue3的一个开发框架,基于服务器端渲染SSR,可以更加方便的用于Vue的SEO优化。

Nuxt 3.0 新特性包括:

更轻量:以现代浏览器为目标的服务器部署和客户端产物最多可缩小 75 倍

更快:基于 nitro 提供动态代码分割能力,以优化冷启动性能

Hybrid:增量静态生成和其他的高级功能现在都成为可能

Suspense:在任意组件和导航前后都可以获取数据

Composition API:使用 Composition API 和 Nuxt 3 的 composables 实现真正的代码复用

Nuxt CLI:没有任何依赖,帮你轻松搭建项目和集成模块

Nuxt Devtools:通过直接在浏览器中查看信息和快速修复实现更快地工作

Nuxt Kit:具有 Typescript 和跨版本兼容性的全新模块开发

Webpack 5:更快的构建时间和更小的包大小,无需配置

Vite:使用 Vite 作为打包工具,体验闪电般快速的 HMR

Vue 3:Vue 3 是你下一个 Web 应用程序的坚实基础

TypeScript:使用原生 TypeScript 和 ESM 构建,无需额外步骤
 

具体nuxt3项目配置与打包发布,大家可以查看之前写的这篇文章:《Nuxt3从零开始配置与打包发布》

nuxt3写的SSR项目更利于SEO,更轻量、访问速度更快、并且路由更友好、免配置路由。由于是SSR 服务端渲染(Server-side Rendering),这种技术的优点在于更快的首屏加载速度和更好的搜索引擎优化(SEO)。相比较于客户端渲染,SSR能够提高用户的使用体验。

由于nuxt3是SSR项目,所以我们需要在服务器端部署node环境或者pm2环境,用来执行启动项目服务器端命令,并且要有守护进程来保护node进程,防止被误杀停止服务器。因此我们这里选择docker容器进行部署nuxt3 SSR项目。

1、docker安装

Linux系统自动化安装docker命令:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

如果你是用的是阿里云Linux系统部署并使用Docker(Alibaba Cloud Linux 3),命令如下:

//安装dnf,dnf是新一代的rpm软件包管理器
yum -y install dnf

//1、安装dnf源中默认的Docker(podman-docker)
//安装docker
dnf -y install docker
//注意:该方式安装的podman-docker没有守护进程(systemd),因此您在后续的操作中无需关注podman-docker的运行状态(无需进行systemctl命令的相关操作),直接使用Docker即可

//2、安装社区版Docker(docker-ce)
//添加docker-ce的dnf源
dnf config-manager --add-repo=https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

//如果提示config-manager不存在的话,执行下面安装命令
dnf install 'dnf-command(config-manager)'

//安装Alibaba Cloud Linux 3专用的dnf源兼容插件
dnf -y install dnf-plugin-releasever-adapter --repo alinux3-plus
//如果您不使用Alibaba Cloud Linux 3专用的dnf源兼容插件,将无法正常安装docker-ce
//安装docker-ce
dnf -y install docker-ce --nobest
//查看docker-ce是否成功安装
dnf list docker-ce

//启动Docker服务
systemctl start docker

//查看Docker服务的运行状态
systemctl status docker

//管理Docker守护进程
systemctl start docker     #运行Docker守护进程
systemctl stop docker      #停止Docker守护进程
systemctl restart docker   #重启Docker守护进程
systemctl enable docker    #设置Docker开机自启动
systemctl status docker    #查看Docker的运行状态

阿里官方安装文档:如何部署并使用Docker(AlibabaCloudLinux3)_云服务器 ECS-阿里云帮助中心

如果使用的是Alibaba Cloud Linux 2,按照这个文档安装:如何在ECS实例上部署并使用Docker_云服务器 ECS-阿里云帮助中心

如果是阿里云CentOS 8的话,按照这个文档安装:

如何部署并使用Docker(CentOS8)_云服务器 ECS-阿里云帮助中心

Docker基础命令

2、启动docker

systemctl start docker

3、停止docker守护进程

systemctl stop docker

4、重启docker守护进程

systemctl restart docker

5、设置Docker开机自启动

systemctl enable docker

6、查看docker运行状态

systemctl status docker

7、查看docker版本号

docker version

8、查看自己服务器中docker镜像列表

docker images

9、查看容器列表

docker ps

10、搜索镜像

docker search 镜像名

 11、拉取镜像

docker pull 镜像名 
docker pull 镜像名:tag

Docker打包部署nuxt3

12、打包nuxt3项目

npm run build

打包后,在.output目录里就是打包好的SSR项目文件。

我们可以在这里创建个Dockerfile文件。这个里面是编写的docker项目运行环境、打包镜像和运行项目命令的一个配置文件。

给个配置文件例子:

#1、基于镜像node版本
FROM node:16.14.0
#2、作者
MAINTAINER TanDong
#3、参数,node的环境为生产环境
ENV NODE_ENV=production
#4、任意ip
ENV HOST 0.0.0.0
#5、容器内创建目录/nuxt3
RUN mkdir -p /nuxt3
#6、复制当前的内容到容器内容部目录/nuxt3
COPY output/ . /nuxt3
#7、切换工作目录到/nuxt3
WORKDIR /nuxt3
#8、暴露端口3000,默认端口
EXPOSE 3000
#12、start
CMD ["node","./server/index.mjs"]

13、打包项目镜像(打包后的nuxt3项目文件上传到linux服务器某个目录,在目录路径里执行打包镜像命令)

docker build -t image_Name .

14、创建容器并运行镜像

docker run -it -d --name 要取的别名 -p 宿主机端口:容器端口 -v 宿主机文件存储位置:容器内文件位置 镜像名:Tag /bin/bash 

//例子如下
docker run --name nuxtContainer -d -p 9020:3000 nuxt3

这样,访问对应的ip+端口就可以访问到nuxt3部署的项目了。

如果需要更新项目,需要执行:重新打包项目最新镜像、停止容器、删除容器、重新创建并运行镜像。

15、停止容器

docker stop 容器名/容器ID

16、删除容器

docker rm -f 容器名/容器ID

17、删除镜像

docker rmi -f 镜像名/镜像ID

重新创建并运行镜像的命令和第14创建容器并运行镜像是一样的命令文章来源地址https://www.toymoban.com/news/detail-630536.html

到了这里,关于如何用docker容器部署nuxt3项目的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • nuxt3:我们开始吧-开发-配置-部署

    nuxt3:我们开始吧-开发-配置-部署

    一、背景介绍 2022 年 11 月 16 日,全球最大的 Nuxt 会议 Nuxt Nation 2022 在线举行,并正式发布了 Nuxt.js 3.0 的第一个稳定版本。Nuxt 3 是基于  Vite 、 Vue3  和  Nitro  的 Nuxt 框架的现代重写,具有一流的 Typescript 支持,是两年多研究、社区反馈、创新和实验的结果。为每个人提供了

    2023年04月12日
    浏览(6)
  • 如何用docker在自己服务器上部署springboot项目

    如何用docker在自己服务器上部署springboot项目

    一、将springboot项目打包 1、maven clean项目 2、maven package项目 打包成功之后生成jar文件(在target目录下) 3、为Java创建Dockerfile 引入jdk8的Docker镜像 FROM openjdk:8 为了使运行其余命令时更容易,让我们设置映像的工作目录。这将指示Docker使用此路径作为所有后续命令的默认位置。通

    2024年02月04日
    浏览(7)
  • Nuxt3 + Naive UI 的SSG项目分享(一)

    自从Vue3发布后,学习Vue3就形成了一个趋势和热潮。 Vue3相比Vue2,引入tree-shaking,使得打包的整体体积变小了;在兼顾vue2的options API的同时还推出了composition API,大大增加了代码的逻辑组织和代码复用能力;采用proxy替换了之前的defineProperty,proxy有多达13种拦截方法;增加了

    2023年04月09日
    浏览(7)
  • nuxt3项目使用pdfjs-dist预览pdf

    nuxt3项目使用pdfjs-dist预览pdf

    使用的包的源代码是 pdfjs - npm 但是我们实际上项目中使用的是pdfjs打包后的dist文件,也就是pdfjs-dist - npm 所以我们需要使用这个命令 我们可以克隆pdfjs这个包来看源代码,里面有使用的例子,也可以根据源代码自己打包生成你想要的版本的pdfjs-dist,官方文档强调了对于新旧

    2024年02月09日
    浏览(8)
  • Nuxt3项目中的问题汇总-刷新页面useFetch无返回

    Nuxt3项目中的问题汇总-刷新页面useFetch无返回

    坑有千千万,汇总下目前的解决办法,也因为对框架的不够深入,掌握得有限,大家有更好的,请指教【抱拳】 浏览器刷新的时候页面没有显示数据,接口data无返回。本身nuxt的useFetch在参数不变的情况下,数据是不会重新从后台接口去请求数据的,会直接拿上一次的结果。

    2024年02月11日
    浏览(8)
  • Nuxt3打包部署到Linux(node+pm2安装和运行步骤+nginx代理)

    Nuxt3打包部署到Linux(node+pm2安装和运行步骤+nginx代理)

    最近,我们项目组的工作接近尾声,需要把项目部署上线。由于前端第一次使用Nuxt3框架,后端也是第一次部署Nuxt3项目,所以刚开始出现了很多问题。在我上网搜索很多教程后,得到了基本的流程。 1.服务器安装node.js环境 Nuxt3官方文档 https://nuxt.com/docs/getting-started/installati

    2024年02月11日
    浏览(7)
  • nuxt3 + pinia + swiper +element-plus + less + 腾讯地图 创建项目及使用

    nuxt3 + pinia + swiper +element-plus + less + 腾讯地图 创建项目及使用

    在 nuxt3-app 目录下下载依赖 运行 再访问 http://localhost:3000 即可看到基础界面了 (刚搭建的项目啥文件夹都没有,这里面基本都是我自己创建的。) assets ,存放一些静态资源,包括一些 Sass、Less ,在项目组件中引用的时候需要在开头使用 ~assets/ 符号,如果你的静态资源文件

    2023年04月09日
    浏览(9)
  • Docker容器化部署若依微服务ruoyi-cloud项目

    Docker容器化部署若依微服务ruoyi-cloud项目

    接下来的内容以 Ubuntu 22.04.1 操作系统为例。 验证版本信息 Note: 在 CentOS7 上使用上述 yum 方式安装的 Docker ,默认自带了Docker Compose Plugin,不过命令是 docker compose 。 docker pull docker run docker images docker ps docker logs docker start docker stop docker restart docker rmi docker rm docker exec docker netwo

    2024年02月04日
    浏览(9)
  • NUXT3项目安装依赖运行后报错 require() of ES Module xxxxx not supported.

    部署nuxt3项目(VUE3),使用cnpm i 和yarn install安装完依赖,报错如下: Cannot start nuxt: require() of ES Module /www/wwwroot/xxx/node_modules/escape-string-regexp/index.js from /www/wwwroot/xxx/node_modules/@babel/highlight/node_modules/chalk/index.js not supported. 误打误撞补上这句就好了: yarn add babel-node babel-node 版本

    2024年02月13日
    浏览(5)
  • Nuxt - 项目打包部署及上线到服务器流程(SSR 服务端渲染)

    网上大部分关于 Nuxt 打包部署教程真的是可以用五花八门来形容,这对于第一次接触的朋友简直是无从下手。 本文将尽可能详细的描述,打包部署及上线到服务器完整流程。 强烈建议您打开 官方文档,与本教程对照着,这有助于您更好的理解。 您需要先了解一下 Nuxt 命令及

    2024年02月09日
    浏览(10)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包