CI Weekly #6 | 再谈 Docker / CI / CD 实践经验

CI Weekly 分享了Docker容器化应用的持续交付经验,包括百度的质量部实践和Jenkins、Docker在部署流水线中的应用。此外,还探讨了前端项目的持续集成、腾讯的毫秒服务引擎MSEC开源、基于Appium的Android UI自动化测试以及阿里巴巴的分层自动化实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CI Weekly 围绕『 软件工程效率提升』 进行一系列技术内容分享,包括国内外持续集成、持续交付,持续部署、自动化测试、 DevOps 等实践教程、工具与资源,以及一些工程师文化相关的程序员 Tips 。同步于 flow.ci Blog、微信公众号、官方微博知乎专栏简书,欢迎关注或投稿:)

嗨,上周我们对 iOS/Android 项目持续集成做了比较多的功能优化,同时恢复了对 GitLab 的支持,修复了一些常见问题,详情见flow_ci changelog,如有问题可通过「在线消息」或去Gitter群 及时反馈 :)

下面递上一份新鲜的 CI Weekly,这期收录了关于Docker/CI/CD实践、自动化测试、DevOps相关的国内外技术文章,希望对你有用~

『 Docker/CI/CD实践 』

Docker容器化应用持续交付实践

本文百度质量部以 网盟合一(零号DSP)项目过程中建立起来的通用容器化交付系统EMC为案例,分享了基于Docker的容器化应用持续交付实践经验。(via:百度质量部

项目DevOps研发云CI实践之路

笔者所在项目在敏捷推进过程中,已经建立了一套以Jenkins为核心的CI持续集成系统,并分享了相关的实践情况经验。(via :中兴开发者社区)

部署流水线搭建小记:Docker、Jenkins、Java和Couchbase

这篇文章讲述了如何用Jenkins和Docker来为一个需要和数据库交互的Java应用创建部署流水线(deployment pipeline)。(via : dockone.io

flow.ci

前端开源项目持续集成三剑客

Github 项目都会有徽章 (badage) ,这展示了代码的测试覆盖率构建状态在各个浏览器中的运行情况,这会让项目显得更加专业和有说服力。本文笔者集齐了一套徽章的亲身经历,总结了过程中的主要流程和一些踩到的坑!(via : 百度EFE)

腾讯毫秒服务引擎 MSEC开源

腾讯开源的MSEC 集 RPC、名字发现服务、负载均衡、业务监控、灰度发布、容量管理、日志管理、key-value存储于一体。(via: 开源中国

A Simple Introduction to Microservices

一个微服务的简洁手册,包含了微服务的定义、特点、优缺点、案例等等。(via : Medium @flow.ci

Building, Testing and Deploying Django App with Bitbucket Pipelines

使用Bitbucket Pipelines 来Building, Testing and Deploying Django App,感兴趣的可以看看。( via :Medium@ozren

flow.ci

『 自动化测试/DevOps 』

基于 Appium 的 Android UI 自动化测试

好的自动化测试机制能够让开发者及早发现编码中的逻辑缺陷,将风险前置。为什么需要UI自动化测试?来看看这篇文章。(via :@美团点评技术团队李磊 )

揭秘阿里巴巴分层自动化实践之路

为什么外部环境、业务变更、应用环境问题、执行机问题、数据问题、框架问题这些都能引起这么多失败呢?结合多年自动化实践与总结,12月8日16:00 阿里云效开启《阿里巴巴持续集成持续交付之分层自动化》直播分享,感兴趣的可以看看。(via :阿里云效平台

基于 DevOps 理念的私有 PaaS 平台实践

本文将系统的从4个方面,分享YY互娱运维团队对于 PaaS 运维平台实践经验及未来展望,希望对大家有一些参考意义。(via:刘亚丹 YY 互动)

How your startup can leverage production-grade infrastructure for less than $200/month

这篇文章的目的是帮助你专注于于生产级别的服务集合,尽量减少时间和金钱花费在基础设施上。(via :Medium@jp.delimat
flow.ci


以上是 CI Weekly #6 的所有技术分享,
如有问题,请联系我们~

Happy building!

flow.ci

<think>我们正在解决用户的问题:Mac进入单用户模式显示`localhost:/ I have no name!#`。这个提示表明系统在单用户模式下无法识别用户账户,通常是因为文件系统损坏或权限问题导致系统无法挂载或读取用户数据库(/var/db/dslocal/nodes/Default/)。以下将分步骤解决此问题。 ### 解决步骤: #### 1. **检查文件系统** 在单用户模式下,首先运行文件系统检查(fsck)来修复可能的磁盘错误: ```bash fsck -fy ``` 这个命令会强制检查和修复启动卷(-f表示强制,-y表示自动确认修复)。完成后,重启系统看是否解决问题: ```bash reboot ``` #### 2. **重新挂载根文件系统为可读写** 如果问题仍然存在,在单用户模式下重新挂载根文件系统为可读写(默认是只读): ```bash mount -uw / ``` 然后尝试重建用户数据库的缓存: ```bash /usr/libexec/configureLocalKDC rebuild ``` #### 3. **手动修复用户数据库权限** 如果上述步骤无效,可能是`/var/db/dslocal/`的权限损坏。在单用户模式下(已挂载为可读写)执行: ```bash chmod 700 /var/db/dslocal chown -R root:wheel /var/db/dslocal ``` 然后重启: ```bash reboot ``` #### 4. **使用恢复模式修复** 如果单用户模式无法修复,重启进入恢复模式(开机时按住`Command + R`): - 打开终端,运行磁盘工具修复: ```bash diskutil repairVolume /Volumes/Macintosh\ HD ``` - 如果磁盘工具报告错误,使用`fsck`再次修复(注意:在恢复模式下,根卷通常挂载在`/Volumes/Macintosh HD`): ```bash fsck -fy /dev/disk1s1 # 替换为你的系统盘标识符 ``` #### 5. **重置用户账户** 如果权限问题依然存在,尝试在恢复模式下重置用户账户(需要先挂载系统卷): ```bash cd "/Volumes/Macintosh HD/var/db" mv dslocal dslocal_backup # 备份原有数据库 mkdir dslocal chmod 700 dslocal chown root:wheel dslocal ``` 重启后,系统会重建一个默认的用户数据库,但需要重新创建用户账户(数据不会丢失,但账户设置需重配)。 ### 永久预防措施: - **定期备份**:使用Time Machine备份系统[^2]。 - **避免异常关机**:减少文件系统损坏风险。 - **启用SIP(系统完整性保护)**:在正常系统下运行: ```bash csrutil enable ``` ### 故障排查流程图: ```mermaid graph TD A[出现单用户模式提示] --> B{运行fsck -fy} B -->|修复成功| C[重启验证] B -->|失败| D[进入恢复模式] D --> E[磁盘工具修复] E -->|成功| C E -->|失败| F[终端手动修复权限] F --> G[重置用户数据库] G --> C C -->|正常| H[问题解决] C -->|仍异常| I[硬件检测] ``` §§相关问题§§ 1. 如何防止 macOS 单用户模式下的文件系统权限损坏? 2. Time Machine 备份是否包含 /var/db/dslocal 目录?恢复时要注意什么? 3. 系统完整性保护(SIP)如何影响单用户模式的修复操作? 4. 如果 macOS 用户账户数据库损坏,如何从备份中恢复单个用户账户?</think>### 永久修复 macOS 单用户模式显示 "localhost:/ I have no name!#" 错误 这个错误表明系统在单用户模式下无法识别用户身份,通常是由于用户数据库损坏、权限问题或启动配置异常引起的。以下是分步修复方案: --- #### **第一步:进入恢复模式修复用户数据库** 1. 重启 Mac 并按住 `Command + R` 进入恢复模式 2. 打开终端执行: ```bash # 挂载主卷(替换为您的系统卷名称) diskutil mount disk1s1 # 修复用户数据库 rm /Volumes/Macintosh\ HD/var/db/.AppleSetupDone chmod 755 /Volumes/Macintosh\ HD/var/db/dslocal/nodes/Default ``` #### **第二步:重建用户缓存** ```bash # 在单用户模式(Command+S 开机)执行 /sbin/mount -uw / rm /var/db/dslocal/nodes/Default/users/*.plist touch /var/db/.AppleSetupDone nvram -c ``` #### **第三步:修复文件系统权限** ```bash # 在恢复模式终端执行 diskutil verifyVolume disk1s1 diskutil repairPermissions disk1s1 # 对于 APFS 卷用 repairVolume ``` #### **第四步:重置用户配置** ```bash # 创建新管理员账户(临时) cd /Volumes/Macintosh\ HD/var/db/dslocal/nodes/Default mkdir users_backup && mv users/*.plist users_backup/ reboot ``` 开机后系统会提示创建新用户,登录后用新账户修复原账户: ```bash sudo cp ~/users_backup/<原用户名>.plist /var/db/dslocal/nodes/Default/users/ ``` #### **第五步:深度修复(Apple Silicon 需特殊处理)** ```mermaid graph LR A[关机] --> B[长按电源键进入恢复模式] B --> C[终端输入:resetpassword] C --> D[选择系统卷 > 重置密码] D --> E[重启后重建钥匙串] ``` --- ### 关键注意事项 1. **权限修复规则**: - 用户数据库路径:`/var/db/dslocal/nodes/Default/` - 正确权限:`drwx------` (700) [^3] ```bash ls -ld /var/db/dslocal/nodes/Default # 验证权限 ``` 2. **安全机制影响**: - 禁用 SIP 可能需临时生效: ```bash csrutil disable # 在恢复模式下执行 ``` - 修复后务必重新启用: ```bash csrutil enable ``` 3. **预防复发措施**: ```bash # 定期维护命令 sudo periodic daily weekly monthly sudo plutil -lint /var/db/dslocal/nodes/Default/users/*.plist ``` > **重要提示**:操作前备份数据: > ```bash > sudo ditto /var/db/dslocal ~/Desktop/dslocal_backup > ``` --- ### 故障排查流程图 ```mermaid graph TD A[出现 no name 错误] --> B{能否进入恢复模式?} B -->|| C[修复用户数据库] B -->|| D[单用户模式权限修复] C --> E[验证权限] D --> E E -->|成功| F[正常启动] E -->|失败| G[重建用户配置] G --> F ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值