fix: tune rootless Docker daemon for parallel DinD reliability

Add userland-proxy=false and log-opts (10m, 3 files) to the rootless
Docker daemon.json. The userland proxy adds overhead under parallel
container creation and can become a bottleneck during CI molecule
tests. Log rotation prevents disk exhaustion from container logs under
heavy DinD load, which caused the daemon to become unresponsive
(context deadline exceeded on /_ping).

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
Emil Simeonov
2026-08-10 01:19:13 +02:00
co-authored by Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
parent 20aefa57c0
commit c192929e34
2 changed files with 18 additions and 0 deletions
@@ -76,6 +76,14 @@ gitea_runner_docker_shutdown_timeout: 30
gitea_runner_docker_max_concurrent_downloads: 3
gitea_runner_docker_max_concurrent_uploads: 3
gitea_runner_docker_default_nofile: 65536
# Log file size limits — under parallel DinD load, container logs can fill
# disk and cause the daemon to become unresponsive. Limit log size per container.
gitea_runner_docker_max_log_size: "10m"
gitea_runner_docker_max_log_files: 3
# Userland proxy disabled — it adds overhead and can become a bottleneck
# under parallel container creation. Direct routing is faster and more
# reliable for CI workloads.
gitea_runner_docker_userland_proxy: false
# Admin token for runner deregistration via Gitea API.
# If not set, falls back to registration_token (which likely lacks admin scope).
@@ -180,6 +180,11 @@
"features": {
"containerd-snapshotter": false
},
"userland-proxy": {{ gitea_runner_docker_userland_proxy | to_json }},
"log-opts": {
"max-size": "{{ gitea_runner_docker_max_log_size }}",
"max-file": {{ gitea_runner_docker_max_log_files }}
},
{% if gitea_runner_docker_rootless_net_driver == 'pasta' %}
"ipv6": true,
"ip6tables": true,
@@ -283,6 +288,11 @@
"features": {
"containerd-snapshotter": false
},
"userland-proxy": {{ gitea_runner_docker_userland_proxy | to_json }},
"log-opts": {
"max-size": "{{ gitea_runner_docker_max_log_size }}",
"max-file": {{ gitea_runner_docker_max_log_files }}
},
{% if gitea_runner_docker_rootless_net_driver == 'pasta' %}
"ipv6": true,
"ip6tables": true,