|
|
|
@ -48,6 +48,7 @@ It's like Laravel Homestead but for Docker instead of Vagrant.
|
|
|
|
|
- [Run a Docker Virtual Host](#Run-Docker-Virtual-Host)
|
|
|
|
|
- [Find your Docker IP Address](#Find-Docker-IP-Address)
|
|
|
|
|
- [Use custom Domain](#Use-custom-Domain)
|
|
|
|
|
- [Debugging](#debugging)
|
|
|
|
|
- [Help & Questions](#Help)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -242,15 +243,11 @@ DB_HOST=xxx.xxx.xxx.xxx
|
|
|
|
|
5 - Open your browser and visit your `{Docker-IP}` address (`http://xxx.xxx.xxx.xxx`).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<br>
|
|
|
|
|
**Debugging**: in case you faced an error here, run this command from the Laravel root directory:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
sudo chmod -R 777 storage && sudo chmod -R 777 bootstrap/cache
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
<br>
|
|
|
|
|
If you have any problem, or need a special support. Feel free to contact me, more details in the [Help & Questions](#Help) secion.
|
|
|
|
|
**Debugging**: if you are facing any problem here check the [Debugging](#debugging) section.
|
|
|
|
|
|
|
|
|
|
If you need a special support. Contact me, more details in the [Help & Questions](#Help) section.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<br>
|
|
|
|
@ -260,12 +257,12 @@ If you have any problem, or need a special support. Feel free to contact me, mor
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<a name="Docker"></a>
|
|
|
|
|
### Docker
|
|
|
|
|
### [Docker]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<a name="List-current-running-Containers"></a>
|
|
|
|
|
#### List current running Containers
|
|
|
|
|
### List current running Containers
|
|
|
|
|
```bash
|
|
|
|
|
docker ps
|
|
|
|
|
```
|
|
|
|
@ -281,7 +278,7 @@ docker-compose ps
|
|
|
|
|
|
|
|
|
|
<br>
|
|
|
|
|
<a name="Close-all-running-Containers"></a>
|
|
|
|
|
#### Close all running Containers
|
|
|
|
|
### Close all running Containers
|
|
|
|
|
```bash
|
|
|
|
|
docker-compose stop
|
|
|
|
|
```
|
|
|
|
@ -299,7 +296,7 @@ docker-compose stop {container-name}
|
|
|
|
|
|
|
|
|
|
<br>
|
|
|
|
|
<a name="Delete-all-existing-Containers"></a>
|
|
|
|
|
#### Delete all existing Containers
|
|
|
|
|
### Delete all existing Containers
|
|
|
|
|
```bash
|
|
|
|
|
docker-compose down
|
|
|
|
|
```
|
|
|
|
@ -314,7 +311,7 @@ docker-compose down
|
|
|
|
|
|
|
|
|
|
<br>
|
|
|
|
|
<a name="Enter-Container"></a>
|
|
|
|
|
#### Enter a Container (SSH into a running Container)
|
|
|
|
|
### Enter a Container (SSH into a running Container)
|
|
|
|
|
|
|
|
|
|
1 - first list the current running containers with `docker ps`
|
|
|
|
|
|
|
|
|
@ -333,7 +330,7 @@ docker exec -it {container-name} bash
|
|
|
|
|
|
|
|
|
|
<br>
|
|
|
|
|
<a name="Edit-Container"></a>
|
|
|
|
|
#### Edit default container configuration
|
|
|
|
|
### Edit default container configuration
|
|
|
|
|
Open the `docker-compose.yml` and change anything you want.
|
|
|
|
|
|
|
|
|
|
Examples:
|
|
|
|
@ -361,7 +358,7 @@ Change Redis defaut port to 1111:
|
|
|
|
|
|
|
|
|
|
<br>
|
|
|
|
|
<a name="Edit-a-Docker-Image"></a>
|
|
|
|
|
#### Edit a Docker Image
|
|
|
|
|
### Edit a Docker Image
|
|
|
|
|
|
|
|
|
|
1 - Find the `dockerfile` of the image you want to edit,
|
|
|
|
|
<br>
|
|
|
|
@ -388,7 +385,7 @@ docker-compose build mysql
|
|
|
|
|
|
|
|
|
|
<br>
|
|
|
|
|
<a name="Build-Re-build-Containers"></a>
|
|
|
|
|
#### Build/Re-build Containers
|
|
|
|
|
### Build/Re-build Containers
|
|
|
|
|
|
|
|
|
|
If you do any change to any `dockerfile` make sure you run this command, for the changes to take effect:
|
|
|
|
|
|
|
|
|
@ -408,7 +405,7 @@ docker-compose build {container-name}
|
|
|
|
|
|
|
|
|
|
<br>
|
|
|
|
|
<a name="Add-Docker-Images"></a>
|
|
|
|
|
#### Add more Software's (Docker Images)
|
|
|
|
|
### Add more Software's (Docker Images)
|
|
|
|
|
|
|
|
|
|
To add an image (software), just edit the `docker-compose.yml` and add your container details, to do so you need to be familiar with the [docker compose file syntax](https://docs.docker.com/compose/compose-file/).
|
|
|
|
|
|
|
|
|
@ -422,7 +419,7 @@ To add an image (software), just edit the `docker-compose.yml` and add your cont
|
|
|
|
|
|
|
|
|
|
<br>
|
|
|
|
|
<a name="View-the-Log-files"></a>
|
|
|
|
|
#### View the Log files
|
|
|
|
|
### View the Log files
|
|
|
|
|
The Nginx Log file is stored in the `logs/nginx` directory.
|
|
|
|
|
|
|
|
|
|
However to view the logs of all the other containers (MySQL, PHP-FPM,...) you can run this:
|
|
|
|
@ -437,31 +434,27 @@ docker logs {container-name}
|
|
|
|
|
|
|
|
|
|
<br>
|
|
|
|
|
<a name="Laravel"></a>
|
|
|
|
|
### Laravel
|
|
|
|
|
### [Laravel]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<a name="Install-Laravel"></a>
|
|
|
|
|
## Install Laravel from a Docker Container
|
|
|
|
|
### Install Laravel from a Docker Container
|
|
|
|
|
|
|
|
|
|
1 - First you need to enter the Workspace Container.
|
|
|
|
|
|
|
|
|
|
2 - Install Laravel anyway you like.
|
|
|
|
|
|
|
|
|
|
Example using the Laravel Installer:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
laravel new my-cool-app
|
|
|
|
|
```
|
|
|
|
|
2 - Install Laravel.
|
|
|
|
|
|
|
|
|
|
Example using Composer
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
composer create-project laravel/laravel my-cool-app "5.1.*"
|
|
|
|
|
composer create-project laravel/laravel my-cool-app "5.2.*"
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
For more about this check out this [link](https://laravel.com/docs/master#installing-laravel).
|
|
|
|
|
> We recommand using `composer create-project` instead of the Laravel installer, to install Laravel.
|
|
|
|
|
|
|
|
|
|
For more about the Laravel installation click [here](https://laravel.com/docs/master#installing-laravel).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 - Edit `docker-compose.yml` to Map the new application path:
|
|
|
|
@ -484,8 +477,9 @@ cd my-cool-app
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<br>
|
|
|
|
|
<a name="Run-Artisan-Commands"></a>
|
|
|
|
|
#### Run Artisan Commands
|
|
|
|
|
### Run Artisan Commands
|
|
|
|
|
|
|
|
|
|
You can run artisan commands and many other Terminal commands from the Workspace container.
|
|
|
|
|
|
|
|
|
@ -531,7 +525,7 @@ laravel new blog
|
|
|
|
|
|
|
|
|
|
<br>
|
|
|
|
|
<a name="Use-Redis"></a>
|
|
|
|
|
#### Use Redis
|
|
|
|
|
### Use Redis
|
|
|
|
|
|
|
|
|
|
1 - First make sure you run the Redis Container with the `docker-compose` command.
|
|
|
|
|
|
|
|
|
@ -584,7 +578,7 @@ composer require predis/predis:^1.0
|
|
|
|
|
|
|
|
|
|
<br>
|
|
|
|
|
<a name="PHP"></a>
|
|
|
|
|
### PHP
|
|
|
|
|
### [PHP]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -592,7 +586,7 @@ composer require predis/predis:^1.0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<a name="Install-PHP-Extensions"></a>
|
|
|
|
|
#### Install PHP Extensions
|
|
|
|
|
### Install PHP Extensions
|
|
|
|
|
|
|
|
|
|
Before installing PHP extensions, you have to decide whether you need for the `FPM` or `CLI` because each lives on a different container, if you need it for both you have to edit both containers.
|
|
|
|
|
|
|
|
|
@ -610,7 +604,7 @@ The PHP-CLI extensions should be installed in `workspace/Dockerfile`.
|
|
|
|
|
|
|
|
|
|
<br>
|
|
|
|
|
<a name="Change-the-PHP-FPM-Version"></a>
|
|
|
|
|
#### Change the PHP-FPM Version
|
|
|
|
|
### Change the PHP-FPM Version
|
|
|
|
|
By default **PHP-FPM 7.0** is running.
|
|
|
|
|
|
|
|
|
|
>The PHP-FPM is responsible of serving your application code, you don't have to change the PHP-CLI version if you are planing to run your application on different PHP-FPM version.
|
|
|
|
@ -657,7 +651,7 @@ For more details about the PHP base image, visit the [official PHP docker images
|
|
|
|
|
|
|
|
|
|
<br>
|
|
|
|
|
<a name="Change-the-PHP-CLI-Version"></a>
|
|
|
|
|
#### Change the PHP-CLI Version
|
|
|
|
|
### Change the PHP-CLI Version
|
|
|
|
|
By default **PHP-CLI 7.0** is running.
|
|
|
|
|
|
|
|
|
|
>Note: it's not very essential to edit the PHP-CLI verion. The PHP-CLI is only used for the Artisan Commands & Composer. It doesn't serve your Application code, this is the PHP-FPM job.
|
|
|
|
@ -678,14 +672,14 @@ Right now you have to manually edit the `Dockerfile` or create a new one like it
|
|
|
|
|
|
|
|
|
|
<br>
|
|
|
|
|
<a name="Misc"></a>
|
|
|
|
|
### Misc
|
|
|
|
|
### [Misc]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<a name="Run-Docker-Virtual-Host"></a>
|
|
|
|
|
#### Run a Docker Virtual Host
|
|
|
|
|
### Run a Docker Virtual Host
|
|
|
|
|
|
|
|
|
|
These steps are only for **Windows & MAC** users *(Linux users don't need a virtual host)*:
|
|
|
|
|
|
|
|
|
@ -715,10 +709,12 @@ eval $(docker-machine env)
|
|
|
|
|
|
|
|
|
|
<br>
|
|
|
|
|
<a name="Find-Docker-IP-Address"></a>
|
|
|
|
|
#### Find your Docker IP Address
|
|
|
|
|
### Find your Docker IP Address
|
|
|
|
|
|
|
|
|
|
**On Windows & MAC:**
|
|
|
|
|
|
|
|
|
|
Run this command in your terminal:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
docker-machine ip default
|
|
|
|
|
```
|
|
|
|
@ -726,36 +722,26 @@ If your Host name is different then `default`, you have to specify it (`docker-m
|
|
|
|
|
|
|
|
|
|
*(The default IP is 192.168.99.100)*
|
|
|
|
|
|
|
|
|
|
<br>
|
|
|
|
|
|
|
|
|
|
> **boot2docker** users: run `boot2docker ip` *(when boot2docker is up)*.
|
|
|
|
|
|
|
|
|
|
<br>
|
|
|
|
|
**On Linux:**
|
|
|
|
|
|
|
|
|
|
1 - Run `ifconfig` in the terminal.
|
|
|
|
|
|
|
|
|
|
2 - In the result search for `docker0`, your IP address will be next to `inet addr`.
|
|
|
|
|
|
|
|
|
|
Example: (In this example your IP address is `172.17.0.1`).
|
|
|
|
|
Run this command in your terminal:
|
|
|
|
|
|
|
|
|
|
```shell
|
|
|
|
|
docker0 Link encap:Ethernet HWaddr 02:42:41:2d:c4:24
|
|
|
|
|
inet addr:172.17.0.1 Bcast:0.0.0.0 Mask:255.255.0.0
|
|
|
|
|
UP BROADCAST MULTICAST MTU:1500 Metric:1
|
|
|
|
|
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
|
|
|
|
|
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
|
|
|
|
|
collisions:0 txqueuelen:0
|
|
|
|
|
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
|
|
|
|
|
ifconfig docker0 | grep 'inet' | cut -d: -f2 | awk '{ print $1}' | head -n1
|
|
|
|
|
```
|
|
|
|
|
>If you have an easier way to do it, share it with us.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*(The default IP is 172.17.0.1)*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<br>
|
|
|
|
|
<a name="Use-custom-Domain"></a>
|
|
|
|
|
#### Use custom Domain (instead of the Docker IP)
|
|
|
|
|
### Use custom Domain (instead of the Docker IP)
|
|
|
|
|
|
|
|
|
|
Assuming your custom domain is `laravel.dev` and your current `Docker-IP` is `xxx.xxx.xxx.xxx`.
|
|
|
|
|
|
|
|
|
@ -784,6 +770,24 @@ server_name laravel.dev;
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<br>
|
|
|
|
|
<a name="debugging"></a>
|
|
|
|
|
### Debugging
|
|
|
|
|
|
|
|
|
|
*Here's a list of the common problems you might face, and the possible solutions.*
|
|
|
|
|
|
|
|
|
|
#### + I see a blank (white) page instead of the Laravel 'Welcome' page!
|
|
|
|
|
|
|
|
|
|
run this command from the Laravel root directory:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
sudo chmod -R 777 storage bootstrap/cache
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
#### + I see "Welcome to nginx" instead of the Laravel App!
|
|
|
|
|
|
|
|
|
|
use `http://127.0.0.1` instead of `http://localhost` in your browser.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -797,30 +801,21 @@ server_name laravel.dev;
|
|
|
|
|
|
|
|
|
|
This little project was built by one man who has a full time job and many responsibilities, so if you like this project and you find that it needs a bug fix or support for new software or upgrade any container, or anything else.. Do not hesitate to contribute, you are more than welcome :)
|
|
|
|
|
|
|
|
|
|
## Support
|
|
|
|
|
|
|
|
|
|
To suggest a features or report a bug, open a new [Issue](https://github.com/laradock/laradock/issues).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<a name="Help"></a>
|
|
|
|
|
## Help & Questions
|
|
|
|
|
|
|
|
|
|
If you need help with anything related to this project, shedule a live call with me on [Codementor](https://www.codementor.io/mahmoudz), I'd love to help.
|
|
|
|
|
If you need any help with Docker and Laravel, you can schedule a live call with the creator of this project at [Codementor.io](https://www.codementor.io/mahmoudz), He would love to help.
|
|
|
|
|
|
|
|
|
|
If you have a short question, send me a direct message on LaraChat, my username is `mahmoud_zalt`. Or send me an email on `mahmoud@zalt.me`.
|
|
|
|
|
For general questions you can open [Issues](https://github.com/laradock/laradock/issues) here on Github (We will label them as questions).
|
|
|
|
|
|
|
|
|
|
Additionally, you can contact Mahmoud Zalt (the creator of this project) via a direct message on LaraChat, (his username is `mahmoud_zalt`). Or send him an email (`mahmoud@zalt.me`).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Credits
|
|
|
|
|
|
|
|
|
|
[](http://www.zalt.me)
|
|
|
|
|
|
|
|
|
|
Twitter: [@Mahmoud_Zalt](https://twitter.com/Mahmoud_Zalt)
|
|
|
|
|
<br>
|
|
|
|
|
Website: [http://zalt.me](http://zalt.me)
|
|
|
|
|
<br>
|
|
|
|
|
Email: `mahmoud@zalt.me`
|
|
|
|
|
|
|
|
|
|
- [Mahmoud Zalt](https://github.com/Mahmoudz) (Twitter [@Mahmoud_Zalt](https://twitter.com/Mahmoud_Zalt))
|
|
|
|
|
- [Awesome list of contributors](https://github.com/LaraDock/laradock/graphs/contributors)
|
|
|
|
|
|
|
|
|
|
## License
|
|
|
|
|
|
|
|
|
|