https://github.com/simoon-f/simon-docker-env
Simon Docker Environment
https://github.com/simoon-f/simon-docker-env
Last synced: 5 months ago
JSON representation
Simon Docker Environment
- Host: GitHub
- URL: https://github.com/simoon-f/simon-docker-env
- Owner: Simoon-F
- Created: 2025-01-04T05:27:48.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-05-30T02:44:51.000Z (about 1 year ago)
- Last Synced: 2025-07-03T18:58:18.620Z (12 months ago)
- Language: Dockerfile
- Homepage:
- Size: 60.5 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README-CH.md
Awesome Lists containing this project
README
# Simon Docker 环境
一个灵活且可定制的 Docker 开发环境。
---
## 功能
- **服务隔离**:每个服务(PHP、Nginx、MySQL、Redis)运行在独立的容器中。
- **可定制的配置**:通过 `.env` 和配置文件配置 PHP、MySQL 和 Redis。
- **版本切换**:轻松切换 PHP 和 MySQL 版本。
- **中国优化**:可选使用国内镜像加速依赖下载。
- **数据持久化**:Redis 和 MySQL 数据保存在 `redis/data` 和 `mysql-data` 目录中。
---
## 前提条件
- [Docker](https://www.docker.com/get-started)
- [Docker Compose](https://docs.docker.com/compose/install/)
---
## 快速开始
### 1. 克隆仓库
```bash
git clone https://github.com/your-username/simon-docker-env.git
cd simon-docker-env
```
### 2. 配置环境变量
将 `.env.example` 重命名为 `.env`,并根据需要更新值:
```env
# 项目目录
APP_CODE_PATH_HOST=../your-project-root
# PHP 版本
PHP_VERSION=8.4
# MySQL 配置
MYSQL_VERSION=8.0
MYSQL_ROOT_PASSWORD=root
MYSQL_DATABASE=mydb
MYSQL_USER=user
MYSQL_PASSWORD=password
# Redis 配置
REDIS_HOST=redis
REDIS_PORT=6379
# phpMyAdmin 配置
PMA_HOST=db
PMA_PORT=3306
# 使用国内镜像(true/false)
USE_CHINA_MIRROR=false
```
### 3. 启动环境
运行以下命令启动所有服务:
```bash
docker compose up -d
```
这将启动:
- **Nginx**:Web 服务器(端口 80)。
- **PHP**:PHP-FPM 服务。
- **MySQL**:数据库服务器(端口 3306)。
- **Redis**:Redis 服务器(端口 6379)。
- **phpMyAdmin**:数据库管理工具(端口 8080)。
---
## 项目结构
```plaintext
simon-docker-env/
├── docker compose.yml
├── nginx/
│ ├── conf.d/
│ │ ├── project1.conf
│ │ ├── project2.conf
│ └── nginx.conf
├── php/
│ └── Dockerfile
├── mysql/
│ └── Dockerfile
├── redis/
│ ├── data/
│ └── redis.conf
├── mysql-data/
├── .env
├── switch-version.sh
├── switch-version.ps1
└── .gitignore
```
---
## 使用方法
### 切换 PHP 或 MySQL 版本
使用提供的脚本切换版本:
**macOS/Linux:**
```bash
./switch-version.sh php 8.3 # 切换 PHP 到 8.3 版本
./switch-version.sh mysql 5.7 # 切换 MySQL 到 5.7 版本
```
**Windows:**
```powershell
.\switch-version.ps1 php 8.3 # 切换 PHP 到 8.3 版本
.\switch-version.ps1 mysql 5.7 # 切换 MySQL 到 5.7 版本
```
### 管理容器
- **启动容器**:
```bash
docker compose up -d
```
- **停止容器**:
```bash
docker compose down
```
- **查看日志**:
```bash
docker logs -f simon_php # 查看 PHP 日志
docker logs -f simon_nginx # 查看 Nginx 日志
docker logs -f simon_db # 查看 MySQL 日志
docker logs -f simon_redis # 查看 Redis 日志
```
- **进入容器**:
```bash
docker exec -it simon_php bash # 进入 PHP 容器
docker exec -it simon_db bash # 进入 MySQL 容器
docker exec -it simon_redis bash # 进入 Redis 容器
```
---
## 自定义环境
### 添加新项目
1. 在 `nginx/conf.d/` 中添加一个新的 Nginx 配置文件(例如 `project2.conf`)。
2. 将你的项目文件放置在 `.env` 中 `APP_CODE_PATH_HOST` 指定的目录中。
3. 重启 Nginx 容器:
```bash
docker compose restart nginx
```
### 使用中国镜像
在 `.env` 文件中设置 `USE_CHINA_MIRROR=true`,以使用国内镜像加速下载。
### 配置文件
- **MySQL** (`mysql/my.cnf`):
```conf
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
```
- **Redis** (`redis/redis.conf`):
```conf
bind 0.0.0.0
port 6379
dir /data
```
- **Nginx** (`nginx/conf.d/project1.conf`):
```nginx
server {
listen 80;
server_name project1.local;
root /var/www/html/project1/public;
...
}
```
---
## 贡献
1. Fork 该仓库。
2. 为你的功能或修复创建一个新分支。
3. 提交 Pull Request。
---
## 许可证
该项目是开源的,遵循 MIT 许可证。
---
## 支持
如果你遇到任何问题或有疑问,请在 GitHub 上提交 Issue 或联系维护者。
享受使用 Simon Docker 环境 的开发体验吧!🚀