diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..942e9f0 --- /dev/null +++ b/Makefile @@ -0,0 +1,2 @@ +init: + git clone https://gittea.eatv.io/eatvio/eatvio.git app diff --git a/phpdocker/README.html b/phpdocker/README.html new file mode 100644 index 0000000..e5ec0b8 --- /dev/null +++ b/phpdocker/README.html @@ -0,0 +1,208 @@ + +
+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 front controller location relative to the docker-compose file you chose on the
+generator (by default public/index.php).
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.
Dependencies:
+ +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. Mailhog and nginx both respond to any hostname, in case you want to
+add your own hostname on your /etc/hosts
| Service | +Address outside containers | +
|---|---|
| Webserver | +localhost:1092 | +
| MySQL | +host: localhost; port: 1094 |
+
You'll need to configure your application to use any services you enabled:
+ +| Service | +Hostname | +Port number | +
|---|---|---|
| php-fpm | +php-fpm | +9000 | +
| MySQL | +mysql | +3306 (default) | +
Note: you need to cd first to where your docker-compose.yml file lives.
+ +docker-compose up -ddocker-compose up. You will see a stream of logs for every container running.
+ctrl+c stops containers.docker-compose stopdocker-compose killdocker-compose logs for all containers or docker-compose logs SERVICE_NAME for the logs of
+all containers in SERVICE_NAME.docker-compose exec SERVICE_NAME COMMAND where COMMAND is whatever you want
+to run. Examples:
+
+docker-compose exec php-fpm bashdocker-compose exec php-fpm bin/consoledocker-compose exec mysql mysql -uroot -pCHOSEN_ROOT_PASSWORDAs in all server environments, your application needs the correct file permissions to work properly. You can change the +files throughout the container, so you won't care if the user exists or has the same ID on your host.
+ +docker-compose exec php-fpm chown -R www-data:www-data /application/public
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.
root within your
+vendor folder.To configure Xdebug 2 you need add these lines in php-fpm/php-ini-overrides.ini:
+ +xdebug.remote_enable = 1
+xdebug.remote_connect_back = 1
+xdebug.remote_autostart = 1
+
+
+xdebug.remote_enable = 1
+xdebug.remote_host = host.docker.internal
+xdebug.remote_autostart = 1
+
+
+To configure Xdebug 3 you need add these lines in php-fpm/php-ini-overrides.ini:
+ +xdebug.mode = debug
+xdebug.remote_connect_back = true
+xdebug.start_with_request = yes
+
+
+xdebug.mode = debug
+xdebug.remote_host = host.docker.internal
+xdebug.start_with_request = yes
+
+
+environment:
+ PHP_IDE_CONFIG: "serverName=Docker"
+
+
+