Skip to content

xiaoyu98628/docker

Repository files navigation

一个用于构建与快速启动多种服务的 Docker 镜像集合 / Docker Compose 集合

License Build Status

本项目包含多个服务(如 PHP, MySQL, Redis, Nginx 等)的 Dockerfiledocker compose 配置,方便统一构建、部署和本地开发使用。

QQ交流群: 544315207

📦 特性 / 支持服务

  • 多种服务组合:PHP + Nginx + Acme + MySQL + Redis + Elasticsearch + MongoDB + RabbitMQ + …(参见根目录各服务子目录)
  • 支持快速一键构建与启动所有服务
  • 支持按需单独构建 / 单独启动某个服务
  • 统一的 sample 配置模板,包含 .envcompose.sample.yml,方便根据环境变量定制配置

🚀 快速开始

  1. clone 项目
    git clone https://github.com/xiaoyu98628/docker.git
    # 或者
    git clone https://gitee.com/xiaoyu98628/docker.git
  2. 进入项目根目录,复制并改名 compose.yml.env
    cd docker
    cp ./compose.sample.yml ./compose.yml
    cp ./sample.env ./.env
  3. 复制并改名对应镜像的 compose.yml.env
    cp ./镜像名/版本号/compose.sample.yml ./镜像名/版本号/compose.yml
    cp ./镜像名/版本号/sample.env ./镜像名/版本号/.env
    # 例如
    cp ./php/8.2/compose.sample.yml ./php/8.2/compose.yml
    cp ./php/8.2/sample.env ./php/8.2/.env
  4. 在根目录引入你想使用的镜像的 compose.yml
    # 例如
    include :
      - php/8.2/compose.yml
    # ... 其余不变
  5. 启动服务
    # 批量启动
    docker compose up -d [镜像名]
    # 例如
    docker compose up -d
    docker compose up -d php82
    
    #  单独构建
    docker compose build --no-cache [镜像名]
    # 例如
    docker compose build --no-cache
    docker compose build --no-cache php82
    
    # 查看运行日志
    docker compose logs -f [镜像名]
    # 例如
    docker compose logs -f
    docker compose logs -f php82
    
    # 停止并移除服务
    docker compose down [镜像名]
    # 例如
    docker compose down
    docker compose down php82

📦 镜像列表

服务名 版本 说明
Acme acme.sh README.md
Elasticsearch 8.4.0 / 9.1.2 README.md
Etcd 3.5.9
Jenkins 2.4.14
Kibana 8.4.0 / 9.1.2 README.md
Memcached 1
MongoDB 6.0 README.md
Mongo-Express 6.0 README.md
MySQL 8 / 9 README.md
Nginx 1.21 / 1.28 / 1.29 README.md
Node 25
PHP 7.2 / 7.3 / 7.4 / 8.0 / 8.1 / 8.2 / 8.3 / 8.4 / 8.5 README.md
Postgres 18
RabbitMQ 3.11 README.md
Redis 6 / 7 / 8 README.md

🔧 配置说明

  • sample.env / 各服务目录下的 sample.env:环境变量模板,请根据需要修改后改名为 .env
  • compose.sample.yml / 各服务目录下的 compose.sample.ymldocker compose 模板,改名为 compose.yml 后即可使用
  • 各服务镜像使用独立子目录管理,便于版本控制与组合配置

📚 推荐用途

  • 本地开发环境搭建 — 适合同时启动多服务(Web + DB + 缓存/消息队列等)的复杂系统
  • 多项目隔离 — 不同项目可选不同服务组合
  • 快速试验 / 调试 / PoC/原型开发

🛠️ 维护范围

  • 持续跟进常用基础服务的主流版本,补充或更新对应的 Dockerfile、compose.sample.ymlsample.env
  • 通过 GitHub Actions 对部分镜像构建进行自动化验证,降低配置变更带来的回归风险
  • 统一服务目录、环境变量、端口、volume、日志和配置文件组织方式,方便开发者按需组合
  • 优先避免将敏感配置提交到版本控制,并在模板中保留可替换、可本地化的示例配置

🗺️ Roadmap

  • 完善更多服务版本的 CI 构建测试,逐步覆盖现有 Dockerfile 与 Compose 模板
  • 增加 Dockerfile、Compose、.env 模板的安全基线检查,减少权限、密钥、端口暴露等风险
  • 补充各服务的独立 README、升级说明和常见问题,降低新用户使用成本
  • 优化多服务组合示例,覆盖 Web、数据库、缓存、消息队列、搜索和证书签发等常见开发场景

✅ 已知注意事项 & 推荐实践

  • 本项目镜像通常基于轻量基础镜像(如 Alpine / 官方 PHP‑FPM),构建时遵循 Dockerfile 最佳实践,例如避免 root 运行、减少层数、合理缓存构建依赖等。
  • 如果你以后用于生产部署,建议对 compose / Dockerfile 做必要安全性与性能优化,例如只运行必要服务、做权限降级、为持久化数据挂载 volume 等。
  • 推荐对 .env / 配置文件加入 .gitignore,避免将敏感配置写入版本控制

🤝 贡献指南

  1. 在根目录创建一个子目录,命名为 <服务名>/<版本>
  2. 在子目录中添加 Dockerfile(如果需要构建镜像) + compose.sample.yml + sample.env
  3. 更新 README,描述新服务用途与注意事项
  4. 提交 PR/Push 即可

🙏 致谢

站在巨人的肩膀上。我们衷心感谢以下项目:

📝 License

Apache-2.0

Star History Chart

About

存放各种docker image构建脚本或者快速启动的docker-compose文件。

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors