# 在线商城PHP项目 ## Git 分支策略 | 环境 | 推荐分支 | 备选分支 | 说明 | |------|----------|----------|------| | local | `dev` | `develop` | 本地开发环境 | | development | `dev` | `development` | 开发测试环境 | | test | `test` | `staging` | 测试环境 | | staging | `staging` | `pre-release` | 预发布环境 | | production | `master` | `main` | 生产环境 | **部署建议**: - 每个环境部署前请先切换到对应的Git分支 - 确保代码版本与目标环境匹配 - 生产环境部署前建议先在staging环境验证 ## Docker 部署 ```bash cp .env.example .env.development ``` **注意** - 在同一目录下面,执行 `docker-compose` 命令时,需要指定项目名称。用来区分不同的环境。如 `shop_local`、`shop_dev` 等。 - 本地部署时,需要将 `APP_ENV` 设置为 `local`。 - 开发环境部署时,需要将 `APP_ENV` 设置为 `development`。 ## 环境变量 - `APP_ENV`: 应用环境,默认值为 `development`。 ## 开发环境-local 部署 **对应Git分支**: `main` 或 `develop` ```bash # 切换到本地开发分支 git checkout main # 或 develop # 本地部署时,需要将 APP_ENV 设置为 local, 并指定 docker-compose.local.yml 文件 docker-compose --env-file .env.local -f docker-compose.local.yml up -d # docker-compose --project-name shop_local --env-file .env.local -f docker-compose.local.yml up -d # docker-compose down 命令,用来停止并删除容器 docker-compose -f docker-compose.local.yml down -v # docker-compose --project-name shop_local down -v ``` ## 开发环境-development 部署 **对应Git分支**: `dev` 或 `development` ```bash # 切换到开发分支 git checkout dev # 或 development # 默认使用 docker-compose.yml 文件 docker-compose --project-name shop_development --env-file .env.development up -d # docker-compose down 命令,用来停止并删除容器 docker-compose --project-name shop_development down -v ``` ## 开发环境-test 部署 (测试环境) **对应Git分支**: `test` 或 `staging` ```bash # 切换到测试分支 git checkout test # 或 staging # 默认使用 docker-compose.yml 文件 docker-compose --project-name shop_test --env-file .env.test up -d # docker-compose down 命令,用来停止并删除容器 docker-compose --project-name shop_test down -v ``` ## 开发环境-staging 部署(预发布环境) **对应Git分支**: `staging` 或 `pre-release` ```bash # 切换到预发布分支 git checkout staging # 或 pre-release # 默认使用 docker-compose.yml 文件 docker-compose --project-name shop_staging --env-file .env.staging up -d # docker-compose down 命令,用来停止并删除容器 docker-compose --project-name shop_staging down -v ``` ## 生产环境-production 部署 **对应Git分支**: `master` 或 `main` 或 `production` ```bash # 切换到生产分支 git checkout main # 确保代码是最新的生产版本 git pull origin main # 默认使用 docker-compose.yml 文件 docker-compose --project-name shop_production --env-file .env.production up -d # docker-compose down 命令,用来停止并删除容器 docker-compose --project-name shop_production down -v ``` ## 便捷部署脚本 ### 环境切换与部署脚本 - `deploy.sh` 脚本: ### 使用方法 ```bash # 赋予执行权限 chmod +x deploy.sh # 部署到开发环境 ./deploy.sh development # 部署到测试环境 ./deploy.sh test # 部署到生产环境 ./deploy.sh production ```