Files
shop-platform/README.md

152 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 在线商城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 builder prune -a -f
# 然后再执行无缓存构建和启动
docker-compose --project-name shop_development --env-file .env.development build --no-cache
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 builder prune -a -f
# 然后再执行无缓存构建和启动
docker-compose --project-name shop_test --env-file .env.test build --no-cache
# 默认使用 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
```