https://github.com/gruke-build/oci
A set of custom Ubuntu OCI images, primarily for use with Forgejo Actions on Forgejo Runner.
https://github.com/gruke-build/oci
docker forgejo-runner oci oci-image ubuntu
Last synced: 15 days ago
JSON representation
A set of custom Ubuntu OCI images, primarily for use with Forgejo Actions on Forgejo Runner.
- Host: GitHub
- URL: https://github.com/gruke-build/oci
- Owner: gruke-build
- License: mit
- Created: 2026-05-05T05:02:00.000Z (about 1 month ago)
- Default Branch: master
- Last Pushed: 2026-05-06T22:57:22.000Z (about 1 month ago)
- Last Synced: 2026-05-07T00:33:09.112Z (about 1 month ago)
- Topics: docker, forgejo-runner, oci, oci-image, ubuntu
- Language: Shell
- Homepage:
- Size: 244 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Custom Ubuntu OCI images
A set of custom Ubuntu OCI images,
primarily for use with [Forgejo Actions](https://forgejo.org/docs/latest/user/actions/overview/) on [Forgejo Runner](https://code.forgejo.org/forgejo/runner/).
[
](https://github.com/gruke-build/oci/actions)
[](https://discord.gg/H8bcFr2)
This is a fork of catthehacker/docker_images; used to create the ghcr.io/catthehacker/ubuntu images.
We have been using these docker images for some time, and they work well.
However, there's some tools we'd like to have in them pre-installed to save workflow time,
bandwidth usage, and reduce reliance on Canonical server stability.
Notable modifications from the original `catthehacker` Docker images are:
- Inclusion of [`gli`](https://github.com/GreemDev/GLI).
- This is my personal CLI tool that I add things I find useful to.
- Pre-installation of [AppImageTool](https://github.com/AppImage/appimagetool) and required dependencies:
- `zsync`
- `desktop-file-utils`
- `appstream`
- `libfuse2` (22.04) OR `libfuse2t64` (24.04)
- Automatic inclusion of `git.ryujinx.app` into SSH known hosts.
- Pre-installation of `7zip` via `apt`.
- Ubuntu 20.04 as well as 32-bit ARM images are not created.
- We do not automatically create the `custom` or `rust` build flavors.
- They (mostly Rust) take way too long to make, and we don't even use Rust in any project.
- We do not automatically create the `gh` build flavor.
- These images are not meant for use via GitHub, so no need to have a build variant specific to its CLI utility.
- `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).
> [!IMPORTANT]
> ## When updates will be applied to images
> - A package that will be required for action(s) to work properly might be added/removed/changed
> - Any maintenance that will be required due to:
> - GitHub Container Registry
> - GitHub Actions
> - [nektos/act](https://github.com/nektos/act)
> - Performance and/or disk space improvements
## Images available
- [`/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
- `ghcr.io/gruke-build/ubuntu:act-22.04`
- `ghcr.io/gruke-build/ubuntu:act-24.04`
- `ghcr.io/gruke-build/ubuntu:act-latest` (aka `act-24.04`)
- [`/linux/ubuntu/runner`](./linux/ubuntu/scripts/runner.sh) - `ghcr.io/gruke-build/ubuntu:act-*` but with `runner` as user instead of `root`
- `ghcr.io/gruke-build/ubuntu:runner-22.04`
- `ghcr.io/gruke-build/ubuntu:runner-24.04`
- `ghcr.io/gruke-build/ubuntu:runner-latest` (aka `runner-24.04`)
- [`/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.)
- `ghcr.io/gruke-build/ubuntu:js-22.04`
- `ghcr.io/gruke-build/ubuntu:js-24.04`
- `ghcr.io/gruke-build/ubuntu:js-latest` (aka `js-24.04`)
- [`/linux/ubuntu/pwsh`](./linux/ubuntu/scripts/pwsh.sh) - `ghcr.io/gruke-build/ubuntu:act-*` but with `pwsh` tools and modules installed
- `ghcr.io/gruke-build/ubuntu:pwsh-22.04`
- `ghcr.io/gruke-build/ubuntu:pwsh-24.04`
- `ghcr.io/gruke-build/ubuntu:pwsh-latest` (aka `pwsh-24.04`)
- [`/linux/ubuntu/go`](./linux/ubuntu/scripts/go.sh) - `ghcr.io/gruke-build/ubuntu:act-*` but with `go` tools installed
- `ghcr.io/gruke-build/ubuntu:go-22.04`
- `ghcr.io/gruke-build/ubuntu:go-24.04`
- `ghcr.io/gruke-build/ubuntu:go-latest` (aka `go-24.04`)
- [`/linux/ubuntu/dotnet`](./linux/ubuntu/scripts/dotnet.sh) - `ghcr.io/gruke-build/ubuntu:act-*` but with `.NET` tools installed
- `ghcr.io/gruke-build/ubuntu:dotnet-22.04`
- `ghcr.io/gruke-build/ubuntu:dotnet-24.04`
- `ghcr.io/gruke-build/ubuntu:dotnet-latest` (aka `dotnet-24.04`)
- [`/linux/ubuntu/java-tools`](./linux/ubuntu/scripts/java-tools.sh) - `ghcr.io/gruke-build/ubuntu:act-*` but with Java tools installed
- `ghcr.io/gruke-build/ubuntu:java-tools-22.04`
- `ghcr.io/gruke-build/ubuntu:java-tools-24.04`
- `ghcr.io/gruke-build/ubuntu:java-tools-latest` (aka `java-tools-24.04`)
- [`/linux/ubuntu/gh`](./linux/ubuntu/scripts/gh.sh) - `ghcr.io/gruke-build/ubuntu:act-*` but with GitHub CLI tools installed
- `ghcr.io/gruke-build/ubuntu:gh-22.04`
- `ghcr.io/gruke-build/ubuntu:gh-24.04`
- `ghcr.io/gruke-build/ubuntu:gh-latest` (aka `gh-24.04`)