Based on Debian php:8.4-cli-bookworm
.
- Aspell - English language spellcheker
- Bats - Bash Automated Testing System (2018)
- Composer
- curl
- Docker and Docker Compose
- git
- kcov - code coverage tester for compiled languages, Python and Bash
- lsof
- Lynx
- NVM and NodeJS
- PHP
- Shellcheck - a shell script static analysis tool
- shfmt - a shell parser, formatter, and interpreter.
- vim
- yarn
- zip/unzip
Make sure to always pin the version of this image to the tag:
drevops/ci-runner:25.1.0
For testing purposes, you can use the canary
tag:
drevops/ci-runner:canary
The image includes Goss for environment testing. To run tests locally using dgoss:
# Build the image
docker build -t drevops/ci-runner:test-ci .
# Run tests
dgoss run -i drevops/ci-runner:test-ci
Note for ARM64 systems (Apple Silicon): You'll need to install the correct goss binaries:
# Create bin directory
mkdir -p ~/bin
# Download macOS ARM64 goss binary for local use
curl -L "https://github.com/aelsabbahy/goss/releases/latest/download/goss-darwin-arm64" -o ~/bin/goss
chmod +x ~/bin/goss
# Download Linux AMD64 goss binary for container testing
curl -L "https://github.com/aelsabbahy/goss/releases/latest/download/goss-linux-amd64" -o ~/bin/goss-linux-amd64
chmod +x ~/bin/goss-linux-amd64
# Download dgoss wrapper
curl -L "https://github.com/aelsabbahy/goss/releases/latest/download/dgoss" -o ~/bin/dgoss
chmod +x ~/bin/dgoss
# Run tests with correct binary
export GOSS_PATH=~/bin/goss-linux-amd64
~/bin/dgoss run -i drevops/ci-runner:test-ci
This project uses Year-Month-Patch versioning:
YY
: Last two digits of the year, e.g.,23
for 2023.m
: Numeric month, e.g., April is4
.patch
: Patch number for the month, starting at0
.
Example: 23.4.2
indicates the third patch in April 2023.
Releases are scheduled to occur at a minimum of once per month.
This image is built by DockerHub via an automated build and tagged as follows:
YY.m.patch
tag - when release tag is published on GitHub.latest
- when release tag is published on GitHub.canary
- on every push tomain
branch
Renovate bot is used to update dependencies. It creates a PR with the changes
and automatically merges it if CI passes. These changes are then released as
a canary
version.
This repository was created using the Scaffold project template