【Nuxt3学习】7. Docker部署

1,756 阅读1分钟

源码地址: github.com/xbmlz/nuxt-…

修改package.json,增加start命令

{
  "private": true,
  "scripts": {
    "build": "nuxt build",
    "dev": "nuxt dev",
    "preview": "nuxt preview",
    "start": "node .output/server/index.mjs",
    "generate": "nuxi generate"
  },
  "dependencies": {
    "@element-plus/icons-vue": "^1.1.4",
    "@nuxtjs/axios": "^5.13.6",
    "element-plus": "^2.2.0",
    "pinia": "^2.0.14",
    "vue": "^3.2.33"
  },
  "devDependencies": {
    "@iconify/vue": "^3.2.1",
    "@pinia/nuxt": "^0.1.9",
    "@vueuse/nuxt": "^8.4.2",
    "@windicss/plugin-animations": "^1.0.9",
    "nuxt": "3.0.0-rc.3",
    "nuxt-windicss": "^2.3.1",
    "sass": "^1.51.0"
  }
}

编写Docker部署脚本

新增Dockerfile文件如下

FROM node:14-alpine

RUN mkdir -p /app

WORKDIR /app

COPY package.json /app/

RUN RUN npm i --registry=https://registry.npm.taobao.org

RUN npm run build

COPY ./.output /app/.output

EXPOSE 9000

ENTRYPOINT ["npm", "run", "start"]

新增docker-compose.yml文件如下

version: "3"
services:
  service_nuxt:
    image: nuxtapp:0.0.0 
    container_name: nuxtapp
    build:
      context: ./
    ports:
      - "3000:3000"
    environment:
      - TZ: Asia/Shanghai

启动容器

docker-compose up -d --build

停止容器

docker-compose stop