initial commit
This commit is contained in:
@@ -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)
|
||||
Reference in New Issue
Block a user