{"id":21708136,"url":"https://github.com/fullstack-devops/github-actions-runner","last_synced_at":"2025-07-12T04:35:43.870Z","repository":{"id":39486697,"uuid":"471675722","full_name":"fullstack-devops/github-actions-runner","owner":"fullstack-devops","description":"Container images with Github Actions Runner. Different flavored images with preinstalled tools and software for builds with limited internet access and non root privileges.","archived":false,"fork":false,"pushed_at":"2023-07-06T15:15:58.000Z","size":134,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-01-25T16:12:23.148Z","etag":null,"topics":["ci-cd","cicd","github"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fullstack-devops.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["eksrha"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2022-03-19T11:29:09.000Z","updated_at":"2023-01-31T19:39:51.000Z","dependencies_parsed_at":"2024-11-25T22:21:24.256Z","dependency_job_id":"80aff995-63b7-401b-9fca-75113aeb89b2","html_url":"https://github.com/fullstack-devops/github-actions-runner","commit_stats":null,"previous_names":[],"tags_count":56,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fullstack-devops%2Fgithub-actions-runner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fullstack-devops%2Fgithub-actions-runner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fullstack-devops%2Fgithub-actions-runner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fullstack-devops%2Fgithub-actions-runner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fullstack-devops","download_url":"https://codeload.github.com/fullstack-devops/github-actions-runner/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244658428,"owners_count":20488965,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ci-cd","cicd","github"],"created_at":"2024-11-25T22:20:52.863Z","updated_at":"2025-03-20T17:25:14.403Z","avatar_url":"https://github.com/fullstack-devops.png","language":"Dockerfile","funding_links":["https://github.com/sponsors/eksrha"],"categories":[],"sub_categories":[],"readme":"[![Create Release](https://github.com/fullstack-devops/github-actions-runner/actions/workflows/create-release.yml/badge.svg)](https://github.com/fullstack-devops/github-actions-runner/actions/workflows/create-release.yml)\n[![Anchore Container Scan](https://github.com/fullstack-devops/github-actions-runner/actions/workflows/anchore.yml/badge.svg)](https://github.com/fullstack-devops/github-actions-runner/actions/workflows/anchore.yml)\n\n# GitHub Actions Custom Runner\n\nContainer images with Github Actions Runner. Different flavoured images with preinstalled tools and software for builds with limited internet access and non root privileges (exception for kaniko).\nWith a focus on already installed software to avoid a subsequent installation by a `setup-action`.\n\nIdeal for building software in corporate environments of large and small organizations that often restrict Internet access.\nSoftware builds can be built there using a [Nexus Repository](https://de.sonatype.com/products/repository-oss) or [JFrog Artifactory](https://jfrog.com/de/artifactory/)\n\nSupport: If you need help or a feature just open an issue!\n\nPackage / Images: `quay.io/fullstack-devops/github-actions-runner`\n\nAvailable Tags:\n\n| Name (tag)                | Installed Tools/ Software                                                                                                                                                                                                             | Dockerfile                                       | Description                                                                                        |\n| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------ | -------------------------------------------------------------------------------------------------- |\n| `latest-base`             | libffi-dev, libicu-dev, build-essential, libssl-dev, ca-certificates, jq, sed, grep, git, curl, wget, zip, nodejs, ansible, [awesome-ci](https://github.com/fullstack-devops/awesome-ci), [alpaca](https://github.com/samuong/alpaca) | [Dockerfile](images/base/Dockerfile)             | Base runner with nothing fancy installed, but with internet connection more tools can be installed |\n| `latest-kaniko-sidecar`   | kaniko                                                                                                                                                                                                                                | [Dockerfile](images/kaniko-sidecar/Dockerfile)   | Sidecar used by other runner images to build containers                                            |\n| `latest-ansible-k8s`      | base-image + helm, kubectl, skopeo                                                                                                                                                                                                    | [Dockerfile](images/ansible-k8s/Dockerfile)      | Runner specializing in automated k8s deployments via Ansible in your cluster                       |\n| `latest-maven-adopt-8-ng` | base-image + helm, maven, adoptopenjdk-8-hotspot, xmlstarlet                                                                                                                                                                          | [Dockerfile](images/maven-adopt-8-ng/Dockerfile) | Runner specialized in building Java applications that requires an older Java 8 version             |\n| `latest-maven-temurin-11` | base-image + helm, maven, temurin-11, xmlstarlet,                                                                                                                                                                                     | [Dockerfile](images/maven-temurin-11/Dockerfile) | Runner specialized in building Java applications that requires Java temurin-11                     |\n| `latest-maven-temurin-17` | base-image + helm, maven, temurin-17, xmlstarlet,                                                                                                                                                                                     | [Dockerfile](images/maven-temurin-17/Dockerfile) | Runner specialized in building Java applications that requires Java temurin-17                     |\n| `latest-ng-cli-karma`     | base-image + helm, npm, yarn, angular/cli, chromium                                                                                                                                                                                   | [Dockerfile](images/ng-cli-karma/Dockerfile)     | Runner specialized in building Angular application and capable for testing with chromium and karma |\n| `latest-golang`           | base-image + helm, go,                                                                                                                                                                                                                | [Dockerfile](images/golang/Dockerfile)           | Runner specialized in building go applications                                                     |\n\n\u003e Hint: `latest` can be replaced with an specific release version for more stability in your environment.\n\n---\n\n## Environmental variables\n\n### Required environmental variables\n\n| Variable                               | Type   | Description                                                                                                       |\n| -------------------------------------- | ------ | ----------------------------------------------------------------------------------------------------------------- |\n| `GH_ORG`, `GH_REPO` or `GH_ENTERPRISE` | string | Points to the GitHub enterprise, organisation or repo where the runner should be installed                        |\n| `GH_ACCESS_TOKEN`                      | string | Developer Token vor the GitHub Organisation\u003cbr\u003e\u003c/br\u003e This Token can be personal and is onlv needed during installation |\n\n### Optional environmental variables\n\nFor the helm values see the [values.yaml](https://github.com/fullstack-devops/helm-charts/blob/main/charts/github-actions-runner/values.yaml), section `envValues`\n\n| Variable                 | Type   | Default                  | Description                                                               |\n| ------------------------ | ------ | ------------------------ | ------------------------------------------------------------------------- |\n| `GH_URL`                 | string | `https://github.com`     | For GitHub Enterprise support                                             |\n| `GH_API_ENDPOINT`        | string | `https://api.github.com` | For GitHub Enterprise support eg.: `https://git.example.com/api/v3/`      |\n| `KANIKO_ENABLED`         | bool   | `false`                  | enable builds with kaniko (works only with kaniko-sidecar)                |\n| `PROXY_PAC`              | string | -                        | proxy pac file url                                                        |\n| `PROXY_NTLM_CREDENTIALS` | string | -                        | (required when `PROXY_PAC` is set) credentials when connecting with proxy |\n\n---\n\n## Proxy Support\n\nThe way out ;)\n\n- Getting the Software to create the Credentials: https://github.com/samuong/alpaca/releases\n- Creating your NTML Cerdentials `alpaca -d \u003cwindows-domain (optional)\u003e -u \u003cwindows-user\u003e -H`\n- Set the env variables `PROXY_PAC` and `PROXY_NTLM_CREDENTIALS` in your container, pod or helm-chart\n- If you want to use the proxy service in your github-action checkout the examples\n\n## Examples\n\n### Proxy in github actions\n\n#### for only one step\n\n```yaml\nname: Deploy from internet\n\non:\n\njobs:\n  add-helm-chart:\n    runs-on: [self-hosted, ansible] # look for default tags or your own\n    steps:\n      - name: Checkout code\n        uses: actions/checkout@v3\n\n      - name: check helm chart\n        env:\n          http_proxy: http://localhost:3128\n          https_proxy: http://localhost:3128\n          no_proxy: \"197.0.0.0/8,*.internal.net\" # replace with you internal reachable adresses\n        run: |\n          helm repo add fs-devops https://fullstack-devops.github.io/helm-charts/\n          helm repo add sonatype https://sonatype.github.io/helm3-charts/\n\n      - name: do something here\n\n      - name: remove check helm chart\n        if: always()\n        run: |\n          helm repo remove fs-devops\n          helm repo remove sonatype\n```\n\n#### for whole workflow\n\n```yaml\nname: Deploy from internet\n\non:\n\nenv:\n  http_proxy: http://localhost:3128\n  https_proxy: http://localhost:3128\n  no_proxy: \"197.0.0.0/8,*.internal.net\" # replace with you internal reachable adresses\n\njobs:\n  add-helm-chart:\n    runs-on: [self-hosted, ansible] # look for default tags or your own\n    steps:\n      - name: Checkout code\n        uses: actions/checkout@v3\n\n      - name: check helm chart\n        run: |\n          helm repo add fs-devops https://fullstack-devops.github.io/helm-charts/\n          helm repo add sonatype https://sonatype.github.io/helm3-charts/\n\n      - name: do something here\n\n      - name: remove check helm chart\n        if: always()\n        run: |\n          helm repo remove fs-devops\n          helm repo remove sonatype\n```\n\n### docker\n\nIf you are using `docker` or `podman` the options and commands are basically the same.\n\nRun registerd to an Organisation:\n\n```bash\ndocker run -e GH_ORG=fullstack-devops -e GH_ACCESS_TOKEN=ghp_**** quay.io/fullstack-devops/github-actions-runner:latest-base\n```\n\nRun registerd to an Organisation and Repo:\n\n```bash\ndocker run -e GH_ORG=fullstack-devops -e GH_REPO=github-runner-testing -e GH_ACCESS_TOKEN=ghp_**** quay.io/fullstack-devops/github-actions-runner:latest-base\n```\n\n\u003e Replace the `ghp_****` with your own valid personal access token\n\n### docker-compose\n\n```bash\ncd examples/docker-compose\ndocker-compose up -d\n```\n\n### podman\n\nSetup exchange directory (only nessesarry until podman supports emptyDir volumes)\n\n```bash\nmkdir /tmp/delme\n```\n\nStarting GitHub runner with podman\n\n```bash\ncd examples/podman\n\npodman play kube deployment.yml\n```\n\nRemoving GitHub runner an dumps\n\n```bash\npodman pod rm gh-runner-kaniko -f\nrm -rf /tmp/delme\n```\n\n### kubernetes pod\n\n```yaml\napiVersion: v1\nkind: Pod\nmetadata:\n  name: gh-runner-kaniko\nspec:\n  volumes:\n    - name: workspace-volume\n      emptyDir: {}\n  containers:\n    - name: kaniko\n      image: quay.io/fullstack-devops/github-actions-runner:latest-kaniko-sidecar\n      resources: {}\n      volumeMounts:\n        - name: workspace-volume\n          mountPath: /kaniko/workspace/\n      imagePullPolicy: IfNotPresent\n      tty: true\n    - name: github-actions-runner\n      image: quay.io/fullstack-devops/github-actions-runner:latest-base\n      resources: {}\n      env:\n        - name: GH_ORG\n          value: \"fullstack-devops\"\n        - name: KANIKO_ENABLED\n          value: true\n        - name: GH_ACCESS_TOKEN\n          value: \"ghp_*****\"\n      volumeMounts:\n        - name: workspace-volume\n          mountPath: /kaniko/workspace/\n      imagePullPolicy: IfNotPresent\n  restartPolicy: Never\n```\n\n### helm\n\nhttps://github.com/fullstack-devops/helm-charts/tree/main/charts/github-actions-runner\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffullstack-devops%2Fgithub-actions-runner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffullstack-devops%2Fgithub-actions-runner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffullstack-devops%2Fgithub-actions-runner/lists"}