<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Articles on MR.ASONG</title><link>https://mrasong.com/articles/</link><description>Recent content in Articles on MR.ASONG</description><generator>Hugo -- 0.136.4</generator><language>zh-CN</language><lastBuildDate>Tue, 02 Sep 2025 10:02:38 +0800</lastBuildDate><atom:link href="https://mrasong.com/articles/rss.xml" rel="self" type="application/rss+xml"/><item><title>Docker 自定义默认地址池</title><link>https://mrasong.com/a/docker-default-address-pools/</link><pubDate>Tue, 02 Sep 2025 10:02:38 +0800</pubDate><guid>https://mrasong.com/a/docker-default-address-pools/</guid><description>&lt;p>修改 &lt;code>/etc/docker/daemon.json&lt;/code>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#abb2bf;background-color:#282c34;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f"> 1&lt;/span>&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f"> 2&lt;/span>&lt;span> &lt;span style="color:#e06c75">&amp;#34;registry-mirrors&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f"> 3&lt;/span>&lt;span> &lt;span style="color:#98c379">&amp;#34;https://docker.1ms.run&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f"> 4&lt;/span>&lt;span> &lt;span style="color:#98c379">&amp;#34;https://docker.m.daocloud.io&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f"> 5&lt;/span>&lt;span> ],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f"> 6&lt;/span>&lt;span> &lt;span style="color:#e06c75">&amp;#34;insecure-registries&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f"> 7&lt;/span>&lt;span> &lt;span style="color:#98c379">&amp;#34;https://docker.1ms.run&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f"> 8&lt;/span>&lt;span> &lt;span style="color:#98c379">&amp;#34;https://docker.m.daocloud.io&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f"> 9&lt;/span>&lt;span> ],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">10&lt;/span>&lt;span> &lt;span style="color:#e06c75">&amp;#34;ipv6&amp;#34;&lt;/span>: &lt;span style="color:#e5c07b">true&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">11&lt;/span>&lt;span> &lt;span style="color:#e06c75">&amp;#34;fixed-cidr-v6&amp;#34;&lt;/span>: &lt;span style="color:#98c379">&amp;#34;fd00:db8:1::/64&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">12&lt;/span>&lt;span> &lt;span style="color:#e06c75">&amp;#34;bip&amp;#34;&lt;/span>: &lt;span style="color:#98c379">&amp;#34;172.16.0.1/24&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">13&lt;/span>&lt;span> &lt;span style="color:#e06c75">&amp;#34;default-address-pools&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">14&lt;/span>&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">15&lt;/span>&lt;span> &lt;span style="color:#e06c75">&amp;#34;base&amp;#34;&lt;/span>: &lt;span style="color:#98c379">&amp;#34;172.16.0.0/16&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">16&lt;/span>&lt;span> &lt;span style="color:#e06c75">&amp;#34;size&amp;#34;&lt;/span>: &lt;span style="color:#d19a66">24&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">17&lt;/span>&lt;span> },
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">18&lt;/span>&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">19&lt;/span>&lt;span> &lt;span style="color:#e06c75">&amp;#34;base&amp;#34;&lt;/span>: &lt;span style="color:#98c379">&amp;#34;fd07:b51a:cc66:d000::/56&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">20&lt;/span>&lt;span> &lt;span style="color:#e06c75">&amp;#34;size&amp;#34;&lt;/span>: &lt;span style="color:#d19a66">64&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">21&lt;/span>&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">22&lt;/span>&lt;span> ]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">23&lt;/span>&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>升级 Sequoia 后，磁盘工具中多出 Creedence11M6270...</title><link>https://mrasong.com/a/macos-creedence11m6270/</link><pubDate>Mon, 02 Dec 2024 10:02:38 +0800</pubDate><guid>https://mrasong.com/a/macos-creedence11m6270/</guid><description>&lt;p>升级 Sequoia 后，磁盘工具中多出 &lt;code>Creedence11M6270.SECUREPKITRUSTSTOREASSETS_SECUREPKITRUSTSTORE_Cryptex&lt;/code> 镜像，无法卸载，也无法弹出。&lt;/p>
&lt;p>后经 Q 群友 &lt;code>676xxx396&lt;/code> 提示，删除 &lt;code>/System/Library/AssetsV2/com_apple_MobileAsset_PKITrustStore&lt;/code> 文件夹重启即可不再显示。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#abb2bf;background-color:#282c34;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">1&lt;/span>&lt;span>sudo rm -rf /System/Library/AssetsV2/com_apple_MobileAsset_PKITrustStore
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>注意：
删除过程中可能会提示 目录只读，无法删除等，不用管它，重启即可。&lt;/p></description></item><item><title>远程登录 mac SSH 提示 Permission denied (publickey)</title><link>https://mrasong.com/a/mac-ssh-permission-denied/</link><pubDate>Mon, 11 Nov 2024 10:04:21 +0800</pubDate><guid>https://mrasong.com/a/mac-ssh-permission-denied/</guid><description>&lt;div class="highlight">&lt;pre tabindex="0" style="color:#abb2bf;background-color:#282c34;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">1&lt;/span>&lt;span>Permission denied &lt;span style="color:#56b6c2">(&lt;/span>publickey&lt;span style="color:#56b6c2">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>远程登录 mac SSH 提示 Permission denied (publickey)，如果密钥正确，检查 &lt;code>~/.ssh&lt;/code> 目录及文件权限。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#abb2bf;background-color:#282c34;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">1&lt;/span>&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">2&lt;/span>&lt;span>&lt;span style="color:#7f848e"># change this to YOUR username on the server.&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">3&lt;/span>&lt;span>&lt;span style="color:#e06c75">YOURUSER&lt;/span>&lt;span style="color:#56b6c2">=&lt;/span>ma
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">4&lt;/span>&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">5&lt;/span>&lt;span>&lt;span style="color:#7f848e"># paste these lines verbatim:~&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">6&lt;/span>&lt;span>sudo chown &lt;span style="color:#e06c75">$YOURUSER&lt;/span>:&lt;span style="color:#e06c75">$YOURUSER&lt;/span> ~/&lt;span style="color:#e06c75">$YOURUSER&lt;/span>/&lt;span style="color:#56b6c2">{&lt;/span>.,.ssh/,.ssh/authorized_keys&lt;span style="color:#56b6c2">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">7&lt;/span>&lt;span>sudo chmod u+rwX,go-rwX,-t ~/&lt;span style="color:#e06c75">$YOURUSER&lt;/span>/&lt;span style="color:#56b6c2">{&lt;/span>.ssh/,.ssh/authorized_keys&lt;span style="color:#56b6c2">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">8&lt;/span>&lt;span>sudo chmod go-w ~/&lt;span style="color:#e06c75">$YOURUSER&lt;/span>/
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>修改 MacOS SSH 端口号</title><link>https://mrasong.com/a/mac-ssh-port/</link><pubDate>Fri, 01 Nov 2024 13:37:17 +0800</pubDate><guid>https://mrasong.com/a/mac-ssh-port/</guid><description>&lt;h3 id="修改默认端口">修改默认端口&lt;/h3>
&lt;ol>
&lt;li>打开终端，输入 &lt;code>sudo vi /etc/services&lt;/code>，输入 mac 密码，然后回车，进入编辑模式&lt;/li>
&lt;li>找到 &lt;code>ssh&lt;/code> 服务所在行，如下：&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#abb2bf;background-color:#282c34;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">1&lt;/span>&lt;span>ssh 22/udp &lt;span style="color:#7f848e"># SSH Remote Login Protocol&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">2&lt;/span>&lt;span>ssh 22/tcp &lt;span style="color:#7f848e"># SSH Remote Login Protocol&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ol start="3">
&lt;li>修改 &lt;code>22&lt;/code> 为 你要修改的端口号，例如 &lt;code>10022&lt;/code> ，保存 &lt;code>:wq&lt;/code> 退出。 3. 重启 ssh 服务，打开 terminal，输入以下命令重启 &lt;code>ssh&lt;/code> 服务：&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#abb2bf;background-color:#282c34;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">1&lt;/span>&lt;span>sudo launchctl unload -w /System/Library/LaunchDaemons/ssh.plist
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">2&lt;/span>&lt;span>sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ol start="4">
&lt;li>现在就可以使用 &lt;code>10022&lt;/code> 端口来登录你的 mac 了。&lt;/li>
&lt;/ol>
&lt;h3 id="注意">注意&lt;/h3>
&lt;p>修改默认端口号后，使用&lt;code>ssh&lt;/code>命令时，默认端口会发生改变，需要加上 &lt;code>-p&lt;/code> 参数才能访问默认&lt;code>22&lt;/code>端口的服务。
例如：
&lt;code>ssh root@localhost&lt;/code> 会连接 &lt;code>10022&lt;/code> 端口。&lt;/p></description></item><item><title>Alpine 的 CGO 问题</title><link>https://mrasong.com/a/alpine-cgo/</link><pubDate>Sat, 28 Sep 2024 14:58:54 +0800</pubDate><guid>https://mrasong.com/a/alpine-cgo/</guid><description>&lt;p>Alpine 编译 CGO 时，需要添加一些依赖包。&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>包名&lt;/th>
&lt;th>说明&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>tzdata&lt;/td>
&lt;td>时区&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>ca-certificates&lt;/td>
&lt;td>CA 证书库&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>libc6-compat&lt;/td>
&lt;td>兼容 glibc&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>libgcc&lt;/td>
&lt;td>gcc 运行库 CGO 依赖&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>libstdc++&lt;/td>
&lt;td>C++ 运行库&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>以下为示例 Dockerfile 内容：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#abb2bf;background-color:#282c34;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-dockerfile" data-lang="dockerfile">&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f"> 1&lt;/span>&lt;span>&lt;span style="color:#7f848e">#build stage&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f"> 2&lt;/span>&lt;span>&lt;span style="color:#c678dd">FROM&lt;/span>&lt;span style="color:#98c379"> golang:1.23-alpine AS builder&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f"> 3&lt;/span>&lt;span>&lt;span style="color:#c678dd">ARG&lt;/span> BUILD_VERSION
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f"> 4&lt;/span>&lt;span>&lt;span style="color:#c678dd">ARG&lt;/span> BUILD_TIME
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f"> 5&lt;/span>&lt;span>&lt;span style="color:#c678dd">WORKDIR&lt;/span>&lt;span style="color:#98c379"> /app&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f"> 6&lt;/span>&lt;span>&lt;span style="color:#c678dd">COPY&lt;/span> . .
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f"> 7&lt;/span>&lt;span>&lt;span style="color:#c678dd">RUN&lt;/span> sed -i &lt;span style="color:#98c379">&amp;#39;s/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g&amp;#39;&lt;/span> /etc/apk/repositories
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f"> 8&lt;/span>&lt;span>&lt;span style="color:#c678dd">RUN&lt;/span> apk add -U tzdata &lt;span style="color:#56b6c2">&amp;amp;&amp;amp;&lt;/span> cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f"> 9&lt;/span>&lt;span>&lt;span style="color:#c678dd">RUN&lt;/span> go build -ldflags &lt;span style="color:#98c379">&amp;#34;-s -w -X ceic/global.AppVersion=&lt;/span>&lt;span style="color:#98c379">${&lt;/span>&lt;span style="color:#e06c75">BUILD_VERSION&lt;/span>&lt;span style="color:#98c379">}&lt;/span>&lt;span style="color:#98c379"> -X ceic/global.AppBuild=&lt;/span>&lt;span style="color:#98c379">${&lt;/span>&lt;span style="color:#e06c75">BUILD_TIME&lt;/span>&lt;span style="color:#98c379">}&lt;/span>&lt;span style="color:#98c379">&amp;#34;&lt;/span> -mod&lt;span style="color:#56b6c2">=&lt;/span>vendor -v -o ceic .
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">10&lt;/span>&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">11&lt;/span>&lt;span>&lt;span style="color:#7f848e">#final stage&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">12&lt;/span>&lt;span>&lt;span style="color:#c678dd">FROM&lt;/span>&lt;span style="color:#98c379"> alpine:latest&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">13&lt;/span>&lt;span>&lt;span style="color:#c678dd">ARG&lt;/span> BUILD_VERSION
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">14&lt;/span>&lt;span>&lt;span style="color:#c678dd">WORKDIR&lt;/span>&lt;span style="color:#98c379"> /app&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">15&lt;/span>&lt;span>&lt;span style="color:#c678dd">RUN&lt;/span> sed -i &lt;span style="color:#98c379">&amp;#39;s/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g&amp;#39;&lt;/span> /etc/apk/repositories
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">16&lt;/span>&lt;span>&lt;span style="color:#c678dd">RUN&lt;/span> apk --no-cache add libc6-compat libgcc libstdc++
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">17&lt;/span>&lt;span>&lt;span style="color:#c678dd">COPY&lt;/span> --from&lt;span style="color:#56b6c2">=&lt;/span>builder /etc/localtime /etc/localtime
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">18&lt;/span>&lt;span>&lt;span style="color:#c678dd">COPY&lt;/span> --from&lt;span style="color:#56b6c2">=&lt;/span>builder /app/ceic /app/ceic
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">19&lt;/span>&lt;span>&lt;span style="color:#c678dd">ENTRYPOINT&lt;/span> [&lt;span style="color:#98c379">&amp;#34;/app/ceic&amp;#34;&lt;/span>, &lt;span style="color:#98c379">&amp;#34;serve&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">20&lt;/span>&lt;span>&lt;span style="color:#c678dd">LABEL&lt;/span> &lt;span style="color:#e06c75">Name&lt;/span>&lt;span style="color:#56b6c2">=&lt;/span>ceic &lt;span style="color:#e06c75">Version&lt;/span>&lt;span style="color:#56b6c2">=&lt;/span>&lt;span style="color:#98c379">${&lt;/span>&lt;span style="color:#e06c75">BUILD_VERSION&lt;/span>&lt;span style="color:#98c379">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">21&lt;/span>&lt;span>&lt;span style="color:#c678dd">EXPOSE&lt;/span>&lt;span style="color:#98c379"> 3000&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>关于之前提到 Chrome 大量写硬盘的问题</title><link>https://mrasong.com/a/remove-adblock-plus/</link><pubDate>Wed, 05 Jun 2024 10:39:24 +0800</pubDate><guid>https://mrasong.com/a/remove-adblock-plus/</guid><description>&lt;p>目前还看，好像是 &lt;code>Adblock Plus&lt;/code> 插件，导致 Chrome 持续写入硬盘的。&lt;/p>
&lt;p>删除此插件后，写入量趋于正常。&lt;/p></description></item><item><title>再见，Chrome！</title><link>https://mrasong.com/a/bye-chrome/</link><pubDate>Thu, 30 May 2024 15:24:36 +0800</pubDate><guid>https://mrasong.com/a/bye-chrome/</guid><description>&lt;h3 id="问题">问题&lt;/h3>
&lt;p>不知不觉，已经使用 Chrome 十几年了，一直是在用它，但是最近，一些恶心的操作，让我不得不放弃使用它。&lt;/p>
&lt;p>本人平时没有关电脑的习惯，常年 24*365 开机。&lt;/p>
&lt;p>自从去年 11 月，我的 Mac 硬盘写入量就莫名其妙的激增，半年时间，写入量高达 20T。&lt;/p></description></item><item><title>黑苹果 Sonoma 14.4 安装循环重启</title><link>https://mrasong.com/a/hackintosh-sonoma-14.4-install-loop/</link><pubDate>Wed, 03 Apr 2024 16:47:03 +0800</pubDate><guid>https://mrasong.com/a/hackintosh-sonoma-14.4-install-loop/</guid><description>&lt;p>黑苹果在升级到 &lt;code>14.4&lt;/code> (或 &lt;code>14.4.1&lt;/code>) 时，安装过程会循环重启，导致无法安装。&lt;/p>
&lt;p>解决方法&lt;/p>
&lt;ol>
&lt;li>禁用 &lt;code>WiFi&lt;/code> 和蓝牙驱动，等升级完成后再重新启用。&lt;/li>
&lt;li>修改 OC &lt;code>config.plist&lt;/code>，将 &lt;code>Misc&lt;/code> &lt;code>Security&lt;/code> &lt;code>SecureBootModel&lt;/code> 改为 &lt;code>Disabled&lt;/code>&lt;/li>
&lt;li>重新更新安装。&lt;/li>
&lt;/ol></description></item><item><title>博客引擎换为 Hugo</title><link>https://mrasong.com/a/change-to-hugo-and-vercel/</link><pubDate>Tue, 02 Apr 2024 12:45:14 +0800</pubDate><guid>https://mrasong.com/a/change-to-hugo-and-vercel/</guid><description>&lt;p>将博客引擎从 &lt;a href="https://typecho.org/">typecho&lt;/a> 换为 &lt;a href="https://gohugo.io/">Hugo&lt;/a>&lt;/p>
&lt;p>并且托管于 &lt;a href="https://vercel.com/">Vercel&lt;/a>.&lt;/p></description></item><item><title>查询所有未注册域名脚本</title><link>https://mrasong.com/a/query-all-unregistered-domains/</link><pubDate>Thu, 28 Mar 2024 16:28:54 +0800</pubDate><guid>https://mrasong.com/a/query-all-unregistered-domains/</guid><description>&lt;p>写了个查询所有未注册域名的脚本，分享给大家。&lt;/p>
&lt;p>Demo 是查询所有&lt;code>3位纯字母&lt;/code> &lt;code>.me&lt;/code> 域名，可以自己修改。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#abb2bf;background-color:#282c34;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f"> 1&lt;/span>&lt;span>&lt;span style="color:#7f848e">#!/bin/bash
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f"> 2&lt;/span>&lt;span>&lt;span style="color:#7f848e">&lt;/span>&lt;span style="color:#e06c75">DOMAIN&lt;/span>&lt;span style="color:#56b6c2">=&lt;/span>me &lt;span style="color:#7f848e"># domain suffix&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f"> 3&lt;/span>&lt;span>&lt;span style="color:#e06c75">LENGTH&lt;/span>&lt;span style="color:#56b6c2">=&lt;/span>&lt;span style="color:#d19a66">3&lt;/span> &lt;span style="color:#7f848e"># length of domain&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f"> 4&lt;/span>&lt;span>&lt;span style="color:#e06c75">TIMEOUT&lt;/span>&lt;span style="color:#56b6c2">=&lt;/span>&lt;span style="color:#98c379">&amp;#34;gtimeout 5&amp;#34;&lt;/span> &lt;span style="color:#7f848e"># timeout command, can be gtimeout or timeout or empty&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f"> 5&lt;/span>&lt;span>&lt;span style="color:#e06c75">MATCH_STRING&lt;/span>&lt;span style="color:#56b6c2">=&lt;/span>&lt;span style="color:#98c379">&amp;#34;Domain not found&amp;#34;&lt;/span> &lt;span style="color:#7f848e"># unregisterd string&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f"> 6&lt;/span>&lt;span>&lt;span style="color:#e06c75">CHARS&lt;/span>&lt;span style="color:#56b6c2">=(&lt;/span>a b c d e f g h i j k l m n o p q r s t u v w x y z&lt;span style="color:#56b6c2">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f"> 7&lt;/span>&lt;span>&lt;span style="color:#7f848e"># CHARS=(a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f"> 8&lt;/span>&lt;span>&lt;span style="color:#7f848e"># CHARS=(0 1 2 3 4 5 6 7 8 9)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f"> 9&lt;/span>&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">10&lt;/span>&lt;span>&lt;span style="color:#c678dd">function&lt;/span> find&lt;span style="color:#56b6c2">()&lt;/span> &lt;span style="color:#56b6c2">{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">11&lt;/span>&lt;span> &lt;span style="color:#c678dd">if&lt;/span> &lt;span style="color:#56b6c2">[[&lt;/span> &lt;span style="color:#c678dd">$(&lt;/span>&lt;span style="color:#e06c75">$TIMEOUT&lt;/span> whois &lt;span style="color:#e06c75">$1&lt;/span> | grep -i &lt;span style="color:#98c379">&amp;#34;&lt;/span>&lt;span style="color:#e06c75">$MATCH_STRING&lt;/span>&lt;span style="color:#98c379">&amp;#34;&lt;/span>&lt;span style="color:#c678dd">)&lt;/span> &lt;span style="color:#56b6c2">]]&lt;/span>; &lt;span style="color:#c678dd">then&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">12&lt;/span>&lt;span> &lt;span style="color:#e5c07b">echo&lt;/span> &lt;span style="color:#e06c75">$1&lt;/span> &lt;span style="color:#98c379">&amp;#34;available&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">13&lt;/span>&lt;span> &lt;span style="color:#e5c07b">echo&lt;/span> &lt;span style="color:#e06c75">$1&lt;/span> &amp;gt;&amp;gt;&lt;span style="color:#e06c75">$DOMAIN&lt;/span>.txt
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">14&lt;/span>&lt;span> &lt;span style="color:#c678dd">fi&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">15&lt;/span>&lt;span>&lt;span style="color:#56b6c2">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">16&lt;/span>&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">17&lt;/span>&lt;span>&lt;span style="color:#c678dd">function&lt;/span> query&lt;span style="color:#56b6c2">()&lt;/span> &lt;span style="color:#56b6c2">{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">18&lt;/span>&lt;span> &lt;span style="color:#e5c07b">local&lt;/span> &lt;span style="color:#e06c75">len&lt;/span>&lt;span style="color:#56b6c2">=&lt;/span>&lt;span style="color:#e06c75">$1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">19&lt;/span>&lt;span> &lt;span style="color:#e5c07b">local&lt;/span> &lt;span style="color:#e06c75">prefix&lt;/span>&lt;span style="color:#56b6c2">=&lt;/span>&lt;span style="color:#e06c75">$2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">20&lt;/span>&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">21&lt;/span>&lt;span> &lt;span style="color:#c678dd">if&lt;/span> &lt;span style="color:#56b6c2">[[&lt;/span> &lt;span style="color:#e06c75">$len&lt;/span> -gt &lt;span style="color:#d19a66">0&lt;/span> &lt;span style="color:#56b6c2">]]&lt;/span>; &lt;span style="color:#c678dd">then&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">22&lt;/span>&lt;span> &lt;span style="color:#c678dd">for&lt;/span> i in &lt;span style="color:#98c379">${&lt;/span>&lt;span style="color:#e06c75">CHARS&lt;/span>[@]&lt;span style="color:#98c379">}&lt;/span>; &lt;span style="color:#c678dd">do&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">23&lt;/span>&lt;span> &lt;span style="color:#e5c07b">echo&lt;/span> &lt;span style="color:#e06c75">$prefix$i&lt;/span>.&lt;span style="color:#e06c75">$DOMAIN&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">24&lt;/span>&lt;span> query &lt;span style="color:#c678dd">$((&lt;/span>&lt;span style="color:#e06c75">$len&lt;/span> &lt;span style="color:#56b6c2">-&lt;/span> &lt;span style="color:#d19a66">1&lt;/span>&lt;span style="color:#c678dd">))&lt;/span> &lt;span style="color:#e06c75">$prefix$i&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">25&lt;/span>&lt;span> &lt;span style="color:#c678dd">done&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">26&lt;/span>&lt;span> &lt;span style="color:#c678dd">else&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">27&lt;/span>&lt;span> find &lt;span style="color:#e06c75">$prefix&lt;/span>.&lt;span style="color:#e06c75">$DOMAIN&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">28&lt;/span>&lt;span> &lt;span style="color:#c678dd">fi&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">29&lt;/span>&lt;span>&lt;span style="color:#56b6c2">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">30&lt;/span>&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f">31&lt;/span>&lt;span>query &lt;span style="color:#e06c75">$LENGTH&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;a href="https://gist.github.com/mrasong/38f994c6c26d238eae4936289fb68f47">Gist link&lt;/a>&lt;/p></description></item></channel></rss>