138 lines
3.4 KiB
Markdown
138 lines
3.4 KiB
Markdown
# 在线商城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
|
||
``` |