Skip to content

fix(docker): 加固 Compose 默认配置 - #783

Merged
zhou-hao merged 2 commits into
2.12from
codex/docker-compose-security
Aug 12, 2026
Merged

fix(docker): 加固 Compose 默认配置#783
zhou-hao merged 2 commits into
2.12from
codex/docker-compose-security

Conversation

@zhou-hao

@zhou-hao zhou-hao commented Aug 12, 2026

Copy link
Copy Markdown
Member

目的

  • 优化 Docker Compose 的 PostgreSQL 认证与生产端口暴露配置
  • 保持原有默认凭据,避免已有部署升级后因默认密码变化无法使用
  • 通过提示引导生产环境覆盖密码,同时保留未配置时可直接启动的体验

核心变动

  • docker/dev-env:PostgreSQL 使用 scram-sha-256,保留 PostgreSQL 5432 和 Redis 6379 端口映射供本地调试
  • docker/run-all:移除 PostgreSQL 5432 和 Redis 6379 宿主机端口映射,仅保留 JetLinks 对外端口
  • 两份 Compose:支持通过环境变量覆盖密码;未配置时沿用原有默认值并可直接启动
  • Redis:使用参数列表传递密码,避免特殊字符被 Shell 解析;健康检查读取容器环境变量
  • 新增 .env.example,并补充 README 部署、密码提示和已有数据迁移说明
  • 基准分支:2.12

设计与测试目标

  • 设计稿:不适用,本次为小范围 Docker 配置与部署文档调整
  • 用户确认:已确认
  • 测试目标:无环境变量可解析、环境变量可覆盖密码、生产数据库与 Redis 端口不发布、SCRAM 配置生效、应用可连接 PostgreSQL 和 Redis
  • 注释 / 公共契约:不适用;已在 Compose 安全边界和密码覆盖处补充配置说明
  • 数据权限:不适用
  • 数据库兼容与性能:不适用;未修改 SQL 或数据库业务逻辑
  • 链路追踪:不适用
  • MBean 运维可观测性:不适用

测试结果

  • docker compose config --quietdocker/dev-envdocker/run-all 均通过
  • Compose JSON 断言:生产 postgresredis 端口均为空;开发环境两个端口均保留;两份 Compose 均为 scram-sha-256
  • 环境变量覆盖:生产 PostgreSQL 密码覆盖后同步出现在 PostgreSQL 和 JetLinks R2DBC 配置中
  • PostgreSQL 连接:临时容器通过 postgres:5432 TCP 密码连接成功,角色密码确认为 SCRAM-SHA-256
  • 应用连接:使用同款 JetLinks 2.11.0-SNAPSHOT 镜像、隔离 PostgreSQL/Redis 和临时测试凭据启动成功,完成 R2DBC 初始化且未出现数据库或 Redis 连接/认证错误
  • git diff --check:通过
  • 单元测试:0 executed;不适用,本次未修改 Java 代码逻辑
  • Maven 集成测试:不适用;已完成 Docker 隔离环境下的应用依赖连接验证
  • 压力测试:不适用
  • 覆盖率:不适用;本次未修改 Java 源代码

文档同步情况

  • 已同步:README.mddocker/dev-env/.env.exampledocker/run-all/.env.example
  • 未同步:无
  • 说明:README 补充生产/开发端口边界、默认值兼容提示及已有 PostgreSQL 数据目录迁移说明

风险与说明

  • 影响范围:Docker Compose 启动配置、standalone 默认连接配置和部署说明
  • 默认凭据:保持原有值;生产环境建议通过 .env 或环境变量覆盖,未配置时仍可直接启动
  • 已有 PostgreSQL 数据目录不会因修改 POSTGRES_PASSWORD 环境变量自动修改数据库密码;如需变更请显式执行密码迁移并同步更新配置
  • 未涉及公共 Java 契约、链路追踪、MBean 或业务 SQL

生产环境不发布 PostgreSQL 与 Redis 端口,统一使用 SCRAM 认证。保留可启动的演示密码并支持通过环境变量覆盖,同时同步部署说明与默认配置。
@zhou-hao
zhou-hao force-pushed the codex/docker-compose-security branch from 1846d7b to 59a0a59 Compare August 12, 2026 03:53
@CLAassistant

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
1 out of 3 committers have signed the CLA.

✅ zhou-hao
❌ zhou-ai-bot
❌ jinqiao0109
You have signed the CLA already but the status is still pending? Let us recheck it.

@zhou-hao
zhou-hao changed the base branch from 2.11 to 2.12 August 12, 2026 03:53
@zhou-hao
zhou-hao merged commit 6198898 into 2.12 Aug 12, 2026
1 of 3 checks passed
@zhou-hao
zhou-hao deleted the codex/docker-compose-security branch August 12, 2026 03:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants