# wandoubaba的技术文档

wandoubaba是一位很老的PHP程序员，他不是大牛却很喜欢研究程序，随着时间一点一点的积累了一些些技术资料，包括PHP、Docker、Worker(Webman)、RabbitMQ、FreeSWITCH、GoLang、Kubernete(k8s)等等。

## 系统依赖

- docker
- node（npm、npx）

## 项目结构

- `server.sh`：用于管理 Docker 容器的脚本。
- `build.sh`：用于构建 Docker 镜像的脚本。
- `Dockerfile`：定义了 Docker 镜像的构建过程。
- `.env`：环境变量配置文件，用于存储容器和镜像的相关信息。

## 功能介绍

### server.sh

`server.sh` 脚本用于管理 VitePress 文档网站的 Docker 容器。它支持以下操作：

- **start**：启动 VitePress 文档容器，如果容器已存在且正在运行，则会提示相应消息。
- **stop**：停止并删除正在运行的 VitePress 文档容器。
- **restart**：重启容器，包括构建新的镜像和替换容器。
- **clear**：清理容器及其所有同名镜像，执行前会请求用户确认。

#### 使用方法

```bash
./server.sh start    # 启动容器
./server.sh stop     # 停止并删除容器
./server.sh restart   # 构建新镜像并重启容器
./server.sh clear    # 清理容器和所有同名镜像，需确认
```

### build.sh

`build.sh` 脚本用于构建 `Docker` 镜像。它读取 `Dockerfile` 并根据定义的步骤构建出适用于 `VitePress` 文档的网站镜像。该脚本在开始时会检查必要的文件和依赖环境，确保镜像构建的成功。

### Dockerfile

`Dockerfile` 用于定义 `Docker` 镜像的结构和行为。它指定了基础镜像、安装依赖、复制源代码以及设置启动命令等步骤。该文件是构建 `VitePress` 镜像的基础，`build.sh` 会利用它来生成最终镜像。

### .env 文件

`.env` 文件用于存储环境变量，包括容器名称、镜像名称和标记等。通过在 `server.sh` 和 `build.sh` 脚本中加载这些变量，可以灵活管理镜像和容器信息。例如，您可以在 `.env` 文件中定义以下变量：

```dotenv
CONTAINER_NAME=my-vitepress-docs
IMAGE_NAME=my-vitepress-image
IMAGE_TAG=latest
```

这些信息在容器管理和镜像构建过程中被引用，以确保操作一致性。

## 总结

本项目通过脚本和 Docker 自动化了 VitePress 文档的管理、构建和部署过程，使得文档开发的流程更加高效。您只需根据提供的使用说明即可轻松启动和管理您的文档项目。

如有任何问题，欢迎提问或提交问题反馈。
