Building the image
The image is compatible to all platforms, and it is capable to run on docker, podman, kubernetes and any other compatible with the OCI specification.
Preparing the environment
- Python 3.x
There is no necessary have docker installed, however you need to have the
buildah on your machine.
If you are using an ubuntu/debian system you can use the provided script
install-buildah-ubuntu.sh to install it.
Command to build
usage: build.py [-h] [--debug] [--build-base] [--build-cli] [--build-fpm] [--build-fpm-apache] [--build-fpm-nginx] [--push] version
You can build one image only, but you need to make sure you have the
base on your machine.
The configuration file
The configuration for each environment is in the folder
config and it is a yaml file like this:
# The base image to use image: alpine:edge # (Optional) If we are getting packages from other resources define here repositories: - https://dl-cdn.alpinelinux.org/alpine/edge/testing # The PHP Version version: major: 8 minor: 0 # List of extensions to be installed extensions: - (NAME) - (NAME) # The PECL extensions to be installed pecl: - name: xdebug # required version: 2.5.5 # optional - if not set get the latest install: False # optional - do not call pecl install zend: True # optional - if true, add as zend extension config: # optional - if set add extra config to php.ini - xdebug.remote_port=9001 # for this extension # Composer packages to be installed composer: packages: - phpunit/phpunit:* - squizlabs/php_codesniffer:* - phpmd/phpmd:@stable links: - phpunit - phpcs - phpbcbf - phpmd # Temporary Packages to be used to build the PECL packages peclBuildPackages: - autoconf - build-base # Permanent packages to be installed in the image additionalPackages: - libssl1.1 - libcrypto1.1
Build the images
docker run -it --privileged -v /tmp/z:/var/lib/containers -v $PWD:/work -w /work byjg/k8s-ci:latest bash python3 ./build.py 8.2 --arch amd64 --build-base --debug
buildah images buildah rmi ...