The main reason for the fork was a better specialization of the TYPO3 Docker Boilerplate which will now focus on TYPO3 CMS. The PHP Docker Boilerplate instead will focus on general PHP development and frameworks like Symfony and CakePHP.
With this separation there were also some breaking changes:
Docker Linux distribution images
Now there are different Linux distributions available:
- Ubuntu 12.04 – PHP 5.3, LTS (precise)
- Ubuntu 14.04 – PHP 5.5, LTS (trusty)
- Ubuntu 15.04 – PHP 5.6 (vivid)
- Ubuntu 15.10 – PHP 5.6 (wily)
- CentOS 7 – PHP 5.4
The target distribution (CentOS or Ubuntu) can be changed in docker-composer.yml and the Version of each Distribution can be changed in docker/main/DISTRIBUTION/Dockerfile.
Now you can test your PHP application with different distributions or PHP versions.
Docker Provisioning with Ansible
Provisioning of the main docker container was changed from shell scripts to Ansible playbooks which are easier to maintain and prevents common shell script issues. Ansible playbooks are using yaml based configuration which are easier to read and to customize. Also complex provisioning tasks are possible which can be pain in plain shell scripts.
The drawback of using Ansible is a much slower provisioning but IMHO shell scripts are ugly and hard to read but also this issue is solved by using prebuilt images.
Prebuilt Docker images
Because of the much slower provisioning the Docker Boilerplates now are using prebuilt Docker Boilerplate images which are build from my php-docker Dockerfiles.
The prebuilt images will include most packages including php (cli and fpm) and also Ansible for the later provisioning from the PHP Docker Boilerplate.
Now building of a PHP Docker Boilerplate takes 30 to 60 seconds instead of 10 Minutes.
If you don’t want to use the prebuilt images or you don’t trust me you can still use the official images. The Ansible provisioning will install all needed tools so the result will be the same – but much slower.
There is a TYPO3 Docker Boilerplate and a general PHP Docker Boilerplate, the provisioning was changed to Ansible and there are prebuilt Docker images available -> a faster, secure and easier provisioning.
Also different Linux distributions like CentOS and Ubuntu are available with different PHP versions.