docs: fix some correct document formatting using autocorrect (#493)

Fix some correct document formatting using [autocorrect](https://github.com/huacnlee/autocorrect)

```release-note
None
```
This commit is contained in:
Ryan Wang
2025-04-23 11:45:09 +08:00
committed by GitHub
parent c82df43df2
commit 1cf9b3636f
70 changed files with 166 additions and 166 deletions

View File

@@ -27,7 +27,7 @@ description: Halo 项目的构成
- classpath:/config/
- classpath:/
> 参考: [Application Property Files](https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-application-property-files)
> 参考[Application Property Files](https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-application-property-files)
在开发的时候,希望大家能够在 `~/halo-dev/application.yml` 中进行添加自定义配置。当然后面也会讲到如何用`运行参数``VM options` 进行控制配置,届时可根据具体情况进行选择。

View File

@@ -253,13 +253,13 @@ Halo 默认会为每个自定义模型建立以下几个索引,因此不需要
- 必须以字母数字字符开头和结尾。
- 可以包含 `-``.``_``字母数字`字符。
通用规范:
通用规范
- 避免使用容易引起混淆或误解的键名。
- 尽量保持简洁明了,易于理解。
- 使用易于记忆和识别的单词或缩写。
一致性和清晰性:
一致性和清晰性
- 在整个项目或组织中保持一致的命名约定。
- labels 应直观地反映其代表的信息或用途。
@@ -356,7 +356,7 @@ RouterFunction<ServerResponse> route = route()
这样开发者可以灵活定义符合业务需求的 APIs方便地扩展插件的功能。
自定义 APIs 与自动生成的 APIs 一样,都应该遵循以下规范:
自定义 APIs 与自动生成的 APIs 一样,都应该遵循以下规范
`/apis/<group>/<version>/<extension>/{extensionname}/<subextension>`
@@ -631,7 +631,7 @@ public static BindingResult validate(Object target, String objectName,
}
```
参考文档:
参考文档
- [RequestBodyValidationException](https://github.com/halo-dev/halo/blob/25086ee3e63f0c8b6ed380140a068c44404ef2b2/application/src/main/java/run/halo/app/infra/exception/RequestBodyValidationException.java)
- [Bean Validation](https://beanvalidation.org/)

View File

@@ -284,7 +284,7 @@ Halo 提供了 `NotificationReasonEmitter` 接口,开发者可以通过它轻
- `reasonType`:事件类型的名称,对应于 `ReasonType``metadata.name` 字段。
- `reasonData`:事件数据的构建器,用于构建 `Reason` 实例的属性。
Reason 数据的构建器有以下属性:
Reason 数据的构建器有以下属性
```java
public class ReasonPayloadBuilder {

View File

@@ -167,7 +167,7 @@ record Result(boolean reEnqueue, Duration retryAfter) {}
创建一个名为”EventTracker“的自定义模型用于管理和追踪组织内的各种事件。这些事件可以是会议、研讨会、社交聚会或任何其他类型的组织活动。
“EventTracker“自定义模型将提供一个框架用于记录事件的详细信息如时间、地点、参与者和状态。
由于这里的重点是控制器,因此我们将忽略自定义模型的详细信息,只关注控制器的实现,一个可能的 “EventTracker” 数据结构如下:
由于这里的重点是控制器因此我们将忽略自定义模型的详细信息只关注控制器的实现一个可能的“EventTracker”数据结构如下
```yaml
apiVersion: tracker.halo.run/v1alpha1

View File

@@ -25,7 +25,7 @@ description: 了解如何使用静态资源代理来访问插件中的静态资
```
插件启动后会根据 `/plugins/{plugin-name}/assets/**` 规则生成访问路径,
因此该 `ReverseProxy` 的访问路径为: `/plugins/my-plugin/assets/res/halo.jpg`。
因此该 `ReverseProxy` 的访问路径为`/plugins/my-plugin/assets/res/halo.jpg`。
- `rules` 下可以添加多组规则。
- `path` 为路径前缀。

View File

@@ -345,7 +345,7 @@ const momentsUcApiClient = {
export { momentsConsoleApiClient, momentsCoreApiClient, momentsUcApiClient };
```
使用定义的实例:
使用定义的实例
```typescript
import { momentsConsoleApiClient } from "@/api";

View File

@@ -200,7 +200,7 @@ RateLimiter buildSendEmailRateLimiter(String username, String email) {
var rateLimiter = rateLimiterRegistry.rateLimiter(rateLimiterKey, new RateLimiterConfig.Builder()
// 频次限制为 1 次
.limitForPeriod(1)
// 限制刷新周期为 60 秒, 即 60 秒内只能执行 1 次
// 限制刷新周期为 60 秒即 60 秒内只能执行 1 次
.limitRefreshPeriod(Duration.ofSeconds(60))
.build());
// 添加 limiter 到自己实现的 Registry 中保存起来以便在插件停止时清理

View File

@@ -9,7 +9,7 @@ description: 这个例子展示了如何开发 Todo List 插件
## 配置你的插件
1. 修改 `build.gradle` 中的 `group` 为你自己的,如:
1. 修改 `build.gradle` 中的 `group` 为你自己的,如
```groovy
group = 'run.halo.tutorial'

View File

@@ -41,7 +41,7 @@ rules:
### 资源型规则 {#resource-rules}
资源型规则用于定义对资源的操作权限API 符合以下特征:
资源型规则用于定义对资源的操作权限API 符合以下特征
-`/api` 开头,且以 `/api/<version>/<resource>[/<resourceName>/<subresource>]` 规则组成 APIs最少路径层级为 3 即 `/api/<version>/<resource>`,最多路径层级为 5 即包含 `<resourceName>``<subresource>`,例如 `/api/v1/posts`
-`/apis/<group>/<version>/<resource>[/<resourceName>/<subresource>]` 规则组成的 APIs最少路径层级为 4 即 `/apis/<group>/<version>/<resource>`,最多路径层级为 6 即包含 `<resourceName>``<subresource>`,例如 `/apis/my-plugin.halo.run/v1alpha1/persons`
@@ -157,7 +157,7 @@ rules:
`verbs` 字段用于指定用户或服务在特定资源上能执行的操作类型。这些操作被定义为一组“动词”,每个动词与相应的 HTTP 请求方法相对应。为了更好地理解如何确定合适的 `verbs`,以下是详细的解释和每种动词的具体用途:
动词和对应的 HTTP 方法:
动词和对应的 HTTP 方法
- create: 对应 HTTP 的 POST 方法。用于创建一个新的资源实例,如果是创建子资源且不需要资源名称可以使用 `-` 表示缺省,如 `POST /apis/my-plugin.halo.run/v1alpha1/persons/-/subresource`,同时需要注意 `POST /apis/my-plugin.halo.run/v1alpha1/persons/{some-name}` 不是一个符合规范的 create 操作,创建资源不应该包含资源名称。
- get: 对应 HTTP 的 GET 方法。用于获取单个资源的详细信息,即 API 中包含 resourceName 部分如 `GET /apis/my-plugin.halo.run/v1alpha1/persons/zhangsan`
@@ -165,7 +165,7 @@ rules:
- watch: 也是对应 HTTP 的 GET 方法。用于实时监控资源或资源集合的变化,通常是通过 WebSocket 连接来实现的,如 `ws://localhost:8090/apis/my-plugin.halo.run/v1alpha1/persons`
- update: 对应 HTTP 的 PUT 方法。用于更新现有资源的全部内容。
- patch: 对应 HTTP 的 PATCH 方法。用于对现有资源进行部分更新。
- delete: 对应 HTTP 的 DELETE 方法。用于删除单个资源, 即 API 中包含 resourceName 部分如 `DELETE /apis/my-plugin.halo.run/v1alpha1/persons/zhangsan`
- delete: 对应 HTTP 的 DELETE 方法。用于删除单个资源即 API 中包含 resourceName 部分如 `DELETE /apis/my-plugin.halo.run/v1alpha1/persons/zhangsan`
- deletecollection: 同样对应 HTTP 的 DELETE 方法,但用于删除一个资源集合。
可以使用如下表格来简化理解:

View File

@@ -11,7 +11,7 @@ description: 使用阿里云计算巢服务部署 Halo
![image.png](/img/install/alibab-cloud-computenest/deploy_1.jpg)
2. 参数填写完成后可以看到对应询价明细,确认参数后点击**下一步:确认订单**。确认订单完成后同意服务协议并点击**立即创建**进入部署阶段。
3. 等待部署完成后进入服务实例管理, 在控制台找到 Halo 服务访问链接。
3. 等待部署完成后进入服务实例管理在控制台找到 Halo 服务访问链接。
![image.png](/img/install/alibab-cloud-computenest/deploy_2.jpg)
4. 单击链接访问 Halo 服务。

View File

@@ -20,7 +20,7 @@ Halo 离线安装包使用 Docker + Docker Compose 的方式部署 Halo 及其
### 解压安装包
以 root 用户 ssh 登录到目标机器, 并执行如下命令:
以 root 用户 ssh 登录到目标机器并执行如下命令:
```bash
cd /tmp

View File

@@ -20,7 +20,7 @@ Podman 采用无守护进程的包容性架构,因此可以更安全、更简
为什么选择 Podman 而不是 Docker ?
这个需要视情况而定, 如果您的主机配置不是很高, 您使用 Docker 时, 因为 Docker 自带的守护进程可能会雪上加霜, 它会大量占用您的资源。
这个需要视情况而定如果您的主机配置不是很高您使用 Docker 时因为 Docker 自带的守护进程可能会雪上加霜它会大量占用您的资源。
而 Podman 采用无守护进程架构,而且容器是无根模式,您可以在占用资源极小的情况下运行镜像,并且获得很高的安全性。
而且 Podman 与 Docker 高度兼容,您不需要做特别配置即可将 Docker 容器运行在 Podman 上。
@@ -46,7 +46,7 @@ Podman 采用无守护进程的包容性架构,因此可以更安全、更简
## 使用 Docker 镜像
:::tip
为什么是 Docker 镜像?
为什么是 Docker 镜像
通过[前言](#前言)我们已经了解了 Podman其中提到 ***Podman 与 Docker 高度兼容*** ,正是因为 Podman 完全是为了替代 Docker 而诞生,所以原本的 Docker 生态中的镜像我们可以无需更改直接使用。
:::
@@ -115,7 +115,7 @@ Podman 没有和 Docker 类似的管理进程,在低配置的主机上更友
但是使用 Podman 想要开机后自动启动,官方推荐一种和 systemd 服务类似的语法文件,即 Podman Quadlet。
:::
下面是一个使用 Podstgresql 数据库的示例:
下面是一个使用 Podstgresql 数据库的示例
```bash
mkdir -p /opt/podman-data/halo
@@ -162,13 +162,13 @@ systemctl start halo
# 之后重启会自动启动不需要enable服务.
```
Podman Quadlet 解析:
Podman Quadlet 解析
`[Unit]` 部分:
`[Unit]` 部分
- Wants 和 After 字段指定了 Halo 在什么服务后启动。
`[Container]` 部分:
`[Container]` 部分
- `AutoUpdate=registry`指定了自动拉取容器。假设后续 Halo 镜像支持了`latest`标签,你需要`systemctl enable --now podman-auto-update.timer`以启用容器自动更新。本文示例`ghcr.io/halo-dev/halo:2.20`,将会自动更新适用与`2.20`版本的 patch例如您创建容器时是`2.20.1`,在官方发布`2.20.2`版本时,容器会自动更新到`2.20.2`。
- `ContainerName=`指定了 systemd 将生成的服务名称。
@@ -179,7 +179,7 @@ Podman Quadlet 解析:
- `Image=ghcr.io/halo-dev/halo` 即 Docker 镜像的地址,注意要完整的。比如`ghcr.io`这个路径就不能少,如果你没有配置 Podman 的 registries 文件,此路径就必不可少,建议写全。
- `Exec=` 即附加到 Halo 容器的 Command具体变量参考上方的 DockerArgs。多个变量以空格分开。
`[Service]` 部分:
`[Service]` 部分
即原生 systemd 语法
- `Restart` 指定遇到错误后总是重启容器
@@ -188,12 +188,12 @@ Podman Quadlet 解析:
- `TimeoutStartSec` 启动容器的超时时间,建议不要修改,因为每次开机后 Podman 将自动拉取容器,这时也许耗时会很长,这些时间是算在启动时间中的。如果定义太小的时间,可能将导致 Podman 无法拉取容器镜像。
- `TimeoutStopSec` 停止容器时的超时时间,`systemctl stop halo` 假设使用这个命令,如果停止时间超过了`TimeoutStopSec`定义的时间,将会被系统 Kill.
`[Install]` 部分:
`[Install]` 部分
此部分请查看 systemd 文档,不建议修改。
使用默认的 root 用户运行时无需定义 `User=60000 Group=60000 UserNS=keep-id:uid=60000,gid=60000` 与 `Environment=HALO_WORK_DIR="/.halo"` `Environment=SPRING_CONFIG_LOCATION="optional:classpath:/;optional:file:/.halo/"`
示例:
示例
```bash
mkdir -p /opt/podman-data/halo

View File

@@ -27,7 +27,7 @@ description: Halo 项目的构成
- classpath:/config/
- classpath:/
> 参考: [Application Property Files](https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-application-property-files)
> 参考[Application Property Files](https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-application-property-files)
在开发的时候,希望大家能够在 `~/halo-dev/application.yml` 中进行添加自定义配置。当然后面也会讲到如何用`运行参数``VM options` 进行控制配置,届时可根据具体情况进行选择。

View File

@@ -253,13 +253,13 @@ Halo 默认会为每个自定义模型建立以下几个索引,因此不需要
- 必须以字母数字字符开头和结尾。
- 可以包含 `-``.``_``字母数字`字符。
通用规范:
通用规范
- 避免使用容易引起混淆或误解的键名。
- 尽量保持简洁明了,易于理解。
- 使用易于记忆和识别的单词或缩写。
一致性和清晰性:
一致性和清晰性
- 在整个项目或组织中保持一致的命名约定。
- labels 应直观地反映其代表的信息或用途。
@@ -356,7 +356,7 @@ RouterFunction<ServerResponse> route = route()
这样开发者可以灵活定义符合业务需求的 APIs方便地扩展插件的功能。
自定义 APIs 与自动生成的 APIs 一样,都应该遵循以下规范:
自定义 APIs 与自动生成的 APIs 一样,都应该遵循以下规范
`/apis/<group>/<version>/<extension>/{extensionname}/<subextension>`
@@ -631,7 +631,7 @@ public static BindingResult validate(Object target, String objectName,
}
```
参考文档:
参考文档
- [RequestBodyValidationException](https://github.com/halo-dev/halo/blob/25086ee3e63f0c8b6ed380140a068c44404ef2b2/application/src/main/java/run/halo/app/infra/exception/RequestBodyValidationException.java)
- [Bean Validation](https://beanvalidation.org/)

View File

@@ -284,7 +284,7 @@ Halo 提供了 `NotificationReasonEmitter` 接口,开发者可以通过它轻
- `reasonType`:事件类型的名称,对应于 `ReasonType``metadata.name` 字段。
- `reasonData`:事件数据的构建器,用于构建 `Reason` 实例的属性。
Reason 数据的构建器有以下属性:
Reason 数据的构建器有以下属性
```java
public class ReasonPayloadBuilder {

View File

@@ -167,7 +167,7 @@ record Result(boolean reEnqueue, Duration retryAfter) {}
创建一个名为”EventTracker“的自定义模型用于管理和追踪组织内的各种事件。这些事件可以是会议、研讨会、社交聚会或任何其他类型的组织活动。
“EventTracker“自定义模型将提供一个框架用于记录事件的详细信息如时间、地点、参与者和状态。
由于这里的重点是控制器,因此我们将忽略自定义模型的详细信息,只关注控制器的实现,一个可能的 “EventTracker” 数据结构如下:
由于这里的重点是控制器因此我们将忽略自定义模型的详细信息只关注控制器的实现一个可能的“EventTracker”数据结构如下
```yaml
apiVersion: tracker.halo.run/v1alpha1

View File

@@ -25,7 +25,7 @@ description: 了解如何使用静态资源代理来访问插件中的静态资
```
插件启动后会根据 `/plugins/{plugin-name}/assets/**` 规则生成访问路径,
因此该 `ReverseProxy` 的访问路径为: `/plugins/my-plugin/assets/res/halo.jpg`。
因此该 `ReverseProxy` 的访问路径为`/plugins/my-plugin/assets/res/halo.jpg`。
- `rules` 下可以添加多组规则。
- `path` 为路径前缀。

View File

@@ -345,7 +345,7 @@ const momentsUcApiClient = {
export { momentsConsoleApiClient, momentsCoreApiClient, momentsUcApiClient };
```
使用定义的实例:
使用定义的实例
```typescript
import { momentsConsoleApiClient } from "@/api";

View File

@@ -200,7 +200,7 @@ RateLimiter buildSendEmailRateLimiter(String username, String email) {
var rateLimiter = rateLimiterRegistry.rateLimiter(rateLimiterKey, new RateLimiterConfig.Builder()
// 频次限制为 1 次
.limitForPeriod(1)
// 限制刷新周期为 60 秒, 即 60 秒内只能执行 1 次
// 限制刷新周期为 60 秒即 60 秒内只能执行 1 次
.limitRefreshPeriod(Duration.ofSeconds(60))
.build());
// 添加 limiter 到自己实现的 Registry 中保存起来以便在插件停止时清理

View File

@@ -9,7 +9,7 @@ description: 这个例子展示了如何开发 Todo List 插件
## 配置你的插件
1. 修改 `build.gradle` 中的 `group` 为你自己的,如:
1. 修改 `build.gradle` 中的 `group` 为你自己的,如
```groovy
group = 'run.halo.tutorial'

View File

@@ -41,7 +41,7 @@ rules:
### 资源型规则 {#resource-rules}
资源型规则用于定义对资源的操作权限API 符合以下特征:
资源型规则用于定义对资源的操作权限API 符合以下特征
-`/api` 开头,且以 `/api/<version>/<resource>[/<resourceName>/<subresource>]` 规则组成 APIs最少路径层级为 3 即 `/api/<version>/<resource>`,最多路径层级为 5 即包含 `<resourceName>``<subresource>`,例如 `/api/v1/posts`
-`/apis/<group>/<version>/<resource>[/<resourceName>/<subresource>]` 规则组成的 APIs最少路径层级为 4 即 `/apis/<group>/<version>/<resource>`,最多路径层级为 6 即包含 `<resourceName>``<subresource>`,例如 `/apis/my-plugin.halo.run/v1alpha1/persons`
@@ -157,7 +157,7 @@ rules:
`verbs` 字段用于指定用户或服务在特定资源上能执行的操作类型。这些操作被定义为一组“动词”,每个动词与相应的 HTTP 请求方法相对应。为了更好地理解如何确定合适的 `verbs`,以下是详细的解释和每种动词的具体用途:
动词和对应的 HTTP 方法:
动词和对应的 HTTP 方法
- create: 对应 HTTP 的 POST 方法。用于创建一个新的资源实例,如果是创建子资源且不需要资源名称可以使用 `-` 表示缺省,如 `POST /apis/my-plugin.halo.run/v1alpha1/persons/-/subresource`,同时需要注意 `POST /apis/my-plugin.halo.run/v1alpha1/persons/{some-name}` 不是一个符合规范的 create 操作,创建资源不应该包含资源名称。
- get: 对应 HTTP 的 GET 方法。用于获取单个资源的详细信息,即 API 中包含 resourceName 部分如 `GET /apis/my-plugin.halo.run/v1alpha1/persons/zhangsan`
@@ -165,7 +165,7 @@ rules:
- watch: 也是对应 HTTP 的 GET 方法。用于实时监控资源或资源集合的变化,通常是通过 WebSocket 连接来实现的,如 `ws://localhost:8090/apis/my-plugin.halo.run/v1alpha1/persons`
- update: 对应 HTTP 的 PUT 方法。用于更新现有资源的全部内容。
- patch: 对应 HTTP 的 PATCH 方法。用于对现有资源进行部分更新。
- delete: 对应 HTTP 的 DELETE 方法。用于删除单个资源, 即 API 中包含 resourceName 部分如 `DELETE /apis/my-plugin.halo.run/v1alpha1/persons/zhangsan`
- delete: 对应 HTTP 的 DELETE 方法。用于删除单个资源即 API 中包含 resourceName 部分如 `DELETE /apis/my-plugin.halo.run/v1alpha1/persons/zhangsan`
- deletecollection: 同样对应 HTTP 的 DELETE 方法,但用于删除一个资源集合。
可以使用如下表格来简化理解:

View File

@@ -11,7 +11,7 @@ description: 使用阿里云计算巢服务部署 Halo
![image.png](/img/install/alibab-cloud-computenest/deploy_1.jpg)
2. 参数填写完成后可以看到对应询价明细,确认参数后点击**下一步:确认订单**。确认订单完成后同意服务协议并点击**立即创建**进入部署阶段。
3. 等待部署完成后进入服务实例管理, 在控制台找到 Halo 服务访问链接。
3. 等待部署完成后进入服务实例管理在控制台找到 Halo 服务访问链接。
![image.png](/img/install/alibab-cloud-computenest/deploy_2.jpg)
4. 单击链接访问 Halo 服务。

View File

@@ -20,7 +20,7 @@ Halo 离线安装包使用 Docker + Docker Compose 的方式部署 Halo 及其
### 解压安装包
以 root 用户 ssh 登录到目标机器, 并执行如下命令:
以 root 用户 ssh 登录到目标机器并执行如下命令:
```bash
cd /tmp

View File

@@ -20,7 +20,7 @@ Podman 采用无守护进程的包容性架构,因此可以更安全、更简
为什么选择 Podman 而不是 Docker ?
这个需要视情况而定, 如果您的主机配置不是很高, 您使用 Docker 时, 因为 Docker 自带的守护进程可能会雪上加霜, 它会大量占用您的资源。
这个需要视情况而定如果您的主机配置不是很高您使用 Docker 时因为 Docker 自带的守护进程可能会雪上加霜它会大量占用您的资源。
而 Podman 采用无守护进程架构,而且容器是无根模式,您可以在占用资源极小的情况下运行镜像,并且获得很高的安全性。
而且 Podman 与 Docker 高度兼容,您不需要做特别配置即可将 Docker 容器运行在 Podman 上。
@@ -46,7 +46,7 @@ Podman 采用无守护进程的包容性架构,因此可以更安全、更简
## 使用 Docker 镜像
:::tip
为什么是 Docker 镜像?
为什么是 Docker 镜像
通过[前言](#前言)我们已经了解了 Podman其中提到 ***Podman 与 Docker 高度兼容*** ,正是因为 Podman 完全是为了替代 Docker 而诞生,所以原本的 Docker 生态中的镜像我们可以无需更改直接使用。
:::
@@ -115,7 +115,7 @@ Podman 没有和 Docker 类似的管理进程,在低配置的主机上更友
但是使用 Podman 想要开机后自动启动,官方推荐一种和 systemd 服务类似的语法文件,即 Podman Quadlet。
:::
下面是一个使用 Podstgresql 数据库的示例:
下面是一个使用 Podstgresql 数据库的示例
```bash
mkdir -p /opt/podman-data/halo
@@ -162,13 +162,13 @@ systemctl start halo
# 之后重启会自动启动不需要enable服务.
```
Podman Quadlet 解析:
Podman Quadlet 解析
`[Unit]` 部分:
`[Unit]` 部分
- Wants 和 After 字段指定了 Halo 在什么服务后启动。
`[Container]` 部分:
`[Container]` 部分
- `AutoUpdate=registry`指定了自动拉取容器。假设后续 Halo 镜像支持了`latest`标签,你需要`systemctl enable --now podman-auto-update.timer`以启用容器自动更新。本文示例`ghcr.io/halo-dev/halo:2.20`,将会自动更新适用与`2.20`版本的 patch例如您创建容器时是`2.20.1`,在官方发布`2.20.2`版本时,容器会自动更新到`2.20.2`。
- `ContainerName=`指定了 systemd 将生成的服务名称。
@@ -179,7 +179,7 @@ Podman Quadlet 解析:
- `Image=ghcr.io/halo-dev/halo` 即 Docker 镜像的地址,注意要完整的。比如`ghcr.io`这个路径就不能少,如果你没有配置 Podman 的 registries 文件,此路径就必不可少,建议写全。
- `Exec=` 即附加到 Halo 容器的 Command具体变量参考上方的 DockerArgs。多个变量以空格分开。
`[Service]` 部分:
`[Service]` 部分
即原生 systemd 语法
- `Restart` 指定遇到错误后总是重启容器
@@ -188,12 +188,12 @@ Podman Quadlet 解析:
- `TimeoutStartSec` 启动容器的超时时间,建议不要修改,因为每次开机后 Podman 将自动拉取容器,这时也许耗时会很长,这些时间是算在启动时间中的。如果定义太小的时间,可能将导致 Podman 无法拉取容器镜像。
- `TimeoutStopSec` 停止容器时的超时时间,`systemctl stop halo` 假设使用这个命令,如果停止时间超过了`TimeoutStopSec`定义的时间,将会被系统 Kill.
`[Install]` 部分:
`[Install]` 部分
此部分请查看 systemd 文档,不建议修改。
使用默认的 root 用户运行时无需定义 `User=60000 Group=60000 UserNS=keep-id:uid=60000,gid=60000` 与 `Environment=HALO_WORK_DIR="/.halo"` `Environment=SPRING_CONFIG_LOCATION="optional:classpath:/;optional:file:/.halo/"`
示例:
示例
```bash
mkdir -p /opt/podman-data/halo