使用docker 部署 vitepress

vitepress版本等信息

json 复制代码
{
  "devDependencies": {
    "less": "^4.2.0",
    "markdown-it": "^13.0.2",
    "markdown-it-container": "^3.0.0",
    "markdown-it-mathjax3": "^4.3.2",
    "postcss": "^8.4.31",
    "vite-plugin-svg-icons": "^2.0.1",
    "vitepress": "^1.0.0-rc.24",
    "vitepress-plugin-sandpack": "^1.1.4"
  },
  "dependencies": {
    "element-plus": "^2.4.2",
    "markdown-it-custom-attrs": "^1.0.2",
    "unocss": "^0.57.7",
    "viewerjs": "^1.11.6"
  },
  "engines": {
    "node": ">19"
  }
}
复制代码
node 版本号: 20.9.0

脚本文件

创建核心的3个文件

  • Dockerfile
  • .dockerignore
  • nginx.conf

Dockerfile

Dockerfile 复制代码
FROM node:20.9.0
WORKDIR /app
COPY package.json ./
RUN npm install -g pnpm && pnpm install
RUN echo "依赖安装完成..."
COPY . .

RUN echo '开始build'
RUN pnpm run docs:build
RUN echo '---build 完成---'

FROM nginx:latest

RUN echo '拷贝dist到 nginx目录'
COPY --from=0 /app/dist /usr/share/nginx/html
COPY --from=0 /app/nginx.conf /etc/nginx/conf.d/default.conf

我这里docker 指令 copydist 目录是在根目录, 也就是 npm run docs:build 执行的时候, dist 文件夹 是在项目根目录, 默认是生成在 .vitepress/dist, 需要调整一下vitepress的配置文件即可

.vitepress/config.js

js 复制代码
import { defineConfig } from 'vitepress'
import { fileURLToPath } from 'node:url'

export default defineConfig({
   // 排除不打包的目录
  srcExclude: ["./source-doc/**", 'README.md', 'Dockerfile', 'nginx.conf', '.dockerignore'],

  // 打包输出目录, 默认是 .vitepress/dist
  outDir: fileURLToPath(new URL('../dist', import.meta.url)),
})

以下内容,不需要copy进docker, 忽略, 上面copy使用的是 copy . . 表示把当前目录所有的文件都copy进设置的工作目录 /app。 这里忽略,就会跳过这些内容

.dockerignore

复制代码
node_modules
.git
scripts
source-doc
README.md
dist

nginx配置

nginx.conf

nginx 复制代码
server {
  listen 80;
  server_name localhost;

  location / {
    root /usr/share/nginx/html;
    index index.html;
    # 对于vue或者React项目,使用 history路由需要
    try_files $uri $uri/ /index.html;
  }

  location = 50x.html {
    root /usr/share/nginx/html;
  }
}

构建镜像

使用 docker 可以直接构建镜像

shell 复制代码
docker build -t vitepress-doc .

启动

shell 复制代码
docker run -itd -p 8001:80 --name vitepress-doc vitepress-doc

打开浏览器地址

arduino 复制代码
http://localhost:8001
相关推荐
老华带你飞16 小时前
校务管理|基于springboot 校务管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·spring
JosieBook16 小时前
【部署】Spring Boot + Vue框架项目生产环境部署完整方案
vue.js·spring boot·后端
爪洼守门员16 小时前
前端性能优化
开发语言·前端·javascript·笔记·性能优化
阿蒙Amon16 小时前
JavaScript学习笔记:4.循环与迭代
javascript·笔记·学习
爱上妖精的尾巴16 小时前
6-3 WPS JS宏 add、delete、size、clear集合成员添加与删除
javascript·wps·js宏·jsa
郑州光合科技余经理16 小时前
海外版生活服务系统源码 | 外卖+跑腿一站式平台技术解析
java·开发语言·javascript·git·spring cloud·php·生活
1024肥宅17 小时前
前端常用模式:提升代码质量的四大核心模式
前端·javascript·设计模式
哆啦A梦158817 小时前
商城后台管理系统 04,商品添加-清空列表
javascript·vue.js·elementui
哆啦A梦158817 小时前
商城后台管理系统 06,类目选择实现
javascript·vue.js·elementui
少年张二狗17 小时前
Vue + Element-UI 图片上传实现拖拽排序功能
前端·vue.js·ui