/Dockerfile

:package: Dockerfiles from WebDevOps for PHP, Apache and Nginx

Primary LanguageShellMIT LicenseMIT

PHP docker images with super powers 🚀

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

  • almost any PHP module preinstalled
  • configuration based on ENV variables
  • run multiple services (like php-fpm and nginx) with supervisord

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.

  • webdevops/php:8.0
  • webdevops/php:8.1
  • webdevops/php:8.2
  • webdevops/php:8.3
  • webdevops/php-dev:8.0
  • webdevops/php-dev:8.1
  • webdevops/php-dev:8.2
  • webdevops/php-dev:8.3
  • webdevops/php-apache:8.0
  • webdevops/php-apache:8.1
  • webdevops/php-apache:8.2
  • webdevops/php-apache:8.3
  • webdevops/php-apache-dev:8.0
  • webdevops/php-apache-dev:8.1
  • webdevops/php-apache-dev:8.2
  • webdevops/php-apache-dev:8.3
  • webdevops/php-nginx:8.0
  • webdevops/php-nginx:8.1
  • webdevops/php-nginx:8.2
  • webdevops/php-nginx:8.3
  • webdevops/php-nginx-dev:8.0
  • webdevops/php-nginx-dev:8.1
  • webdevops/php-nginx-dev:8.2
  • webdevops/php-nginx-dev:8.3

Alpine PHP

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

  • webdevops/php:8.0-alpine
  • webdevops/php:8.1-alpine
  • webdevops/php:8.2-alpine
  • webdevops/php:8.3-alpine
  • webdevops/php-dev:8.0-alpine
  • webdevops/php-dev:8.1-alpine
  • webdevops/php-dev:8.2-alpine
  • webdevops/php-dev:8.3-alpine
  • webdevops/php-apache:8.0-alpine
  • webdevops/php-apache:8.1-alpine
  • webdevops/php-apache:8.2-alpine
  • webdevops/php-apache:8.3-alpine
  • webdevops/php-apache-dev:8.0-alpine
  • webdevops/php-apache-dev:8.1-alpine
  • webdevops/php-apache-dev:8.2-alpine
  • webdevops/php-apache-dev:8.3-alpine
  • webdevops/php-nginx:8.0-alpine
  • webdevops/php-nginx:8.1-alpine
  • webdevops/php-nginx:8.2-alpine
  • webdevops/php-nginx:8.3-alpine
  • webdevops/php-nginx-dev:8.0-alpine
  • webdevops/php-nginx-dev:8.1-alpine
  • webdevops/php-nginx-dev:8.2-alpine
  • webdevops/php-nginx-dev:8.3-alpine