mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-04 01:34:27 +00:00 
			
		
		
		
	Introduce how to configure cache when starting a Runner with Docker (#25077)
If a user starts a runner using a Docker image without making additional configurations, the [cache action](https://github.com/actions/cache) will not work properly. Therefore, add a section in the documentation that explains how to configure the cache correctly.
This commit is contained in:
		@@ -172,6 +172,40 @@ It is because the act runner will run jobs in docker containers, so it needs to
 | 
			
		||||
As mentioned, you can remove it if you want to run jobs in the host directly.
 | 
			
		||||
To be clear, the "host" actually means the container which is running the act runner now, instead of the host machine.
 | 
			
		||||
 | 
			
		||||
### Configuring cache when starting a Runner using docker image
 | 
			
		||||
 | 
			
		||||
If you do not intend to use `actions/cache` in workflow, you can ignore this section.
 | 
			
		||||
 | 
			
		||||
If you use `actions/cache` without any additional configuration, it will return the following error:
 | 
			
		||||
> Failed to restore: getCacheEntry failed: connect ETIMEDOUT <ip>:<port>
 | 
			
		||||
 | 
			
		||||
The error occurs because the runner container and job container are on different networks, so the job container cannot access the runner container.
 | 
			
		||||
 | 
			
		||||
Therefore, it is essential to configure the cache action to ensure its proper functioning. Follow these steps:
 | 
			
		||||
 | 
			
		||||
- 1.Obtain the LAN IP address of the host machine where the runner container is running.
 | 
			
		||||
- 2.Find an available port number on the host machine where the runner container is running.
 | 
			
		||||
- 3.Configure the following settings in the configuration file:
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
cache:
 | 
			
		||||
  enabled: true
 | 
			
		||||
  dir: ""
 | 
			
		||||
  # Use the LAN IP obtained in step 1
 | 
			
		||||
  host: "192.168.8.17"
 | 
			
		||||
  # Use the port number obtained in step 2
 | 
			
		||||
  port: 8088
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
- 4.When starting the container, map the cache port to the host machine:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
docker run \
 | 
			
		||||
  --name gitea-docker-runner \
 | 
			
		||||
  -p 8088:8088 \
 | 
			
		||||
  -d gitea/act_runner:nightly
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Labels
 | 
			
		||||
 | 
			
		||||
The labels of a runner are used to determine which jobs the runner can run, and how to run them.
 | 
			
		||||
 
 | 
			
		||||
@@ -169,6 +169,39 @@ docker run \
 | 
			
		||||
如前所述,如果要在主机上直接运行Job,可以将其移除。
 | 
			
		||||
需要明确的是,这里的 "主机" 实际上指的是当前运行 Act Runner的容器,而不是主机机器本身。
 | 
			
		||||
 | 
			
		||||
### 当您使用 Docker 镜像启动 Runner,如何配置 Cache
 | 
			
		||||
 | 
			
		||||
如果你不打算在工作流中使用 `actions/cache`,你可以忽略本段。
 | 
			
		||||
 | 
			
		||||
如果您在使用 `actions/cache` 时没有进行额外的配置,将会返回以下错误信息:
 | 
			
		||||
> Failed to restore: getCacheEntry failed: connect ETIMEDOUT <ip>:<port>
 | 
			
		||||
 | 
			
		||||
这个错误的原因是 runner 容器和作业容器位于不同的网络中,因此作业容器无法访问 runner 容器。
 | 
			
		||||
因此,配置 cache 动作以确保其正常运行是非常重要的。请按照以下步骤操作:
 | 
			
		||||
 | 
			
		||||
- 1.获取 Runner 容器所在主机的 LAN(本地局域网) IP 地址。
 | 
			
		||||
- 2.获取一个 Runner 容器所在主机的空闲端口号。
 | 
			
		||||
- 3.在配置文件中如下配置:
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
cache:
 | 
			
		||||
enabled: true
 | 
			
		||||
dir: ""
 | 
			
		||||
# 使用步骤 1. 获取的 LAN IP
 | 
			
		||||
host: "192.168.8.17" 
 | 
			
		||||
# 使用步骤 2. 获取的端口号
 | 
			
		||||
port: 8088         
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
- 4.启动容器时, 将 Cache 端口映射至主机。
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
docker run \
 | 
			
		||||
  --name gitea-docker-runner \
 | 
			
		||||
  -p 8088:8088 \ 
 | 
			
		||||
  -d gitea/act_runner:nightly
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### 标签
 | 
			
		||||
 | 
			
		||||
Runner的标签用于确定Runner可以运行哪些Job以及如何运行它们。
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user