Warning
Package development deprecated Use:
Repository contains dist folder with generated production ready PHP images and source code, written on Ansible, to generate them. Is used together with other WOD images, to create local development environment for our projects.
Upstream image: wayofdev/docker-php-base
Additionaly to upstream image, enabled extensions by default:
Extension | Description | Type |
---|---|---|
soap | For SOAP servers and clients | native |
exif | Functions for image meta data | native |
gd | Creating and manipulating image files | native |
imagick | Creating and manipulating image files | pecl |
rdkafka | Kafka client based on librdkafka | pecl |
amqp | Functions to communiate with amqp compliant servers | pecl |
protobuf | Mechanism for serializing structured data | pecl |
yaml | YAML file type serialization functions | pecl |
If you like/use this repository, please consider starring it. Thanks!
Ansible is used to generate distribution files, to add or remove PHP extensions, or configure project, see group_vars/prod.yml
Default extension configuration:
ext_native_enabled:
- soap
- exif
- gd
ext_pecl_enabled:
- imagick
- rdkafka
- amqp
- protobuf
- yaml
ext_pecl_versions:
imagick: "3.7.0"
rdkafka: "6.0.3"
amqp: "1.11.0"
protobuf: "3.21.9"
yaml: "2.2.2"
To generate dist files use ansible command:
$ make generate
To install dependencies and start development you can check contents of our Makefile
For testing purposes we use goss and dgoss, follow installation instructions on their official README
Generating distributable Dockerfiles from yaml source code:
$ make generate
Building default image:
$ git clone git@github.com:wayofdev/docker-php-prod.git
$ make build
To build image, test it and then clean temporary files run:
$ make
Building all images:
$ make build TEMPLATE="7.4-cli-alpine"
$ make build TEMPLATE="7.4-fpm-alpine"
$ make build TEMPLATE="7.4-supervisord-alpine"
$ make build TEMPLATE="8.0-cli-alpine"
$ make build TEMPLATE="8.0-fpm-alpine"
$ make build TEMPLATE="8.0-supervisord-alpine"
$ make build TEMPLATE="8.1-cli-alpine"
$ make build TEMPLATE="8.1-fpm-alpine"
$ make build TEMPLATE="8.1-supervisord-alpine"
You can check Makefile
to get full list of commands for local testing. For testing you can use these comands to test whole role or separate tasks:
Testing default image:
$ make test
To test all images:
$ make test TEMPLATE="7.4-cli-alpine"
$ make test TEMPLATE="7.4-fpm-alpine"
$ make test TEMPLATE="7.4-supervisord-alpine"
$ make test TEMPLATE="8.0-cli-alpine"
$ make test TEMPLATE="8.0-fpm-alpine"
$ make test TEMPLATE="8.0-supervisord-alpine"
$ make test TEMPLATE="8.1-cli-alpine"
$ make test TEMPLATE="8.1-fpm-alpine"
$ make test TEMPLATE="8.1-supervisord-alpine"
Run yamllint to validate all yaml files in project:
$ make lint
Run hadolint to validate created Dockerfiles:
$ make hadolint
This repository was created in 2022 by lotyp / wayofdev.