温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎样用脚本部署应用

发布时间:2026-11-08 20:26:37 来源:亿速云 阅读:92 作者:小樊 栏目:系统运维

“用脚本部署应用”可以按场景和技术栈分成几种常见做法。下面给你一个通用、可落地的思路,再给几个示例脚本,你可以直接改着用。


一、部署脚本的核心思路

不管用什么技术,部署脚本一般做这几件事:

  1. 拉代码 / 传包
  2. 安装依赖
  3. 构建(可选)
  4. 停旧服务
  5. 启动新服务
  6. 健康检查
  7. 回滚(可选但重要)

二、最基础的 Shell 部署脚本(适合单机)

示例:部署一个 Java / Node / Python 应用

#!/bin/bash

APP_DIR=/opt/myapp
BACKUP_DIR=/opt/myapp_backup
PORT=8080

echo "==> 停止旧服务"
pkill -f myapp || true

echo "==> 备份旧版本"
rm -rf $BACKUP_DIR
cp -r $APP_DIR $BACKUP_DIR

echo "==> 更新代码"
cd $APP_DIR
git pull

echo "==> 安装依赖"
npm install   # 或 pip install -r requirements.txt

echo "==> 启动服务"
nohup node index.js > app.log 2>&1 &

echo "==> 等待启动"
sleep 5

curl -f http://localhost:$PORT/health && echo "部署成功" || echo "部署失败"

✅ 优点:简单
❌ 缺点:不适合大规模、多机


三、用 Docker 部署(推荐)

1️⃣ 构建镜像

docker build -t myapp:1.0 .

2️⃣ 部署脚本

#!/bin/bash

docker stop myapp || true
docker rm myapp || true

docker run -d \
  --name myapp \
  -p 8080:8080 \
  --restart always \
  myapp:1.0

✅ 好处:环境一致、回滚快
✅ 适合 90% 场景


四、Docker Compose 部署

docker compose pull
docker compose up -d

docker-compose.yml 示例:

services:
  app:
    image: myapp:1.0
    ports:
      - "8080:8080"
    restart: always

五、多台服务器(用 SSH 批量部署)

for host in 192.168.1.10 192.168.1.11; do
  ssh user@$host <<'EOF'
    cd /opt/myapp
    git pull
    docker compose up -d
EOF
done

六、进阶:CI/CD 自动部署

常见组合:

  • Git + GitHub Actions / GitLab CI
  • 推代码 → 自动构建 → 自动部署

示例(GitHub Actions):

name: Deploy

on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - run: |
          ssh user@server <<'EOF'
            cd /opt/myapp
            git pull
            docker compose up -d
          EOF

七、你适合哪种?

场景 推荐方式
学习 / 单机 Shell 脚本
小项目 Docker
多服务 Docker Compose
多机器 Ansible / CI
生产级 K8s + CI/CD

如果你愿意,可以告诉我:

  • 什么语言(Java / Node / Python / Go)
  • 单台还是多台服务器
  • 是否用 Docker
  • 手动还是自动触发

我可以直接帮你写一份可用的部署脚本。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手