MRX.LAFuck the Rules!

Orchard Core部署遇到Docker遇到的小问题

不得不说现在有AI真是方便,把我乱七八糟,狗屁不通,只有我自己能看懂的笔记内容丢给AI整理一下就是一篇上好佳文!!!

Orchard Core Docker 部署终极指南:从源码构建到后台配置

在部署 Orchard Core 时,我们通常会直接从 Docker Hub 拉取官方镜像。但在某些特殊情况下,可能会遇到 pull access deniedrepository does not exist 的错误,即使镜像名称完全正确,也无法成功部署。

本指南将为您提供一套终极解决方案:在服务器上直接从 Orchard Core 的 GitHub 源码构建 Docker 镜像,并以此完成部署。此外,本文还将详细介绍安装完成后的后台基础配置,包括中文内容支持主题管理常规内容操作,助您顺利上手。

Part 1: 解决 Docker 拉取失败 - 从源码构建

当标准 docker pull 方法失效时,自己动手,丰衣足食。我们将直接在服务器上生成一个本地镜像。

1.1 环境准备

在开始之前,请确保您的服务器(本文以 Ubuntu/Debian 为例)已经安装了以下核心工具:

  • Docker
  • Docker Compose
  • Git

如果尚未安装 Git,请执行以下命令:

sudo apt-get update
sudo apt-get install -y git

1.2 克隆 Orchard Core 源码

我们需要从 GitHub 上获取 Orchard Core 的官方源代码。

# 推荐将源码存放在 /usr/local/src 目录
cd /usr/local/src
# 从 GitHub 克隆最新的源码仓库
git clone https://github.com/OrchardCMS/OrchardCore.git
# 进入源码的根目录,后续操作将在这里进行
cd OrchardCore

1.3 在本地构建 Docker 镜像

这是解决问题的关键步骤。我们将使用源码中自带的 Dockerfile 文件,在服务器上编译并生成一个本地镜像。

  • 执行构建命令

OrchardCore 源码的根目录下,运行以下命令。

   # 注意命令最后的那个点 ”.”,代表当前目录
   docker build -t my-orchardcore-image:latest .
   

命令解析:

  • docker build: Docker 的镜像构建命令。
  • -t my-orchardcore-image:latest: -t 参数用于给新镜像打上标签 (tag)。我们将其命名为 my-orchardcore-image:latest,这个名称可以自定义。
  • .: 使用当前目录作为构建上下文,将所有源码文件包含进来。
  • 耐心等待

这个过程会花费 5 到 20 分钟,因为它需要下载 .NET SDK、还原依赖包、编译代码等。当您在终端看到 Successfully tagged my-orchardcore-image:latest 的消息时,就代表本地镜像已成功构建。

1.4 配置 Docker Compose (SQLite 版本)

现在,我们有了本地镜像,接下来需要编写 docker-compose.yml 文件来运行它。为了方便测试,我们使用 SQLite 数据库。

  • 创建部署目录:
   # 回到你存放网站项目的目录,例如 /www/wwwroot
   cd /www/wwwroot
   mkdir orchard-from-source
   cd orchard-from-source
   
  • 创建 docker-compose.yml 文件:

在该目录下创建 docker-compose.yml 文件,并填入以下内容。

   services:
     orchardcore:
       # 关键!使用我们刚刚在本地构建的镜像名称
       image: my-orchardcore-image:latest
       container_name: orchardcore_from_source_app
       restart: unless-stopped
       ports:
         # 将宿主机的 8080 端口映射到容器的 80 端口
         # 访问地址将是:http://你的服务器IP:8080
         - ”8080:80”
       volumes:
         # 持久化 Orchard Core 的数据卷,SQLite 数据库文件会存放在这里
         - orchard_data:/app/App_Data
       environment:
         # 指定数据库提供者为 Sqlite
         OrchardCore__Database__Provider: ”Sqlite”
         # 对于 SQLite,连接字符串留空,系统会自动创建数据库文件
         OrchardCore__Database__ConnectionString: ”"
   
   # 定义数据卷,确保容器删除后数据不丢失
   volumes:
     orchard_data:
   

1.5 启动并完成初始设置

万事俱备,启动服务!

  • docker-compose.yml 所在的目录 (/www/wwwroot/orchard-from-source) 下运行:
   docker-compose up -d
   
  • 等待片刻,在浏览器中打开 http://你的服务器IP:8080
  • 您会看到 Orchard Core 的初始设置页面。填写网站名称,选择一个配方 (Recipe)(例如 “Blog”),设置您的管理员用户名密码。数据库部分将自动识别为 SQLite,无需修改。点击 “Finish Setup” 完成安装。

Part 2: 后台基础配置与常规操作

安装完成后,我们来熟悉一下 Orchard Core 的后台。

2.1 设置中文内容支持

Orchard Core 的后台界面本身是英文的,但它拥有强大的多语言内容管理能力。

第一步:启用 “内容本地化” 模块

这是支持多语言内容的前提。

  • 登录后台,在左侧菜单点击 Configuration -> Features
  • 在搜索框中输入 localization
  • 找到 Content Localization 模块,点击右侧的 Enable 按钮。

第二步:添加中文作为支持的语言

  • 在左侧菜单点击 Configuration -> Settings -> Localization
  • 在 “Supported Cultures” 部分,点击 Add or remove cultures
  • 在列表中找到 Chinese (China) (zh-CN),选中它,然后点击 Add
  • (可选)您可以将 zh-CN 设为默认语言。在 Default Culture 下拉菜单中选择 Chinese (China)
  • 点击 Save 保存。

现在,您的网站已经具备了发布中文内容的能力。在创建或编辑文章时,您会看到一个语言切换的选项。

2.2 内容管理入门:发布第一篇博客

如果您在安装时选择了 “Blog” 配方,可以按以下步骤发布文章。

  • 在左侧菜单点击 New -> Blog Post
  • 填写标题:在 TitlePart 部分填写您的文章标题。
  • 编写内容:在 MarkdownBodyPartHtmlBodyPart 中使用 Markdown 或富文本编辑器编写正文。
  • 设置 URL:在右侧的 AutoroutePart 中,可以自定义文章的访问路径(URL Handle),如果不填会自动生成。
  • 发布:点击右下角的 Publish 按钮即可发布。

2.3 更换和管理主题

Orchard Core 的外观由主题控制。

  • 进入后台,点击 Configuration -> Themes
  • 在这里您可以看到已安装的主题。未来版本将支持直接从后台上传 zip 包或从 NuGet Feed 安装。
  • 目前,更通用的方式是通过项目源码引用或作为模块安装。
  • 激活主题
  • 在主题列表中,找到您想使用的主题。
  • 点击 Make CurrentActivate 将其设置为当前网站使用的主题。

2.4 模块(Features)管理

模块是 Orchard Core 功能的基石,类似于其他 CMS 的“插件”。

  • 浏览模块:点击 Configuration -> Features,您可以看到系统中所有可用的模块。
  • 启用/禁用
  • Enable: 激活一个模块,其功能将对网站可用。例如,启用 Media 模块后,您才能在后台管理图片、视频等媒体文件。
  • Disable: 禁用一个模块,其功能将被移除。
  • 在列表中,您可以清楚地看到哪些模块已启用,哪些是某个主题或模块的依赖项。

总结

通过本指南,我们不仅解决了在特殊网络环境下无法部署 Orchard Core 的难题,还系统地学习了如何通过源码构建 Docker 镜像。更重要的是,我们完成了安装后的关键配置,并掌握了内容发布、主题管理等日常操作。希望这篇详尽的指南能帮助您开启愉快的 Orchard Core 之旅!

发表评论

填写下面的表单发表评论