Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

cnizzardini/cakephp-docker

Repository files navigation

🍰 CakePHP Docker

Build CakePHP Docker Kubernetes PHP NGINX MySQL

A cakephp/app template for Docker Compose and Kubernetes. You might also be interested in CakePHP Galley which is similar to Laravel Sail or DevilBox.

Dependencies:

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

Installation

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.

Usage

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.sh PHP terminal docker exec -it --user cakephp <PHP_CONTAINER> sh
make php.restart Restarts the PHP container
make db.sh DB terminal docker exec -it <DB_CONTAINER> sh
make db.mysql MySQL terminal mysql -u root -h 0.0.0.0 -p --port 3307
make web.sh Web terminal docker exec -it <WEB_CONTAINER> sh
make xdebug.on Restarts PHP container with xdebug.mode set to debug,coverage
make xdebug.off 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

PHP

See .docker/README.md for details.

Shell:

make php.sh

Helper commands:

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

MySQL

See .docker/README.md for details.

Shell:

make db.sh

MySQL shell (requires mysql client on your localhost):

make db.mysql

NGINX

See .docker/README.md for details.

Shell:

make web.sh

Xdebug

Xdebug is disabled by default. To toggle:

make xdebug.on
make xdebug.off

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

Reinstall

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

Morty Proxy This is a proxified and sanitized view of the page, visit original site.