{"id":50516473,"url":"https://github.com/gruke-build/oci","last_synced_at":"2026-06-03T00:31:18.019Z","repository":{"id":355764894,"uuid":"1229485355","full_name":"gruke-build/oci","owner":"gruke-build","description":"A set of custom Ubuntu OCI images, primarily for use with Forgejo Actions on Forgejo Runner.","archived":false,"fork":false,"pushed_at":"2026-05-06T22:57:22.000Z","size":250,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-05-07T00:33:09.112Z","etag":null,"topics":["docker","forgejo-runner","oci","oci-image","ubuntu"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gruke-build.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-05T05:02:00.000Z","updated_at":"2026-05-06T22:57:26.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/gruke-build/oci","commit_stats":null,"previous_names":["ryubing/oci","gruke-build/oci"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/gruke-build/oci","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gruke-build%2Foci","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gruke-build%2Foci/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gruke-build%2Foci/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gruke-build%2Foci/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gruke-build","download_url":"https://codeload.github.com/gruke-build/oci/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gruke-build%2Foci/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33843611,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-02T02:00:07.132Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["docker","forgejo-runner","oci","oci-image","ubuntu"],"created_at":"2026-06-03T00:31:16.074Z","updated_at":"2026-06-03T00:31:18.012Z","avatar_url":"https://github.com/gruke-build.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ctable align=\"center\"\u003e\n    \u003ctr\u003e\n        \u003ctd align=\"center\" width=\"25%\"\u003e\n            \u003cimg src=\"https://raw.githubusercontent.com/gruke-build/src/refs/heads/develop/images/icon-social.png\" alt=\"gruke\" \u003e\n        \u003c/td\u003e\n        \u003ctd align=\"center\" width=\"75%\"\u003e\n          \n# Custom Ubuntu OCI images\n\nA set of custom Ubuntu OCI images,\u003cbr/\u003eprimarily for use with [Forgejo Actions](https://forgejo.org/docs/latest/user/actions/overview/) on [Forgejo Runner](https://code.forgejo.org/forgejo/runner/).\n\n[![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/gruke-build/oci/build-ubuntu.yml?style=for-the-badge\u0026logo=github\u0026label=Build%20Images\u0026labelColor=black)\n](https://github.com/gruke-build/oci/actions)\n\u003cbr\u003e\n[![Discord](https://img.shields.io/discord/405806471578648588?color=5865F2\u0026label=Greem%27s%20Projects\u0026logo=discord\u0026logoColor=white\u0026style=for-the-badge)](https://discord.gg/H8bcFr2)\n        \u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003cp align=\"center\"\u003e\n  This is a fork of \u003ca target=\"_blank\" href=\"https://github.com/catthehacker/docker_images\"\u003ecatthehacker/docker_images\u003c/a\u003e; used to create the \u003ccode\u003eghcr.io/catthehacker/ubuntu\u003c/code\u003e images.\u003cbr/\u003e\n  We have been using these docker images for some time, and they work well.\u003cbr/\u003e\n  However, there's some tools we'd like to have in them pre-installed to save workflow time,\u003cbr/\u003ebandwidth usage, and reduce reliance on Canonical server stability.\n\u003c/p\u003e\n\n\n\nNotable modifications from the original `catthehacker` Docker images are:\n- Inclusion of [`gli`](https://github.com/GreemDev/GLI).\n  - This is my personal CLI tool that I add things I find useful to.\n- Pre-installation of [AppImageTool](https://github.com/AppImage/appimagetool) and required dependencies:\n  - `zsync`\n  - `desktop-file-utils`\n  - `appstream`\n  - `libfuse2` (22.04) OR `libfuse2t64` (24.04)\n- Automatic inclusion of `git.ryujinx.app` into SSH known hosts.\n- Pre-installation of `7zip` via `apt`.\n- Ubuntu 20.04 as well as 32-bit ARM images are not created.\n- We do not automatically create the `custom` or `rust` build flavors.\n  - They (mostly Rust) take way too long to make, and we don't even use Rust in any project.\n- We do not automatically create the `gh` build flavor.\n  - These images are not meant for use via GitHub, so no need to have a build variant specific to its CLI utility.\n  - `gli` can replace the primary function for using `gh` in CI, [downloading releases matching a file pattern](https://github.com/GreemDev/GLI/blob/v3/src/Cli/Commands/GitHubReleaseCommand.cs).\n\n\n\u003e [!IMPORTANT]\n\u003e ## When updates will be applied to images\n\u003e - A package that will be required for action(s) to work properly might be added/removed/changed\n\u003e - Any maintenance that will be required due to:\n\u003e   - GitHub Container Registry\n\u003e   - GitHub Actions\n\u003e   - [nektos/act](https://github.com/nektos/act)\n\u003e - Performance and/or disk space improvements \n\n## Images available\n- [`/linux/ubuntu/act`](./linux/ubuntu/scripts/act.sh) - image used in [nektos/act](https://github.com/nektos/act) as medium size image retaining compatibility with most actions, with a small size\n  - `ghcr.io/gruke-build/ubuntu:act-22.04`\n  - `ghcr.io/gruke-build/ubuntu:act-24.04`\n  - `ghcr.io/gruke-build/ubuntu:act-latest` (aka `act-24.04`)\n- [`/linux/ubuntu/runner`](./linux/ubuntu/scripts/runner.sh) - `ghcr.io/gruke-build/ubuntu:act-*` but with `runner` as user instead of `root`\n  - `ghcr.io/gruke-build/ubuntu:runner-22.04`\n  - `ghcr.io/gruke-build/ubuntu:runner-24.04`\n  - `ghcr.io/gruke-build/ubuntu:runner-latest` (aka `runner-24.04`)\n- [`/linux/ubuntu/js`](./linux/ubuntu/scripts/js.sh) - `ghcr.io/gruke-build/ubuntu:act-*` but with `js` tools installed (`yarn`, `nvm`, `node` v20/v24, `pnpm`, `grunt`, etc.)\n  - `ghcr.io/gruke-build/ubuntu:js-22.04`\n  - `ghcr.io/gruke-build/ubuntu:js-24.04`\n  - `ghcr.io/gruke-build/ubuntu:js-latest` (aka `js-24.04`)\n\u003c!---\n- [`/linux/ubuntu/rust`](./linux/ubuntu/scripts/rust.sh) - `ghcr.io/gruke-build/ubuntu:act-*` but with `rust` tools installed (`rustfmt`, `clippy`, `cbindgen`, etc.)\n  - `ghcr.io/gruke-build/ubuntu:rust-22.04`\n  - `ghcr.io/gruke-build/ubuntu:rust-24.04`\n  - `ghcr.io/gruke-build/ubuntu:rust-latest` (aka `act-24.04`)\n--\u003e\n- [`/linux/ubuntu/pwsh`](./linux/ubuntu/scripts/pwsh.sh) - `ghcr.io/gruke-build/ubuntu:act-*` but with `pwsh` tools and modules installed\n  - `ghcr.io/gruke-build/ubuntu:pwsh-22.04`\n  - `ghcr.io/gruke-build/ubuntu:pwsh-24.04`\n  - `ghcr.io/gruke-build/ubuntu:pwsh-latest` (aka `pwsh-24.04`)\n- [`/linux/ubuntu/go`](./linux/ubuntu/scripts/go.sh) - `ghcr.io/gruke-build/ubuntu:act-*` but with `go` tools installed\n  - `ghcr.io/gruke-build/ubuntu:go-22.04`\n  - `ghcr.io/gruke-build/ubuntu:go-24.04`\n  - `ghcr.io/gruke-build/ubuntu:go-latest` (aka `go-24.04`)\n- [`/linux/ubuntu/dotnet`](./linux/ubuntu/scripts/dotnet.sh) - `ghcr.io/gruke-build/ubuntu:act-*` but with `.NET` tools installed\n  - `ghcr.io/gruke-build/ubuntu:dotnet-22.04`\n  - `ghcr.io/gruke-build/ubuntu:dotnet-24.04`\n  - `ghcr.io/gruke-build/ubuntu:dotnet-latest` (aka `dotnet-24.04`)\n- [`/linux/ubuntu/java-tools`](./linux/ubuntu/scripts/java-tools.sh) - `ghcr.io/gruke-build/ubuntu:act-*` but with Java tools installed\n  - `ghcr.io/gruke-build/ubuntu:java-tools-22.04`\n  - `ghcr.io/gruke-build/ubuntu:java-tools-24.04`\n  - `ghcr.io/gruke-build/ubuntu:java-tools-latest` (aka `java-tools-24.04`)\n- [`/linux/ubuntu/gh`](./linux/ubuntu/scripts/gh.sh) - `ghcr.io/gruke-build/ubuntu:act-*` but with GitHub CLI tools installed\n  - `ghcr.io/gruke-build/ubuntu:gh-22.04`\n  - `ghcr.io/gruke-build/ubuntu:gh-24.04`\n  - `ghcr.io/gruke-build/ubuntu:gh-latest` (aka `gh-24.04`)\n\u003c!---\n- [`/linux/ubuntu/custom`](./linux/ubuntu/scripts/custom.sh) - `ghcr.io/gruke-build/ubuntu:act-*` but with custom tools installed\n  - `ghcr.io/gruke-build/ubuntu:custom-22.04`\n  - `ghcr.io/gruke-build/ubuntu:custom-24.04`\n  - `ghcr.io/gruke-build/ubuntu:custom-latest` (aka `custom-24.04`)\n--\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgruke-build%2Foci","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgruke-build%2Foci","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgruke-build%2Foci/lists"}