Simply, unzip the file into your project, this will create
docker-compose.yml on the root of your project and a folder named
phpdocker containing nginx and php-fpm config for it.
Ensure the webserver config on
phpdocker/nginx/nginx.conf is correct for your project. PHPDocker.io will have customised this file according to the application type you chose on the generator, for instance
web/app|app_dev.php on a Symfony project, or
public/index.php on generic apps.
Note: you may place the files elsewhere in your project. Make sure you modify the locations for the php-fpm dockerfile, the php.ini overrides and nginx config on
docker-compose.yml if you do so.
Once you're done, simply
cd to your project and run
docker-compose up -d. This will initialise and start all the containers, then leave them running in the background.
You can access your application via
localhost, if you're running the containers directly, or through `` when run on a vm. nginx and mailhog both respond to any hostname, in case you want to add your own hostname on your
|Service||Address outside containers|
You'll need to configure your application to use any services you enabled:
Note: you need to cd first to where your docker-compose.yml file lives.
docker-compose up -d
docker-compose up. You will see a stream of logs for every container running.
docker-compose exec SERVICE_NAME COMMANDwhere
COMMANDis whatever you want to run. Examples: * Shell into the PHP container,
docker-compose exec php-fpm bash* Run symfony console,
docker-compose exec php-fpm bin/console* Open a mysql shell,
docker-compose exec mysql mysql -uroot -pCHOSEN_ROOT_PASSWORD
It's hard to avoid file permission issues when fiddling about with containers due to the fact that, from your OS point of view, any files created within the container are owned by the process that runs the docker engine (this is usually root). Different OS will also have different problems, for instance you can run stuff in containers using
docker exec -it -u $(id -u):$(id -g) CONTAINER_NAME COMMAND to force your current user ID into the process, but this will only work if your host OS is Linux, not mac. Follow a couple of simple rules and save yourself a world of hurt.
rootwithin your vendor folder.