使用 Docker Compose 部署 Opik:Profile 画像体系、opik.sh 脚本与可观测性配置全指南
使用 Docker Compose 部署 OpikProfile 画像体系、opik.sh 脚本与可观测性配置全指南【免费下载链接】comet-llmDebug, evaluate, and monitor your LLM applications, RAG systems, and agentic workflows with comprehensive tracing, automated evaluations, and production-ready dashboards.项目地址: https://gitcode.com/GitHub_Trending/co/comet-llmOpik 是一个用于调试、评估和监控 LLM 应用、RAG 系统与 Agent 工作流的可观测性平台。本指南围绕仓库中 deployment/docker-compose/README.md 展开系统讲解如何通过 Docker Compose 完成从单机基础设施到完整 Opik 套件含 Guardrails 与 OpenTelemetry 可观测性的部署并结合 docker-compose.yaml、opik.sh 等仓库源码深入剖析其 Profile 画像机制、端口管理逻辑与底层配置原理。读完本文你将能够按需组合启动任意服务组合、自定义版本与端口、暴露数据库端口进行本地联调并开启 Nginx 追踪与日志的 OTLP 采集链路。安装前置条件在开始之前请确保宿主机已安装以下软件详见原文档的安装指引Docker用于运行容器。Docker ComposeV2 及以上用于编排多容器应用。仓库脚本统一使用docker compose命令V2 插件形式并在 opik.sh 中做了兼容检测若 V2 不可用会自动回退到 V1 的docker-compose。一、Compose Profile 画像体系按需组合服务Opik 的 Docker Compose 编排基于Compose Profiles实现不同开发场景的服务组合。理解这套画像体系是使用本部署方案的前提其核心设计在 docker-compose.yaml 中通过每个 service 的profiles字段定义。1.1 五类服务画像Profile包含内容说明默认无 Profile基础设施MySQL、Redis、ClickHouse、ZooKeeper、MinIO 等始终启用任何业务画像都自动依赖它backend基础设施自动 Backend、Python Backend 等后端服务层opik完整 Opik 套件全部基础设施 全部服务默认推荐的全功能组合不含GuardrailsguardrailsGuardrails 服务需与其他画像组合使用即使在全套件中默认也是可选的除非显式启用opik-otel完整 Opik 套件 Jaeger OpenTelemetry Collector面向可观测性场景1.2 画像的使用规则基础设施服务数据库、缓存、对象存储等默认总会启动这与 Compose 对无 Profile 服务的默认行为一致可参考 Docker 官方文档 Using profiles with Compose。任何业务画像backend、opik 等都自动包含基础设施无需显式叠加。多个 Profile 可以叠加使用例如--profile opik --profile guardrails。在 docker-compose.yaml 中可以看到backend、python-backend、frontend等服务的profiles声明与上述画像一一对应backend服务挂载backend、opik、opik-otel三个画像frontend服务挂载opik、local-be、opik-otel三个画像guardrails-backend与guardrails-backend-cpu分别挂载互斥的guardrails与guardrails-cpu画像两者共享guardrails主机名同一时刻只能运行一个。1.3 画像使用示例仅启动基础设施服务不指定 Profile 时的默认行为docker compose up -d启动基础设施 后端服务docker compose --profile backend up -d启动完整 Opik 套件所有基础设施和服务除 Guardrails 外docker compose --profile opik up -d启动后端 Guardrailsdocker compose --profile backend --profile guardrails up -d启动完整 Opik 套件 Guardrailsdocker compose --profile opik --profile guardrails up -d启动完整 Opik 套件 OpenTelemetrydocker compose --profile opik-otel up -d1.4 基础设施服务速览来自 compose 源码从 docker-compose.yaml 可以梳理出基础设施层各服务的镜像与关键配置帮助理解整个栈的依赖关系服务镜像关键配置mysqlmysql:8.4.2数据库opik用户/密码均为opik数据卷持久化到~/opik/mysqlredisredis:7.2.4-alpine3.19通过--requirepass opik设置密码数据卷redis-dataclickhouseclickhouse/clickhouse-server:26.3.16.16-alpine数据库/用户/密码均为opik开启 SQL 驱动的访问控制CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT1依赖 ZooKeeper 与clickhouse-init初始化容器zookeeperzookeeper:3.9.4数据目录使用/bitnami/zookeeper/data以兼容从 Bitnami 镜像升级的场景miniominio/minio:RELEASE.2025-03-12T18-04-18ZS3 兼容对象存储默认密钥可通过MINIO_ROOT_USER/MINIO_ROOT_PASSWORD覆盖mc容器负责创建public桶并设置为匿名下载clickhouse-initalpine:latest一次性初始化容器把 clickhouse_config 目录拷入配置卷并修正属主clickhouse依赖zookeeper与clickhouse-init而backend依次依赖 mysql、clickhouse、minio、redis 全部健康后才会启动整个启动链通过 Compose 的depends_on: condition: service_healthy与各服务的healthcheck严格编排。ClickHouse 的单节点集群定义remote_servers中的cluster与 Helm 部署保持一致见 clickhouse_config/additional_config.xml。二、opik.sh 一键安装脚本更高层的部署入口与其直接敲docker compose命令更推荐使用仓库根目录下的 opik.shWindows 使用 opik.ps1。它本质上是 Compose 命令的封装层负责参数解析、端口计算、容器健康检查与状态横幅输出。2.1 官方支持的选项选项说明--infra仅启动基础设施服务MySQL、Redis、ClickHouse、ZooKeeper、MinIO 等--backend启动基础设施 后端服务--guardrails启用 Guardrails可与其他启动选项组合--build启动前从源码构建镜像--verify检查所有容器是否健康--stop停止所有容器--clean停止所有容器并删除全部 Opik 数据卷警告所有 Opik 数据将丢失--help显示全部可用选项运行./opik.sh --help可查看完整选项列表。2.2 脚本中还存在但文档表格未列出的扩展选项从 opik.sh 源码print_usage函数可以看出脚本还支持以下选项--info仅当所有容器运行时显示欢迎横幅与系统状态--demo-data触发 demo 数据生成假设 backend、python-backend、frontend 等必要服务已在运行--debug开启调试模式输出详细日志--port-mapping通过加载 override 文件为所有容器开启端口映射可与其他选项组合--local-be启动除 backend 外的所有服务用于本地后端开发--local-be-fe仅启动基础设施 Python backend用于本地后端 前端联合开发--guardrails-cpu使用从源码构建的 CPU-only 镜像启用 Guardrails无需 GPU。其中--local-be与--local-be-fe会强制开启端口映射本地进程必须能直连基础设施分别对应 docker-compose.local-be.yaml 与 docker-compose.local-be-fe.yaml 两个 override 文件用于解除 frontend 对 backend 的依赖。此外--infra、--backend、--local-be、--local-be-fe四个画像选项互斥脚本会在同时传入多个时直接报错退出。2.3 脚本的底层行为机制Worktree 端口隔离脚本在启动时 source scripts/worktree-utils.sh 并调用init_worktree_ports。若当前目录位于 Git worktree 中会根据路径哈希计算一个 0~99 的端口偏移量PORT_OFFSET将所有端口整体平移同时设置COMPOSE_PROJECT_NAME形如opik-worktree_id实现多 worktree 并行开发互不冲突主仓库则偏移为 0保持向后兼容。用户也可通过OPIK_PORT_OFFSET手动指定偏移。Compose 命令构造get_docker_compose_cmd会根据所选模式拼装docker compose -p ${COMPOSE_PROJECT_NAME} -f deployment/docker-compose/docker-compose.yaml按需追加-f docker-compose.override.yaml--port-mapping以及对应的--profile参数。健康检查与自动补启start_missing_containers会先docker inspect检查目标容器状态只启动缺失的容器随后以 1 秒间隔轮询健康状态最多重试 60 次全部健康后自动生成~/.opik.config配置文件写入url_override http://localhost:5173/api/与workspace default方便后续 SDK 直接使用。匿名安装上报脚本默认发送匿名安装事件可通过OPIK_USAGE_REPORT_ENABLEDfalse关闭当使用部分画像非完整套件时会自动禁用上报。三、使用官方镜像运行版本控制与基础部署3.1 指定 Opik 版本如需使用特定版本先通过环境变量设置版本号export OPIK_VERSION0.1.10不设置时默认使用latest最新镜像。OPIK_VERSION会被注入所有业务镜像backend、python-backend、frontend、guardrails-backend的 tag例如 docker-compose.yaml 中的ghcr.io/comet-ml/opik/opik-backend:${OPIK_VERSION:-latest}。3.2 标准启动流程从项目根目录进入 compose 目录并启动cd deployment/docker-compose # 可选强制拉取最新镜像 docker compose --profile opik pull docker compose -f docker-compose.yaml --profile opik up -d启动完成后Opik UI 默认通过 Nginx 监听5173端口frontend服务的ports: ${NGINX_PORT:-5173}:${NGINX_PORT:-5173}访问http://localhost:5173即可打开控制台。四、从最新源码构建运行开发模式部署如果想使用仓库最新代码而非发布镜像在up时附加--build即可。Compose 会根据各服务的build.context指向的源码目录构建镜像例如 backend 的构建上下文是 apps/opik-backend使用其 Dockerfilefrontend 对应 apps/opik-frontendpython-backend 对应 apps/opik-python-backend。cd deployment/docker-compose # 可选强制拉取最新镜像 docker compose --profile opik pull # 构建镜像并启动 docker compose -f docker-compose.yaml --profile opik up -d --build # 或者强制拉取最新镜像 构建镜像 docker compose -f docker-compose.yaml --profile opik up -d --build --pull always提示使用./opik.sh --build也可以达到同样的构建启动效果脚本内部会优先探测 Docker Buildx 的 Bake 能力并导出COMPOSE_BAKEtrue以加速镜像构建。五、暴露数据库与后端端口本地联调开发默认情况下业务容器之间的通信通过 Compose 内部网络完成宿主机的 Docker Compose 只暴露了frontend的 5173 端口。若你是开发者需要在宿主机上直接访问数据库或后端端口进行本地测试、调试例如本地运行 SDK 直连 ClickHouse 或 MySQL可以使用仓库提供的 override 文件。5.1 使用 override 文件暴露端口# 可选强制拉取最新镜像 docker compose --profile opik pull docker compose -f docker-compose.yaml -f docker-compose.override.yaml --profile opik up -d5.2 暴露到宿主机后的端口一览服务端口用途Redis6379缓存 / 消息队列ClickHouse8123HTTP、9000Native Protocol分析型数据库ZooKeeper2181ClickHouse 协调服务MySQL3306关系型数据库元数据Backend8080HTTP、3003OpenAPI 规范主后端 APIPython Backend8000HTTPPython 评估执行后端Frontend5173前端 UI这些映射在 docker-compose.override.yaml 中均有定义且每个端口都支持环境变量覆盖例如${MYSQL_PORT:-3306}、${CLICKHOUSE_HTTP_PORT:-8123}、${OPIK_BACKEND_PORT:-8080}等。值得注意的是backend 的端口映射使用了!override标签Compose 合并语义用于显式替换而不是合并基础文件中的 ports 定义。六、限制端口绑定地址安全加固Docker Compose 默认将暴露的容器端口绑定到0.0.0.0这意味着宿主机任意网络接口都能访问这些端口。若要限制访问范围只需在ports段指定具体 IP例如127.0.0.1:8080:80仅允许本机访问。以 docker-compose.yaml 中的frontend服务为例frontend: ports: - 127.0.0.1:5173:5173 # Frontend server port对安全性敏感的自托管部署建议对 MySQL、Redis、ClickHouse 等数据组件同样加上127.0.0.1前缀避免数据库端口直接暴露到外部网络。七、修改前端端口NGINX_PORT 与 OPIK_PORT_OFFSET如果宿主机上的 5173 端口已被占用例如另一个 Vite dev server 或无法迁移的本地应用可以在启动前设置NGINX_PORT环境变量# UI 将可通过 http://localhost:5293 访问 NGINX_PORT5293 ./opik.shNGINX_PORT会被前端容器的端口映射、healthcheck、Nginx 配置以及后端内部反向代理 URL 共同使用具体可见 docker-compose.yaml 中 frontend 服务的ports、healthcheck与NGINX_PORT环境变量以及 Nginx 模板 10-log-formats.conf.template 相关的listen ${NGINX_PORT}渲染逻辑。如果你的目标是将所有 Opik 端口前端、后端、MySQL、Redis 等整体平移相同的增量则使用export OPIK_PORT_OFFSETN该变量会被 scripts/worktree-utils.sh 的calculate_port_offset优先采用若设置了OPIK_PORT_OFFSET则直接返回该值不再按路径哈希计算随后所有端口都以基础端口 偏移量的形式重新计算并导出给 docker-compose。八、本地运行 Backend Docker 运行其余组件Opik 支持本机直接运行后端代码、其余组件全部跑在 Docker的混合开发模式非常适合调试后端时快速热重载。8.1 修改 Nginx 反向代理指向在 nginx_default_local.conf 中将后端上游地址替换为你的 localhosthttp://backend:8080Mac/WindowsDocker Desktop环境替换为http://host.docker.internal:8080Linux 环境替换为 Docker 默认网桥网关地址http://172.17.0.1:8080该文件被 frontend 容器以只读方式挂载为 Nginx 模板见 docker-compose.yaml 中./nginx_${OPIK_FRONTEND_FLAVOR:-default}_local.conf的挂载配置其内部通过upstream backend { server backend:8080 resolve; }与location api { proxy_pass http://backend; }完成/api/前缀的请求转发并额外代理/oauth/、/.well-known/oauth-authorization-server等 OAuth 端点。8.2 启动容器并停掉容器化的 backend# 可选强制拉取最新镜像 docker compose --profile opik pull docker compose -f docker-compose.yaml -f docker-compose.override.yaml --profile opik up -d随后停止 backend 容器本地后端将接管 8080 端口即可在宿主机上直接运行、调试后端代码而前端、数据库、Python backend 等仍由 Docker 提供。九、OpenTelemetry 可观测性追踪与日志采集Opik 提供开箱即用的 OpenTelemetry 可观测性方案通过opik-otel画像同时启动 OpenTelemetry Collector 与 Jaeger用于采集和可视化 traces 与 logs。9.1 一键启动docker compose --profile opik-otel up -d该命令将启动Opik 全栈Frontend、Backend 等OpenTelemetry Collector暴露 4317、4318、5140/udp 等端口JaegerUI 位于http://localhost:16686。从 docker-compose.yaml 可以看出jaeger使用jaegertracing/all-in-one镜像并开放 16686UI、14317OTLP gRPC、14318OTLP HTTP端口otel-collector使用otel/opentelemetry-collector-contrib:0.139.0加载 otel-collector-config.yaml 作为配置并依赖 jaeger 健康后才启动。9.2 开启 Nginx 追踪与日志投递默认情况下 Nginx 的追踪与日志采集是关闭的需要显式开启# 在 Nginx 中启用 OpenTelemetry 追踪 export OTEL_TRACEon # 配置 Nginx 通过 Syslog 将日志投递到 OpenTelemetry Collector export NGINX_EXTRA_ACCESS_LOGaccess_log syslog:serverotel-collector:5140 logger-json; export NGINX_EXTRA_ERROR_LOGerror_log syslog:serverotel-collector:5140 error; # 使用对应画像启动 docker compose --profile opik-otel up -d启用后Nginx Traces发送到 OTel Collector并可在 Jaeger 中查看Nginx Logs通过 syslog 发送到 OTel Collector。9.3 底层的采集链路解析Nginx 侧OTEL_TRACEon会渲染到 Nginx 的 OpenTelemetry 模块见 20-otel.conf.template 中的otel_trace ${OTEL_TRACE};、otel_exporter与otel_service_name opik-frontendlogger-json日志格式定义了包含method、request、status、request_time、otel_trace_id、upstream_response_time等字段的 JSON 结构见 10-log-formats.conf.template其中otel_trace_id让每条日志都能与对应 trace 关联。Collector 侧otel-collector-config.yaml 定义了三条 pipelinetraces接收 OTLP/Jaeger/Zipkin导出到 debug 与otlp/jaeger、metrics接收 OTLP/Prometheus、logs接收 OTLP/syslog。syslog receiver 监听 UDP 5140 端口用正则解析 Nginx 的 access/error 日志并提取消息内容batchprocessor 负责批量发送traces 通过otlp/jaegerexporter 写入 Jaeger。应用侧backend 与 python-backend 容器默认已配置OTEL_EXPORTER_OTLP_ENDPOINT: http://otel-collector:4317等环境变量应用自身的 trace 数据同样汇入 Collector。9.4 停止 Opikdocker compose --profile opik down # 若使用 otel 画像启动则 docker compose --profile opik-otel down十、部署方案小结按需组合利用 Compose Profile 机制默认基础设施 / backend / opik / guardrails / opik-otel自由组合服务且业务画像自动包含基础设施双重入口既可直接使用docker compose --profile xxx up -d也可使用 opik.sh 封装脚本获得健康检查、端口偏移、demo 数据生成等额外能力版本可控通过OPIK_VERSION环境变量固定镜像版本通过--build从源码构建最新代码联调友好override 文件可按需暴露 MySQL/ClickHouse/Redis/Backend 等端口NGINX_PORT与OPIK_PORT_OFFSET解决端口冲突与多 worktree 并行问题可观测性完备opik-otel画像集成 OpenTelemetry Collector 与 Jaeger支持应用 traces、Nginx 追踪与访问/错误日志的一体化采集与可视化。以上所有配置均以当前仓库实际文件为准进一步深入可查阅 docker-compose.yaml、docker-compose.override.yaml、opik.sh 与 otel-collector-config.yaml。【免费下载链接】comet-llmDebug, evaluate, and monitor your LLM applications, RAG systems, and agentic workflows with comprehensive tracing, automated evaluations, and production-ready dashboards.项目地址: https://gitcode.com/GitHub_Trending/co/comet-llm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

TikTok运营数据整理与自动化分析工具实战

TikTok运营数据整理与自动化分析工具实战

1. TikTok运营数据整理的痛点解析作为TikTok运营人员,每天需要处理海量数据:视频表现、粉丝增长、互动趋势、竞品分析...这些数据分散在平台各个角落,手动收集整理耗时耗力。我见过不少团队用Excel表格人工记录,每周要花10-15小时…

2026/9/14 0:07:30 阅读更多 →
PHP-Parser 错误处理深度指南:Error 异常、行列定位与 Collecting 错误恢复机制

PHP-Parser 错误处理深度指南:Error 异常、行列定位与 Collecting 错误恢复机制

PHP-Parser 错误处理深度指南:Error 异常、行列定位与 Collecting 错误恢复机制 【免费下载链接】PHP-Parser A PHP parser written in PHP 项目地址: https://gitcode.com/GitHub_Trending/ph/PHP-Parser 本指南以 PHP-Parser 官方组件文档 Error_handling.…

2026/9/14 0:07:30 阅读更多 →
机载雷达STAP原理与MATLAB实战:空时自适应处理杂波抑制全解析

机载雷达STAP原理与MATLAB实战:空时自适应处理杂波抑制全解析

简介:面向本科、硕士阶段雷达信号处理教研学习的一套MATLAB实现,聚焦机载雷达时空自适应处理(STAP)核心算法,兼顾理论演示、仿真复现与工程实践。资源包含完整运行结果与可视化脚本,可直接在MATLAB 2019a中…

2026/9/14 0:07:30 阅读更多 →

最新新闻

大模型知识表征与逻辑推理机制解析

大模型知识表征与逻辑推理机制解析

1. 大模型知识表征的本质特征大语言模型通过海量文本训练形成的知识表征,本质上是一种高维空间中的分布式表示。这种表示方式与人类大脑的神经表征有相似之处,但存在几个关键差异点:首先,模型的知识存储是隐式的。当我们询问GPT-4…

2026/9/14 0:56:54 阅读更多 →
pyfem弹塑性有限元实现:本构积分与收敛问题解析

pyfem弹塑性有限元实现:本构积分与收敛问题解析

简介:PyFEM 是一套基于 Python 的弹塑性有限元计算程序包,面向力学分析、结构仿真和数值计算学习者,主要解决材料在载荷下的线弹性及塑性变形建模问题,可应用于土木、机械与航空航天等工程场景。压缩包共 88 个文件,包…

2026/9/14 0:56:54 阅读更多 →
STM32 VS Code开发环境搭建:ARM GNU工具链+CMake+OpenOCD调试闭环

STM32 VS Code开发环境搭建:ARM GNU工具链+CMake+OpenOCD调试闭环

1. 为什么STM32开发者正在集体“逃离”Keil,转向VS Code?你手头那块STM32F103C8T6最小系统板,是不是还躺在抽屉里吃灰?不是它不行,而是你用的开发环境——Keil MDK或IAR——正在悄悄拖慢你的节奏。我见过太多工程师&am…

2026/9/14 0:56:54 阅读更多 →
鼎阳SDS7404A H10示波器:10-bit高分辨率与4GHz带宽的工程实践指南

鼎阳SDS7404A H10示波器:10-bit高分辨率与4GHz带宽的工程实践指南

1. 项目概述:这台示波器不是“测电压的盒子”,而是信号世界的显微镜与时间标尺 鼎阳 SDS7404A H10 数字示波器,光看型号就藏着三重关键信息:SDS 是鼎阳科技(Siglent)的示波器产品线代号,7404A 表…

2026/9/14 0:56:54 阅读更多 →
TensorFlow人脸识别全链路实现:从预处理到ArcFace部署

TensorFlow人脸识别全链路实现:从预处理到ArcFace部署

简介:本资源是一套基于Python与TensorFlow框架实现的完整人脸识别系统源代码,面向计算机科学、人工智能及电子工程等专业的高年级本科生、研究生与技术爱好者,适用于课程设计、实验开发与科研原型构建。代码经过充分测试,可直接运…

2026/9/14 0:55:54 阅读更多 →
AI数字人格构建:从内容账号到可生长的拟人化阿凡达

AI数字人格构建:从内容账号到可生长的拟人化阿凡达

1. 项目概述:这不是电影续集,而是一场真实发生的内容进化实验“阿凡达的进击之路”——这六个字乍看像在聊詹姆斯卡梅隆的科幻IP,但实际指向的,是过去三年里中文互联网内容生态中一个悄然成型、却极具代表性的演化现象&#xff1a…

2026/9/14 0:55:54 阅读更多 →

日新闻

AI音乐侵权案中的测试工程与版权保护技术

AI音乐侵权案中的测试工程与版权保护技术

1. 项目概述:当测试工程师遇上AI音乐侵权案去年夏天,我作为技术顾问参与了一起特殊的著作权纠纷案——某音乐平台AI作曲功能被指控批量侵权。这起案件的特殊性在于:原告方并非传统音乐人,而是一家拥有百万级曲库的数字音乐发行商&…

2026/9/14 0:00:26 阅读更多 →
嵌入式面试I2C与SPI深度解析:从协议到量产调试

嵌入式面试I2C与SPI深度解析:从协议到量产调试

1. 这份“高频知识点洞察”到底是什么,又为什么值得你花时间细读? 如果你最近在刷嵌入式开发岗位的招聘JD,或者正坐在工位上改第7版简历,又或者刚被面试官一句“讲讲I2C和SPI的区别”问得手心冒汗——那你不是一个人。过去两年我带…

2026/9/14 0:00:26 阅读更多 →
51单片机开环控制磁阻传感器的硬件匹配与代码实现

51单片机开环控制磁阻传感器的硬件匹配与代码实现

简介:本资源是一份面向嵌入式初学者与单片机课程实践者的51单片机开关磁阻电机(SRM)开环控制教学方案,聚焦磁阻位置检测、固定时序驱动与基础状态可视化。资源包含1个C语言主程序文件(zhuang600.c)实现电机…

2026/9/14 0:00:26 阅读更多 →

周新闻

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and ag…

2026/9/13 0:00:24 阅读更多 →
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitH…

2026/9/14 0:52:26 阅读更多 →
Flutter应用改名全指南:从Android到iOS的配置与工具实践

Flutter应用改名全指南:从Android到iOS的配置与工具实践

刚接一个外包项目时,甲方要求把工程里临时用的应用名改成正式产品名。我本来觉得“改名”这种小事,打开配置文件改一行不就完了?结果真动手才发现,Flutter项目里“应用名称”根本不是一处配置,而是一整套散落在 Androi…

2026/9/14 0:06:41 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/13 16:51:11 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/12 18:29:34 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/12 19:02:44 阅读更多 →