Skip to content
/ app Public template
generated from cnizzardini/cakephp-docker

A mixerapi/mixerapi application template for Docker Compose and Kubernetes based on the official cakephp/app 4.2 template.


Notifications You must be signed in to change notification settings


Repository files navigation

MixerAPI App

Build MixerApi CakePHP Docker Kubernetes PHP NGINX MySQL

A mixerapi/mixerapi application template for Docker Compose and Kubernetes based on the official cakephp/app 4.4 template.

This project has been forked from cnizzardini/cakephp-docker.


Service Host:Port Docker Host Image
PHP8.1-FPM w/ Xdebug 3 - php cnizzardini/php-fpm-alpine:8.1-latest
NGINX 1.19 localhost:8080 web nginx:1.19-alpine
MySQL 8 localhost:3607 db library/mysql:8


Fork and clone this repository then run:

make init

That's it! Now just remove app/* from .gitignore. You may also want to remove .assets and adjust defaults in .github, .docker, and .kube.

Note: make init and make init.nocache output interactively, while make start and make up do not.

Mac Notes

  1. Change your SHELL in the Makefile to /bin/zsh. This improves various output from the Makefile such as emoji's.

  2. Mac ships with an older version of sed so install gnu-sed for some targets in the Makefile:

brew install gnu-sed

Then update sed to gsed in the Makefile.


After install browse to http://localhost:8080 to see the CakePHP welcome page.

A Makefile is provided with some optional commands for your convenience. Please review the Makefile as these commands are not exact aliases of docker-compose commands.

Make Command Description
make Shows all make target commands
make init Runs docker build, docker-compose up, and copies over env files
make init.nocache Same as make.init but builds with --no-cache
make start Starts services docker-compose -f .docker/docker-compose.yml start
make stop Stops services docker-compose -f .docker/docker-compose.yml stop
make up Create and start containers docker-compose -f .docker/docker-compose.yml up -d
make down Take down and remove all containers docker-compose -f .docker/docker-compose.yml down
make restart Restarts services docker-compose -f .docker/docker-compose.yml restart
make PHP terminal docker exec -it --user cakephp <PHP_CONTAINER> sh
make php.restart Restarts the PHP container
make DB terminal docker exec -it <DB_CONTAINER> sh
make db.mysql MySQL terminal mysql -u root -h -p --port 3307
make Web terminal docker exec -it <WEB_CONTAINER> sh
make xdebug.on Restarts PHP container with xdebug.mode set to debug,coverage
make Restarts PHP container with xdebug.mode set to off
make composer.install docker exec <PHP_CONTAINER> composer install --no-interaction
make composer.test docker exec <PHP_CONTAINER> composer test
make composer.check docker exec <PHP_CONTAINER> composer check


See .docker/ for details.



Helper commands:

make composer.install
make composer.test
make composer.check


See .docker/ for details.



MySQL shell (requires mysql client on your localhost):

make db.mysql


See .docker/ for details.




Xdebug is disabled by default. To toggle:

make xdebug.on

PHPStorm + Xdebug

Xdebug 3's default port is 9003.

Go to File > Settings > Languages & Frameworks > PHP > Servers

  • Name: localhost
  • Host: localhost
  • Port: 8080
  • Debugger: Xdebug
  • Use path mappings: Enable

Map your project's app directory to the absolute path on the docker container /srv/app


To completely reinstall delete existing containers and images, then remove the app/ directory and run make init again.