Host-system CLI tools

make application

phd uses Makefiles to execute common tasks during development, but you can also use standard Docker commands to control your stack.

Basically, make targets are just shorthands for lengthy Docker commands.

TODO: Link "Backend", "Frontend"


To see all available targets run

make help

After the initial .env configuration, for first initial setup run

make all

You can also chain single targets

make setup up open bash

Or run docker-compose commands against your current stack

docker-compose ps
docker-compose logs

Or use Makefiles for a different folder i.e. for managing an isolated test-stack

cd tests
make all
make run-tests

You can find information in the testing section.

:bulb: make targets are run on the stack as docker-compose without additional parameters.

:bulb: To do a dry-run for a command you can use the -n option, eg. make -n all

:warning: removing containers, i.e. with make clean removes also data stored only in the container, you can use host-volumes for persisting data during development

Make vs. Docker commands

You can create a new CLI-container bash with

make cli


docker-compose run --rm php bash

Alternatively you can also execute a bash within a running container

docker-compose exec php bash


docker exec -it myapp_php_1 bash


Setup application with demo data and default user password

docker-compose run --rm \
    -e APP_ADMIN_PASSWORD=admin1 \
    -e APP_MIGRATION_LOOKUP=@app/migrations/demo-data \
    php yii app/setup

TODO: link tutorials


Run make help


make -n all

Building images from docker-compose definitions

docker-compose build --pull 

Starting application stack

docker-compose up -d

Running application setup command (database, user)

docker-compose run --rm php yii app/setup

Opening application on mapped web-service port

xdg-open http://localhost:21548 &>/dev/null

Help us to improve the documentation, fork this page.