{"id":24033950,"url":"https://github.com/simoon-f/simon-docker-env","last_synced_at":"2026-02-02T22:43:54.973Z","repository":{"id":270945021,"uuid":"911888304","full_name":"Simoon-F/simon-docker-env","owner":"Simoon-F","description":"Simon Docker Environment","archived":false,"fork":false,"pushed_at":"2025-05-30T02:44:51.000Z","size":62,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-03T18:58:18.620Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Simoon-F.png","metadata":{"files":{"readme":"README-CH.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-01-04T05:27:48.000Z","updated_at":"2025-05-30T02:44:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"cb52b283-d3e2-4fb4-aae0-e073292001aa","html_url":"https://github.com/Simoon-F/simon-docker-env","commit_stats":null,"previous_names":["simoon-f/simon-docker-env"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Simoon-F/simon-docker-env","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Simoon-F%2Fsimon-docker-env","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Simoon-F%2Fsimon-docker-env/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Simoon-F%2Fsimon-docker-env/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Simoon-F%2Fsimon-docker-env/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Simoon-F","download_url":"https://codeload.github.com/Simoon-F/simon-docker-env/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Simoon-F%2Fsimon-docker-env/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29022358,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-02T22:20:39.141Z","status":"ssl_error","status_checked_at":"2026-02-02T22:20:37.621Z","response_time":58,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-08T18:56:50.441Z","updated_at":"2026-02-02T22:43:54.927Z","avatar_url":"https://github.com/Simoon-F.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Simon Docker 环境\n\n一个灵活且可定制的 Docker 开发环境。\n\n---\n\n## 功能\n\n- **服务隔离**：每个服务（PHP、Nginx、MySQL、Redis）运行在独立的容器中。\n- **可定制的配置**：通过 `.env` 和配置文件配置 PHP、MySQL 和 Redis。\n- **版本切换**：轻松切换 PHP 和 MySQL 版本。\n- **中国优化**：可选使用国内镜像加速依赖下载。\n- **数据持久化**：Redis 和 MySQL 数据保存在 `redis/data` 和 `mysql-data` 目录中。\n\n---\n\n## 前提条件\n\n- [Docker](https://www.docker.com/get-started)\n- [Docker Compose](https://docs.docker.com/compose/install/)\n\n---\n\n## 快速开始\n\n### 1. 克隆仓库\n\n```bash\ngit clone https://github.com/your-username/simon-docker-env.git\ncd simon-docker-env\n```\n\n### 2. 配置环境变量\n\n将 `.env.example` 重命名为 `.env`，并根据需要更新值：\n\n```env\n# 项目目录\nAPP_CODE_PATH_HOST=../your-project-root\n\n# PHP 版本\nPHP_VERSION=8.4\n\n# MySQL 配置\nMYSQL_VERSION=8.0\nMYSQL_ROOT_PASSWORD=root\nMYSQL_DATABASE=mydb\nMYSQL_USER=user\nMYSQL_PASSWORD=password\n\n# Redis 配置\nREDIS_HOST=redis\nREDIS_PORT=6379\n\n# phpMyAdmin 配置\nPMA_HOST=db\nPMA_PORT=3306\n\n# 使用国内镜像（true/false）\nUSE_CHINA_MIRROR=false\n```\n\n### 3. 启动环境\n\n运行以下命令启动所有服务：\n\n```bash\ndocker compose up -d\n```\n\n这将启动：\n- **Nginx**：Web 服务器（端口 80）。\n- **PHP**：PHP-FPM 服务。\n- **MySQL**：数据库服务器（端口 3306）。\n- **Redis**：Redis 服务器（端口 6379）。\n- **phpMyAdmin**：数据库管理工具（端口 8080）。\n\n---\n\n## 项目结构\n\n```plaintext\nsimon-docker-env/\n├── docker compose.yml\n├── nginx/\n│   ├── conf.d/\n│   │   ├── project1.conf\n│   │   ├── project2.conf\n│   └── nginx.conf\n├── php/\n│   └── Dockerfile\n├── mysql/\n│   └── Dockerfile\n├── redis/\n│   ├── data/\n│   └── redis.conf\n├── mysql-data/\n├── .env\n├── switch-version.sh\n├── switch-version.ps1\n└── .gitignore\n```\n\n---\n\n## 使用方法\n\n### 切换 PHP 或 MySQL 版本\n\n使用提供的脚本切换版本：\n\n**macOS/Linux:**\n```bash\n./switch-version.sh php 8.3       # 切换 PHP 到 8.3 版本\n./switch-version.sh mysql 5.7     # 切换 MySQL 到 5.7 版本\n```\n\n**Windows:**\n```powershell\n.\\switch-version.ps1 php 8.3      # 切换 PHP 到 8.3 版本\n.\\switch-version.ps1 mysql 5.7    # 切换 MySQL 到 5.7 版本\n```\n\n### 管理容器\n\n- **启动容器**:\n  ```bash\n  docker compose up -d\n  ```\n- **停止容器**:\n  ```bash\n  docker compose down\n  ```\n- **查看日志**:\n  ```bash\n  docker logs -f simon_php        # 查看 PHP 日志\n  docker logs -f simon_nginx        # 查看 Nginx 日志\n  docker logs -f simon_db         # 查看 MySQL 日志\n  docker logs -f simon_redis      # 查看 Redis 日志\n  ```\n- **进入容器**:\n  ```bash\n  docker exec -it simon_php bash  # 进入 PHP 容器\n  docker exec -it simon_db bash   # 进入 MySQL 容器\n  docker exec -it simon_redis bash # 进入 Redis 容器\n  ```\n\n---\n\n## 自定义环境\n\n### 添加新项目\n\n1. 在 `nginx/conf.d/` 中添加一个新的 Nginx 配置文件（例如 `project2.conf`）。\n2. 将你的项目文件放置在 `.env` 中 `APP_CODE_PATH_HOST` 指定的目录中。\n3. 重启 Nginx 容器：\n   ```bash\n   docker compose restart nginx\n   ```\n\n### 使用中国镜像\n\n在 `.env` 文件中设置 `USE_CHINA_MIRROR=true`，以使用国内镜像加速下载。\n\n### 配置文件\n\n- **MySQL** (`mysql/my.cnf`):\n  ```conf\n  [mysqld]\n  character-set-server = utf8mb4\n  collation-server = utf8mb4_unicode_ci\n  ```\n\n- **Redis** (`redis/redis.conf`):\n  ```conf\n  bind 0.0.0.0\n  port 6379\n  dir /data\n  ```\n\n- **Nginx** (`nginx/conf.d/project1.conf`):\n  ```nginx\n  server {\n      listen 80;\n      server_name project1.local;\n      root /var/www/html/project1/public;\n      ...\n  }\n  ```\n\n---\n\n## 贡献\n\n1. Fork 该仓库。\n2. 为你的功能或修复创建一个新分支。\n3. 提交 Pull Request。\n\n---\n\n## 许可证\n\n该项目是开源的，遵循 MIT 许可证。\n\n---\n\n## 支持\n\n如果你遇到任何问题或有疑问，请在 GitHub 上提交 Issue 或联系维护者。\n\n享受使用 Simon Docker 环境 的开发体验吧！🚀\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimoon-f%2Fsimon-docker-env","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimoon-f%2Fsimon-docker-env","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimoon-f%2Fsimon-docker-env/lists"}