Add documentation for debugging
This commit is contained in:
		
							parent
							
								
									76aaa44293
								
							
						
					
					
						commit
						e5e170dc71
					
				
							
								
								
									
										73
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										73
									
								
								README.md
									
									
									
									
									
								
							| @ -23,6 +23,79 @@ For instance, use the following command to use the `master` branch of Symfony: | |||||||
| 
 | 
 | ||||||
| `STABILITY=dev docker-compose up --build` | `STABILITY=dev docker-compose up --build` | ||||||
| 
 | 
 | ||||||
|  | ## Debugging | ||||||
|  | 
 | ||||||
|  | The default Docker stack is shipped without a Xdebug stage. It's easy | ||||||
|  | though to add [Xdebug](https://xdebug.org/) to your project, for development | ||||||
|  | purposes such as debugging tests or API requests remotely. | ||||||
|  | 
 | ||||||
|  | ### Add a Development Stage to the Dockerfile | ||||||
|  | 
 | ||||||
|  | To avoid deploying Symfony Docker to production with an active Xdebug extension, | ||||||
|  | it's recommended to add a custom stage to the end of the `Dockerfile`. | ||||||
|  | 
 | ||||||
|  | ```Dockerfile | ||||||
|  | # Dockerfile | ||||||
|  | FROM symfony_docker_php as symfony_docker_php_dev | ||||||
|  | 
 | ||||||
|  | ARG XDEBUG_VERSION=2.6.0 | ||||||
|  | RUN set -eux; \ | ||||||
|  | 	apk add --no-cache --virtual .build-deps $PHPIZE_DEPS; \ | ||||||
|  | 	pecl install xdebug-$XDEBUG_VERSION; \ | ||||||
|  | 	docker-php-ext-enable xdebug; \ | ||||||
|  | 	apk del .build-deps | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | ### Configure Xdebug with Docker Compose Override | ||||||
|  | 
 | ||||||
|  | Using an [override](https://docs.docker.com/compose/reference/overview/#specifying-multiple-compose-files)   | ||||||
|  |  file named `docker-compose.override.yaml` ensures that the production | ||||||
|  | configuration remains untouched. | ||||||
|  | 
 | ||||||
|  | As example, an override could look like this: | ||||||
|  | 
 | ||||||
|  | ```yaml | ||||||
|  | version: '3.4' | ||||||
|  | 
 | ||||||
|  | services: | ||||||
|  |   php: | ||||||
|  |     build: | ||||||
|  |       context: . | ||||||
|  |       target: symfony_docker_php_dev | ||||||
|  |     environment: | ||||||
|  |       # See https://docs.docker.com/docker-for-mac/networking/#i-want-to-connect-from-a-container-to-a-service-on-the-host | ||||||
|  |       # See https://github.com/docker/for-linux/issues/264 | ||||||
|  |       # The `remote_host` below may optionally be replaced with `remote_connect_back` | ||||||
|  |       XDEBUG_CONFIG: >- | ||||||
|  |         remote_enable=1 | ||||||
|  |         remote_host=host.docker.internal | ||||||
|  |         remote_port=9001 | ||||||
|  |         idekey=PHPSTORM | ||||||
|  |       # This should correspond to the server declared in PHPStorm `Preferences | Languages & Frameworks | PHP | Servers` | ||||||
|  |       # Then PHPStorm will use the corresponding path mappings | ||||||
|  |       PHP_IDE_CONFIG: serverName=symfony-docker | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | And run : | ||||||
|  | ````bash | ||||||
|  | docker-compose -f docker-compose.yaml -f docker-compose.override.yaml up -d | ||||||
|  | ```` | ||||||
|  | 
 | ||||||
|  | ### Troubleshooting | ||||||
|  | 
 | ||||||
|  | Inspect the installation with the following command. The requested Xdebug | ||||||
|  | version should be displayed in the output. | ||||||
|  | 
 | ||||||
|  | ```bash | ||||||
|  | $ docker-compose exec php php --version | ||||||
|  | 
 | ||||||
|  | PHP 7.2.8 (cli) (built: Jul 21 2018 08:09:37) ( NTS ) | ||||||
|  | Copyright (c) 1997-2018 The PHP Group | ||||||
|  | Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies | ||||||
|  |     with Zend OPcache v7.2.8, Copyright (c) 1999-2018, by Zend Technologies | ||||||
|  |     with Xdebug v2.6.0, Copyright (c) 2002-2018, by Derick Rethans | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
| ## Credits | ## Credits | ||||||
| 
 | 
 | ||||||
| Created by [Kévin Dunglas](https://dunglas.fr) and sponsored by [Les-Tilleuls.coop](https://les-tilleuls.coop). | Created by [Kévin Dunglas](https://dunglas.fr) and sponsored by [Les-Tilleuls.coop](https://les-tilleuls.coop). | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Maxime Helias
						Maxime Helias