docker部署nacos3.1.0适配pgsql
摘要本文介绍如何在 Docker 中部署 Nacos 3.1.0 并接入 PostgreSQL 数据库。主要步骤包括拉取镜像、创建并授权宿主机目录、通过临时容器拷贝配置文件、在 PostgreSQL 中创建 Nacos 所需数据表、修改数据源与鉴权配置、上传 PostgreSQL 驱动插件最后启动容器并挂载目录。文中提供完整的 SQL 建表脚本、application.properties 配置示例及启动命令帮助读者快速完成 Nacos 与 PostgreSQL 的集成部署。1. 拉取 Nacos:v3.1.0 镜像dockerpull nacos/nacos-server:v3.1.02. 创建宿主机目录mkdir-p/data/nacos/{conf,logs,data,plugins}3. 设置目录权限chmod777/data/nacos/{conf,logs,data,plugins}4. 创建临时容器dockerrun-d\--namenacos\--restartalways\-p8848:8848\-eMODEstandalone\nacos/nacos-server:v2.3.25. 拷贝配置文件dockercpnacos:/home/nacos/conf /data/nacosdockercpnacos:/home/nacos/data /data/nacosdockercpnacos:/home/nacos/logs /data/nacos6. 删除临时容器dockerrm-fnacos7. PostgreSQL 建 Nacos 表创建 nacos 库后在 public 模式下执行脚本CREATETABLEpublic.config_info(id bigserialNOTNULL,data_idvarchar(255)NOTNULL,group_idvarchar(128)NOTNULL,tenant_idvarchar(128)DEFAULT::charactervaryingNOTNULL,app_namevarchar(128)NULL,contenttextNOTNULL,md5varchar(32)NULL,gmt_createtimestampDEFAULTnow()NOTNULL,gmt_modifiedtimestampDEFAULTnow()NOTNULL,src_uservarchar(128)NULL,src_ipvarchar(50)NULL,c_descvarchar(256)NULL,c_usevarchar(64)NULL,effectvarchar(64)NULL,typevarchar(64)NULL,c_schematextNULL,encrypted_data_keyvarchar(1024)DEFAULT::charactervaryingNOTNULL,CONSTRAINTconfig_info_pkeyPRIMARYKEY(id),CONSTRAINTuk_configinfo_datagrouptenantUNIQUE(data_id,group_id,tenant_id));CREATEINDEXidx_config_info_dataidONpublic.config_infoUSINGbtree(data_id);CREATEINDEXidx_config_info_groupidONpublic.config_infoUSINGbtree(group_id);CREATEINDEXidx_config_info_tenantONpublic.config_infoUSINGbtree(tenant_id);CREATETABLEpublic.config_info_aggr(id bigserialNOTNULL,data_idvarchar(255)NOTNULL,group_idvarchar(128)NOTNULL,tenant_idvarchar(128)DEFAULT::charactervaryingNOTNULL,datum_idvarchar(255)NOTNULL,app_namevarchar(128)NULL,contenttextNOTNULL,gmt_modifiedtimestampDEFAULTnow()NOTNULL,CONSTRAINTconfig_info_aggr_pkeyPRIMARYKEY(id),CONSTRAINTuk_configinfoaggr_datagrouptenantdatumUNIQUE(data_id,group_id,tenant_id,datum_id));CREATETABLEpublic.config_info_beta(id bigserialNOTNULL,data_idvarchar(255)NOTNULL,group_idvarchar(128)NOTNULL,tenant_idvarchar(128)DEFAULT::charactervaryingNOTNULL,app_namevarchar(128)NULL,contenttextNOTNULL,beta_ipsvarchar(1024)NULL,md5varchar(32)NULL,gmt_createtimestampDEFAULTnow()NOTNULL,gmt_modifiedtimestampDEFAULTnow()NOTNULL,src_uservarchar(128)NULL,src_ipvarchar(50)NULL,encrypted_data_keyvarchar(1024)DEFAULT::charactervaryingNOTNULL,CONSTRAINTconfig_info_beta_pkeyPRIMARYKEY(id),CONSTRAINTuk_configinfobeta_datagrouptenantUNIQUE(data_id,group_id,tenant_id));CREATETABLEpublic.config_info_gray(id bigserialNOTNULL,data_idvarchar(255)NOTNULL,group_idvarchar(128)NOTNULL,tenant_idvarchar(128)DEFAULT::charactervaryingNOTNULL,app_namevarchar(128)NULL,contenttextNOTNULL,md5varchar(32)NULL,src_uservarchar(128)NULL,src_ipvarchar(100)NULL,gmt_createtimestamp(3)DEFAULTnow()NOTNULL,gmt_modifiedtimestamp(3)DEFAULTnow()NOTNULL,gray_namevarchar(128)NOTNULL,gray_ruletextNOTNULL,encrypted_data_keyvarchar(256)DEFAULT::charactervaryingNOTNULL,CONSTRAINTconfig_info_gray_pkeyPRIMARYKEY(id),CONSTRAINTuk_configinfogray_datagrouptenantgrayUNIQUE(data_id,group_id,tenant_id,gray_name));CREATETABLEpublic.config_info_tag(id bigserialNOTNULL,data_idvarchar(255)NOTNULL,group_idvarchar(128)NOTNULL,tenant_idvarchar(128)DEFAULT::charactervaryingNOTNULL,tag_idvarchar(128)NOTNULL,app_namevarchar(128)NULL,contenttextNOTNULL,md5varchar(32)NULL,gmt_createtimestampDEFAULTnow()NOTNULL,gmt_modifiedtimestampDEFAULTnow()NOTNULL,src_usertextNULL,src_ipvarchar(50)NULL,CONSTRAINTconfig_info_tag_pkeyPRIMARYKEY(id),CONSTRAINTuk_configinfotag_datagrouptenanttagUNIQUE(data_id,group_id,tenant_id,tag_id));CREATETABLEpublic.config_tags_relation(id bigserialNOTNULL,tag_namevarchar(128)NOTNULL,tag_typevarchar(64)NULL,data_idvarchar(255)NOTNULL,group_idvarchar(128)NOTNULL,tenant_idvarchar(128)DEFAULT::charactervaryingNOTNULL,nid bigserialNOTNULL,CONSTRAINTconfig_tags_relation_pkeyPRIMARYKEY(id),CONSTRAINTuk_configtagrelation_configidtagUNIQUE(id,tag_name,tag_type),CONSTRAINTuk_configtags_relation_dataidtagUNIQUE(data_id,group_id,tenant_id,tag_name));CREATEINDEXidx_config_tags_relation_tenantONpublic.config_tags_relationUSINGbtree(tenant_id);CREATETABLEpublic.group_capacity(id bigserialNOTNULL,group_idvarchar(128)DEFAULT::charactervaryingNOTNULL,tenant_idvarchar(128)DEFAULT::charactervaryingNOTNULL,quota int8DEFAULT0NOTNULL,usageint8DEFAULT0NOTNULL,max_size int8DEFAULT0NOTNULL,max_aggr_count int8DEFAULT0NOTNULL,max_aggr_size int8DEFAULT0NOTNULL,max_history_count int8DEFAULT0NOTNULL,gmt_createtimestamp(3)DEFAULTnow()NOTNULL,gmt_modifiedtimestamp(3)DEFAULTnow()NOTNULL,CONSTRAINTgroup_capacity_pkeyPRIMARYKEY(id),CONSTRAINTuk_group_capacity_groupid_tenantidUNIQUE(group_id,tenant_id));CREATETABLEpublic.his_config_info(id int8NOTNULL,nid bigserialNOTNULL,data_idvarchar(255)NOTNULL,group_idvarchar(128)NOTNULL,tenant_idvarchar(128)DEFAULT::charactervaryingNOTNULL,app_namevarchar(128)NULL,contenttextNOTNULL,md5varchar(32)NULL,gmt_createtimestampDEFAULTnow()NOTNULL,gmt_modifiedtimestampDEFAULTnow()NOTNULL,src_uservarchar(128)NULL,src_ipvarchar(50)NULL,op_type bpchar(10)NULL,encrypted_data_keyvarchar(1024)DEFAULT::charactervaryingNOTNULL,publish_typevarchar(50)NULL,gray_namevarchar(128)NULL,ext_infotextNULL,CONSTRAINThis_config_info_pkeyPRIMARYKEY(nid));CREATEINDEXidx_his_config_info_dataidONpublic.his_config_infoUSINGbtree(data_id);CREATEINDEXidx_his_config_info_gmt_modifiedONpublic.his_config_infoUSINGbtree(gmt_modified);CREATETABLEpublic.permissions(rolevarchar(50)NOTNULL,resourcevarchar(255)NOTNULL,actionvarchar(50)NOTNULL,CONSTRAINTuk_role_permissionUNIQUE(role,resource,action));CREATETABLEpublic.roles(usernamevarchar(50)NOTNULL,rolevarchar(50)NOTNULL,CONSTRAINTuk_username_roleUNIQUE(username,role));CREATETABLEpublic.tags(id bigserialNOTNULL,tag_namevarchar(128)NOTNULL,app_namevarchar(128)NULL,typevarchar(64)NULL,create_timetimestampDEFAULTnow()NOTNULL,CONSTRAINTtags_pkeyPRIMARYKEY(id),CONSTRAINTuk_tags_tagnameUNIQUE(tag_name));CREATETABLEpublic.tenant_capacity(id bigserialNOTNULL,tenant_idvarchar(128)DEFAULT::charactervaryingNOTNULL,quota int8DEFAULT0NOTNULL,usageint8DEFAULT0NOTNULL,max_size int8DEFAULT0NOTNULL,max_aggr_count int8DEFAULT0NOTNULL,max_aggr_size int8DEFAULT0NOTNULL,max_history_count int8DEFAULT0NOTNULL,gmt_createtimestamp(3)DEFAULTnow()NOTNULL,gmt_modifiedtimestamp(3)DEFAULTnow()NOTNULL,CONSTRAINTtenant_capacity_pkeyPRIMARYKEY(id),CONSTRAINTuk_tenant_capacity_tenantidUNIQUE(tenant_id));CREATETABLEpublic.tenant_info(id bigserialNOTNULL,kpvarchar(128)NOTNULL,tenant_idvarchar(128)DEFAULT::charactervaryingNOTNULL,tenant_namevarchar(128)DEFAULT::charactervaryingNULL,tenant_descvarchar(256)NULL,create_sourcevarchar(32)NULL,gmt_create int8NOTNULL,gmt_modified int8NOTNULL,CONSTRAINTtenant_info_pkeyPRIMARYKEY(id),CONSTRAINTuk_tenant_info_kptenantidUNIQUE(kp,tenant_id));CREATETABLEpublic.users(usernamevarchar(50)NOTNULL,passwordvarchar(500)NOTNULL,enabledboolDEFAULTtrueNOTNULL,CONSTRAINTusers_pkeyPRIMARYKEY(username));8. 修改 Nacos 配置文件自己改下数据库地址、账号、密码#--------------- 端口配置 ---------------# Nacos 主服务端口默认 8848给 gRPC 客户端和老 API 用nacos.server.main.port${NACOS_APPLICATION_PORT:8848}# 控制台端口3.x 默认 8080浏览器访问用nacos.console.port${NACOS_CONSOLE_PORT:8080}nacos.console.contextPath${NACOS_CONSOLE_CONTEXTPATH:}# 控制台 UI 开关nacos.console.ui.enabledtrue# 控制台远程 server 路径前后端分离部署时才需要改nacos.console.remote.server.context-path${SERVER_SERVLET_CONTEXTPATH:/nacos}#--------------- 数据源配置 ---------------# 告诉 Nacos 用 PostgreSQL 初始化脚本spring.sql.init.platformpostgresql# ★ 必须加显式指定数据源方言为 postgresql否则 Nacos 会回退用 MySQL 驱动nacos.plugin.datasource-dialect.typepostgresql# 数据库数量单机就 1 个db.num1# JDBC URL已去掉 MySQL 专属参数避免驱动解析异常db.url.0jdbc:postgresql://192.168.21.101:5432/nacos?currentSchemapublicreWriteBatchedInsertstrue# 用户名和密码通过 docker -e 环境变量注入db.user.0${SERVICE_USER}db.password.0${SERVICE_PASSWORD}# ★ 必须加显式指定 PostgreSQL 驱动类db.pool.config.driverClassNameorg.postgresql.Driverdb.pool.config.connectionTestQuerySELECT1# 连接池配置db.pool.config.connectionTimeout${DB_POOL_CONNECTION_TIMEOUT:30000}db.pool.config.validationTimeout10000db.pool.config.maximumPoolSize20db.pool.config.minimumIdle2#--------------- Web / Tomcat 配置 ---------------# 服务上下文路径访问路径前缀如 http://ip:8080/nacosnacos.server.contextPath${SERVER_SERVLET_CONTEXTPATH:/nacos}# 访问日志server.tomcat.accesslog.enabledtrue server.tomcat.accesslog.max-days30server.tomcat.accesslog.pattern%h %l %u %t%r%s %b %D %{User-Agent}i %{Request-Source}iserver.tomcat.basedirfile:.# API 错误返回server.error.include-messageALWAYS#--------------- 监控 / Metrics ---------------management.endpoints.web.exposure.includeprometheusmanagement.metrics.export.elastic.enabledfalsemanagement.metrics.export.influx.enabledfalse#--------------- 配置模块 ---------------# 配置推送最大重试次数nacos.config.push.maxRetryTime50#--------------- 服务发现 / Naming 模块 ---------------# 启动时预热数据nacos.naming.data.warmuptrue# 自动清理空服务nacos.naming.empty-service.auto-cleantrue nacos.naming.empty-service.clean.initial-delay-ms50000nacos.naming.empty-service.clean.period-time-ms30000#--------------- 鉴权配置3.x 必须 ---------------# 认证系统类型nacos 内置 / ldapnacos.core.auth.system.type${NACOS_AUTH_SYSTEM_TYPE:nacos}# 开启鉴权nacos.core.auth.enabledtruenacos.core.auth.admin.enabledtruenacos.core.auth.console.enabledtrue# 鉴权缓存false 改了权限立即生效不用等 15 秒nacos.core.auth.caching.enabled${NACOS_AUTH_CACHE_ENABLE:false}# 节点间身份标识集群内部认证用单机也要配nacos.core.auth.server.identity.keyauthKey2026nacos.core.auth.server.identity.valueauthValue2026# Token 配置nacos.core.auth.plugin.nacos.token.cache.enablefalsenacos.core.auth.plugin.nacos.token.expire.seconds${NACOS_AUTH_TOKEN_EXPIRE_SECONDS:18000}# JWT 签名密钥Base64 编码≥32 字符nacos.core.auth.plugin.nacos.token.secret.keyVGhpc0lzTXlDdXN0b21TZWNyZXRLZXkwMTIzNDU2Nzg# 忽略鉴权的 URL 路径nacos.security.ignore.urls${NACOS_SECURITY_IGNORE_URLS:/,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/**}#--------------- 部署模式 ---------------# merged 控制台 服务端合并部署单机模式nacos.deployment.typemerged#--------------- 其他功能开关默认关 ---------------nacos.istio.mcp.server.enabledfalsenacos.k8s.sync.enabledfalse9. 上传 PostgreSQL 相关插件CSDN上传不了附件下源码打包或者自己找资源吧Nacos PostgreSQL Datasource Plugin Ext 3.1.0.jar、PostgreSQL 42.7.3.jar10. 启动容器并挂载目录自己根据情况调整参数dockerrun-d\--namenacos\-p8080:8080\-p8848:8848\-p9848:9848\-v/data/nacos/conf/application.properties:/home/nacos/conf/application.properties:ro\-v/data/nacos/logs:/home/nacos/logs\-v/data/nacos/data:/home/nacos/data\-v/data/nacos/plugins:/home/nacos/plugins\-eMODEstandalone\-eSERVICE_USERpostgres\-eSERVICE_PASSWORDhello2026\-eJVM_XMS256m\-eJVM_XMX256m\-eJVM_XMN128m\-eNACOS_AUTH_TOKENVGhpc0lzTXlDdXN0b21TZWNyZXRLZXkwMTIzNDU2Nzg\-eNACOS_AUTH_IDENTITY_KEYauthKey2026\-eNACOS_AUTH_IDENTITY_VALUEauthValue2026\nacos/nacos-server:v3.1.0

相关新闻

从 “银丝神叶” 到一杯可泡的本草:知医邦杜仲叶泡泡茶的技术破局

从 “银丝神叶” 到一杯可泡的本草:知医邦杜仲叶泡泡茶的技术破局

杜仲叶最鲜明的身份标识,藏在它的断面之中 —— 随手撕开一片鲜叶,断面会牵出无数细密银白、富有弹性的细丝。这是杜仲科植物独有的特征,也是民间鉴别杜仲真伪最直观的方法。这些银丝本质是杜仲胶,一种反式结构的天然高分子聚合物…

2026/10/1 16:57:54 阅读更多 →
Responses WebSocket 协议详解:为什么它会让 Agent 工作流更快——TaoToken 统一 Key 接入 Codex CLI 的 config.toml 骨架与 continua

Responses WebSocket 协议详解:为什么它会让 Agent 工作流更快——TaoToken 统一 Key 接入 Codex CLI 的 config.toml 骨架与 continua

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/30 14:30:25 阅读更多 →
多模型聚合网关:企业级统一接入的落地实践与踩坑复盘

多模型聚合网关:企业级统一接入的落地实践与踩坑复盘

1. 背景:业务问题与引入动机 我所在的零售集团数据智能部,负责为集团 12 条业务线提供 AI 能力,包括智能客服、商品描述生成、订单地址解析、营销文案等。到 2025 年底,各业务线已先后接入了 6 家大模型厂商的 10 个模型实例&…

2026/10/1 17:34:16 阅读更多 →

最新新闻

ANSYS许可合规检查:授权文件、日志台账与并发审计实战

ANSYS许可合规检查:授权文件、日志台账与并发审计实战

1. 许可合规检查真正查的是什么:从"能不能跑起来"到"跑得合不合规"大部分人第一次接触ANSYS 许可合规性检查,都是被动的——要么是采购部门要续费,需要一份"到底有多少人真在用"的说明;要么是外部合…

2026/10/1 18:16:34 阅读更多 →
SpringBoot2+Vue3实战:大创项目管理系统设计与部署

SpringBoot2+Vue3实战:大创项目管理系统设计与部署

前阵子帮一所高校做了一个大学生创新创业训练计划项目管理系统,也就是大家常说的“大创管理系统”。这系统说白了就是用来管理大学生创新创业训练计划全流程的:学生线上申报项目、指导教师审核、学院推荐、学校审批,再到中期检查、结题验收和…

2026/10/1 18:16:34 阅读更多 →
第一性原理:从底层事实出发,拆解问题、重建方案的思维框架

第一性原理:从底层事实出发,拆解问题、重建方案的思维框架

1. 开篇引子:为什么“模仿”永远成不了真正的强者 我见过很多聪明人,学东西极快,看别人做什么成什么,立刻就能照着做一遍,成果还很好看。但几年后你会发现,这些人依然在原地打转:别人换赛道他就…

2026/10/1 18:16:34 阅读更多 →
麦克风配对方案升级!FX668远距离 NFC 芯片,解决量产调试痛点

麦克风配对方案升级!FX668远距离 NFC 芯片,解决量产调试痛点

做无线音频、直播麦克风、影音设备开发的工程师都懂,麦克风量产配对、频段校准、设备 ID 绑定一直是行业刚需痛点。传统方案大多依赖拆机拨码、有线烧录、上位机调试,工序繁琐、效率低下,售后维护更是麻烦。想要一套免拆机、无线快速配对、支…

2026/10/1 18:16:34 阅读更多 →
AI编程token消耗优化:六大实战技巧降低80%成本

AI编程token消耗优化:六大实战技巧降低80%成本

1. AI 编程的 token 到底消耗在哪些环节1.1 从一次真实的账单说起上个月我把自己一个中型项目的 AI 编程助手账单拉出来看,单月消耗折算下来接近四百块。当时第一反应是"是不是模型选贵了",但把明细拆开之后发现,真正贵的不是模型单…

2026/10/1 18:16:34 阅读更多 →
ComfyUI v0.37跑通Qwen-Image-2.1:从模型部署到稳定出图全攻略

ComfyUI v0.37跑通Qwen-Image-2.1:从模型部署到稳定出图全攻略

昨天把 ComfyUI 更新到了 v0.37,顺手把 Qwen-Image-2.1 跑通了。整个过程比我预想的顺利,但中间也踩了几个坑——比如模型路径不对、采样器选错导致画面发灰、爆内存等等。这篇就好好记录一下,从下载模型到稳定出图的完整流程,顺带…

2026/10/1 18:15:34 阅读更多 →

日新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/30 13:14:22 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/30 18:13:06 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/30 13:14:49 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →