用途:在本地用 Docker 拉起完整的 OpenMetadata 技术栈,用于在 UI 中测试连接器。当用户要求“test locally”“start docker”“deploy locally”“test in the UI”“bring up the stack”或“run local docker”时启用。
参数:--skip-maven 或 --fast 跳过 Maven 构建(仅 ingestion 的 Python 代码有改动时用);--rebuild 先销毁已有容器再重建;--teardown 或 --down 仅停止并删除容器;不带参数时自动检测改动并选择最优构建策略。
主要流程:先处理 teardown(cd docker/development && docker compose down -v);检查 Docker、docker compose、是否位于仓库根目录;激活环境(source env/bin/activate);始终运行 make generate,失败时用 make install_dev generate;用 git diff 判断是否可跳过 Maven(仅 ingestion/ 改动或无 spec/service/ui 改动可跳过;改 JSON Schema、Java 服务、UI 或首次构建需全量);检查已运行容器并询问重建或直接打开 UI;执行构建。全量:./docker/run_local_docker.sh -m ui -d mysql -s false -i true -r true;快速:./docker/run_local_docker.sh -m ui -d mysql -s true -i true -r false。
健康检查:curl http://localhost:8585/api/v1/system/version 与 http://localhost:9200。运行后服务为 UI http://localhost:8585、Airflow http://localhost:8080(admin / admin)、Elasticsearch http://localhost:9200、MySQL localhost:3306。
限制与排查:Docker 内存需至少 6GB;连接器不在下拉框、测试连接失败、容器无法启动或构建失败时,需查 schema 注册、ingestion 日志、端口占用,并可用 docker compose down -v 与 docker system prune -f 全量重置,或先 make py_format、mvn spotless:apply 再重建。构建耗时全量约 5-8 分钟,快速约 2-3 分钟。