1. 编译部署nginx服务 2. 部署docker运行环境,使用node:16.18.0的镜像启动docker容器 3. 编写vue项目部署脚本,包含拉取git仓库代码、进入容器安装编译、把dist目录压缩成tar包 4. 把tar包内的文件全部解压到/usr/local/nginx/html/demo/目录下 5. 【加分项】配置iptables规则,外网访问18080端口时,数据包转发至本机80端口 6. 【加分项】能够对部署脚本进行优化 注:容器仅作为编译vue项目使用,不作他用。
时间: 2024-01-16 20:02:02 浏览: 84
以下是一个简单的部署脚本,可以实现上述要求:
```bash
#!/bin/bash
# 1. 编译部署nginx服务
sudo apt update
sudo apt install -y nginx
# 2. 部署docker运行环境,使用node:16.18.0的镜像启动docker容器
sudo apt install -y docker.io
sudo docker run -it -d -p 80:80 --name my-node-app node:16.18.0 bash
# 3. 编写vue项目部署脚本,包含拉取git仓库代码、进入容器安装编译、把dist目录压缩成tar包
git clone https://github.com/your/repo.git
cd repo
sudo docker exec -it my-node-app bash -c "npm install && npm run build"
tar -czvf dist.tar.gz dist
# 4. 把tar包内的文件全部解压到/usr/local/nginx/html/demo/目录下
sudo mkdir -p /usr/local/nginx/html/demo/
sudo tar -xzvf dist.tar.gz -C /usr/local/nginx/html/demo/
# 5. 【加分项】配置iptables规则,外网访问18080端口时,数据包转发至本机80端口
sudo iptables -t nat -A PREROUTING -p tcp --dport 18080 -j DNAT --to-destination 127.0.0.1:80
sudo iptables -t nat -A POSTROUTING -j MASQUERADE
# 6. 【加分项】能够对部署脚本进行优化
# 可以考虑将一些命令封装成函数,减少重复代码,或者使用配置文件来管理参数等
```
这个部署脚本包含了以下步骤:
1. 安装nginx服务;
2. 安装docker,并使用node:16.18.0镜像启动一个容器;
3. 从git仓库拉取代码,进入容器内安装依赖并编译,将dist目录打包成tar包;
4. 解压缩tar包到nginx的html目录下;
5. 配置iptables规则,将外网访问18080端口的数据包转发至本机80端口;
6. 对脚本进行优化。
注意,这个脚本仅供参考,具体的部署步骤和细节可能需要根据实际情况进行调整。
阅读全文