不得不说现在有AI真是方便,把我乱七八糟,狗屁不通,只有我自己能看懂的笔记内容丢给AI整理一下就是一篇上好佳文!!!
Orchard Core Docker 部署终极指南:从源码构建到后台配置
在部署 Orchard Core 时,我们通常会直接从 Docker Hub 拉取官方镜像。但在某些特殊情况下,可能会遇到 pull access denied
或 repository 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
部分填写您的文章标题。 - 编写内容:在
MarkdownBodyPart
或HtmlBodyPart
中使用 Markdown 或富文本编辑器编写正文。 - 设置 URL:在右侧的
AutoroutePart
中,可以自定义文章的访问路径(URL Handle),如果不填会自动生成。 - 发布:点击右下角的
Publish
按钮即可发布。
2.3 更换和管理主题
Orchard Core 的外观由主题控制。
- 寻找主题:您可以从 Orchard Core Gallery 或其他社区寻找主题。
安装主题:
- 进入后台,点击
Configuration
->Themes
。 - 在这里您可以看到已安装的主题。未来版本将支持直接从后台上传
zip
包或从 NuGet Feed 安装。 - 目前,更通用的方式是通过项目源码引用或作为模块安装。
- 进入后台,点击
激活主题:
- 在主题列表中,找到您想使用的主题。
- 点击
Make Current
或Activate
将其设置为当前网站使用的主题。
2.4 模块(Features)管理
模块是 Orchard Core 功能的基石,类似于其他 CMS 的“插件”。
- 浏览模块:点击
Configuration
->Features
,您可以看到系统中所有可用的模块。 启用/禁用:
- Enable: 激活一个模块,其功能将对网站可用。例如,启用
Media
模块后,您才能在后台管理图片、视频等媒体文件。 - Disable: 禁用一个模块,其功能将被移除。
- 在列表中,您可以清楚地看到哪些模块已启用,哪些是某个主题或模块的依赖项。
- Enable: 激活一个模块,其功能将对网站可用。例如,启用
总结
通过本指南,我们不仅解决了在特殊网络环境下无法部署 Orchard Core 的难题,还系统地学习了如何通过源码构建 Docker 镜像。更重要的是,我们完成了安装后的关键配置,并掌握了内容发布、主题管理等日常操作。希望这篇详尽的指南能帮助您开启愉快的 Orchard Core 之旅!