Docker Compose生成器

本地处理
  • 打赏支持
  • 分享链接
  • 反馈建议
勾选需要的服务,生成的是 compose.yaml(compose 规范文件)。数据库类服务会自动带数据卷持久化与健康检查,Web 运行时服务会通过 depends_on 等待数据库就绪,避免启动时连不上库而反复重启。

工具说明

本地开发环境最容易出问题的不是代码,而是环境起不来:数据库还没就绪应用就开始连、数据没挂卷重启就丢、端口撞车。本工具把这几件事在生成的配置里一次性处理好——数据卷持久化、健康检查、启动依赖顺序都写进去了。

几个默认约定

  • 数据卷:数据库与消息队列类服务自动挂载命名卷,容器重建数据不丢。
  • 健康检查:数据库类服务带 healthcheck,Web 运行时通过 depends_on 的 condition 等它真正就绪,而不是等容器启动。
  • 端口:主机端口从你设定的起始值依次分配,避免与常用端口冲突;容器内端口保持各服务镜像的默认值。
  • 凭据:数据库密码默认走环境变量,方便在 .env 文件里覆写,不要把生产凭据写进这个文件。

生成之后怎么用

  1. 把内容保存为项目根目录的 compose.yaml。
  2. 同目录新建 .env,把密码类变量覆盖成自己的值。
  3. 执行 docker compose up -d 后台启动,用 docker compose logs -f 看日志。
  4. 停止并保留数据用 docker compose down;连数据一起清掉加 -v 参数。

安全提醒

生成的文件里出现的密码只是占位示例。请勿把真实密码提交到代码仓库;本地开发建议用 .env 加 .gitignore 的组合,生产环境请使用密钥管理服务。

你可能还想问

depends_on 加了健康检查条件,为什么应用还是连不上数据库?

健康检查只能保证数据库进程在接受连接,不能保证初始化脚本已经跑完。首次启动时数据库要建库建表,可能比健康检查通过的时间更晚。稳妥的做法是在应用侧做重试连接(指数退避几次),而不是完全依赖编排顺序。

数据卷删不掉是怎么回事?

命名卷由 Docker 管理,不随容器删除而消失,这是设计如此——正是为了保住数据。要彻底清理,用 docker compose down -v 会在停止容器的同时删除卷。注意这一步不可逆,执行前确认数据确实不需要了。

主机端口被占用怎么办?

改主机端口即可。生成配置时主机端口从你设定的起始值依次分配,避开常见冲突;如果某个端口已被本机其它程序占用,换成别的数字就行,容器内端口不用改,所以容器之间互相访问的地址不受影响。

能直接用于生产环境吗?

不建议。这份配置面向本地开发与测试:密码走环境变量不够安全、没有配置资源限制与日志轮转、也没有做多副本与滚动更新。生产环境请使用编排平台或云托管服务,并补齐密钥管理、资源配额、监控告警与备份策略。

相关工具

编程开发
Docker / K8s 命令速查

Docker、Docker Compose 与 Kubernetes(kubectl)常用命令速查表,按镜像、容器、网络、存储、Pod、Deployment 等场景分组,支持关键词搜索与一键复制,容器运维与 K8s 排障随手可查。

编程开发
.gitignore生成器

.gitignore 生成器:按语言、框架、编辑器、操作系统与项目类型勾选,自动合并去重生成规范的 .gitignore 文件,覆盖 Node、Python、Java、Go、Rust、PHP、Vue、Django、Spring 等主流组合,并附常用排除规则说明。

编程开发
国内开源镜像源导航

收录PyPI/Docker/Maven/npm等常用镜像站,支持一键复制多类配置

编程开发
SQL转Java代码

将SQL语句转换为Java JDBC PreparedStatement、MyBatis XML Mapper、Spring Data JPA Repository代码,支持SELECT/INSERT/UPDATE/DELETE自动识别

编程开发
CSS Flexbox生成器

CSS Flexbox生成器 - 可视化配置flex-direction、justify-content、align-items等属性,实时预览生成CSS代码

编程开发
WebSocket测试

在线WebSocket客户端,连接测试、消息收发、实时调试,支持ws/wss协议

编程开发
变量命名助手

camelCase/PascalCase/snake_case/kebab-case命名风格互相转换,支持中文描述生成英文变量名

编程开发
SQL建表语句生成器

SQL 建表语句生成器:可视化设计字段名、类型、长度、主键、自增、非空、默认值与注释,一键生成规范的 MySQL CREATE TABLE 语句,附索引定义、引擎与字符集设置。无需手写 DDL,避免漏写字符集导致中文乱码。