Sign inSign up

userid0x0/gitea-runner-docuum-dind

By userid0x0

•Updated about 14 hours ago

Gitea act_runner with docuum - Docker-in-Docker (dind) variant

Image
Integration & delivery
0

4.9K

userid0x0/gitea-runner-docuum-dind repository overview

Docker Image Build Github Repo

⁠Gitea gitea-runner with docuum - Docker-in-Docker (DinD) variant

⁠Intention

A gitea-runner⁠ Image based on linuxserver.io⁠'s baseimage-alpine.

Included components:

Persistent files are stored in /config & /data reducing the number of bind-mounts. Services are run as user abc.

The image cleans up unused images using the following strategy:

A secondary image is generated to run a dedicated gitea-runner cache server.

⁠Images

  • docker.io/userid0x0/gitea-runner-docuum-dind:<tag>
    Tags:
    • v<x>.<y>.<z>-<version> with x/y/z aligned with the gitea-runner release / version signals changes in this repo
    • master build from the master branch in this repo aka development head
    • nightly build from the master branch in this repo usign gitea-runner nightly builds
  • docker.io/userid0x0/gitea-runner-cache:<tag>
    Tags:
    • v<x>.<y>.<z>-<version> with x/y/z aligned with the gitea-runner release / version signals changes in this repo
    • master build from the master branch in this repo aka development head
    • nightly build from the master branch in this repo usign gitea-runner nightly builds
  • Deprecated: docker.io/userid0x0/act_runner-docuum-dind

⁠Usage - runner

⁠docker-compose.yml
services:
  runner:
    image: docker.io/userid0x0/gitea-runner-docuum-dind:v5.1.1-1
    restart: unless-stopped
    privileged: true
    environment:
      PUID: <uid to use>
      PGID: <gid to use>
      GITEA_INSTANCE_URL: "${INSTANCE_URL}"
      GITEA_RUNNER_REGISTRATION_TOKEN: "${REGISTRATION_TOKEN}"
      GITEA_RUNNER_NAME: "${RUNNER_NAME}"
      # DOCUUM_ARGS: "--threshold 80GB"
    env_file:
      - .env
    volumes:
      - ./config:/config
      - docker:/data

volumes:
  docker:
⁠.env
INSTANCE_URL=https://<...>
REGISTRATION_TOKEN=<...>
RUNNER_NAME=<...>

⁠Usage - external cache server

⁠docker-compose.yml
services:
  runner:
    image: docker.io/userid0x0/gitea-runner-cache:v5.1.1-1
    restart: unless-stopped
    environment:
      PUID: <uid to use>
      PGID: <gid to use>
    volumes:
      - ./config:/config
      - cache:/data
    # networks:
    #   - <tbd.network>
    # labels:
    #   - "traefik.enable=true"
    #   - "traefik.http.routers.rGiteaActionsCacheHttp.rule=Host(`<tbd.url>`)"
    #   - "traefik.http.routers.rGiteaActionsCacheHttp.entrypoints=<tbd.http entrypoint>"
    #   - "traefik.http.routers.rGiteaActionsCache.rule=Host(`<tbd.url>`)"
    #   - "traefik.http.routers.rGiteaActionsCache.entrypoints=<tbd.https entrypoint>"
    #   - "traefik.http.routers.rGiteaActionsCache.tls=true"
    #   - "traefik.http.routers.rGiteaActionsCache.tls.certresolver=<tbd.resolver>"

volumes:
  cache:

# networks:
#   <tbd.network>:
#     external: true

⁠Adaptions/Modifications

⁠Environment Variables
  • PUID/PGID - UID to use for services e.g. act_runner/docuum
    This the is UID/GID of the files in /config
    default: 911
  • DOCUUM_ARGS - command line arguments passed to docuum e.g. Image storage threshold, persistent images, ...
    default --threshold 80GB
⁠/custom-cont-init.d

Based on https://docs.linuxserver.io/general/container-customization/#custom-scripts⁠ the image can be adapted to local requirements. Usage e.g.

  • custom root certificate installation
  • configuration changes e.g. /etc/docker/daemon.json

⁠Internals

⁠s6rc.d dependency graph - runner

s6rc.d dependency

⁠s6rc.d dependency graph - external cache server

s6rc.d dependency

Tag summary

Content type

Image

Digest

sha256:77c6b3015…

Size

138.9 MB

Last updated

about 14 hours ago

docker pull userid0x0/gitea-runner-docuum-dind:master