记录:nuxt3项目使用docker部署在华为云上

购买华为云服务器

配置

付费模式

image-20240514100751274

硬件

image-20240514100833326

操作系统

image-20240515104651134

网络配置

image-20240514101126668

image-20240514101138055

高级配置

image-20240515093631584

记录密码,后续远程登录时要用。

确认配置

image-20240514101520005

服务器安装docker

远程登录

image-20240514101719060

安装yum工具

yum install -y yum-utils \
           device-mapper-persistent-data \
           lvm2 --skip-broken

image-20240514102553996

然后更新本地镜像源:

yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo

yum makecache fast

docker

docker版本:

CE( Community Edition)是社区版,简单理解是免费使用,提供小企业与小的IT团队使用,希望从Docker开始,并尝试基于容器的应用程序部署。

EE(Docker Enterprise Edition)是企业版,收费。提供功能更强。适合大企业与打的IT团队。为企业开发和IT团队设计,他们在生产中构建、交付和运行业务关键应用程序

安装docker

yum install -y docker-ce

image-20240514103152379

系统启动时自动启动docker

systemctl enable docker

启动docker

systemctl start docker 

配置docker镜像加速

docker官方镜像仓库网速较差,我们需要设置国内镜像服务:

参考阿里云的镜像加速文档:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

项目打包

nuxt3项目打包

npm run build

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

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

查看开发所用的 node 版本

image-20240514104518281

新建dockerfile

image-20240514142710386

编写dockerfile

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

image-20240514105724143

打包项目

使用7-zip把public、server、dockerfile、nitro.json都压缩到nuxt.tar

image-20240514125935332

在服务器home目录下创建web文件夹

image-20240514130020178

上传到服务器

image-20240514130036487

转到web目录下

cd /
cd home/web
ls

image-20240514130220214

解压tar文件

tar -xvf nuxt.tar

image-20240514130450877

构建镜像

名称为group_web

docker build -t group_web .

使用以下命令查看是否创建成功

docker images

image-20240514132050509

创建容器

创建一个运行该镜像的容器,命名为my_group_web,并映射端口(服务器端口:容器端口)

docker run --name my_group_web -d -p 9020:3000 group_web

查看容器

docker ps //正在运行的容器
or
docker ps -a //所有容器

访问项目

地址:公网ip:9020

如果打不开请检查服务器安全组
image-20240514144636841

选中WebServer,嫌麻烦直接选中FullAccess,然后再次访问即可。

image-20240514144700411

进入安全组:

image-20240514144408471

配置规则

image-20240514144442604

添加规则即可

image-20240514144511788

更新项目

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

查看容器

docker ps

停止容器

docker stop my_group_web

删除容器

docker rm -f my_group_web

查看是否删除成功

docker ps -a

删除镜像

docker rmi -f group_web

进入home/web

cd /
cd home/web

删除文件和文件夹

rm * -rf

重新执行项目打包步骤

参考自

如何用docker容器部署nuxt3项目_docker 部署nuxt3-CSDN博客

  • 10
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值