<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>📖 on 技术分享 Public Site</title>
    <link>https://mryupengfei.github.io/tags/</link>
    <description>Recent content in 📖 on 技术分享 Public Site</description>
    <generator>Hugo</generator>
    <language>zh-CN</language>
    <managingEditor>mr_yupengfei@foxmail.com (MrYuPengfei)</managingEditor>
    <webMaster>mr_yupengfei@foxmail.com (MrYuPengfei)</webMaster>
    <copyright>Open-source &lt;a class=&#34;text-muted text-decoration-none&#34; href=&#34;https://github.com/MrYuPengfei/MrYuPengfei.github.io/blob/main/LICENSE&#34;&gt;MIT&lt;/a&gt; Licensed.</copyright>
    <lastBuildDate>Wed, 01 Apr 2026 20:58:25 +0800</lastBuildDate>
    <atom:link href="https://mryupengfei.github.io/tags/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>RAGFlow项目配置与部署指南 😸	</title>
      <link>https://mryupengfei.github.io/post/ragflow%E9%A1%B9%E7%9B%AE%E9%85%8D%E7%BD%AE%E4%B8%8E%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97/</link>
      <pubDate>Fri, 23 Jan 2026 11:22:58 +0800</pubDate><author>mr_yupengfei@foxmail.com (MrYuPengfei)</author>
      <guid>https://mryupengfei.github.io/post/ragflow%E9%A1%B9%E7%9B%AE%E9%85%8D%E7%BD%AE%E4%B8%8E%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97/</guid>
      <description>&lt;h1 id=&#34;ragflow-项目配置与部署指南&#34;&gt;RAGFlow 项目配置与部署指南&lt;/h1&gt;&#xA;&lt;p&gt;&lt;strong&gt;作者：Manus AI&lt;/strong&gt;&#xA;&lt;strong&gt;日期：2026年1月22日&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;摘要&#34;&gt;摘要&lt;/h2&gt;&#xA;&lt;p&gt;RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在通过融合前沿的 RAG 技术与 Agent 能力，为大型语言模型提供卓越的上下文层 [1]。基于您提供的文件列表，该项目采用 &lt;strong&gt;Docker Compose&lt;/strong&gt; 进行部署，以简化环境依赖（如 MySQL、MinIO、Redis 等）的管理。本指南将详细分析项目文件结构，并提供配置和启动 RAGFlow 服务的具体步骤。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;1-核心文件结构分析&#34;&gt;1. 核心文件结构分析&lt;/h2&gt;&#xA;&lt;p&gt;理解项目文件结构是成功配置的第一步。以下表格总结了您提供的文件列表中，对配置和部署至关重要的文件和目录的功能：&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;文件/目录&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;功能描述&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;关键配置内容&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;&lt;code&gt;.env&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;核心环境变量文件&lt;/strong&gt;。包含 Docker 容器所需的重要环境变量，用于配置依赖服务的凭证、端口映射和镜像版本等。&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;MYSQL_PASSWORD&lt;/code&gt;, &lt;code&gt;MINIO_PASSWORD&lt;/code&gt;, &lt;code&gt;SVR_HTTP_PORT&lt;/code&gt;, &lt;code&gt;RAGFLOW_IMAGE&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;&lt;code&gt;service_conf.yaml.template&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;后端服务配置模板&lt;/strong&gt;。定义 RAGFlow 核心服务的业务逻辑配置，如 LLM 供应商、日志级别等。容器启动时会基于此模板生成 &lt;code&gt;service_conf.yaml&lt;/code&gt;。&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;LLM 配置（&lt;code&gt;factory&lt;/code&gt;、&lt;code&gt;api_key&lt;/code&gt;）、数据库连接信息（通过 &lt;code&gt;.env&lt;/code&gt; 变量替换）&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;&lt;code&gt;docker-compose.yml&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;默认部署编排文件&lt;/strong&gt;。定义了 RAGFlow 服务及其所有依赖项（如 MySQL、MinIO、Redis、Elasticsearch/Infinity）的启动、网络和卷配置。&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;服务定义、端口映射、卷挂载&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;&lt;code&gt;docker-compose-CN-oc9.yml&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;国内/OceanBase 优化版&lt;/strong&gt;。可能针对国内用户优化了镜像源，或替换了默认的 MySQL 依赖为 OceanBase [2]。&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;依赖服务替换、镜像源配置&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;&lt;code&gt;nginx/&lt;/code&gt;&lt;/strong&gt; 目录&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;反向代理配置&lt;/strong&gt;。包含 Nginx 配置文件，用于处理 HTTP/HTTPS 请求转发，通常默认监听 80 端口，并将请求转发给 RAGFlow 后端服务。&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;nginx.conf&lt;/code&gt;, &lt;code&gt;proxy.conf&lt;/code&gt;, &lt;code&gt;ragflow.conf&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;&lt;code&gt;entrypoint.sh&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;容器启动入口脚本&lt;/strong&gt;。负责在容器启动时执行初始化任务，例如根据 &lt;code&gt;.env&lt;/code&gt; 文件替换模板变量，生成最终的 &lt;code&gt;service_conf.yaml&lt;/code&gt; 文件，并启动 RAGFlow 服务。&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;环境初始化逻辑&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;&lt;code&gt;init.sql&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;数据库初始化脚本&lt;/strong&gt;。用于首次启动时创建 RAGFlow 所需的数据库和表结构。&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;SQL DDL/DML 语句&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;2-ragflow-配置步骤详解&#34;&gt;2. RAGFlow 配置步骤详解&lt;/h2&gt;&#xA;&lt;p&gt;RAGFlow 的配置主要集中在两个文件：&lt;strong&gt;&lt;code&gt;.env&lt;/code&gt;&lt;/strong&gt; 和 &lt;strong&gt;&lt;code&gt;service_conf.yaml.template&lt;/code&gt;&lt;/strong&gt;。&lt;/p&gt;</description>
    </item>
    <item>
      <title>LFM2.5 1.2B Instruct在DockerOllama上的部署、训练与RAGFlow集成指南 😸	</title>
      <link>https://mryupengfei.github.io/post/lfm2.5-1.2b-instruct%E5%9C%A8dockerollama%E4%B8%8A%E7%9A%84%E9%83%A8%E7%BD%B2%E8%AE%AD%E7%BB%83%E4%B8%8Eragflow%E9%9B%86%E6%88%90%E6%8C%87%E5%8D%97/</link>
      <pubDate>Fri, 23 Jan 2026 11:22:01 +0800</pubDate><author>mr_yupengfei@foxmail.com (MrYuPengfei)</author>
      <guid>https://mryupengfei.github.io/post/lfm2.5-1.2b-instruct%E5%9C%A8dockerollama%E4%B8%8A%E7%9A%84%E9%83%A8%E7%BD%B2%E8%AE%AD%E7%BB%83%E4%B8%8Eragflow%E9%9B%86%E6%88%90%E6%8C%87%E5%8D%97/</guid>
      <description>&lt;h1 id=&#34;lfm25-12b-instruct-模型在-docker-ollama-上的部署训练与-ragflow-集成指南&#34;&gt;LFM2.5-1.2B-Instruct 模型在 Docker Ollama 上的部署、训练与 RAGFlow 集成指南&lt;/h1&gt;&#xA;&lt;p&gt;&lt;strong&gt;作者&lt;/strong&gt;: Manus AI&#xA;&lt;strong&gt;日期&lt;/strong&gt;: 2026年1月22日&#xA;&lt;strong&gt;工作语言&lt;/strong&gt;: 简体中文&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;摘要&#34;&gt;摘要&lt;/h2&gt;&#xA;&lt;p&gt;本文档旨在提供一个全面的技术指南，指导用户如何使用 &lt;strong&gt;Docker&lt;/strong&gt; 和 &lt;strong&gt;Ollama&lt;/strong&gt; 运行 &lt;strong&gt;LFM2.5-1.2B-Instruct&lt;/strong&gt; 模型，如何利用 &lt;strong&gt;Unsloth&lt;/strong&gt; 进行模型微调（训练），以及如何将该模型集成到 &lt;strong&gt;RAGFlow&lt;/strong&gt; 平台中，以构建一个高效的本地检索增强生成（RAG）系统。LFM2.5-1.2B-Instruct 是 Liquid AI 推出的一款高性能、低内存占用的混合模型，非常适合在本地或边缘设备上部署 [1]。&lt;/p&gt;&#xA;&lt;h2 id=&#34;一使用-docker-ollama-运行-lfm25-12b-instruct&#34;&gt;一、使用 Docker Ollama 运行 LFM2.5-1.2B-Instruct&lt;/h2&gt;&#xA;&lt;p&gt;Ollama 是一个轻量级的框架，用于在本地运行大型语言模型（LLM）。通过 Docker 部署 Ollama 可以简化环境配置，并确保隔离性。&lt;/p&gt;&#xA;&lt;h3 id=&#34;1-部署-ollama-docker-容器&#34;&gt;1. 部署 Ollama Docker 容器&lt;/h3&gt;&#xA;&lt;p&gt;首先，您需要确保系统已安装 Docker 和 NVIDIA Container Toolkit（如果需要 GPU 加速）。&lt;/p&gt;&#xA;&lt;p&gt;使用以下命令运行 Ollama 容器，并将端口 &lt;code&gt;11434&lt;/code&gt; 映射出来：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 运行 Ollama 容器&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 如果需要 GPU 支持，请添加 --gpus all 参数&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;docker run -d &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    --name ollama &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    -p 11434:11434 &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    -v ollama:/root/.ollama &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ollama/ollama&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;2-拉取-lfm25-12b-instruct-模型&#34;&gt;2. 拉取 LFM2.5-1.2B-Instruct 模型&lt;/h3&gt;&#xA;&lt;p&gt;LFM2.5-1.2B-Instruct 模型已被社区打包并上传到 Ollama 库中，通常以 &lt;code&gt;lfm2.5-thinking:1.2b&lt;/code&gt; 或类似名称存在 [2]。&lt;/p&gt;</description>
    </item>
    <item>
      <title>配置RagFlow 😸	</title>
      <link>https://mryupengfei.github.io/post/%E9%85%8D%E7%BD%AEragflow/</link>
      <pubDate>Thu, 22 Jan 2026 14:07:36 +0800</pubDate><author>mr_yupengfei@foxmail.com (MrYuPengfei)</author>
      <guid>https://mryupengfei.github.io/post/%E9%85%8D%E7%BD%AEragflow/</guid>
      <description>&lt;h1 id=&#34;ragflow-项目配置与部署指南&#34;&gt;RAGFlow 项目配置与部署指南&lt;/h1&gt;&#xA;&lt;p&gt;&lt;strong&gt;作者：Manus AI&lt;/strong&gt;&#xA;&lt;strong&gt;日期：2026年1月22日&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;摘要&#34;&gt;摘要&lt;/h2&gt;&#xA;&lt;p&gt;RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在通过融合前沿的 RAG 技术与 Agent 能力，为大型语言模型提供卓越的上下文层 [1]。基于您提供的文件列表，该项目采用 &lt;strong&gt;Docker Compose&lt;/strong&gt; 进行部署，以简化环境依赖（如 MySQL、MinIO、Redis 等）的管理。本指南将详细分析项目文件结构，并提供配置和启动 RAGFlow 服务的具体步骤。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;1-核心文件结构分析&#34;&gt;1. 核心文件结构分析&lt;/h2&gt;&#xA;&lt;p&gt;理解项目文件结构是成功配置的第一步。以下表格总结了您提供的文件列表中，对配置和部署至关重要的文件和目录的功能：&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;文件/目录&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;功能描述&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;关键配置内容&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;&lt;code&gt;.env&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;核心环境变量文件&lt;/strong&gt;。包含 Docker 容器所需的重要环境变量，用于配置依赖服务的凭证、端口映射和镜像版本等。&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;MYSQL_PASSWORD&lt;/code&gt;, &lt;code&gt;MINIO_PASSWORD&lt;/code&gt;, &lt;code&gt;SVR_HTTP_PORT&lt;/code&gt;, &lt;code&gt;RAGFLOW_IMAGE&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;&lt;code&gt;service_conf.yaml.template&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;后端服务配置模板&lt;/strong&gt;。定义 RAGFlow 核心服务的业务逻辑配置，如 LLM 供应商、日志级别等。容器启动时会基于此模板生成 &lt;code&gt;service_conf.yaml&lt;/code&gt;。&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;LLM 配置（&lt;code&gt;factory&lt;/code&gt;、&lt;code&gt;api_key&lt;/code&gt;）、数据库连接信息（通过 &lt;code&gt;.env&lt;/code&gt; 变量替换）&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;&lt;code&gt;docker-compose.yml&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;默认部署编排文件&lt;/strong&gt;。定义了 RAGFlow 服务及其所有依赖项（如 MySQL、MinIO、Redis、Elasticsearch/Infinity）的启动、网络和卷配置。&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;服务定义、端口映射、卷挂载&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;&lt;code&gt;docker-compose-CN-oc9.yml&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;国内/OceanBase 优化版&lt;/strong&gt;。可能针对国内用户优化了镜像源，或替换了默认的 MySQL 依赖为 OceanBase [2]。&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;依赖服务替换、镜像源配置&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;&lt;code&gt;nginx/&lt;/code&gt;&lt;/strong&gt; 目录&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;反向代理配置&lt;/strong&gt;。包含 Nginx 配置文件，用于处理 HTTP/HTTPS 请求转发，通常默认监听 80 端口，并将请求转发给 RAGFlow 后端服务。&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;nginx.conf&lt;/code&gt;, &lt;code&gt;proxy.conf&lt;/code&gt;, &lt;code&gt;ragflow.conf&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;&lt;code&gt;entrypoint.sh&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;容器启动入口脚本&lt;/strong&gt;。负责在容器启动时执行初始化任务，例如根据 &lt;code&gt;.env&lt;/code&gt; 文件替换模板变量，生成最终的 &lt;code&gt;service_conf.yaml&lt;/code&gt; 文件，并启动 RAGFlow 服务。&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;环境初始化逻辑&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;&lt;code&gt;init.sql&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;数据库初始化脚本&lt;/strong&gt;。用于首次启动时创建 RAGFlow 所需的数据库和表结构。&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;SQL DDL/DML 语句&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;2-ragflow-配置步骤详解&#34;&gt;2. RAGFlow 配置步骤详解&lt;/h2&gt;&#xA;&lt;p&gt;RAGFlow 的配置主要集中在两个文件：&lt;strong&gt;&lt;code&gt;.env&lt;/code&gt;&lt;/strong&gt; 和 &lt;strong&gt;&lt;code&gt;service_conf.yaml.template&lt;/code&gt;&lt;/strong&gt;。&lt;/p&gt;</description>
    </item>
    <item>
      <title>在VMware虚拟机部署Gitlab😎	</title>
      <link>https://mryupengfei.github.io/post/%E5%9C%A8vmware%E8%99%9A%E6%8B%9F%E6%9C%BA%E9%83%A8%E7%BD%B2gitlab/</link>
      <pubDate>Wed, 21 Jan 2026 19:09:04 +0800</pubDate><author>mr_yupengfei@foxmail.com (MrYuPengfei)</author>
      <guid>https://mryupengfei.github.io/post/%E5%9C%A8vmware%E8%99%9A%E6%8B%9F%E6%9C%BA%E9%83%A8%E7%BD%B2gitlab/</guid>
      <description>&lt;p&gt;太棒了！恭喜您，这真是一次史诗级的故障排除，您展现了惊人的耐心和学习能力。最终找到根源——&lt;code&gt;gitlab.rb&lt;/code&gt; 文件放错了位置——这是一个非常经典且容易被忽略的问题。&lt;/p&gt;&#xA;&lt;p&gt;您能自己定位到这个问题，并用 &lt;code&gt;cp&lt;/code&gt; 命令将其修正，这说明您已经完全掌握了 Docker 数据卷挂载的核心逻辑。为您喝彩！&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;总结从启动失败到-https-成功我们的排错之旅&#34;&gt;总结：从启动失败到 HTTPS 成功，我们的排错之旅&lt;/h3&gt;&#xA;&lt;p&gt;好的，我们来全面复盘一下这次从零开始部署 GitLab 并最终成功启用 HTTPS 的全过程。这不仅是对我们工作的总结，更是一份极具价值的、可供未来参考的实践指南。&lt;/p&gt;&#xA;&lt;h4 id=&#34;初始目标&#34;&gt;初始目标&lt;/h4&gt;&#xA;&lt;p&gt;在本地虚拟机（&lt;code&gt;vm-noble&lt;/code&gt;）上，通过 Docker Compose 部署一个功能完整的 GitLab CE 实例，并为其配置公网可访问的 HTTPS。&lt;/p&gt;&#xA;&lt;h4 id=&#34;第一阶段docker-权限与环境问题&#34;&gt;第一阶段：Docker 权限与环境问题&lt;/h4&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;问题 1：&lt;code&gt;permission denied ... /var/run/docker.sock&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;现象&lt;/strong&gt;：执行 &lt;code&gt;docker&lt;/code&gt; 命令时报权限错误。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;根源&lt;/strong&gt;：当前用户 &lt;code&gt;yupengfei&lt;/code&gt; 不在 &lt;code&gt;docker&lt;/code&gt; 用户组中，无权访问 Docker 守护进程。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;解决&lt;/strong&gt;：通过 &lt;code&gt;sudo usermod -aG docker yupengfei&lt;/code&gt; 将用户加入组，并&lt;strong&gt;重新登录&lt;/strong&gt;使其生效。这是所有 Docker 用户都应该掌握的基础操作。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;问题 2：&lt;code&gt;The &amp;quot;GITLAB_HOME&amp;quot; variable is not set&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;现象&lt;/strong&gt;：&lt;code&gt;docker compose&lt;/code&gt; 警告环境变量未设置，导致镜像版本错误、数据卷挂载路径不正确。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;根源&lt;/strong&gt;：使用 &lt;code&gt;sudo docker compose&lt;/code&gt; 时，当前用户的环境变量不会被传递给 &lt;code&gt;root&lt;/code&gt; 环境。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;解决&lt;/strong&gt;：采用 &lt;code&gt;docker-compose&lt;/code&gt; 的最佳实践——在项目根目录创建 &lt;code&gt;.env&lt;/code&gt; 文件来定义环境变量 (&lt;code&gt;GITLAB_HOME=...&lt;/code&gt;)。这使得配置与环境解耦，命令更简洁，行为更可预测。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h4 id=&#34;第二阶段docker-composeyml-语法混淆&#34;&gt;第二阶段：&lt;code&gt;docker-compose.yml&lt;/code&gt; 语法混淆&lt;/h4&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;问题：&lt;code&gt;configs&lt;/code&gt; 和 &lt;code&gt;secrets&lt;/code&gt; 顶层配置块导致错误。&lt;/strong&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;现象&lt;/strong&gt;：&lt;code&gt;docker compose up&lt;/code&gt; 无法解析 &lt;code&gt;yml&lt;/code&gt; 文件。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;根源&lt;/strong&gt;：原始的 &lt;code&gt;docker-compose.yml&lt;/code&gt; 混用了 &lt;code&gt;Docker Compose&lt;/code&gt; 模式的语法和 &lt;code&gt;Docker Swarm&lt;/code&gt; 模式的语法（&lt;code&gt;configs&lt;/code&gt;, &lt;code&gt;secrets&lt;/code&gt;）。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;解决&lt;/strong&gt;：将其完全重构为纯粹的 &lt;code&gt;Docker Compose&lt;/code&gt; 语法。关键是将 &lt;code&gt;configs&lt;/code&gt; 和 &lt;code&gt;secrets&lt;/code&gt; 的功能，通过 &lt;code&gt;volumes&lt;/code&gt; 挂载（将 &lt;code&gt;gitlab.rb&lt;/code&gt; 和 &lt;code&gt;root_password.txt&lt;/code&gt; 直接挂载到容器内指定路径）和 &lt;code&gt;environment&lt;/code&gt; 注入（在环境块内用 Ruby 代码读取挂载的文件）来替代。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h4 id=&#34;第三阶段网络访问与-https-配置的曲折之路&#34;&gt;第三阶段：网络访问与 HTTPS 配置的曲折之路&lt;/h4&gt;&#xA;&lt;p&gt;这是最复杂、最曲折，但也最有价值的阶段。&lt;/p&gt;</description>
    </item>
    <item>
      <title>让Hugo主题能够灵活地显示文章的封面图片 😸	</title>
      <link>https://mryupengfei.github.io/post/%E8%AE%A9hugo%E4%B8%BB%E9%A2%98%E8%83%BD%E5%A4%9F%E7%81%B5%E6%B4%BB%E5%9C%B0%E6%98%BE%E7%A4%BA%E6%96%87%E7%AB%A0%E7%9A%84%E5%B0%81%E9%9D%A2%E5%9B%BE%E7%89%87/</link>
      <pubDate>Mon, 19 Jan 2026 17:20:08 +0800</pubDate><author>mr_yupengfei@foxmail.com (MrYuPengfei)</author>
      <guid>https://mryupengfei.github.io/post/%E8%AE%A9hugo%E4%B8%BB%E9%A2%98%E8%83%BD%E5%A4%9F%E7%81%B5%E6%B4%BB%E5%9C%B0%E6%98%BE%E7%A4%BA%E6%96%87%E7%AB%A0%E7%9A%84%E5%B0%81%E9%9D%A2%E5%9B%BE%E7%89%87/</guid>
      <description>&lt;h3 id=&#34;需求背景&#34;&gt;需求背景&lt;/h3&gt;&#xA;&lt;p&gt;我们的核心需求是：让 Hugo 主题能够灵活地显示文章的封面图片，并且希望它能同时支持两种主流的图片引用方式：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;页面包 (Page Bundle)&lt;/strong&gt;：图片与 &lt;code&gt;.md&lt;/code&gt; 文件存放在同一个目录下，路径只写文件名。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Static 目录&lt;/strong&gt;：图片存放在全局的 &lt;code&gt;static/images/&lt;/code&gt; 目录下，路径写成根相对路径（如 &lt;code&gt;/images/cat-hacker.png&lt;/code&gt;）。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;问题分析&#34;&gt;问题分析&lt;/h3&gt;&#xA;&lt;p&gt;我们最初发现，主题模板默认只支持“页面包”模式。它使用了 Hugo 的 &lt;code&gt;.Resources.GetMatch&lt;/code&gt; 函数来查找与文章捆绑的图片资源。这种方式功能强大，可以利用 Hugo 内置的图片处理能力（如裁剪、格式转换），但无法直接读取 &lt;code&gt;static&lt;/code&gt; 目录下的文件。&lt;/p&gt;&#xA;&lt;h3 id=&#34;解决方案优雅降级的模板逻辑&#34;&gt;解决方案：“优雅降级”的模板逻辑&lt;/h3&gt;&#xA;&lt;p&gt;为了实现“双模”支持，我们对主题的模板文件进行了修改，引入了一套“优雅降级”（Graceful Fallback）的逻辑。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;核心思路如下：&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;优先采用最佳实践&lt;/strong&gt;：模板首先会尝试将 Front Matter 中 &lt;code&gt;images&lt;/code&gt; 参数提供的路径作为“页面资源”来查找。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;如果成功&lt;/strong&gt;：证明用户使用了“页面包”模式。模板会利用 Hugo 强大的图片处理 API（例如 &lt;code&gt;.Fill&lt;/code&gt;）对图片进行自动裁剪、压缩和格式转换（如转为 WebP），以获得最佳的页面加载性能和显示效果。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;如果失败&lt;/strong&gt;：证明图片不是页面资源，模板则“降级”到第二方案。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;执行回退方案&lt;/strong&gt;：模板会判断该路径是否为一个指向 &lt;code&gt;static&lt;/code&gt; 目录的根相对路径（即以 &lt;code&gt;/&lt;/code&gt; 开头）。如果是，就直接使用该路径来渲染图片，但&lt;strong&gt;不进行任何图片处理&lt;/strong&gt;，图片将以原始状态显示。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;最终实现的代码&#34;&gt;最终实现的代码&lt;/h3&gt;&#xA;&lt;p&gt;我们将模板中的相关部分替换为以下实现了“双模”逻辑的 Go Template 代码：&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-go-html&#34; data-lang=&#34;go-html&#34;&gt;{{/* 获取 Front Matter 中定义的第一张图片路径 */}}&#xA;{{ $imagePath := index .Params.images 0 }}&#xA;&#xA;{{/* 1. 优先尝试作为“页面资源”获取图片 */}}&#xA;{{ $imageResource := .Resources.GetMatch $imagePath }}&#xA;&#xA;{{ if $imageResource }}&#xA;    {{/* --- 如果是页面资源，使用 Hugo 的图片处理功能 --- */}}&#xA;    {{ $image := $imageResource.Fill &amp;#34;600x300 Center webp&amp;#34; }}&#xA;    &amp;lt;img src=&amp;#34;{{ $image.RelPermalink }}&amp;#34; ... &amp;gt;&#xA;{{ else }}&#xA;    {{/* --- 如果不是页面资源，则假定为 static 目录下的路径 --- */}}&#xA;    {{ if hasPrefix $imagePath &amp;#34;/&amp;#34; }}&#xA;        &amp;lt;img src=&amp;#34;{{ $imagePath | absURL }}&amp;#34; ... &amp;gt;&#xA;    {{ end }}&#xA;{{ end }}&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;总结&#34;&gt;总结&lt;/h3&gt;&#xA;&lt;p&gt;通过这次修改，我们成功地让 Hugo 主题变得更加智能和健壮。它现在能够自动识别作者的图片引用方式，并尽可能地采用最优策略进行处理：&lt;/p&gt;</description>
    </item>
    <item>
      <title>一次对WSL2“网络连接风暴”的深度诊断与修复实录 😸	</title>
      <link>https://mryupengfei.github.io/post/%E4%B8%80%E6%AC%A1%E5%AF%B9wsl2%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%E9%A3%8E%E6%9A%B4%E7%9A%84%E6%B7%B1%E5%BA%A6%E8%AF%8A%E6%96%AD%E4%B8%8E%E4%BF%AE%E5%A4%8D%E5%AE%9E%E5%BD%95/</link>
      <pubDate>Mon, 19 Jan 2026 16:55:15 +0800</pubDate><author>mr_yupengfei@foxmail.com (MrYuPengfei)</author>
      <guid>https://mryupengfei.github.io/post/%E4%B8%80%E6%AC%A1%E5%AF%B9wsl2%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%E9%A3%8E%E6%9A%B4%E7%9A%84%E6%B7%B1%E5%BA%A6%E8%AF%8A%E6%96%AD%E4%B8%8E%E4%BF%AE%E5%A4%8D%E5%AE%9E%E5%BD%95/</guid>
      <description>&lt;h2 id=&#34;前言&#34;&gt;前言&lt;/h2&gt;&#xA;&lt;p&gt;今天下午，我经历了一场堪称“完美风暴”的 WSL2 (Windows Subsystem for Linux) 故障。起初只是一个简单的 &lt;code&gt;systemctl&lt;/code&gt; 命令报错，但随着排查的深入，问题如剥洋葱般层层展现，从上层应用一直牵扯到 Windows 的底层网络配置。最终，在经历了近乎“法医级别”的诊断后，我们成功让系统恢复了健康。&lt;/p&gt;&#xA;&lt;p&gt;这不仅仅是一篇故障排除指南，更是一次对 WSL2 内部工作机制的深度探索。如果你也曾被 WSL2 的网络问题所困扰，那么这篇文章或许能为你提供一些思路和慰藉。&lt;/p&gt;&#xA;&lt;h2 id=&#34;故障初现systemctl-失效&#34;&gt;故障初现：&lt;code&gt;systemctl&lt;/code&gt; 失效&lt;/h2&gt;&#xA;&lt;p&gt;一切始于一个常见的命令：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo systemctl enable --now ssh&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;得到的却是一个经典错误：&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;code&gt;System has not been booted with systemd as init system (PID 1). Can&#39;t operate.&lt;/code&gt;&#xA;&lt;code&gt;Failed to connect to bus: Host is down&lt;/code&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;对于有经验的 WSL 用户来说，这通常意味着 &lt;code&gt;systemd&lt;/code&gt; 没有启用。于是，我们按照官方推荐的方法，在 &lt;code&gt;/etc/wsl.conf&lt;/code&gt; 中添加了配置：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-ini&#34; data-lang=&#34;ini&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;[boot]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;systemd&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;true&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;然后执行 &lt;code&gt;wsl --shutdown&lt;/code&gt; 重启。然而，这只是噩梦的开始。&lt;/p&gt;&#xA;&lt;h2 id=&#34;第一层迷雾apt-网络中断&#34;&gt;第一层迷雾：&lt;code&gt;apt&lt;/code&gt; 网络中断&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;systemd&lt;/code&gt; 启用后，我们尝试运行 &lt;code&gt;sudo apt update&lt;/code&gt;，却一头撞上了网络错误：&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;code&gt;Temporary failure resolving &#39;archive.ubuntu.com&#39;&lt;/code&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Podman运行gitlab时的权限问题 😸	</title>
      <link>https://mryupengfei.github.io/post/podman%E8%BF%90%E8%A1%8Cgitlab%E6%97%B6%E7%9A%84%E6%9D%83%E9%99%90%E9%97%AE%E9%A2%98/</link>
      <pubDate>Sun, 18 Jan 2026 20:09:18 +0800</pubDate><author>mr_yupengfei@foxmail.com (MrYuPengfei)</author>
      <guid>https://mryupengfei.github.io/post/podman%E8%BF%90%E8%A1%8Cgitlab%E6%97%B6%E7%9A%84%E6%9D%83%E9%99%90%E9%97%AE%E9%A2%98/</guid>
      <description>&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;gitlab&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; | Thank you &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; using GitLab Docker Image!&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;gitlab&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; | Current version: gitlab-ce&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;18.8.0-ce.0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;gitlab&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; | &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;gitlab&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; | Configure GitLab &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; your system by editing /etc/gitlab/gitlab.rb file&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;gitlab&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; | And restart this container to reload settings.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;gitlab&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; | To &lt;span style=&#34;color:#66d9ef&#34;&gt;do&lt;/span&gt; it use docker exec:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;gitlab&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; | &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;gitlab&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; |   docker exec -it gitlab editor /etc/gitlab/gitlab.rb&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;gitlab&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; |   docker restart gitlab&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;gitlab&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; | &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;gitlab&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; | For a comprehensive list of configuration options please see the Omnibus GitLab readme&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;gitlab&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; | https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;gitlab&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; | &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;gitlab&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; | If this container fails to start due to permission problems try to fix it by executing:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;gitlab&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; | &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;gitlab&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; |   docker exec -it gitlab update-permissions&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;gitlab&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; |   docker restart gitlab&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;gitlab&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; | &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;gitlab&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; | Cleaning stale PIDs &amp;amp; sockets&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cat: /var/opt/gitlab/gitlab-rails/VERSION: No such file or directory&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;gitlab&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; | Installing gitlab.rb config...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cp: cannot create regular file &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;/etc/gitlab/gitlab.rb&amp;#39;&lt;/span&gt;: Permission denied&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;exit code: &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;yupengfei@LenovoY9000P:~/docker/gitlab$ ls -lah&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;yupengfei@LenovoY9000P:~/docker/gitlab$ ls -lah&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;total 1.7G&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;drwxr-xr-x  &lt;span style=&#34;color:#ae81ff&#34;&gt;6&lt;/span&gt; yupengfei yupengfei 4.0K Jan &lt;span style=&#34;color:#ae81ff&#34;&gt;18&lt;/span&gt; 20:05 .&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;drwxr-xr-x &lt;span style=&#34;color:#ae81ff&#34;&gt;12&lt;/span&gt; yupengfei yupengfei 4.0K Jan &lt;span style=&#34;color:#ae81ff&#34;&gt;17&lt;/span&gt; 20:31 ..&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;-rw-r--r--  &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; yupengfei yupengfei  &lt;span style=&#34;color:#ae81ff&#34;&gt;993&lt;/span&gt; Jan &lt;span style=&#34;color:#ae81ff&#34;&gt;18&lt;/span&gt; 18:52 compose.yml&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;drwxr-xr-x  &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt; yupengfei yupengfei 4.0K Jan &lt;span style=&#34;color:#ae81ff&#34;&gt;18&lt;/span&gt; 20:05 config&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;drwxr-xr-x  &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt; yupengfei yupengfei 4.0K Jan &lt;span style=&#34;color:#ae81ff&#34;&gt;18&lt;/span&gt; 20:05 data&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;-rw-r--r--  &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; yupengfei yupengfei 1.2K Jan  &lt;span style=&#34;color:#ae81ff&#34;&gt;6&lt;/span&gt; 17:56 docker-compose.local.yml&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;-rw-r--r--  &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; yupengfei yupengfei  &lt;span style=&#34;color:#ae81ff&#34;&gt;512&lt;/span&gt; Jan &lt;span style=&#34;color:#ae81ff&#34;&gt;18&lt;/span&gt; 16:31 docker-compose.yml&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;-rw-------  &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; yupengfei yupengfei 1.7G Jan &lt;span style=&#34;color:#ae81ff&#34;&gt;18&lt;/span&gt; 18:55 gitlab-ce.tar&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;-rw-r--r--  &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; yupengfei yupengfei    &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt; Jan  &lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt; 16:06 install.sh&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;drwxr-xr-x  &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt; yupengfei yupengfei 4.0K Jan &lt;span style=&#34;color:#ae81ff&#34;&gt;18&lt;/span&gt; 20:05 logs&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;-rw-r--r--  &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; yupengfei yupengfei   &lt;span style=&#34;color:#ae81ff&#34;&gt;84&lt;/span&gt; Jan  &lt;span style=&#34;color:#ae81ff&#34;&gt;6&lt;/span&gt; 18:14 passwd.txt&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;-rw-r--r--  &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; yupengfei yupengfei   &lt;span style=&#34;color:#ae81ff&#34;&gt;14&lt;/span&gt; Jan  &lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt; 20:51 rpc-ip.txt&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;-rw-r--r--  &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; yupengfei yupengfei  &lt;span style=&#34;color:#ae81ff&#34;&gt;304&lt;/span&gt; Jan  &lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt; 19:47 run.260105.sh&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;-rw-r--r--  &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; yupengfei yupengfei  &lt;span style=&#34;color:#ae81ff&#34;&gt;296&lt;/span&gt; Jan &lt;span style=&#34;color:#ae81ff&#34;&gt;18&lt;/span&gt; 17:34 run.sh.260118&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;drwxr-xr-x  &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt; yupengfei yupengfei 4.0K Jan  &lt;span style=&#34;color:#ae81ff&#34;&gt;6&lt;/span&gt; 19:10 ssl&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;问题的关键security_opt-与-volumes-的冲突&#34;&gt;问题的关键：&lt;code&gt;security_opt&lt;/code&gt; 与 &lt;code&gt;volumes&lt;/code&gt; 的冲突&lt;/h3&gt;&#xA;&lt;p&gt;让我们看一下你 &lt;code&gt;compose.yml&lt;/code&gt; 中的这两个配置项：&lt;/p&gt;</description>
    </item>
    <item>
      <title>Podman使用本地在docker上下载的镜像 😎	</title>
      <link>https://mryupengfei.github.io/post/podman%E4%BD%BF%E7%94%A8%E6%9C%AC%E5%9C%B0%E5%9C%A8docker%E4%B8%8A%E4%B8%8B%E8%BD%BD%E7%9A%84%E9%95%9C%E5%83%8F/</link>
      <pubDate>Sun, 18 Jan 2026 19:20:20 +0800</pubDate><author>mr_yupengfei@foxmail.com (MrYuPengfei)</author>
      <guid>https://mryupengfei.github.io/post/podman%E4%BD%BF%E7%94%A8%E6%9C%AC%E5%9C%B0%E5%9C%A8docker%E4%B8%8A%E4%B8%8B%E8%BD%BD%E7%9A%84%E9%95%9C%E5%83%8F/</guid>
      <description>&lt;p&gt;这是一个非常常见的需求，尤其是在从 Docker 过渡到 Podman 或者两者混合使用的环境中。你完全可以利用已经在 Docker 中下载好的本地镜像，而无需为 Podman 重新下载一遍，这能节省大量的时间和带宽。&lt;/p&gt;&#xA;&lt;p&gt;实现这个目标主要有两种方法：&lt;strong&gt;导出/导入&lt;/strong&gt; 和 &lt;strong&gt;共享存储&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;h3 id=&#34;方法一导出为-tar-包再导入-podman-最通用最推荐&#34;&gt;方法一：导出为 Tar 包，再导入 Podman (最通用、最推荐)&lt;/h3&gt;&#xA;&lt;p&gt;这个方法就像打包和解包，它不依赖于 Docker 和 Podman 的底层存储结构，因此兼容性最好，适用于任何系统。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;步骤：&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;在 Docker 中保存镜像为 Tar 文件:&lt;/strong&gt;&#xA;首先，找到你想要迁移的 Docker 镜像的名称和标签 (TAG)。你可以用 &lt;code&gt;docker images&lt;/code&gt; 查看。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 语法: docker save -o &amp;lt;输出文件名.tar&amp;gt; &amp;lt;镜像名:标签&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 示例:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;docker save -o gitlab-ce.tar docker.io/gitlab/gitlab-ce:18.8.0-ce.0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;执行后，你会在当前目录下得到一个名为 &lt;code&gt;gitlab-ce.tar&lt;/code&gt; 的文件。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;在 Podman 中加载这个 Tar 文件:&lt;/strong&gt;&#xA;现在，使用 &lt;code&gt;podman load&lt;/code&gt; 命令将这个文件导入到 Podman 的本地存储中。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 语法: podman load -i &amp;lt;文件名.tar&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 示例:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;podman load -i gitlab-ce.tar&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;验证镜像是否导入成功:&lt;/strong&gt;&#xA;使用 &lt;code&gt;podman images&lt;/code&gt; 命令检查镜像是否已经存在于 Podman 的列表中。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
