You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Django+React项目的极简依赖持续部署自动化方案咨询

低依赖自动化部署方案(Django+React)

针对你手动部署的三个步骤,以下是几种最少依赖的自动化实现方案:

方案1:本地Shell脚本(最轻量化)

仅依赖系统自带的Shell环境、Git、AWS CLI(若上传到S3)和Python,无需额外安装复杂工具。

实现步骤:

  1. 创建部署脚本 deploy.sh,写入以下内容(根据你的实际路径修改):
#!/bin/bash

# 1. 拉取最新Django代码
cd /path/to/your/django-project
git pull origin main

# 2. 构建React并上传至AWS
cd /path/to/your/react-project
npm run build
# 若上传到S3:
aws s3 sync ./build s3://your-bucket/static/ --delete
# 若上传到EC2服务器,替换为scp命令:
# scp -r ./build ec2-user@your-ec2-ip:/path/to/django/static/

# 3. 收集静态文件
cd /path/to/your/django-project
python manage.py collectstatic --noinput
  1. 给脚本添加执行权限:
chmod +x deploy.sh
  1. 部署时直接运行脚本:./deploy.sh,若需要定时自动部署,可通过crontab配置定时任务(比如每天凌晨执行)。

方案2:Git Hooks(代码提交后自动触发)

利用Git内置的钩子功能,实现代码提交后自动触发部署流程,无额外依赖,仅需Git和基础工具。

客户端钩子(本地提交后触发)

适合个人开发者本地提交代码后直接部署:

  1. 进入Django项目的.git/hooks目录,创建post-commit文件(删除原有的.sample后缀):
#!/bin/bash

# 构建React并上传
cd /path/to/your/react-project
npm run build
aws s3 sync ./build s3://your-bucket/static/ --delete

# 收集Django静态文件
cd /path/to/your/django-project
python manage.py collectstatic --noinput
  1. 添加执行权限:chmod +x post-commit
    此后每次本地执行git commit后,钩子会自动运行部署步骤。

服务器端钩子(代码Push到远程仓库后触发)

适合团队协作场景,代码推送到远程Git服务器后自动部署:

  1. 在远程Git服务器的仓库目录下,进入hooks文件夹,创建post-receive文件:
#!/bin/bash

DEPLOY_DIR="/path/to/production/django-project"
REACT_DIR="/path/to/production/react-project"

# 拉取最新代码到部署目录
cd $DEPLOY_DIR
git pull origin main

# 构建React并上传
cd $REACT_DIR
npm run build
aws s3 sync ./build s3://your-bucket/static/ --delete

# 收集静态文件
cd $DEPLOY_DIR
python manage.py collectstatic --noinput
  1. 添加执行权限:chmod +x post-receive
    此后团队成员推送代码到远程仓库时,服务器会自动执行部署流程。

方案3:AWS CodeBuild极简配置(云原生自动化)

利用AWS原生服务实现自动化,无需本地维护脚本,仅需配置BuildSpec文件和AWS权限。

实现步骤:

  1. 在Django项目根目录创建buildspec.yml文件:
version: 0.2
phases:
  install:
    commands:
      # 安装React依赖
      - npm install --prefix ./react-project
      # 安装Django依赖
      - pip install -r requirements.txt
  build:
    commands:
      # 拉取最新代码
      - git pull origin main
      # 构建React
      - npm run build --prefix ./react-project
      # 上传构建文件到AWS
      - aws s3 sync ./react-project/build s3://your-bucket/static/ --delete
      # 收集静态文件
      - python manage.py collectstatic --noinput
artifacts:
  files:
    - '**/*'
  1. 在AWS控制台创建CodeBuild项目,关联你的Git仓库(GitHub/AWS CodeCommit等),设置触发条件为代码提交到主分支时自动构建。
  2. 配置CodeBuild服务角色权限,确保其能访问S3和执行Git操作。

内容的提问来源于stack exchange,提问作者nerd_geek365

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 09:15:32