<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Docker 部署自动日志收集功能]]></title><description><![CDATA[<h1>Docker 部署自动日志收集功能</h1>
<blockquote>
<p dir="auto"><strong>发布日期</strong>：2026-01-12<br />
<strong>影响范围</strong>：所有使用 <code>docker/deploy.yml</code> 模板的 Docker 容器部署<br />
<strong>生效方式</strong>：自动生效，无需修改项目配置</p>
</blockquote>
<hr />
<h2>功能概述</h2>
<p dir="auto">从即日起，所有 Docker 容器部署任务在<strong>执行完成后</strong>（无论成功或失败），会自动收集：</p>
<ol>
<li><strong><img src="https://talk.loda.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f4c4.png?v=7ba14356ba6" class="not-responsive emoji emoji-android emoji--page_facing_up" style="height:23px;width:auto;vertical-align:middle" title="📄" alt="📄" /> 完整容器日志</strong> - 包含启动过程、运行日志、异常信息</li>
<li><strong><img src="https://talk.loda.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f50d.png?v=7ba14356ba6" class="not-responsive emoji emoji-android emoji--mag" style="height:23px;width:auto;vertical-align:middle" title="🔍" alt="🔍" /> 系统诊断信息</strong> - 容器状态、资源占用、端口、磁盘、内存、OOM 事件</li>
</ol>
<p dir="auto">这些信息会保存为 <strong>GitLab Artifact</strong>，保留 7 天。</p>
<hr />
<h2>为什么需要这个功能？</h2>
<p dir="auto">之前排查容器问题时：</p>
<ul>
<li><img src="https://talk.loda.net/assets/plugins/nodebb-plugin-emoji/emoji/android/274c.png?v=7ba14356ba6" class="not-responsive emoji emoji-android emoji--x" style="height:23px;width:auto;vertical-align:middle" title="❌" alt="❌" /> 需要 SSH 登录服务器手动执行 <code>docker logs</code></li>
<li><img src="https://talk.loda.net/assets/plugins/nodebb-plugin-emoji/emoji/android/274c.png?v=7ba14356ba6" class="not-responsive emoji emoji-android emoji--x" style="height:23px;width:auto;vertical-align:middle" title="❌" alt="❌" /> 日志只输出在控制台，内容过长时难以查看</li>
<li><img src="https://talk.loda.net/assets/plugins/nodebb-plugin-emoji/emoji/android/274c.png?v=7ba14356ba6" class="not-responsive emoji emoji-android emoji--x" style="height:23px;width:auto;vertical-align:middle" title="❌" alt="❌" /> 部署失败时日志可能被截断或丢失</li>
<li><img src="https://talk.loda.net/assets/plugins/nodebb-plugin-emoji/emoji/android/274c.png?v=7ba14356ba6" class="not-responsive emoji emoji-android emoji--x" style="height:23px;width:auto;vertical-align:middle" title="❌" alt="❌" /> 无法快速了解服务器资源状态</li>
</ul>
<p dir="auto">现在：</p>
<ul>
<li><img src="https://talk.loda.net/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=7ba14356ba6" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:23px;width:auto;vertical-align:middle" title="✅" alt="✅" /> <strong>自动收集</strong>，无需登录服务器</li>
<li><img src="https://talk.loda.net/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=7ba14356ba6" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:23px;width:auto;vertical-align:middle" title="✅" alt="✅" /> <strong>完整日志</strong>，保存为可下载文件</li>
<li><img src="https://talk.loda.net/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=7ba14356ba6" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:23px;width:auto;vertical-align:middle" title="✅" alt="✅" /> <strong>诊断信息</strong>，一目了然</li>
<li><img src="https://talk.loda.net/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=7ba14356ba6" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:23px;width:auto;vertical-align:middle" title="✅" alt="✅" /> <strong>Artifact 链接</strong>，直接点击下载</li>
</ul>
<hr />
<h2>如何使用</h2>
<h3>1. 查看 Artifact 链接</h3>
<p dir="auto">部署任务完成后，在 GitLab Job 日志底部会显示：</p>
<pre><code>========================================
📥 Artifact 下载链接：
========================================

📄 容器日志：
   https://gitlab.xxx.com/xxx/-/jobs/12345/artifacts/file/logs/container_production_20260112_190000.log

🔍 诊断信息：
   https://gitlab.xxx.com/xxx/-/jobs/12345/artifacts/file/logs/container_production_20260112_190000_diagnostics.txt

📦 全部文件（浏览）：
   https://gitlab.xxx.com/xxx/-/jobs/12345/artifacts/browse/logs/
========================================
</code></pre>
<h3>2. 下载方式</h3>
<ul>
<li><strong>方式一</strong>：直接点击上述链接</li>
<li><strong>方式二</strong>：在 Job 页面右侧点击 <strong>"Browse"</strong> 或 <strong>"Download"</strong> 按钮</li>
<li><strong>方式三</strong>：在 Pipeline 页面点击 <strong>下载图标</strong> → <strong>artifacts</strong></li>
</ul>
<h3>3. Artifact 内容</h3>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>文件</th>
<th>内容</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>{容器名}_{环境}_{时间}.log</code></td>
<td>完整容器日志（含时间戳）</td>
</tr>
<tr>
<td><code>{容器名}_{环境}_{时间}_diagnostics.txt</code></td>
<td>系统诊断信息</td>
</tr>
</tbody>
</table>
<hr />
<h2>诊断信息包含什么？</h2>
<pre><code>============================================
📦 1. 容器状态 (docker ps -a)
============================================
- 所有容器的运行状态、端口映射、镜像版本

============================================
📊 2. 容器资源占用 (docker stats)
============================================
- CPU、内存、网络 IO、磁盘 IO

============================================
🔧 3. 容器配置摘要 (docker inspect)
============================================
- 镜像名、启动时间、重启次数、状态、退出码、端口映射、环境变量

============================================
🌐 4. 端口监听 (ss -tlnp)
============================================
- 服务器上所有监听的端口

============================================
💾 5. 磁盘空间 (df -h)
============================================
- 各分区使用情况

============================================
🧠 6. 内存状态 (free -m)
============================================
- 物理内存和 Swap 使用情况

============================================
💀 7. OOM 事件 (dmesg)
============================================
- 内核日志中的 OOM（内存不足被杀）事件
</code></pre>
<hr />
<h2>配置选项（可选）</h2>
<p dir="auto">默认已启用，一般无需修改。如需调整，在产品配置中设置：</p>
<pre><code class="language-yaml">variables:
  # 禁用日志收集（默认 true）
  COLLECT_LOGS_ENABLED: "false"
  
  # 限制日志行数（默认空=完整日志）
  COLLECT_LOGS_TAIL: "5000"
  
  # 禁用诊断信息收集（默认 true）
  COLLECT_DIAGNOSTICS: "false"
</code></pre>
<hr />
<h2>常见问题</h2>
<h3>Q: 日志文件会不会很大？</h3>
<p dir="auto">A: 取决于容器运行时间和日志量。Artifact 有大小限制（默认 100MB），超大日志会被截断。如果经常超限，可设置 <code>COLLECT_LOGS_TAIL: "10000"</code> 限制行数。</p>
<h3>Q: 敏感信息会不会泄露？</h3>
<p dir="auto">A: Artifact 遵循 GitLab 项目权限，只有项目成员可查看。如有特殊安全要求，可设置 <code>COLLECT_LOGS_ENABLED: "false"</code> 禁用。</p>
<h3>Q: 部署失败时还能收集日志吗？</h3>
<p dir="auto">A: 能。<code>after_script</code> 在主脚本失败后仍会执行，<code>when: always</code> 确保 Artifact 始终上传。</p>
<h3>Q: 旧项目需要改配置吗？</h3>
<p dir="auto">A: <strong>不需要</strong>。只要使用 <code>docker/deploy.yml</code> 模板，功能自动生效。</p>
<hr />
<h2>技术实现</h2>
<ul>
<li>在 <code>docker/deploy.yml</code> 的 <code>after_script</code> 中实现</li>
<li>通过 SSH 远程执行 <code>docker logs</code> 和诊断命令</li>
<li>结果保存到 <code>logs/</code> 目录作为 Artifact 上传</li>
</ul>
<p dir="auto"><strong>相关文件</strong>：</p>
<ul>
<li><code>deploy/common-ci/docker/deploy.yml</code></li>
</ul>
<hr />
<h2>反馈与建议</h2>
<p dir="auto">如有问题或改进建议，请联系 DevOps 团队或在 <code>deploy/common-ci</code> 仓库提 Issue。</p>
]]></description><link>https://talk.loda.net/topic/47/docker-部署自动日志收集功能</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Apr 2026 08:17:02 GMT</lastBuildDate><atom:link href="https://talk.loda.net/topic/47.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 12 Jan 2026 11:20:48 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Docker 部署自动日志收集功能 on Mon, 12 Jan 2026 11:35:48 GMT]]></title><description><![CDATA[<p dir="auto">=== 容器状态 ===<br />
CONTAINER ID   IMAGE                                                             COMMAND                  CREATED          STATUS                  PORTS                                           NAMES<br />
bc54e3be67b7   <a href="http://docker-sz.loda.net.cn/docker-pos/rider/api:2855.2026.0112.59831" target="_blank" rel="noopener noreferrer nofollow ugc">docker-sz.loda.net.cn/docker-pos/rider/api:2855.2026.0112.59831</a>   "dotnet Loda.Distrib…"   18 seconds ago   Up 18 seconds           0.0.0.0:8071-&gt;80/tcp                            distribution-centre-api-test<br />
44b32ace9727   <a href="http://docker-sz.loda.net.cn/docker-pos/api:2855.2026.0112.59828" target="_blank" rel="noopener noreferrer nofollow ugc">docker-sz.loda.net.cn/docker-pos/api:2855.2026.0112.59828</a>         "dotnet Loda.Abp.Sto…"   7 minutes ago    Up 7 minutes            0.0.0.0:8041-&gt;8080/tcp                          pos-api-test<br />
48ca6fd5bef4   <a href="http://docker-sz.loda.net.cn/docker-pos/blazor:2855.2026.0110.59707" target="_blank" rel="noopener noreferrer nofollow ugc">docker-sz.loda.net.cn/docker-pos/blazor:2855.2026.0110.59707</a>      "dotnet Loda.Abp.Sto…"   2 days ago       Up 2 days               0.0.0.0:8031-&gt;8080/tcp                          pos-blazor-test<br />
5a2278b77870   <a href="http://docker-sz.loda.net.cn/docker-pos/auth:2855.2026.0109.59379" target="_blank" rel="noopener noreferrer nofollow ugc">docker-sz.loda.net.cn/docker-pos/auth:2855.2026.0109.59379</a>        "dotnet Loda.Abp.Sto…"   3 days ago       Up 3 days               0.0.0.0:8051-&gt;8080/tcp                          pos-auth-test<br />
3a7636d4a907   <a href="http://docker-hk.loda.net.cn/redis:7-alpine" target="_blank" rel="noopener noreferrer nofollow ugc">docker-hk.loda.net.cn/redis:7-alpine</a>                              "docker-entrypoint.s…"   6 weeks ago      Up 7 days               0.0.0.0:56379-&gt;6379/tcp, [::]:56379-&gt;6379/tcp   redis-56379<br />
a417ffcc7aa6   <a href="http://docker-hk.loda.net.cn/redis:7-alpine" target="_blank" rel="noopener noreferrer nofollow ugc">docker-hk.loda.net.cn/redis:7-alpine</a>                              "docker-entrypoint.s…"   6 weeks ago      Up 7 days               0.0.0.0:56380-&gt;6379/tcp, [::]:56380-&gt;6379/tcp   redis-56380<br />
029b4cfc0ab9   rewardplatformweb-reward                                          "dotnet RewardPlatfo…"   4 months ago     Up 7 days (unhealthy)   0.0.0.0:44396-&gt;80/tcp, [::]:44396-&gt;80/tcp       reward</p>
<p dir="auto">=== 容器资源 ===<br />
CONTAINER ID   NAME                           CPU %     MEM USAGE / LIMIT     MEM %     NET I/O           BLOCK I/O         PIDS<br />
bc54e3be67b7   distribution-centre-api-test   0.78%     184.2MiB / 6.976GiB   2.58%     62.5kB / 162kB    8.19kB / 53.2kB   49<br />
44b32ace9727   pos-api-test                   0.06%     435.5MiB / 6.976GiB   6.10%     590kB / 703kB     4.1kB / 152kB     51<br />
48ca6fd5bef4   pos-blazor-test                0.21%     249.2MiB / 6.976GiB   3.49%     6.5MB / 8.44MB    1.02MB / 229kB    33<br />
5a2278b77870   pos-auth-test                  0.24%     433.4MiB / 6.976GiB   6.07%     12.2MB / 20.3MB   8.19kB / 1.13MB   33<br />
3a7636d4a907   redis-56379                    0.47%     3.57MiB / 6.976GiB    0.05%     52.7kB / 25.3kB   8.97MB / 49.2kB   6<br />
a417ffcc7aa6   redis-56380                    0.51%     19.94MiB / 6.976GiB   0.28%     22.9kB / 7.06kB   17.7MB / 0B       6<br />
029b4cfc0ab9   reward                         0.05%     393MiB / 6.976GiB     5.50%     941kB / 22.3MB    160MB / 4.1kB     22</p>
<p dir="auto">=== 容器详情 ===<br />
[<br />
{<br />
"Id": "bc54e3be67b7280e7666edc5f7ded99d76211ab947c5c52ad3adf77b826b0bb9",<br />
"Created": "2026-01-12T11:32:44.399418948Z",<br />
"Path": "dotnet",<br />
"Args": [<br />
"Loda.DistributionCentre.Web.Host.dll"<br />
],<br />
"State": {<br />
"Status": "running",<br />
"Running": true,<br />
"Paused": false,<br />
"Restarting": false,<br />
"OOMKilled": false,<br />
"Dead": false,<br />
"Pid": 749357,<br />
"ExitCode": 0,<br />
"Error": "",<br />
"StartedAt": "2026-01-12T11:32:44.464254948Z",<br />
"FinishedAt": "0001-01-01T00:00:00Z"<br />
},<br />
"Image": "sha256:cc436d5e068a5daa68a27a4ebf4e83df30818d758963e7743beb44c03cfcce1d",<br />
"ResolvConfPath": "/var/lib/docker/containers/bc54e3be67b7280e7666edc5f7ded99d76211ab947c5c52ad3adf77b826b0bb9/resolv.conf",<br />
"HostnamePath": "/var/lib/docker/containers/bc54e3be67b7280e7666edc5f7ded99d76211ab947c5c52ad3adf77b826b0bb9/hostname",<br />
"HostsPath": "/var/lib/docker/containers/bc54e3be67b7280e7666edc5f7ded99d76211ab947c5c52ad3adf77b826b0bb9/hosts",<br />
"LogPath": "/var/lib/docker/containers/bc54e3be67b7280e7666edc5f7ded99d76211ab947c5c52ad3adf77b826b0bb9/bc54e3be67b7280e7666edc5f7ded99d76211ab947c5c52ad3adf77b826b0bb9-json.log",<br />
"Name": "/distribution-centre-api-test",<br />
"RestartCount": 0,<br />
"Driver": "overlay2",<br />
"Platform": "linux",<br />
"MountLabel": "",<br />
"ProcessLabel": "",<br />
"AppArmorProfile": "docker-default",<br />
"ExecIDs": null,<br />
"HostConfig": {<br />
"Binds": [<br />
"/srv/distribution-centre/logs/api:/app/Logs"<br />
],<br />
"ContainerIDFile": "",<br />
"LogConfig": {<br />
"Type": "json-file",<br />
"Config": {}<br />
},<br />
"NetworkMode": "bridge",<br />
"PortBindings": {<br />
"80/tcp": [<br />
{<br />
"HostIp": "0.0.0.0",<br />
"HostPort": "8071"<br />
}<br />
]<br />
},<br />
"RestartPolicy": {<br />
"Name": "unless-stopped",<br />
"MaximumRetryCount": 0<br />
},<br />
"AutoRemove": false,<br />
"VolumeDriver": "",<br />
"VolumesFrom": null,<br />
"ConsoleSize": [<br />
0,<br />
0<br />
],<br />
"CapAdd": null,<br />
"CapDrop": null,<br />
"CgroupnsMode": "private",<br />
"Dns": [],<br />
"DnsOptions": [],<br />
"DnsSearch": [],<br />
"ExtraHosts": null,<br />
"GroupAdd": null,<br />
"IpcMode": "private",<br />
"Cgroup": "",<br />
"Links": null,<br />
"OomScoreAdj": 0,<br />
"PidMode": "",<br />
"Privileged": false,<br />
"PublishAllPorts": false,<br />
"ReadonlyRootfs": false,<br />
"SecurityOpt": null,<br />
"UTSMode": "",<br />
"UsernsMode": "",<br />
"ShmSize": 67108864,<br />
"Runtime": "runc",<br />
"Isolation": "",<br />
"CpuShares": 0,<br />
"Memory": 0,<br />
"NanoCpus": 0,<br />
"CgroupParent": "",<br />
"BlkioWeight": 0,<br />
"BlkioWeightDevice": [],<br />
"BlkioDeviceReadBps": [],<br />
"BlkioDeviceWriteBps": [],<br />
"BlkioDeviceReadIOps": [],<br />
"BlkioDeviceWriteIOps": [],<br />
"CpuPeriod": 0,<br />
"CpuQuota": 0,<br />
"CpuRealtimePeriod": 0,<br />
"CpuRealtimeRuntime": 0,<br />
"CpusetCpus": "",<br />
"CpusetMems": "",<br />
"Devices": [],<br />
"DeviceCgroupRules": null,<br />
"DeviceRequests": null,<br />
"MemoryReservation": 0,<br />
"MemorySwap": 0,<br />
"MemorySwappiness": null,<br />
"OomKillDisable": null,<br />
"PidsLimit": null,<br />
"Ulimits": [],<br />
"CpuCount": 0,<br />
"CpuPercent": 0,<br />
"IOMaximumIOps": 0,<br />
"IOMaximumBandwidth": 0,<br />
"MaskedPaths": [<br />
"/proc/asound",<br />
"/proc/acpi",<br />
"/proc/interrupts",<br />
"/proc/kcore",<br />
"/proc/keys",<br />
"/proc/latency_stats",<br />
"/proc/timer_list",<br />
"/proc/timer_stats",<br />
"/proc/sched_debug",<br />
"/proc/scsi",<br />
"/sys/firmware",<br />
"/sys/devices/virtual/powercap"<br />
],<br />
"ReadonlyPaths": [<br />
"/proc/bus",<br />
"/proc/fs",<br />
"/proc/irq",<br />
"/proc/sys",<br />
"/proc/sysrq-trigger"<br />
]<br />
},<br />
"GraphDriver": {<br />
"Data": {<br />
"ID": "bc54e3be67b7280e7666edc5f7ded99d76211ab947c5c52ad3adf77b826b0bb9",<br />
"LowerDir": "/var/lib/docker/overlay2/405cb8c9aa1666804f2c182a7215306363f95f8d2f713e7f5eb755b7d13bc493-init/diff:/var/lib/docker/overlay2/082b1a06e0b75f5906735e830c5b02bad10909e873d21bb4d64095097b071aba/diff:/var/lib/docker/overlay2/3bca4a900387a94b7d43166ad48c413534a07a761e583b1118a2ceff02d66d93/diff:/var/lib/docker/overlay2/b88e36f6375c14437e305a81b2c6512b409c095142d8b03a715fc54bdbc14ca5/diff:/var/lib/docker/overlay2/236a2b85bf0d62b68bf0b644f1f9b142e1edf555ba7ccb478ac501e8b5e03877/diff:/var/lib/docker/overlay2/167a94024e505e7a252fb6173fc4633116b3af9380a28370b16ec6719b7fa3d0/diff:/var/lib/docker/overlay2/318fb2a62244f9fa3144f5a83eaf6373410df98c6b4112b4fc7d247635f7a1ea/diff:/var/lib/docker/overlay2/b32418fcb0903e993b4b79fbb53a09d3436d0710c15992f1c0325b2be49b49e8/diff:/var/lib/docker/overlay2/236684bbdd8e7e3a0e19cc47b5bcf13b3302e317ca9a2912532a46d7d8808fc8/diff:/var/lib/docker/overlay2/95b57c8b5efd1f4e5030e42ee8f4e0d40b98d8a7668a8054ff4bf9c69d99d9eb/diff:/var/lib/docker/overlay2/9e4b53d4f574b7a538da3d5a211ad71f500be70439b464f9d408c45ecc3dcd95/diff:/var/lib/docker/overlay2/913fc948cbabc01d43e5e3d21b50d9fb56c651a663bd34b3b71051fdaea5baeb/diff:/var/lib/docker/overlay2/fda0c16f14d6705c29c54872df539c21d0f641a932ff70bfa1224f56cf467530/diff:/var/lib/docker/overlay2/256584f70b45487c8562f8f38c535f38c70cc555c8434b25f8bcb22685ac308d/diff:/var/lib/docker/overlay2/42e5bceb6f86515a2d61b68bfd268145d62d61e63d553b944ef93f57b1a86404/diff:/var/lib/docker/overlay2/31ef0ef7df042188980f2f6c55553ce2a6110c9f581da00ea308afa142dcda14/diff:/var/lib/docker/overlay2/e5a65937fbbfbd3d27da24393b700e95a66879d9ea968fd19cad32bc811117f8/diff:/var/lib/docker/overlay2/9db579ae7ae6f8a2cdd0931e79b20f4b6c4edea50e62692f401b8421273782fb/diff:/var/lib/docker/overlay2/7583c02e3323c98e545a9a6c7f343700bbbb633f4c856a2a222f8e3652eda60d/diff:/var/lib/docker/overlay2/f13db28022489bf3e63b2aa531757e264e1cb0ad34635afdbaed373bc02a9d83/diff:/var/lib/docker/overlay2/8e089d7b6f69eb33696977c5a36d749c49df43992e06c0e6cf762b1c67722b94/diff:/var/lib/docker/overlay2/64e4ec95d4195213956f64f2bf7d2a37982214b887d4208bbad0d1a826d2014f/diff",<br />
"MergedDir": "/var/lib/docker/overlay2/405cb8c9aa1666804f2c182a7215306363f95f8d2f713e7f5eb755b7d13bc493/merged",<br />
"UpperDir": "/var/lib/docker/overlay2/405cb8c9aa1666804f2c182a7215306363f95f8d2f713e7f5eb755b7d13bc493/diff",<br />
"WorkDir": "/var/lib/docker/overlay2/405cb8c9aa1666804f2c182a7215306363f95f8d2f713e7f5eb755b7d13bc493/work"<br />
},<br />
"Name": "overlay2"<br />
},<br />
"Mounts": [<br />
{<br />
"Type": "bind",<br />
"Source": "/srv/distribution-centre/logs/api",<br />
"Destination": "/app/Logs",<br />
"Mode": "",<br />
"RW": true,<br />
"Propagation": "rprivate"<br />
}<br />
],<br />
"Config": {<br />
"Hostname": "bc54e3be67b7",<br />
"Domainname": "",<br />
"User": "",<br />
"AttachStdin": false,<br />
"AttachStdout": false,<br />
"AttachStderr": false,<br />
"ExposedPorts": {<br />
"80/tcp": {}<br />
},<br />
"Tty": false,<br />
"OpenStdin": false,<br />
"StdinOnce": false,<br />
"Env": [<br />
"ASPNETCORE_ENVIRONMENT=test",<br />
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",<br />
"ASPNETCORE_URLS=",<br />
"DOTNET_RUNNING_IN_CONTAINER=true",<br />
"DOTNET_VERSION=6.0.36",<br />
"ASPNET_VERSION=6.0.36",<br />
"DOTNET_GENERATE_ASPNET_CERTIFICATE=false",<br />
"DOTNET_NOLOGO=true",<br />
"DOTNET_SDK_VERSION=6.0.428",<br />
"DOTNET_USE_POLLING_FILE_WATCHER=true",<br />
"NUGET_XMLDOC_MODE=skip",<br />
"POWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetSDK-Debian-11"<br />
],<br />
"Cmd": null,<br />
"Image": "<a href="http://docker-sz.loda.net.cn/docker-pos/rider/api:2855.2026.0112.59831" target="_blank" rel="noopener noreferrer nofollow ugc">docker-sz.loda.net.cn/docker-pos/rider/api:2855.2026.0112.59831</a>",<br />
"Volumes": null,<br />
"WorkingDir": "/app",<br />
"Entrypoint": [<br />
"dotnet",<br />
"Loda.DistributionCentre.Web.Host.dll"<br />
],<br />
"OnBuild": null,<br />
"Labels": {}<br />
},<br />
"NetworkSettings": {<br />
"Bridge": "",<br />
"SandboxID": "a5068e2868bc64451f4fbdf56f6c775a1a55a80d6ae268a919a20d6468c35da0",<br />
"SandboxKey": "/var/run/docker/netns/a5068e2868bc",<br />
"Ports": {<br />
"80/tcp": [<br />
{<br />
"HostIp": "0.0.0.0",<br />
"HostPort": "8071"<br />
}<br />
]<br />
},<br />
"HairpinMode": false,<br />
"LinkLocalIPv6Address": "",<br />
"LinkLocalIPv6PrefixLen": 0,<br />
"SecondaryIPAddresses": null,<br />
"SecondaryIPv6Addresses": null,<br />
"EndpointID": "eb35adb6802d8a42c50452cf2acb4d24a894d8218cce11118e85796992a645a9",<br />
"Gateway": "172.17.0.1",<br />
"GlobalIPv6Address": "",<br />
"GlobalIPv6PrefixLen": 0,<br />
"IPAddress": "172.17.0.5",<br />
"IPPrefixLen": 16,<br />
"IPv6Gateway": "",<br />
"MacAddress": "5a:12:cb:9b:bb:d1",<br />
"Networks": {<br />
"bridge": {<br />
"IPAMConfig": null,<br />
"Links": null,<br />
"Aliases": null,<br />
"MacAddress": "5a:12:cb:9b:bb:d1",<br />
"DriverOpts": null,<br />
"GwPriority": 0,<br />
"NetworkID": "616640d561322f9ace160edec3bba3d6f310eec53f590a3318b099589228104c",<br />
"EndpointID": "eb35adb6802d8a42c50452cf2acb4d24a894d8218cce11118e85796992a645a9",<br />
"Gateway": "172.17.0.1",<br />
"IPAddress": "172.17.0.5",<br />
"IPPrefixLen": 16,<br />
"IPv6Gateway": "",<br />
"GlobalIPv6Address": "",<br />
"GlobalIPv6PrefixLen": 0,<br />
"DNSNames": null<br />
}<br />
}<br />
}<br />
}<br />
]</p>
<p dir="auto">=== 端口监听 ===<br />
State  Recv-Q Send-Q Local Address:Port  Peer Address:PortProcess<br />
LISTEN 0      4096      127.0.0.54:53         0.0.0.0:*<br />
LISTEN 0      4096       127.0.0.1:39471      0.0.0.0:*<br />
LISTEN 0      4096         0.0.0.0:22         0.0.0.0:*<br />
LISTEN 0      511          0.0.0.0:80         0.0.0.0:*<br />
LISTEN 0      511          0.0.0.0:888        0.0.0.0:*<br />
LISTEN 0      4096         0.0.0.0:44396      0.0.0.0:*<br />
LISTEN 0      4096         0.0.0.0:56380      0.0.0.0:*<br />
LISTEN 0      4096         0.0.0.0:56379      0.0.0.0:*<br />
LISTEN 0      4096         0.0.0.0:8071       0.0.0.0:*<br />
LISTEN 0      4096         0.0.0.0:8031       0.0.0.0:*<br />
LISTEN 0      4096         0.0.0.0:8041       0.0.0.0:*<br />
LISTEN 0      4096         0.0.0.0:8051       0.0.0.0:*<br />
LISTEN 0      511          0.0.0.0:36379      0.0.0.0:*<br />
LISTEN 0      100          0.0.0.0:51435      0.0.0.0:*<br />
LISTEN 0      4096   127.0.0.53%lo:53         0.0.0.0:*<br />
LISTEN 0      4096            [::]:22            [::]:*<br />
LISTEN 0      4096            [::]:44396         [::]:*<br />
LISTEN 0      4096            [::]:56380         [::]:*<br />
LISTEN 0      4096            [::]:56379         [::]:*</p>
<p dir="auto">=== 磁盘空间 ===<br />
Filesystem      Size  Used Avail Use% Mounted on<br />
tmpfs           715M  5.2M  710M   1% /run<br />
efivarfs        256K   19K  233K   8% /sys/firmware/efi/efivars<br />
/dev/vda3        99G   42G   53G  45% /<br />
tmpfs           3.5G  5.7M  3.5G   1% /dev/shm<br />
tmpfs           5.0M     0  5.0M   0% /run/lock<br />
/dev/vda2       197M  6.2M  191M   4% /boot/efi<br />
tmpfs           715M   12K  715M   1% /run/user/0<br />
tmpfs           715M   12K  715M   1% /run/user/1004</p>
<p dir="auto">=== 内存状态 ===<br />
total        used        free      shared  buff/cache   available<br />
Mem:            7143        2718         270         575        5035        4424<br />
Swap:              0           0           0</p>
<p dir="auto">=== OOM事件 ===</p>
<p dir="auto">=== Docker事件 ===<br />
2026-01-12T19:23:20.607064812+08:00 container exec_create: curl -f <a href="http://localhost/health-status" target="_blank" rel="noopener noreferrer nofollow ugc">http://localhost/health-status</a> 029b4cfc0ab9a4172e12088c4faab4c84235ae86dd7baa30fbf8f879b68ee880 (com.docker.compose.config-hash=fa5720073ce1ebf925849b1e4cbd586052490604987028241836fd0c700bff6f, com.docker.compose.container-number=1, com.docker.compose.depends_on=, com.docker.compose.image=sha256:464e6086f5d1aa2b694e82cbc5b2540f1b20a8791fba5ecb4ba6493951c8daa5, com.docker.compose.oneoff=False, com.docker.compose.project=rewardplatformweb, com.docker.compose.project.config_files=/home/reward/RewardPlatform/src/RewardPlatform.Web/docker-compose.yaml, com.docker.compose.project.working_dir=/home/reward/RewardPlatform/src/RewardPlatform.Web, com.docker.compose.service=reward, com.docker.compose.version=2.28.1, execID=c8d3a5f8883245901e3c0fb9782d82b054ffb2ecb90c0d00693eba51f0e7f2dd, image=rewardplatformweb-reward, name=reward)<br />
2026-01-12T19:23:20.607167182+08:00 container exec_start: curl -f <a href="http://localhost/health-status" target="_blank" rel="noopener noreferrer nofollow ugc">http://localhost/health-status</a> 029b4cfc0ab9a4172e12088c4faab4c84235ae86dd7baa30fbf8f879b68ee880 (com.docker.compose.config-hash=fa5720073ce1ebf925849b1e4cbd586052490604987028241836fd0c700bff6f, com.docker.compose.container-number=1, com.docker.compose.depends_on=, com.docker.compose.image=sha256:464e6086f5d1aa2b694e82cbc5b2540f1b20a8791fba5ecb4ba6493951c8daa5, com.docker.compose.oneoff=False, com.docker.compose.project=rewardplatformweb, com.docker.compose.project.config_files=/home/reward/RewardPlatform/src/RewardPlatform.Web/docker-compose.yaml, com.docker.compose.project.working_dir=/home/reward/RewardPlatform/src/RewardPlatform.Web, com.docker.compose.service=reward, com.docker.compose.version=2.28.1, execID=c8d3a5f8883245901e3c0fb9782d82b054ffb2ecb90c0d00693eba51f0e7f2dd, image=rewardplatformweb-reward, name=reward)<br />
2026-01-12T19:23:50.722054677+08:00 container exec_create: curl -f <a href="http://localhost/health-status" target="_blank" rel="noopener noreferrer nofollow ugc">http://localhost/health-status</a> 029b4cfc0ab9a4172e12088c4faab4c84235ae86dd7baa30fbf8f879b68ee880 (com.docker.compose.config-hash=fa5720073ce1ebf925849b1e4cbd586052490604987028241836fd0c700bff6f, com.docker.compose.container-number=1, com.docker.compose.depends_on=, com.docker.compose.image=sha256:464e6086f5d1aa2b694e82cbc5b2540f1b20a8791fba5ecb4ba6493951c8daa5, com.docker.compose.oneoff=False, com.docker.compose.project=rewardplatformweb, com.docker.compose.project.config_files=/home/reward/RewardPlatform/src/RewardPlatform.Web/docker-compose.yaml, com.docker.compose.project.working_dir=/home/reward/RewardPlatform/src/RewardPlatform.Web, com.docker.compose.service=reward, com.docker.compose.version=2.28.1, execID=6398e56e45718f4ac693847a526222ea7b8030992eb5679215f138d5dcab1148, image=rewardplatformweb-reward, name=reward)<br />
2026-01-12T19:23:50.722167378+08:00 container exec_start: curl -f <a href="http://localhost/health-status" target="_blank" rel="noopener noreferrer nofollow ugc">http://localhost/health-status</a> 029b4cfc0ab9a4172e12088c4faab4c84235ae86dd7baa30fbf8f879b68ee880 (com.docker.compose.config-hash=fa5720073ce1ebf925849b1e4cbd586052490604987028241836fd0c700bff6f, com.docker.compose.container-number=1, com.docker.compose.depends_on=, com.docker.compose.image=sha256:464e6086f5d1aa2b694e82cbc5b2540f1b20a8791fba5ecb4ba6493951c8daa5, com.docker.compose.oneoff=False, com.docker.compose.project=rewardplatformweb, 2026-01-12T19:32:53.013454020+08:00 container exec_create: curl -f <a href="http://localhost/health-status" target="_blank" rel="noopener noreferrer nofollow ugc">http://localhost/health-status</a> 029b4cfc0ab9a4172e12088c4faab4c84235ae86dd7baa30fbf8f879b68ee880 (com.docker.compose.config-hash=fa5720073ce1ebf925849b1e4cbd586052490604987028241836fd0c700bff6f, com.docker.compose.container-number=1, com.docker.compose.depends_on=, com.docker.compose.image=sha256:464e6086f5d1aa2b694e82cbc5b2540f1b20a8791fba5ecb4ba6493951c8daa5, com.docker.compose.oneoff=False, com.docker.compose.project=rewardplatformweb, com.docker.compose.project.config_files=/home/reward/RewardPlatform/src/RewardPlatform.Web/docker-compose.yaml, com.docker.compose.project.working_dir=/home/reward/RewardPlatform/src/RewardPlatform.Web, com.docker.compose.service=reward, com.docker.compose.version=2.28.1, execID=0a338bec297fda57ebfc2e3f12a01d32bb7fa4e814bd5ec2fd13d1f3c1a4678f, image=rewardplatformweb-reward, name=reward)<br />
2026-01-12T19:32:53.013568922+08:00 container exec_start: curl -f <a href="http://localhost/health-status" target="_blank" rel="noopener noreferrer nofollow ugc">http://localhost/health-status</a> 029b4cfc0ab9a4172e12088c4faab4c84235ae86dd7baa30fbf8f879b68ee880 (com.docker.compose.config-hash=fa5720073ce1ebf925849b1e4cbd586052490604987028241836fd0c700bff6f, com.docker.compose.container-number=1, com.docker.compose.depends_on=, com.docker.compose.image=sha256:464e6086f5d1aa2b694e82cbc5b2540f1b20a8791fba5ecb4ba6493951c8daa5, com.docker.compose.oneoff=False, com.docker.compose.project=rewardplatformweb, com.docker.compose.project.config_files=/home/reward/RewardPlatform/src/RewardPlatform.Web/docker-compose.yaml, com.docker.compose.project.working_dir=/home/reward/RewardPlatform/src/RewardPlatform.Web, com.docker.compose.service=reward, com.docker.compose.version=2.28.1, execID=0a338bec297fda57ebfc2e3f12a01d32bb7fa4e814bd5ec2fd13d1f3c1a4678f, image=rewardplatformweb-reward, name=reward)</p>
<p dir="auto">=== Done ===<br />
Mon Jan 12 07:33:05 PM CST 2026</p>
]]></description><link>https://talk.loda.net/post/60</link><guid isPermaLink="true">https://talk.loda.net/post/60</guid><dc:creator><![CDATA[admin]]></dc:creator><pubDate>Mon, 12 Jan 2026 11:35:48 GMT</pubDate></item><item><title><![CDATA[Reply to Docker 部署自动日志收集功能 on Mon, 12 Jan 2026 11:33:13 GMT]]></title><description><![CDATA[<p dir="auto">Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware[4]<br />
2026-01-12T11:21:01.047969315Z       =&gt; SpanId:6952101bbcf4f63b, TraceId:e96ac0262f8324b9d7060b5407533b2f, ParentId:0000000000000000 =&gt; ConnectionId:0HNIHPIL8R15L =&gt; RequestPath:/health RequestId:0HNIHPIL8R15L:00000002<br />
2026-01-12T11:21:01.047983958Z       The request path /health does not match a supported file type<br />
2026-01-12T11:21:01.133497534Z [40m[37mdbug[39m[22m[49m: Microsoft.AspNetCore.Routing.Matching.DfaMatcher[1001]<br />
2026-01-12T11:21:01.135428046Z       =&gt; SpanId:6952101bbcf4f63b, TraceId:e96ac0262f8324b9d7060b5407533b2f, ParentId:0000000000000000 =&gt; ConnectionId:0HNIHPIL8R15L =&gt; RequestPath:/health RequestId:0HNIHPIL8R15L:00000002<br />
2026-01-12T11:21:01.135548625Z       1 candidate(s) found for the request path '/health'<br />
2026-01-12T11:21:01.135553642Z [40m[37mdbug[39m[22m[49m: Microsoft.AspNetCore.Routing.EndpointRoutingMiddleware[1]<br />
2026-01-12T11:21:01.135557345Z       =&gt; SpanId:6952101bbcf4f63b, TraceId:e96ac0262f8324b9d7060b5407533b2f, ParentId:0000000000000000 =&gt; ConnectionId:0HNIHPIL8R15L =&gt; RequestPath:/health RequestId:0HNIHPIL8R15L:00000002<br />
2026-01-12T11:21:01.135561094Z       Request matched endpoint 'Health checks'<br />
2026-01-12T11:21:01.193240590Z [40m[37mdbug[39m[22m[49m: Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerHandler[9]<br />
2026-01-12T11:21:01.193307759Z       =&gt; SpanId:6952101bbcf4f63b, TraceId:e96ac0262f8324b9d7060b5407533b2f, ParentId:0000000000000000 =&gt; ConnectionId:0HNIHPIL8R15L =&gt; RequestPath:/health RequestId:0HNIHPIL8R15L:00000002<br />
2026-01-12T11:21:01.193313857Z       AuthenticationScheme: JwtBearer was not authenticated.<br />
2026-01-12T11:21:01.228272422Z [40m[32minfo[39m[22m[49m: Microsoft.AspNetCore.Routing.EndpointMiddleware[0]<br />
2026-01-12T11:21:01.228325478Z       =&gt; SpanId:6952101bbcf4f63b, TraceId:e96ac0262f8324b9d7060b5407533b2f, ParentId:0000000000000000 =&gt; ConnectionId:0HNIHPIL8R15L =&gt; RequestPath:/health RequestId:0HNIHPIL8R15L:00000002<br />
2026-01-12T11:21:01.228330299Z       Executing endpoint 'Health checks'<br />
2026-01-12T11:21:01.233422011Z [40m[37mdbug[39m[22m[49m: Microsoft.Extensions.Diagnostics.HealthChecks.DefaultHealthCheckService[100]<br />
2026-01-12T11:21:01.233528787Z       =&gt; SpanId:6952101bbcf4f63b, TraceId:e96ac0262f8324b9d7060b5407533b2f, ParentId:0000000000000000 =&gt; ConnectionId:0HNIHPIL8R15L =&gt; RequestPath:/health RequestId:0HNIHPIL8R15L:00000002<br />
2026-01-12T11:21:01.233535606Z       Running health checks<br />
2026-01-12T11:21:01.259186434Z [40m[37mdbug[39m[22m[49m: Microsoft.Extensions.Diagnostics.HealthChecks.DefaultHealthCheckService[101]<br />
2026-01-12T11:21:01.259276429Z       =&gt; SpanId:6952101bbcf4f63b, TraceId:e96ac0262f8324b9d7060b5407533b2f, ParentId:0000000000000000 =&gt; ConnectionId:0HNIHPIL8R15L =&gt; RequestPath:/health RequestId:0HNIHPIL8R15L:00000002<br />
2026-01-12T11:21:01.259281979Z       Health check processing with combined status Healthy completed after 5.1877ms<br />
2026-01-12T11:21:01.259285121Z [40m[32minfo[39m[22m[49m: Microsoft.AspNetCore.Routing.EndpointMiddleware[1]<br />
2026-01-12T11:21:01.259288513Z       =&gt; SpanId:6952101bbcf4f63b, TraceId:e96ac0262f8324b9d7060b5407533b2f, ParentId:0000000000000000 =&gt; ConnectionId:0HNIHPIL8R15L =&gt; RequestPath:/health RequestId:0HNIHPIL8R15L:00000002<br />
2026-01-12T11:21:01.259292221Z       Executed endpoint 'Health checks'<br />
2026-01-12T11:21:01.259295247Z [40m[37mdbug[39m[22m[49m: Microsoft.AspNetCore.Server.Kestrel.Connections[9]<br />
2026-01-12T11:21:01.259299448Z       =&gt; SpanId:6952101bbcf4f63b, TraceId:e96ac0262f8324b9d7060b5407533b2f, ParentId:0000000000000000 =&gt; ConnectionId:0HNIHPIL8R15L =&gt; RequestPath:/health RequestId:0HNIHPIL8R15L:00000002<br />
2026-01-12T11:21:01.259303087Z       Connection id "0HNIHPIL8R15L" completed keep alive response.<br />
2026-01-12T11:21:01.267379138Z [40m[32minfo[39m[22m[49m: Microsoft.AspNetCore.Hosting.Diagnostics[2]<br />
2026-01-12T11:21:01.267466498Z       =&gt; SpanId:6952101bbcf4f63b, TraceId:e96ac0262f8324b9d7060b5407533b2f, ParentId:0000000000000000 =&gt; ConnectionId:0HNIHPIL8R15L =&gt; RequestPath:/health RequestId:0HNIHPIL8R15L:00000002<br />
2026-01-12T11:21:01.267471867Z       Request finished HTTP/1.1 GET <a href="http://localhost:8071/health" target="_blank" rel="noopener noreferrer nofollow ugc">http://localhost:8071/health</a> - - - 200 - text/plain 235.0108ms<br />
2026-01-12T11:21:01.274367426Z [40m[37mdbug[39m[22m[49m: Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets[6]<br />
2026-01-12T11:21:01.274435304Z       Connection id "0HNIHPIL8R15L" received FIN.<br />
2026-01-12T11:21:01.274649188Z [40m[37mdbug[39m[22m[49m: Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets[7]<br />
2026-01-12T11:21:01.274660023Z       =&gt; ConnectionId:0HNIHPIL8R15L<br />
2026-01-12T11:21:01.274663185Z       Connection id "0HNIHPIL8R15L" sending FIN because: "The Socket transport's send loop completed gracefully."<br />
2026-01-12T11:21:01.276244246Z [40m[37mdbug[39m[22m[49m: Microsoft.AspNetCore.Server.Kestrel.Connections[10]<br />
2026-01-12T11:21:01.276322794Z       =&gt; ConnectionId:0HNIHPIL8R15L<br />
2026-01-12T11:21:01.276327757Z       Connection id "0HNIHPIL8R15L" disconnecting.<br />
2026-01-12T11:21:01.279905758Z [40m[37mdbug[39m[22m[49m: Microsoft.AspNetCore.Server.Kestrel.Connections[2]<br />
2026-01-12T11:21:01.279963262Z       Connection id "0HNIHPIL8R15L" stopped.<br />
2026-01-12T11:21:01.287400785Z [40m[37mdbug[39m[22m[49m: Microsoft.AspNetCore.Server.Kestrel.Connections[39]<br />
2026-01-12T11:21:01.287533513Z       Connection id "0HNIHPIL8R15M" accepted.<br />
2026-01-12T11:21:01.287633513Z [40m[37mdbug[39m[22m[49m: Microsoft.AspNetCore.Server.Kestrel.Connections[1]<br />
2026-01-12T11:21:01.287643138Z       Connection id "0HNIHPIL8R15M" started.<br />
2026-01-12T11:21:01.288834811Z [40m[32minfo[39m[22m[49m: Microsoft.AspNetCore.Hosting.Diagnostics[1]<br />
2026-01-12T11:21:01.289051041Z       =&gt; SpanId:a2d77f6ca13f196a, TraceId:878f233e949a7839b2fe450361abe6b4, ParentId:0000000000000000 =&gt; ConnectionId:0HNIHPIL8R15M =&gt; RequestPath:/health RequestId:0HNIHPIL8R15M:00000002<br />
2026-01-12T11:21:01.289070555Z       Request starting HTTP/1.1 GET <a href="http://localhost:8071/health" target="_blank" rel="noopener noreferrer nofollow ugc">http://localhost:8071/health</a> - -<br />
2026-01-12T11:21:01.289412415Z [40m[37mdbug[39m[22m[49m: Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware[4]<br />
2026-01-12T11:21:01.289573619Z       =&gt; SpanId:a2d77f6ca13f196a, TraceId:878f233e949a7839b2fe450361abe6b4, ParentId:0000000000000000 =&gt; ConnectionId:0HNIHPIL8R15M =&gt; RequestPath:/health RequestId:0HNIHPIL8R15M:00000002<br />
2026-01-12T11:21:01.289597960Z       The request path /health does not match a supported file type<br />
2026-01-12T11:21:01.292621497Z [40m[37mdbug[39m[22m[49m: Microsoft.AspNetCore.Routing.Matching.DfaMatcher[1001]<br />
2026-01-12T11:21:01.292958189Z       =&gt; SpanId:a2d77f6ca13f196a, TraceId:878f233e949a7839b2fe450361abe6b4, ParentId:0000000000000000 =&gt; ConnectionId:0HNIHPIL8R15M =&gt; RequestPath:/health RequestId:0HNIHPIL8R15M:00000002<br />
2026-01-12T11:21:01.293025936Z       1 candidate(s) found for the request path '/health'<br />
2026-01-12T11:21:01.293028980Z [40m[37mdbug[39m[22m[49m: Microsoft.AspNetCore.Routing.EndpointRoutingMiddleware[1]<br />
2026-01-12T11:21:01.293032074Z       =&gt; SpanId:a2d77f6ca13f196a, TraceId:878f233e949a7839b2fe450361abe6b4, ParentId:0000000000000000 =&gt; ConnectionId:0HNIHPIL8R15M =&gt; RequestPath:/health RequestId:0HNIHPIL8R15M:00000002<br />
2026-01-12T11:21:01.293035342Z       Request matched endpoint 'Health checks'<br />
2026-01-12T11:21:01.293742258Z [40m[37mdbug[39m[22m[49m: Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerHandler[9]<br />
2026-01-12T11:21:01.293976827Z       =&gt; SpanId:a2d77f6ca13f196a, TraceId:878f233e949a7839b2fe450361abe6b4, ParentId:0000000000000000 =&gt; ConnectionId:0HNIHPIL8R15M =&gt; RequestPath:/health RequestId:0HNIHPIL8R15M:00000002<br />
2026-01-12T11:21:01.294036368Z       AuthenticationScheme: JwtBearer was not authenticated.<br />
2026-01-12T11:21:01.295026665Z [40m[32minfo[39m[22m[49m: Microsoft.AspNetCore.Routing.EndpointMiddleware[0]<br />
2026-01-12T11:21:01.295296378Z       =&gt; SpanId:a2d77f6ca13f196a, TraceId:878f233e949a7839b2fe450361abe6b4, ParentId:0000000000000000 =&gt; ConnectionId:0HNIHPIL8R15M =&gt; RequestPath:/health RequestId:0HNIHPIL8R15M:00000002<br />
2026-01-12T11:21:01.295427010Z       Executing endpoint 'Health checks'<br />
2026-01-12T11:21:01.295546545Z [40m[37mdbug[39m[22m[49m: Microsoft.Extensions.Diagnostics.HealthChecks.DefaultHealthCheckService[100]<br />
2026-01-12T11:21:01.295680839Z       =&gt; SpanId:a2d77f6ca13f196a, TraceId:878f233e949a7839b2fe450361abe6b4, ParentId:0000000000000000 =&gt; ConnectionId:0HNIHPIL8R15M =&gt; RequestPath:/health RequestId:0HNIHPIL8R15M:00000002<br />
2026-01-12T11:21:01.295690312Z       Running health checks<br />
2026-01-12T11:21:01.295694236Z [40m[37mdbug[39m[22m[49m: Microsoft.Extensions.Diagnostics.HealthChecks.DefaultHealthCheckService[101]<br />
2026-01-12T11:21:01.295733560Z       =&gt; SpanId:a2d77f6ca13f196a, TraceId:878f233e949a7839b2fe450361abe6b4, ParentId:0000000000000000 =&gt; ConnectionId:0HNIHPIL8R15M =&gt; RequestPath:/health RequestId:0HNIHPIL8R15M:00000002<br />
2026-01-12T11:21:01.295737279Z       Health check processing with combined status Healthy completed after 0.1931ms<br />
2026-01-12T11:21:01.298354643Z [40m[32minfo[39m[22m[49m: Microsoft.AspNetCore.Routing.EndpointMiddleware[1]<br />
2026-01-12T11:21:01.298418080Z       =&gt; SpanId:a2d77f6ca13f196a, TraceId:878f233e949a7839b2fe450361abe6b4, ParentId:0000000000000000 =&gt; ConnectionId:0HNIHPIL8R15M =&gt; RequestPath:/health RequestId:0HNIHPIL8R15M:00000002<br />
2026-01-12T11:21:01.298422450Z       Executed endpoint 'Health checks'<br />
2026-01-12T11:21:01.298425674Z [40m[37mdbug[39m[22m[49m: Microsoft.AspNetCore.Server.Kestrel.Connections[9]<br />
2026-01-12T11:21:01.298428688Z       =&gt; SpanId:a2d77f6ca13f196a, TraceId:878f233e949a7839b2fe450361abe6b4, ParentId:0000000000000000 =&gt; ConnectionId:0HNIHPIL8R15M =&gt; RequestPath:/health RequestId:0HNIHPIL8R15M:00000002<br />
2026-01-12T11:21:01.298431957Z       Connection id "0HNIHPIL8R15M" completed keep alive response.<br />
2026-01-12T11:21:01.301355946Z [40m[37mdbug[39m[22m[49m: Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets[6]<br />
2026-01-12T11:21:01.301523135Z       Connection id "0HNIHPIL8R15M" received FIN.<br />
2026-01-12T11:21:01.301527810Z [40m[37mdbug[39m[22m[49m: Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets[7]<br />
2026-01-12T11:21:01.301532033Z       =&gt; ConnectionId:0HNIHPIL8R15M<br />
2026-01-12T11:21:01.301535872Z       Connection id "0HNIHPIL8R15M" sending FIN because: "The Socket transport's send loop completed gracefully."<br />
2026-01-12T11:21:01.301956981Z [40m[32minfo[39m[22m[49m: Microsoft.AspNetCore.Hosting.Diagnostics[2]<br />
2026-01-12T11:21:01.301962299Z       =&gt; SpanId:a2d77f6ca13f196a, TraceId:878f233e949a7839b2fe450361abe6b4, ParentId:0000000000000000 =&gt; ConnectionId:0HNIHPIL8R15M =&gt; RequestPath:/health RequestId:0HNIHPIL8R15M:00000002<br />
2026-01-12T11:21:01.301966616Z       Request finished HTTP/1.1 GET <a href="http://localhost:8071/health" target="_blank" rel="noopener noreferrer nofollow ugc">http://localhost:8071/health</a> - - - 200 - text/plain 10.1955ms<br />
2026-01-12T11:21:01.301987124Z [40m[37mdbug[39m[22m[49m: Microsoft.AspNetCore.Server.Kestrel.Connections[10]<br />
2026-01-12T11:21:01.301991080Z       =&gt; ConnectionId:0HNIHPIL8R15M<br />
2026-01-12T11:21:01.301994444Z       Connection id "0HNIHPIL8R15M" disconnecting.<br />
2026-01-12T11:21:01.301998218Z [40m[37mdbug[39m[22m[49m: Microsoft.AspNetCore.Server.Kestrel.Connections[2]<br />
2026-01-12T11:21:01.302061153Z       Connection id "0HNIHPIL8R15M" stopped.<br />
2026-01-12T11:21:01.641537250Z [40m[37mdbug[39m[22m[49m: Microsoft.AspNetCore.Server.Kestrel.Connections[39]<br />
2026-01-12T11:21:01.641589785Z       Connection id "0HNIHPIL8R15N" accepted.<br />
2026-01-12T11:21:01.641594925Z [40m[37mdbug[39m[22m[49m: Microsoft.AspNetCore.Server.Kestrel.Connections[1]<br />
2026-01-12T11:21:01.641598948Z       Connection id "0HNIHPIL8R15N" started.<br />
2026-01-12T11:21:01.646328203Z [40m[32minfo[39m[22m[49m: Microsoft.AspNetCore.Hosting.Diagnostics[1]<br />
2026-01-12T11:21:01.646532904Z       =&gt; SpanId:8fa8eca33635eb67, TraceId:7b7fc7ae26270c513dbe32c92fb162fb, ParentId:0000000000000000 =&gt; ConnectionId:0HNIHPIL8R15N =&gt; RequestPath:/health RequestId:0HNIHPIL8R15N:00000002<br />
2026-01-12T11:21:01.646542675Z       Request starting HTTP/1.1 GET <a href="http://rider.test.sz.loda.net.cn/health" target="_blank" rel="noopener noreferrer nofollow ugc">http://rider.test.sz.loda.net.cn/health</a> - -<br />
2026-01-12T11:21:01.647408511Z [40m[37mdbug[39m[22m[49m: Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware[4]<br />
2026-01-12T11:21:01.647490253Z       =&gt; SpanId:8fa8eca33635eb67, TraceId:7b7fc7ae26270c513dbe32c92fb162fb, ParentId:0000000000000000 =&gt; ConnectionId:0HNIHPIL8R15N =&gt; RequestPath:/health RequestId:0HNIHPIL8R15N:00000002<br />
2026-01-12T11:21:01.647494712Z       The request path /health does not match a supported file type<br />
2026-01-12T11:21:01.647942085Z [40m[37mdbug[39m[22m[49m: Microsoft.AspNetCore.Routing.Matching.DfaMatcher[1001]<br />
2026-01-12T11:21:01.647965692Z       =&gt; SpanId:8fa8eca33635eb67, TraceId:7b7fc7ae26270c513dbe32c92fb162fb, ParentId:0000000000000000 =&gt; ConnectionId:0HNIHPIL8R15N =&gt; RequestPath:/health RequestId:0HNIHPIL8R15N:00000002<br />
2026-01-12T11:21:01.647969815Z       1 candidate(s) found for the request path '/health'<br />
2026-01-12T11:21:01.648386705Z [40m[37mdbug[39m[22m[49m: Microsoft.AspNetCore.Routing.EndpointRoutingMiddleware[1]<br />
2026-01-12T11:21:01.648467374Z       =&gt; SpanId:8fa8eca33635eb67, TraceId:7b7fc7ae26270c513dbe32c92fb162fb, ParentId:0000000000000000 =&gt; ConnectionId:0HNIHPIL8R15N =&gt; RequestPath:/health RequestId:0HNIHPIL8R15N:00000002<br />
2026-01-12T11:21:01.648472380Z       Request matched endpoint 'Health checks'<br />
2026-01-12T11:21:01.649553689Z [40m[37mdbug[39m[22m[49m: Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerHandler[9]<br />
2026-01-12T11:21:01.649614672Z       =&gt; SpanId:8fa8eca33635eb67, TraceId:7b7fc7ae26270c513dbe32c92fb162fb, ParentId:0000000000000000 =&gt; ConnectionId:0HNIHPIL8R15N =&gt; RequestPath:/health RequestId:0HNIHPIL8R15N:00000002<br />
2026-01-12T11:21:01.649620431Z       AuthenticationScheme: JwtBearer was not authenticated.<br />
2026-01-12T11:21:01.651466878Z [40m[32minfo[39m[22m[49m: Microsoft.AspNetCore.Routing.EndpointMiddleware[0]<br />
2026-01-12T11:21:01.651519293Z       =&gt; SpanId:8fa8eca33635eb67, TraceId:7b7fc7ae26270c513dbe32c92fb162fb, ParentId:0000000000000000 =&gt; ConnectionId:0HNIHPIL8R15N =&gt; RequestPath:/health RequestId:0HNIHPIL8R15N:00000002<br />
2026-01-12T11:21:01.651558479Z       Executing endpoint 'Health checks'<br />
2026-01-12T11:21:01.651562458Z [40m[37mdbug[39m[22m[49m: Microsoft.Extensions.Diagnostics.HealthChecks.DefaultHealthCheckService[100]<br />
2026-01-12T11:21:01.651566351Z       =&gt; SpanId:8fa8eca33635eb67, TraceId:7b7fc7ae26270c513dbe32c92fb162fb, ParentId:0000000000000000 =&gt; ConnectionId:0HNIHPIL8R15N =&gt; RequestPath:/health RequestId:0HNIHPIL8R15N:00000002<br />
2026-01-12T11:21:01.651570707Z       Running health checks<br />
2026-01-12T11:21:01.651574105Z [40m[37mdbug[39m[22m[49m: Microsoft.Extensions.Diagnostics.HealthChecks.DefaultHealthCheckService[101]<br />
2026-01-12T11:21:01.651577856Z       =&gt; SpanId:8fa8eca33635eb67, TraceId:7b7fc7ae26270c513dbe32c92fb162fb, ParentId:0000000000000000 =&gt; ConnectionId:0HNIHPIL8R15N =&gt; RequestPath:/health RequestId:0HNIHPIL8R15N:00000002<br />
2026-01-12T11:21:01.651581789Z       Health check processing with combined status Healthy completed after 0.0199ms<br />
2026-01-12T11:21:01.651585097Z [40m[32minfo[39m[22m[49m: Microsoft.AspNetCore.Routing.EndpointMiddleware[1]<br />
2026-01-12T11:21:01.651588757Z       =&gt; SpanId:8fa8eca33635eb67, TraceId:7b7fc7ae26270c513dbe32c92fb162fb, ParentId:0000000000000000 =&gt; ConnectionId:0HNIHPIL8R15N =&gt; RequestPath:/health RequestId:0HNIHPIL8R15N:00000002<br />
2026-01-12T11:21:01.651592939Z       Executed endpoint 'Health checks'<br />
2026-01-12T11:21:01.651595853Z [40m[37mdbug[39m[22m[49m: Microsoft.AspNetCore.Server.Kestrel.Connections[9]<br />
2026-01-12T11:21:01.651598704Z       =&gt; SpanId:8fa8eca33635eb67, TraceId:7b7fc7ae26270c513dbe32c92fb162fb, ParentId:0000000000000000 =&gt; ConnectionId:0HNIHPIL8R15N =&gt; RequestPath:/health RequestId:0HNIHPIL8R15N:00000002<br />
2026-01-12T11:21:01.651601991Z       Connection id "0HNIHPIL8R15N" completed keep alive response.<br />
2026-01-12T11:21:01.651604639Z [40m[32minfo[39m[22m[49m: Microsoft.AspNetCore.Hosting.Diagnostics[2]<br />
2026-01-12T11:21:01.651607883Z       =&gt; SpanId:8fa8eca33635eb67, TraceId:7b7fc7ae26270c513dbe32c92fb162fb, ParentId:0000000000000000 =&gt; ConnectionId:0HNIHPIL8R15N =&gt; RequestPath:/health RequestId:0HNIHPIL8R15N:00000002<br />
2026-01-12T11:21:01.651611724Z       Request finished HTTP/1.1 GET <a href="http://rider.test.sz.loda.net.cn/health" target="_blank" rel="noopener noreferrer nofollow ugc">http://rider.test.sz.loda.net.cn/health</a> - - - 200 - text/plain 5.2685ms</p>
]]></description><link>https://talk.loda.net/post/59</link><guid isPermaLink="true">https://talk.loda.net/post/59</guid><dc:creator><![CDATA[admin]]></dc:creator><pubDate>Mon, 12 Jan 2026 11:33:13 GMT</pubDate></item><item><title><![CDATA[Reply to Docker 部署自动日志收集功能 on Mon, 12 Jan 2026 11:28:16 GMT]]></title><description><![CDATA[<p dir="auto">=== 1. 容器状态 ===<br />
NAMES                          STATUS                  PORTS<br />
distribution-centre-api-test   Up 19 seconds           0.0.0.0:8071-&gt;80/tcp<br />
pos-blazor-test                Up 2 days               0.0.0.0:8031-&gt;8080/tcp<br />
pos-auth-test                  Up 3 days               0.0.0.0:8051-&gt;8080/tcp<br />
pos-api-test                   Up 3 days               0.0.0.0:8041-&gt;8080/tcp<br />
redis-56379                    Up 7 days               0.0.0.0:56379-&gt;6379/tcp, [::]:56379-&gt;6379/tcp<br />
redis-56380                    Up 7 days               0.0.0.0:56380-&gt;6379/tcp, [::]:56380-&gt;6379/tcp<br />
reward                         Up 7 days (unhealthy)   0.0.0.0:44396-&gt;80/tcp, [::]:44396-&gt;80/tcp</p>
<p dir="auto">=== 2. 容器资源 ===<br />
CONTAINER ID   NAME                           CPU %     MEM USAGE / LIMIT     MEM %     NET I/O          BLOCK I/O     PIDS<br />
c0aa9985deb9   distribution-centre-api-test   1.19%     205.4MiB / 6.976GiB   2.87%     59.8kB / 158kB   0B / 53.2kB   47</p>
<p dir="auto">=== 3. 容器详情 ===<br />
Image:docker-sz.loda.net.cn/docker-pos/rider/api:2855.2026.0112.59827 Started:2026-01-12T11:20:44.406234722Z Restarts:0 Status:running ExitCode:0</p>
<p dir="auto">=== 4. 端口监听 ===<br />
State  Recv-Q Send-Q Local Address:Port  Peer Address:PortProcess<br />
LISTEN 0      4096      127.0.0.54:53         0.0.0.0:*<br />
LISTEN 0      4096       127.0.0.1:39471      0.0.0.0:*<br />
LISTEN 0      4096         0.0.0.0:22         0.0.0.0:*<br />
LISTEN 0      511          0.0.0.0:80         0.0.0.0:*<br />
LISTEN 0      511          0.0.0.0:888        0.0.0.0:*<br />
LISTEN 0      4096         0.0.0.0:44396      0.0.0.0:*<br />
LISTEN 0      4096         0.0.0.0:56380      0.0.0.0:*<br />
LISTEN 0      4096         0.0.0.0:56379      0.0.0.0:*<br />
LISTEN 0      4096         0.0.0.0:8071       0.0.0.0:*<br />
LISTEN 0      4096         0.0.0.0:8031       0.0.0.0:*<br />
LISTEN 0      4096         0.0.0.0:8041       0.0.0.0:*<br />
LISTEN 0      4096         0.0.0.0:8051       0.0.0.0:*<br />
LISTEN 0      511          0.0.0.0:36379      0.0.0.0:*<br />
LISTEN 0      100          0.0.0.0:51435      0.0.0.0:*<br />
LISTEN 0      4096   127.0.0.53%lo:53         0.0.0.0:*<br />
LISTEN 0      4096            [::]:22            [::]:*<br />
LISTEN 0      4096            [::]:44396         [::]:*<br />
LISTEN 0      4096            [::]:56380         [::]:*<br />
LISTEN 0      4096            [::]:56379         [::]:*</p>
<p dir="auto">=== 5. 磁盘空间 ===<br />
Filesystem      Size  Used Avail Use% Mounted on<br />
tmpfs           715M  5.2M  710M   1% /run<br />
efivarfs        256K   19K  233K   8% /sys/firmware/efi/efivars<br />
/dev/vda3        99G   42G   53G  45% /<br />
tmpfs           3.5G  5.6M  3.5G   1% /dev/shm<br />
tmpfs           5.0M     0  5.0M   0% /run/lock<br />
/dev/vda2       197M  6.2M  191M   4% /boot/efi<br />
tmpfs           715M   12K  715M   1% /run/user/0<br />
tmpfs           715M   12K  715M   1% /run/user/1004</p>
<p dir="auto">=== 6. 内存状态 ===<br />
total        used        free      shared  buff/cache   available<br />
Mem:            7143        2838         219         624        5015        4304<br />
Swap:              0           0           0</p>
<p dir="auto">=== 7. OOM事件 ===</p>
<p dir="auto">=== Done ===<br />
Mon Jan 12 07:21:05 PM CST 2026</p>
]]></description><link>https://talk.loda.net/post/58</link><guid isPermaLink="true">https://talk.loda.net/post/58</guid><dc:creator><![CDATA[admin]]></dc:creator><pubDate>Mon, 12 Jan 2026 11:28:16 GMT</pubDate></item><item><title><![CDATA[Reply to Docker 部署自动日志收集功能 on Mon, 12 Jan 2026 11:24:32 GMT]]></title><description><![CDATA[<p dir="auto"><img src="/assets/uploads/files/1768216929439-1-resized.png" alt="1.png" class=" img-fluid img-markdown" /> <img src="/assets/uploads/files/1768217068037-2-resized.png" alt="2.png" class=" img-fluid img-markdown" /> <img src="/assets/uploads/files/1768217068127-3-resized.png" alt="3.png" class=" img-fluid img-markdown" /></p>
]]></description><link>https://talk.loda.net/post/57</link><guid isPermaLink="true">https://talk.loda.net/post/57</guid><dc:creator><![CDATA[admin]]></dc:creator><pubDate>Mon, 12 Jan 2026 11:24:32 GMT</pubDate></item></channel></rss>