initial commit

This commit is contained in:
2026-09-04 14:02:15 -04:00
commit ab192231d8
10 changed files with 310 additions and 0 deletions
+106
View File
@@ -0,0 +1,106 @@
# Base Runner Image
This is a base container image for CI/CD processes.
## Description
Based on the Debian Slim series of images, this image provides common tools for continuous integration/delivery. It is only for build, not runtime purposes. These are used by GitHub, GitLab, and Gitea runners to perform builds, releases, and related tasks.
## Features
### Inherited
This image provides everything [Debian Slim](https://github.com/linuxcontainers/debian-slim) provides.
### Tools
This following tools are installed and available with this image.
`tar`
: TAR extraction or creation
`gzip`
: GZIP or `tar.gz` extraction or creation
`zip`/`unzip`
: ZIP extraction or creation
`curl`
: HTTP service calls, including downloads
`jq`
: JSON parsing and modification
`xmlstarlet`
: XML parsing and modification
`git`
: Git source control
### Extensible `ENTRYPOINT`
This base image implements a universal `ENTRYPOINT` script that executes all executable scripts in `/opt/containerd` that end with `.sh`. This provides the ability for all extending container images to include their own entrypoint script without overriding or shadowing any ancestral entrypoint.
This is nothing to the `CMD` directive, but if specified by an extending image, it will be respected.
## Tags
A version labeled `latest` always exists.
| Tag | Description |
| -------- | ----------- |
| `latest` | The latest version |
| `X` | The latest version within the specified major version `X`. |
| `X.Y` | The latest version within the specified minor version `X.Y`. |
| `X.Y.Z` | A specific version. |
## Configuration
### Environment Variables
| Name | Required | Default | Purpose |
| ------------------------ |:--------:| --------------- | ------- |
| `GIT_CONFIG_USER_NAME` | No | | Initialize Git to use this `user.name`. |
| `GIT_CONFIG_USER_EMAIL` | No | | Initialize Git to use this `user.email`. |
| `CURL_CONFIG_DIR` | No | `/opt/etc/curl` | Expected location of Curl configuration files. |
| `CURL_CONFIG_IDS` | No | | Create Curl configuration file(s) using values provided in corresponding environment variables. |
| `CURL_CONFIG_*_USERNAME` | No | | An HTTP BASIC username for a corresponding Curl configuration. |
| `CURL_CONFIG_*_PASSWORD` | No | | An HTTP BASIC password for a corresponding Curl configuration. |
`CURL_CONFIG_IDS`
: The expected format: `<id>:<key> [<id>:<key> [<id>:<key> ...]]`. The key is used in place of the `*` in the environment variables above. The ID is used in the configuration filename.
#### Examples
Here are sample environment variable definitions:
```sh
GIT_CONFIG_USER_NAME=John Doe
GIT_CONFIG_USER_EMAIL=john.doe@inteligr8.com
CURL_CONFIG_IDS="biz1:BIZ1 biz2:BIZ2"
CURL_CONFIG_BIZ1_USERNAME=john.doe
CURL_CONFIG_BIZ1_PASSWORD=
CURL_CONFIG_BIZ2_USERNAME=jane.doe
CURL_CONFIG_BIZ2_PASSWORD=
```
Here is the corresponding usage of `curl` with the configuration:
```sh
curl --config ${CURL_CONFIG_DIR}/biz1.cfg ...
curl --config ${CURL_CONFIG_DIR}/biz2.cfg ...
```
## Usage
This is expected to be extended or used directly for simple CI/CD runners.
## Contributing
You are welcome to copy the repository, but please open an issue first to avoid fragmentation.
- [Open Issue](https://git.inteligr8.com/inteligr8/base-runner-image/issues)
## References
- [Debian Slim](https://github.com/linuxcontainers/debian-slim)