nuxt docker 运行

nuxt 是vue 版的next ,实现的功能还是很方便的,对于需要开发性能要求比较高的web app
是一个很不错的选择
备注: 项目很简单,使用docker && docker-compose 运行,同时对于静态页面的处理使用了
docker 的多阶段处理,通过nginx 提供服务,服务端的运行模式使用了pm2 工具

nuxt 环境准备

基本项目,很简单,使用的create 脚手架

  • 初始化项目
    注意选择参数使用了静态页面的,同时使用yarn 进行管理
 
yarn create nuxt-app demoapp 
  • 添加pm2 配置
    可以通过安装pm2 工具生成
    pm2 init
 
module.exports = {
  apps : [{
    name: 'nuxt app deploy',
    script: 'yarn start',
    instances: 1,
    autorestart: true,
    watch: false,
    max_memory_restart: '1G',
    env: {
      NODE_ENV: 'production'
    },
    env_production: {
      NODE_ENV: 'production'
    }
  }]
};
 
 

docker 环境配置

  • dockerfile
    支持多种
    服务器端运行模式:
 
FROM node:alpine
WORKDIR /app
COPY . /app
RUN yarn global add pm2
LABEL NORE="just for test"
ENV NODE_ENV=production
ENV HOST 0.0.0.0
LABEL AUTHOR="1141591465@qq.com"
EXPOSE 3000
RUN yarn && yarn build
CMD [ "pm2-runtime", "start", "ecosystem.config.js" ]
 
 

静态网站运行模式:

FROM node:alpine as build
WORKDIR /app
COPY . /app
RUN yarn global add pm2
LABEL NORE="just for test"
ENV NODE_ENV=production
ENV HOST 0.0.0.0
LABEL AUTHOR="1141591465@qq.com"
EXPOSE 3000
RUN yarn && yarn build && yarn generate
FROM openresty/openresty:alpine
LABEL AUTHOR="1141591465@qq.com"
COPY --from=build /app/dist/ /usr/local/openresty/nginx/html/
COPY nginx.conf usr/local/openresty/nginx/conf/
EXPOSE 80
 
 
  • docker-compose 文件
 version: "3"
 services:
    ssr:
      build:
        context: ./
        dockerfile: ./Dockerfile
      ports:
      - "3000:3000"
    static:
      build:
        context: ./
        dockerfile: ./Dockerfile-static
      ports:
      - "8080:80"
 
 

构建&&启动

  • 构建
docker-compose build
 
  • 启动
docker-compose up -d
  • 访问效果

说明

注意pm2 docker 运行应该使用pm2-runtime 命令

参考资料

https://github.com/rongfengliang/nuxt-docker-running
https://nuxtjs.org/guide/installation
https://pm2.io/doc/en/runtime/overview/

posted on   荣锋亮  阅读(2760)  评论(0编辑  收藏  举报

编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示