webdevops / Dockerfile

:package: Dockerfiles from WebDevOps for PHP, Apache and Nginx
https://webdevops.io/projects/dockerfiles/
MIT License
1.67k stars 493 forks source link
alpine apache-httpd docker docker-image docker-testing dockerfile dockerfiles liquibase nginx php php-fpm webdevops

PHP docker images with super powers 🚀

We provide images which extend the official PHP-Images. We add additional stuff like:

GitHub issuesGitHub forksGitHub starsGitHub license pipeline status

Automated build and test running on Gitlab CI (GitLab.com CI custom Google Cloud runner) sponsored by Onedrop GmbH & Co. KG.

Docker layout

Communication and support

Or write an issue in our GitHub repository.

Or join our discord https://discord.gg/gnYPfZhX

Build process

File generation

The general build process is currently a mixture of python jinja2 legacy and PHP.

First we build the files inside the docker directory using this command:

docker run --rm -ti -v $PWD:/app -w /app webdevops/dockerfile-build-env make provision

It will use the Jinja2 templates inside of the template directory and the config files from the provisioning directory.

The files in the docker directory are never modified manually

This will be replaced with PHP twig templates in the future to streamline everything.

Building in CI

We generate a multi stage Gitlab-CI configuration using PHP:

docker run --rm -ti -v $PWD:/app -w /app/ci webdevops/php:8.1 composer install
docker run --rm -ti -v $PWD:/app -w /app webdevops/php:8.1 ci/console gitlab:generate

Gitlab CI builds every image independant and runs serverspec and structure tests on every image before pushing them to the registry.

Documentation

As in many projects the documentation is kind of up to date 😅.

Debian PHP

The following images which are currently supported are based on php:{VER}-fpm-buster.

Alpine PHP

The following images which are currently supported are based on php:{VER}-fpm-alpine.