Compare commits
87 Commits
Author | SHA1 | Date | |
---|---|---|---|
d6329c26b3 | |||
a96ee88692 | |||
2799a94a9f | |||
5bcbe0d291 | |||
9e7a669d5b | |||
9b084433c3 | |||
fc303dee08 | |||
d75a43c615 | |||
06337e6024 | |||
16b82d066e | |||
074deec781 | |||
2d382b683a | |||
68576f9022 | |||
2df00ecdad | |||
aeb5a6bb63 | |||
2bbf59ddda | |||
dca0545293 | |||
5f99478c76 | |||
48a53f1d24 | |||
11cdfd440b | |||
14cbe9f935 | |||
42d63236f1 | |||
d01d087431 | |||
11c65c4a00 | |||
1b9630e8a1 | |||
3a714339da | |||
65078505c1 | |||
e0b4734dab | |||
243392444f | |||
72a8fc049d | |||
de6db93da8 | |||
1af9dc5ac2 | |||
62878e7c49 | |||
3cd1f070e1 | |||
fb5ea7f42c | |||
aa8be6f95b | |||
aa0a726945 | |||
e5e04e4e18 | |||
44d8720400 | |||
f0200626ba | |||
69406db3e0 | |||
bcb749151a | |||
ca413edff4 | |||
f6d1d6f617 | |||
117382a050 | |||
2e930df2a7 | |||
4922c5fafd | |||
198c38f6cd | |||
8d216f83d5 | |||
05c5fcf216 | |||
fccee522c6 | |||
f3eb6a5fc4 | |||
685c34d12d | |||
ceba1af3ae | |||
c4100b5052 | |||
1148a3d051 | |||
bec1a32550 | |||
72cde8a8ea | |||
4f9cdb02c6 | |||
1673a80daf | |||
f130381cfe | |||
eda286ded2 | |||
a8b4b61e28 | |||
124a3553e6 | |||
3ff4aaca79 | |||
4c06a03ead | |||
1cb131ba36 | |||
99b54c5f7d | |||
8993cccc2c | |||
1090bb4db6 | |||
9c7054abe2 | |||
e7decdaaf7 | |||
18bf12bfde | |||
d829482a06 | |||
86c6389650 | |||
991e28046d | |||
ccbc73c6bc | |||
246c7366ba | |||
762e2ec07b | |||
adaaa25f47 | |||
11a13a0c33 | |||
c642560993 | |||
ea9f5c635f | |||
fd4253afb6 | |||
73310e45e8 | |||
7f91fc9798 | |||
a8a7685a40 |
2
.gitignore
vendored
2
.gitignore
vendored
@ -1 +1,3 @@
|
|||||||
/logs
|
/logs
|
||||||
|
/data
|
||||||
|
.env
|
256
README.md
256
README.md
@ -7,6 +7,7 @@ LaraDock helps you run your **Laravel** App on **Docker** real quick.
|
|||||||
<br>
|
<br>
|
||||||
It's like Laravel Homestead but for Docker instead of Vagrant.
|
It's like Laravel Homestead but for Docker instead of Vagrant.
|
||||||
|
|
||||||
|
>With LaraDock, use Docker first and learn about it later.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@ -40,6 +41,7 @@ It's like Laravel Homestead but for Docker instead of Vagrant.
|
|||||||
- [Install Laravel from a Docker Container](#Install-Laravel)
|
- [Install Laravel from a Docker Container](#Install-Laravel)
|
||||||
- [Run Artisan Commands](#Run-Artisan-Commands)
|
- [Run Artisan Commands](#Run-Artisan-Commands)
|
||||||
- [Use Redis](#Use-Redis)
|
- [Use Redis](#Use-Redis)
|
||||||
|
- [Use Mongo](#Use-Mongo)
|
||||||
- [PHP](#PHP)
|
- [PHP](#PHP)
|
||||||
- [Install PHP Extensions](#Install-PHP-Extensions)
|
- [Install PHP Extensions](#Install-PHP-Extensions)
|
||||||
- [Change the PHP-FPM Version](#Change-the-PHP-FPM-Version)
|
- [Change the PHP-FPM Version](#Change-the-PHP-FPM-Version)
|
||||||
@ -48,6 +50,8 @@ It's like Laravel Homestead but for Docker instead of Vagrant.
|
|||||||
- [Run a Docker Virtual Host](#Run-Docker-Virtual-Host)
|
- [Run a Docker Virtual Host](#Run-Docker-Virtual-Host)
|
||||||
- [Find your Docker IP Address](#Find-Docker-IP-Address)
|
- [Find your Docker IP Address](#Find-Docker-IP-Address)
|
||||||
- [Use custom Domain](#Use-custom-Domain)
|
- [Use custom Domain](#Use-custom-Domain)
|
||||||
|
- [Install Prestissimo](#Install-Prestissimo)
|
||||||
|
- [Debugging](#debugging)
|
||||||
- [Help & Questions](#Help)
|
- [Help & Questions](#Help)
|
||||||
|
|
||||||
|
|
||||||
@ -91,11 +95,13 @@ docker-compose up nginx mysql redis
|
|||||||
- PostgreSQL
|
- PostgreSQL
|
||||||
- MariaDB
|
- MariaDB
|
||||||
- Neo4j
|
- Neo4j
|
||||||
|
- MongoDB
|
||||||
- Redis
|
- Redis
|
||||||
- Memcached
|
- Memcached
|
||||||
- Beanstalkd
|
- Beanstalkd
|
||||||
- Beanstalkd Console
|
- Beanstalkd Console
|
||||||
- Workspace (contains: Composer, PHP7-CLI, Laravel Installer, Git, Node, Gulp, Bower, SQLite, Vim, Nano and cURL)
|
- Caddy
|
||||||
|
- Workspace (contains: Composer, PHP7-CLI, Laravel Installer, Git, Node, Gulp, Bower, SQLite, Vim, Nano, cURL and much more)
|
||||||
- Data *(Databases Data Container)*
|
- Data *(Databases Data Container)*
|
||||||
- Application *(Application Code Container)*
|
- Application *(Application Code Container)*
|
||||||
|
|
||||||
@ -124,7 +130,7 @@ Seriously!!!
|
|||||||
|
|
||||||
Instead of providing a full Virtual Machines, like you get with Vagrant, Docker provides you **lightweight** Virtual Containers, that share the same kernel and allow to safely execute independent processes.
|
Instead of providing a full Virtual Machines, like you get with Vagrant, Docker provides you **lightweight** Virtual Containers, that share the same kernel and allow to safely execute independent processes.
|
||||||
|
|
||||||
In addition to the speed, Docker gives tens of features that cannot be achieved with Vagrant.
|
In addition to the speed, Docker gives tons of features that cannot be achieved with Vagrant.
|
||||||
|
|
||||||
Most importantly Docker can run on Development and on Production (same environment everywhere). While Vagrant is designed for Development only, (so you have to re-provision your server on Production every time).
|
Most importantly Docker can run on Development and on Production (same environment everywhere). While Vagrant is designed for Development only, (so you have to re-provision your server on Production every time).
|
||||||
|
|
||||||
@ -136,10 +142,9 @@ LaraDock and [Homestead](https://laravel.com/docs/master/homestead) both gives y
|
|||||||
|
|
||||||
- Homestead is a tool that controls Vagrant for you (using Homestead special commands). And Vagrant manages your Virtual Machine.
|
- Homestead is a tool that controls Vagrant for you (using Homestead special commands). And Vagrant manages your Virtual Machine.
|
||||||
|
|
||||||
- LaraDock is a tool that controls Docker for you (using Docker Compose official commands). And Docker manages you Virtual Containers.
|
- LaraDock is a tool that controls Docker for you (using Docker & Docker Compose official commands). And Docker manages your Virtual Containers.
|
||||||
|
|
||||||
Running a virtual Container is much faster than running a full virtual Machine.
|
Running a virtual Container is much faster than running a full virtual Machine. Thus **LaraDock is much faster than Homestead**.
|
||||||
<br>Thus **LaraDock is much faster than Homestead**.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -147,16 +152,12 @@ Running a virtual Container is much faster than running a full virtual Machine.
|
|||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
| Linux | Windows & MAC |
|
| Linux | Windows & MAC |
|
||||||
|-----------------------------------------------------------------------------------------|---------------------------------------------------------|
|
|--------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------|
|
||||||
| [Laravel](https://laravel.com/docs/master/installation) | [Laravel](https://laravel.com/docs/master/installation) |
|
| [Laravel](https://laravel.com/docs/master/installation) | [Laravel](https://laravel.com/docs/master/installation) |
|
||||||
| [Git](https://git-scm.com/downloads) | [Git](https://git-scm.com/downloads) |
|
| [Git](https://git-scm.com/downloads) | [Git](https://git-scm.com/downloads) |
|
||||||
| [Docker Engine](https://docs.docker.com/engine/installation/linux/ubuntulinux) | [Docker Toolbox](https://www.docker.com/toolbox) |
|
| [Docker Engine](https://docs.docker.com/engine/installation/linux/ubuntulinux) | [Docker Toolbox](https://www.docker.com/toolbox) OR [Native Docker](https://beta.docker.com/) |
|
||||||
| [Docker Compose](https://docs.docker.com/compose/install) | |
|
| [Docker Compose](https://docs.docker.com/compose/install) | |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="Demo"></a>
|
<a name="Demo"></a>
|
||||||
## Demo Video
|
## Demo Video
|
||||||
|
|
||||||
@ -188,15 +189,14 @@ git clone https://github.com/LaraDock/laradock.git
|
|||||||
|
|
||||||
|
|
||||||
1 - For **Windows & MAC** users only: If you are not using the native Docker-Engine `Beta`, make sure you have a running Docker Virtual Host on your machine.
|
1 - For **Windows & MAC** users only: If you are not using the native Docker-Engine `Beta`, make sure you have a running Docker Virtual Host on your machine.
|
||||||
|
[How to run a Docker Virtual Host?](#Run-Docker-Virtual-Host)
|
||||||
(**Linux** users don't need a Virtual Host, so skip this step).
|
(**Linux** users don't need a Virtual Host, so skip this step).
|
||||||
|
|
||||||
[How to run a Docker Virtual Host?](#Run-Docker-Virtual-Host)
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
2 - Run the Containers, (you can select the containers that you wish to run)
|
2 - Run some Containers: *(Make sure you are in the `laradock` folder before running the `docker-compose` commands).*
|
||||||
<br>
|
|
||||||
*Make sure you are in the `laradock` folder before running the `docker-compose` command.*
|
|
||||||
|
|
||||||
**Example:** Running NGINX and MySQL:
|
**Example:** Running NGINX and MySQL:
|
||||||
|
|
||||||
@ -204,10 +204,14 @@ git clone https://github.com/LaraDock/laradock.git
|
|||||||
docker-compose up -d nginx mysql
|
docker-compose up -d nginx mysql
|
||||||
```
|
```
|
||||||
|
|
||||||
*Note: the PHP-FPM, Workspace, Application and Data Containers will automatically run.*
|
You can select your own combination of container form this list:
|
||||||
|
|
||||||
|
`nginx`, `mysql`, `redis`, `postgres`, `mariadb`, `neo4j`, `mongo`, `memcached`, `beanstalkd`, `beanstalkd-console`, `caddy`, `workspace`, `data`, `php-fpm`, `application`.
|
||||||
|
|
||||||
|
|
||||||
|
**Note**: `workspace`, `data`, `php-fpm` and `application` will run automatically in most of the cases.
|
||||||
|
|
||||||
|
|
||||||
Supported Containers: `nginx`, `mysql`, `redis`, `postgres`, `mariadb`, `neo4j`, `memcached`, `beanstalkd`, `beanstalkd-console`, `workspace`, `data`, `php-fpm`, `application`.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -242,30 +246,27 @@ DB_HOST=xxx.xxx.xxx.xxx
|
|||||||
5 - Open your browser and visit your `{Docker-IP}` address (`http://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>
|
<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>
|
<br>
|
||||||
<a name="Documentation"></a>
|
<a name="Documentation"></a>
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
|
**Note:** this documentation doesn't cover the Docker Beta *(Native Docker on MAC and Windows)*. However, the commands are very similar. We are planning to cover the Docker Beta soon.
|
||||||
|
|
||||||
|
|
||||||
<a name="Docker"></a>
|
<a name="Docker"></a>
|
||||||
### Docker
|
### [Docker]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="List-current-running-Containers"></a>
|
<a name="List-current-running-Containers"></a>
|
||||||
#### List current running Containers
|
### List current running Containers
|
||||||
```bash
|
```bash
|
||||||
docker ps
|
docker ps
|
||||||
```
|
```
|
||||||
@ -281,7 +282,7 @@ docker-compose ps
|
|||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Close-all-running-Containers"></a>
|
<a name="Close-all-running-Containers"></a>
|
||||||
#### Close all running Containers
|
### Close all running Containers
|
||||||
```bash
|
```bash
|
||||||
docker-compose stop
|
docker-compose stop
|
||||||
```
|
```
|
||||||
@ -299,7 +300,7 @@ docker-compose stop {container-name}
|
|||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Delete-all-existing-Containers"></a>
|
<a name="Delete-all-existing-Containers"></a>
|
||||||
#### Delete all existing Containers
|
### Delete all existing Containers
|
||||||
```bash
|
```bash
|
||||||
docker-compose down
|
docker-compose down
|
||||||
```
|
```
|
||||||
@ -314,7 +315,7 @@ docker-compose down
|
|||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Enter-Container"></a>
|
<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`
|
1 - first list the current running containers with `docker ps`
|
||||||
|
|
||||||
@ -333,7 +334,7 @@ docker exec -it {container-name} bash
|
|||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Edit-Container"></a>
|
<a name="Edit-Container"></a>
|
||||||
#### Edit default container configuration
|
### Edit default container configuration
|
||||||
Open the `docker-compose.yml` and change anything you want.
|
Open the `docker-compose.yml` and change anything you want.
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
@ -361,7 +362,7 @@ Change Redis defaut port to 1111:
|
|||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Edit-a-Docker-Image"></a>
|
<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,
|
1 - Find the `dockerfile` of the image you want to edit,
|
||||||
<br>
|
<br>
|
||||||
@ -388,7 +389,7 @@ docker-compose build mysql
|
|||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Build-Re-build-Containers"></a>
|
<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:
|
If you do any change to any `dockerfile` make sure you run this command, for the changes to take effect:
|
||||||
|
|
||||||
@ -408,7 +409,7 @@ docker-compose build {container-name}
|
|||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Add-Docker-Images"></a>
|
<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/).
|
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 +423,7 @@ To add an image (software), just edit the `docker-compose.yml` and add your cont
|
|||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="View-the-Log-files"></a>
|
<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.
|
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:
|
However to view the logs of all the other containers (MySQL, PHP-FPM,...) you can run this:
|
||||||
@ -437,31 +438,27 @@ docker logs {container-name}
|
|||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Laravel"></a>
|
<a name="Laravel"></a>
|
||||||
### Laravel
|
### [Laravel]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="Install-Laravel"></a>
|
<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.
|
1 - First you need to enter the Workspace Container.
|
||||||
|
|
||||||
2 - Install Laravel anyway you like.
|
2 - Install Laravel.
|
||||||
|
|
||||||
Example using the Laravel Installer:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
laravel new my-cool-app
|
|
||||||
```
|
|
||||||
|
|
||||||
Example using Composer
|
Example using Composer
|
||||||
|
|
||||||
```bash
|
```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:
|
3 - Edit `docker-compose.yml` to Map the new application path:
|
||||||
@ -484,8 +481,9 @@ cd my-cool-app
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
<a name="Run-Artisan-Commands"></a>
|
<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.
|
You can run artisan commands and many other Terminal commands from the Workspace container.
|
||||||
|
|
||||||
@ -518,22 +516,16 @@ Composer update
|
|||||||
```bash
|
```bash
|
||||||
phpunit
|
phpunit
|
||||||
```
|
```
|
||||||
```bash
|
|
||||||
laravel new blog
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Use-Redis"></a>
|
<a name="Use-Redis"></a>
|
||||||
#### Use Redis
|
### Use Redis
|
||||||
|
|
||||||
1 - First make sure you run the Redis Container with the `docker-compose` command.
|
1 - First make sure you run the Redis Container (`redis`) with the `docker-compose up` command.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose up -d redis
|
||||||
|
```
|
||||||
|
|
||||||
2 - Open your Laravel's `.env` file and set the `REDIS_HOST` to your `Docker-IP` instead of the default `127.0.0.1` IP.
|
2 - Open your Laravel's `.env` file and set the `REDIS_HOST` to your `Docker-IP` instead of the default `127.0.0.1` IP.
|
||||||
|
|
||||||
@ -561,7 +553,7 @@ CACHE_DRIVER=redis
|
|||||||
SESSION_DRIVER=redis
|
SESSION_DRIVER=redis
|
||||||
```
|
```
|
||||||
|
|
||||||
4 - Finally make sure you have the `predis/predis` package `(~1.0)` installed via Composer first.
|
4 - Finally make sure you have the `predis/predis` package `(~1.0)` installed via Composer:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
composer require predis/predis:^1.0
|
composer require predis/predis:^1.0
|
||||||
@ -577,6 +569,59 @@ composer require predis/predis:^1.0
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<a name="Use-Mongo"></a>
|
||||||
|
### Use Mongo
|
||||||
|
|
||||||
|
1 - First make sure you run the MongoDB Container (`mongo`) with the `docker-compose up` command.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose up -d mongo
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
2 - Add the MongoDB configurations to the `config/database.php` config file:
|
||||||
|
|
||||||
|
```php
|
||||||
|
'connections' => [
|
||||||
|
|
||||||
|
'mongodb' => [
|
||||||
|
'driver' => 'mongodb',
|
||||||
|
'host' => env('DB_HOST', 'localhost'),
|
||||||
|
'port' => env('DB_PORT', 27017),
|
||||||
|
'database' => env('DB_DATABASE', 'database'),
|
||||||
|
'username' => '',
|
||||||
|
'password' => '',
|
||||||
|
'options' => [
|
||||||
|
'database' => '',
|
||||||
|
]
|
||||||
|
],
|
||||||
|
|
||||||
|
// ...
|
||||||
|
|
||||||
|
],
|
||||||
|
```
|
||||||
|
|
||||||
|
3 - Open your Laravel's `.env` file and update the following variables:
|
||||||
|
|
||||||
|
- set the `DB_HOST` to your `Docker-IP`.
|
||||||
|
- set the `DB_PORT` to `27017`.
|
||||||
|
- set the `DB_DATABASE` to `database`.
|
||||||
|
|
||||||
|
|
||||||
|
4 - Finally make sure you have the `jenssegers/mongodb` package installed via Composer and its Service Provider is added.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
composer require jenssegers/mongodb
|
||||||
|
```
|
||||||
|
More details about this [here](https://github.com/jenssegers/laravel-mongodb#installation).
|
||||||
|
|
||||||
|
5 - Test it:
|
||||||
|
|
||||||
|
- First let your Models extend from the Mongo Eloquent Model. Check the [documentation](https://github.com/jenssegers/laravel-mongodb#eloquent).
|
||||||
|
- Enter the Workspace Container `docker exec -it laradock_workspace_1 bash`.
|
||||||
|
- Migrate the Database `php artisan migrate`.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -584,7 +629,7 @@ composer require predis/predis:^1.0
|
|||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="PHP"></a>
|
<a name="PHP"></a>
|
||||||
### PHP
|
### [PHP]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -592,7 +637,7 @@ composer require predis/predis:^1.0
|
|||||||
|
|
||||||
|
|
||||||
<a name="Install-PHP-Extensions"></a>
|
<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.
|
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 +655,7 @@ The PHP-CLI extensions should be installed in `workspace/Dockerfile`.
|
|||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Change-the-PHP-FPM-Version"></a>
|
<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.
|
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.
|
>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 +702,7 @@ For more details about the PHP base image, visit the [official PHP docker images
|
|||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Change-the-PHP-CLI-Version"></a>
|
<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.
|
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.
|
>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 +723,14 @@ Right now you have to manually edit the `Dockerfile` or create a new one like it
|
|||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Misc"></a>
|
<a name="Misc"></a>
|
||||||
### Misc
|
### [Misc]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="Run-Docker-Virtual-Host"></a>
|
<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)*:
|
These steps are only for **Windows & MAC** users *(Linux users don't need a virtual host)*:
|
||||||
|
|
||||||
@ -715,10 +760,12 @@ eval $(docker-machine env)
|
|||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Find-Docker-IP-Address"></a>
|
<a name="Find-Docker-IP-Address"></a>
|
||||||
#### Find your Docker IP Address
|
### Find your Docker IP Address
|
||||||
|
|
||||||
**On Windows & MAC:**
|
**On Windows & MAC:**
|
||||||
|
|
||||||
|
Run this command in your terminal:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker-machine ip default
|
docker-machine ip default
|
||||||
```
|
```
|
||||||
@ -726,36 +773,26 @@ If your Host name is different then `default`, you have to specify it (`docker-m
|
|||||||
|
|
||||||
*(The default IP is 192.168.99.100)*
|
*(The default IP is 192.168.99.100)*
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
> **boot2docker** users: run `boot2docker ip` *(when boot2docker is up)*.
|
> **boot2docker** users: run `boot2docker ip` *(when boot2docker is up)*.
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
**On Linux:**
|
**On Linux:**
|
||||||
|
|
||||||
1 - Run `ifconfig` in the terminal.
|
Run this command in your 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`).
|
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
docker0 Link encap:Ethernet HWaddr 02:42:41:2d:c4:24
|
ifconfig docker0 | grep 'inet' | cut -d: -f2 | awk '{ print $1}' | head -n1
|
||||||
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)
|
|
||||||
```
|
```
|
||||||
>If you have an easier way to do it, share it with us.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*(The default IP is 172.17.0.1)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Use-custom-Domain"></a>
|
<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`.
|
Assuming your custom domain is `laravel.dev` and your current `Docker-IP` is `xxx.xxx.xxx.xxx`.
|
||||||
|
|
||||||
@ -784,12 +821,33 @@ server_name laravel.dev;
|
|||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<a name="Install-Prestissimo"></a>
|
||||||
|
### Install Prestissimo
|
||||||
|
|
||||||
|
[Prestissimo](https://github.com/hirak/prestissimo) is a plugin for composer which enables parallel install functionality. You can enable Prestissimo by setting `INSTALL_PRESTISSIMO=true` in the `docker-compose.yml` file.
|
||||||
|
|
||||||
|
<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 the following 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` (or [your Docker IP](#Find-Docker-IP-Address)) instead of `http://localhost` in your browser.
|
||||||
|
|
||||||
|
#### I see an error message containing `address already in use`
|
||||||
|
|
||||||
|
Make sure the ports for the services that you are trying to run (80, 3306, etc.) are not being used already by other programs, such as a built in `apache`/`httpd` service or other development tools you have installed.
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
@ -797,29 +855,35 @@ 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 :)
|
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>
|
<a name="Help"></a>
|
||||||
## Help & Questions
|
## 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
|
## Credits
|
||||||
|
|
||||||
[](http://www.zalt.me)
|
**Creator:**
|
||||||
|
|
||||||
Twitter: [@Mahmoud_Zalt](https://twitter.com/Mahmoud_Zalt)
|
- [Mahmoud Zalt](https://github.com/Mahmoudz) (Twitter [@Mahmoud_Zalt](https://twitter.com/Mahmoud_Zalt))
|
||||||
<br>
|
|
||||||
Website: [http://zalt.me](http://zalt.me)
|
**Main Contributors:**
|
||||||
<br>
|
|
||||||
Email: `mahmoud@zalt.me`
|
- [Jack Fletcher](https://github.com/Kauhat)
|
||||||
|
- [Bo-Yi Wu](https://github.com/appleboy)
|
||||||
|
- [Amin Mkh](https://github.com/AminMkh)
|
||||||
|
- [Matthew Tonkin Dunn](https://github.com/mattythebatty)
|
||||||
|
- [Benmag](https://github.com/benmag)
|
||||||
|
|
||||||
|
**Awesome People:**
|
||||||
|
|
||||||
|
- [Contributors](https://github.com/LaraDock/laradock/graphs/contributors)
|
||||||
|
- [Supporters](https://github.com/LaraDock/laradock/issues?utf8=%E2%9C%93&q=)
|
||||||
|
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
12
caddy/Caddyfile
Normal file
12
caddy/Caddyfile
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# Docs: https://caddyserver.com/docs/caddyfile
|
||||||
|
0.0.0.0:80
|
||||||
|
fastcgi / php-fpm:9000 php
|
||||||
|
rewrite {
|
||||||
|
to /index.php?{query}
|
||||||
|
}
|
||||||
|
browse
|
||||||
|
log stdout
|
||||||
|
errors stdout
|
||||||
|
# Uncomment to enable TLS (HTTPS)
|
||||||
|
# Change the first list to listen on port 443 when enabling TLS
|
||||||
|
#tls self_signed
|
22
caddy/Dockerfile
Normal file
22
caddy/Dockerfile
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
FROM alpine:3.4
|
||||||
|
MAINTAINER Eric Pfeiffer <computerfr33k@users.noreply.github.com>
|
||||||
|
|
||||||
|
LABEL caddy_version="0.9.0" architecture="amd64"
|
||||||
|
|
||||||
|
RUN apk update \
|
||||||
|
&& apk upgrade \
|
||||||
|
&& apk add tar curl
|
||||||
|
|
||||||
|
RUN curl --silent --show-error --fail --location \
|
||||||
|
--header "Accept: application/tar+gzip, application/x-gzip, application/octet-stream" -o - \
|
||||||
|
"https://github.com/mholt/caddy/releases/download/v0.9.0/caddy_linux_amd64.tar.gz" \
|
||||||
|
| tar --no-same-owner -C /usr/bin/ -xz caddy_linux_amd64 \
|
||||||
|
&& mv /usr/bin/caddy_linux_amd64 /usr/bin/caddy \
|
||||||
|
&& chmod 0755 /usr/bin/caddy \
|
||||||
|
&& /usr/bin/caddy -version
|
||||||
|
|
||||||
|
EXPOSE 80 443 2015
|
||||||
|
WORKDIR /var/www/laravel/public
|
||||||
|
|
||||||
|
ENTRYPOINT ["caddy"]
|
||||||
|
CMD ["-conf", "/etc/Caddyfile"]
|
@ -2,44 +2,12 @@ version: '2'
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
|
|
||||||
### PHP-FPM Container #######################################
|
|
||||||
|
|
||||||
php-fpm:
|
|
||||||
build:
|
|
||||||
context: ./php-fpm
|
|
||||||
dockerfile: Dockerfile-70
|
|
||||||
volumes_from:
|
|
||||||
- application
|
|
||||||
expose:
|
|
||||||
- "9000"
|
|
||||||
links:
|
|
||||||
- workspace
|
|
||||||
|
|
||||||
### Laravel Application Code Container ######################
|
|
||||||
|
|
||||||
application:
|
|
||||||
build: ./application
|
|
||||||
volumes:
|
|
||||||
- ../:/var/www/laravel
|
|
||||||
|
|
||||||
### Databases Data Container ################################
|
|
||||||
|
|
||||||
data:
|
|
||||||
build: ./data
|
|
||||||
volumes:
|
|
||||||
- /var/lib/mysql
|
|
||||||
- /var/lib/postgres
|
|
||||||
- /var/lib/mariadb
|
|
||||||
- /var/lib/redis
|
|
||||||
- /var/lib/memcached
|
|
||||||
- /var/lib/neo4j/data
|
|
||||||
|
|
||||||
### Nginx Server Container ##################################
|
### Nginx Server Container ##################################
|
||||||
|
|
||||||
nginx:
|
nginx:
|
||||||
build: ./nginx
|
build: ./nginx
|
||||||
volumes_from:
|
volumes_from:
|
||||||
- application
|
- volumes_source
|
||||||
volumes:
|
volumes:
|
||||||
- ./logs/nginx/:/var/log/nginx
|
- ./logs/nginx/:/var/log/nginx
|
||||||
ports:
|
ports:
|
||||||
@ -48,12 +16,25 @@ services:
|
|||||||
links:
|
links:
|
||||||
- php-fpm
|
- php-fpm
|
||||||
|
|
||||||
|
### PHP-FPM Container #######################################
|
||||||
|
|
||||||
|
php-fpm:
|
||||||
|
build:
|
||||||
|
context: ./php-fpm
|
||||||
|
dockerfile: Dockerfile-70
|
||||||
|
volumes_from:
|
||||||
|
- volumes_source
|
||||||
|
expose:
|
||||||
|
- "9000"
|
||||||
|
links:
|
||||||
|
- workspace
|
||||||
|
|
||||||
### MySQL Container #########################################
|
### MySQL Container #########################################
|
||||||
|
|
||||||
mysql:
|
mysql:
|
||||||
build: ./mysql
|
build: ./mysql
|
||||||
volumes_from:
|
volumes_from:
|
||||||
- data
|
- volumes_data
|
||||||
ports:
|
ports:
|
||||||
- "3306:3306"
|
- "3306:3306"
|
||||||
environment:
|
environment:
|
||||||
@ -61,30 +42,26 @@ services:
|
|||||||
MYSQL_USER: homestead
|
MYSQL_USER: homestead
|
||||||
MYSQL_PASSWORD: secret
|
MYSQL_PASSWORD: secret
|
||||||
MYSQL_ROOT_PASSWORD: root
|
MYSQL_ROOT_PASSWORD: root
|
||||||
links:
|
|
||||||
- php-fpm
|
|
||||||
|
|
||||||
### PostgreSQL Container ####################################
|
### PostgreSQL Container ####################################
|
||||||
|
|
||||||
postgres:
|
postgres:
|
||||||
build: ./postgres
|
build: ./postgres
|
||||||
volumes_from:
|
volumes_from:
|
||||||
- data
|
- volumes_data
|
||||||
ports:
|
ports:
|
||||||
- "5432:5432"
|
- "5432:5432"
|
||||||
environment:
|
environment:
|
||||||
POSTGRES_DB: homestead
|
POSTGRES_DB: homestead
|
||||||
POSTGRES_USER: homestead
|
POSTGRES_USER: homestead
|
||||||
POSTGRES_PASSWORD: secret
|
POSTGRES_PASSWORD: secret
|
||||||
links:
|
|
||||||
- php-fpm
|
|
||||||
|
|
||||||
### MariaDB Container #######################################
|
### MariaDB Container #######################################
|
||||||
|
|
||||||
mariadb:
|
mariadb:
|
||||||
build: ./mariadb
|
build: ./mariadb
|
||||||
volumes_from:
|
volumes_from:
|
||||||
- data
|
- volumes_data
|
||||||
ports:
|
ports:
|
||||||
- "3306:3306"
|
- "3306:3306"
|
||||||
environment:
|
environment:
|
||||||
@ -92,8 +69,6 @@ services:
|
|||||||
MYSQL_USER: homestead
|
MYSQL_USER: homestead
|
||||||
MYSQL_PASSWORD: secret
|
MYSQL_PASSWORD: secret
|
||||||
MYSQL_ROOT_PASSWORD: root
|
MYSQL_ROOT_PASSWORD: root
|
||||||
links:
|
|
||||||
- php-fpm
|
|
||||||
|
|
||||||
### Neo4j Container #########################################
|
### Neo4j Container #########################################
|
||||||
|
|
||||||
@ -105,27 +80,32 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- NEO4J_AUTH=homestead:secret
|
- NEO4J_AUTH=homestead:secret
|
||||||
volumes_from:
|
volumes_from:
|
||||||
- data
|
- volumes_data
|
||||||
links:
|
|
||||||
- php-fpm
|
### MongoDB Container #######################################
|
||||||
|
|
||||||
|
mongo:
|
||||||
|
build: ./mongo
|
||||||
|
ports:
|
||||||
|
- "27017:27017"
|
||||||
|
volumes_from:
|
||||||
|
- volumes_data
|
||||||
|
|
||||||
### Redis Container #########################################
|
### Redis Container #########################################
|
||||||
|
|
||||||
redis:
|
redis:
|
||||||
build: ./redis
|
build: ./redis
|
||||||
volumes_from:
|
volumes_from:
|
||||||
- data
|
- volumes_data
|
||||||
ports:
|
ports:
|
||||||
- "6379:6379"
|
- "6379:6379"
|
||||||
links:
|
|
||||||
- php-fpm
|
|
||||||
|
|
||||||
### Memcached Container #####################################
|
### Memcached Container #####################################
|
||||||
|
|
||||||
memcached:
|
memcached:
|
||||||
build: ./memcached
|
build: ./memcached
|
||||||
volumes_from:
|
volumes_from:
|
||||||
- data
|
- volumes_data
|
||||||
ports:
|
ports:
|
||||||
- "11211:11211"
|
- "11211:11211"
|
||||||
links:
|
links:
|
||||||
@ -153,9 +133,48 @@ services:
|
|||||||
### Workspace Utilities Container ###########################
|
### Workspace Utilities Container ###########################
|
||||||
|
|
||||||
workspace:
|
workspace:
|
||||||
build: ./workspace
|
build:
|
||||||
|
context: ./workspace
|
||||||
|
args:
|
||||||
|
- INSTALL_PRESTISSIMO=false
|
||||||
volumes_from:
|
volumes_from:
|
||||||
- application
|
- volumes_source
|
||||||
tty: true
|
tty: true
|
||||||
|
|
||||||
|
### Laravel Application Code Container ######################
|
||||||
|
|
||||||
|
volumes_source:
|
||||||
|
build: ./volumes/application
|
||||||
|
volumes:
|
||||||
|
- ../:/var/www/laravel
|
||||||
|
|
||||||
|
### Databases Data Container ################################
|
||||||
|
|
||||||
|
volumes_data:
|
||||||
|
build: ./volumes/data
|
||||||
|
volumes:
|
||||||
|
- /var/lib/mysql:/var/lib/mysql
|
||||||
|
- /var/lib/postgres:/var/lib/postgres
|
||||||
|
- /var/lib/mariadb:/var/lib/mariadb
|
||||||
|
- /var/lib/memcached:/var/lib/memcached
|
||||||
|
- /var/lib/redis:/data
|
||||||
|
- /var/lib/neo4j:/var/lib/neo4j/data
|
||||||
|
- /var/lib/mongo:/data/db
|
||||||
|
|
||||||
|
### Caddy Server Container ##################################
|
||||||
|
# Edit the Caddyfile if needed (./caddy/Caddyfile)
|
||||||
|
|
||||||
|
caddy:
|
||||||
|
build: ./caddy
|
||||||
|
volumes_from:
|
||||||
|
- volumes_source
|
||||||
|
ports:
|
||||||
|
- "80:80"
|
||||||
|
- "443:443"
|
||||||
|
- "2015:2015"
|
||||||
|
volumes:
|
||||||
|
- ./caddy/Caddyfile:/etc/Caddyfile
|
||||||
|
links:
|
||||||
|
- php-fpm
|
||||||
|
|
||||||
### Add more Containers below ###############################
|
### Add more Containers below ###############################
|
||||||
|
12
mongo/Dockerfile
Normal file
12
mongo/Dockerfile
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
FROM mongo:latest
|
||||||
|
|
||||||
|
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||||
|
|
||||||
|
#COPY mongo.conf /usr/local/etc/mongo/mongo.conf
|
||||||
|
|
||||||
|
VOLUME /data/db /data/configdb
|
||||||
|
|
||||||
|
CMD ["mongod"]
|
||||||
|
|
||||||
|
EXPOSE 27017
|
||||||
|
|
@ -15,6 +15,7 @@ http {
|
|||||||
tcp_nodelay on;
|
tcp_nodelay on;
|
||||||
keepalive_timeout 15;
|
keepalive_timeout 15;
|
||||||
types_hash_max_size 2048;
|
types_hash_max_size 2048;
|
||||||
|
client_max_body_size 20M;
|
||||||
include /etc/nginx/mime.types;
|
include /etc/nginx/mime.types;
|
||||||
default_type application/octet-stream;
|
default_type application/octet-stream;
|
||||||
access_log on;
|
access_log on;
|
||||||
|
@ -8,17 +8,41 @@ ADD ./laravel.pool.conf /usr/local/etc/php-fpm.d/
|
|||||||
RUN apt-get update && apt-get install -y \
|
RUN apt-get update && apt-get install -y \
|
||||||
libpq-dev \
|
libpq-dev \
|
||||||
libmemcached-dev \
|
libmemcached-dev \
|
||||||
curl
|
curl \
|
||||||
|
libjpeg-dev \
|
||||||
|
libpng12-dev \
|
||||||
|
libfreetype6-dev \
|
||||||
|
libssl-dev \
|
||||||
|
libmcrypt-dev \
|
||||||
|
--no-install-recommends \
|
||||||
|
&& rm -r /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# install mcrypt library
|
||||||
|
RUN docker-php-ext-install mcrypt
|
||||||
|
|
||||||
|
# Install mongodb driver
|
||||||
|
RUN pecl install mongodb
|
||||||
|
|
||||||
|
# configure gd library
|
||||||
|
RUN docker-php-ext-configure gd \
|
||||||
|
--enable-gd-native-ttf \
|
||||||
|
--with-jpeg-dir=/usr/lib \
|
||||||
|
--with-freetype-dir=/usr/include/freetype2
|
||||||
|
|
||||||
# Install extensions using the helper script provided by the base image
|
# Install extensions using the helper script provided by the base image
|
||||||
RUN docker-php-ext-install \
|
RUN docker-php-ext-install \
|
||||||
pdo_mysql \
|
pdo_mysql \
|
||||||
pdo_pgsql
|
pdo_pgsql \
|
||||||
|
gd
|
||||||
|
|
||||||
# Install memcached
|
# Install memcached
|
||||||
RUN pecl install memcached \
|
RUN pecl install memcached \
|
||||||
&& docker-php-ext-enable memcached
|
&& docker-php-ext-enable memcached
|
||||||
|
|
||||||
|
# Install xdebug
|
||||||
|
RUN pecl install xdebug \
|
||||||
|
&& docker-php-ext-enable xdebug
|
||||||
|
|
||||||
RUN usermod -u 1000 www-data
|
RUN usermod -u 1000 www-data
|
||||||
|
|
||||||
WORKDIR /var/www/laravel
|
WORKDIR /var/www/laravel
|
||||||
|
@ -8,17 +8,41 @@ ADD ./laravel.pool.conf /usr/local/etc/php-fpm.d/
|
|||||||
RUN apt-get update && apt-get install -y \
|
RUN apt-get update && apt-get install -y \
|
||||||
libpq-dev \
|
libpq-dev \
|
||||||
libmemcached-dev \
|
libmemcached-dev \
|
||||||
curl
|
curl \
|
||||||
|
libjpeg-dev \
|
||||||
|
libpng12-dev \
|
||||||
|
libfreetype6-dev \
|
||||||
|
libssl-dev \
|
||||||
|
libmcrypt-dev \
|
||||||
|
--no-install-recommends \
|
||||||
|
&& rm -r /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# install mcrypt library
|
||||||
|
RUN docker-php-ext-install mcrypt
|
||||||
|
|
||||||
|
# Install mongodb driver
|
||||||
|
RUN pecl install mongodb
|
||||||
|
|
||||||
|
# configure gd library
|
||||||
|
RUN docker-php-ext-configure gd \
|
||||||
|
--enable-gd-native-ttf \
|
||||||
|
--with-jpeg-dir=/usr/lib \
|
||||||
|
--with-freetype-dir=/usr/include/freetype2
|
||||||
|
|
||||||
# Install extensions using the helper script provided by the base image
|
# Install extensions using the helper script provided by the base image
|
||||||
RUN docker-php-ext-install \
|
RUN docker-php-ext-install \
|
||||||
pdo_mysql \
|
pdo_mysql \
|
||||||
pdo_pgsql
|
pdo_pgsql \
|
||||||
|
gd
|
||||||
|
|
||||||
# Install memcached
|
# Install memcached
|
||||||
RUN pecl install memcached \
|
RUN pecl install memcached \
|
||||||
&& docker-php-ext-enable memcached
|
&& docker-php-ext-enable memcached
|
||||||
|
|
||||||
|
# Install xdebug
|
||||||
|
RUN pecl install xdebug \
|
||||||
|
&& docker-php-ext-enable xdebug
|
||||||
|
|
||||||
RUN usermod -u 1000 www-data
|
RUN usermod -u 1000 www-data
|
||||||
|
|
||||||
WORKDIR /var/www/laravel
|
WORKDIR /var/www/laravel
|
||||||
|
@ -8,20 +8,51 @@ ADD ./laravel.pool.conf /usr/local/etc/php-fpm.d/
|
|||||||
RUN apt-get update && apt-get install -y \
|
RUN apt-get update && apt-get install -y \
|
||||||
libpq-dev \
|
libpq-dev \
|
||||||
libmemcached-dev \
|
libmemcached-dev \
|
||||||
curl
|
curl \
|
||||||
|
libjpeg-dev \
|
||||||
|
libpng12-dev \
|
||||||
|
libfreetype6-dev \
|
||||||
|
libssl-dev \
|
||||||
|
libmcrypt-dev \
|
||||||
|
--no-install-recommends \
|
||||||
|
&& rm -r /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# install mcrypt library
|
||||||
|
RUN docker-php-ext-install mcrypt
|
||||||
|
|
||||||
|
# Install mongodb driver
|
||||||
|
RUN pecl install mongodb
|
||||||
|
|
||||||
|
# configure gd library
|
||||||
|
RUN docker-php-ext-configure gd \
|
||||||
|
--enable-gd-native-ttf \
|
||||||
|
--with-jpeg-dir=/usr/lib \
|
||||||
|
--with-freetype-dir=/usr/include/freetype2
|
||||||
|
|
||||||
# Install extensions using the helper script provided by the base image
|
# Install extensions using the helper script provided by the base image
|
||||||
RUN docker-php-ext-install \
|
RUN docker-php-ext-install \
|
||||||
pdo_mysql \
|
pdo_mysql \
|
||||||
pdo_pgsql
|
pdo_pgsql \
|
||||||
|
gd
|
||||||
|
|
||||||
# Install Memcached for php 7
|
# Install Memcached for php 7
|
||||||
RUN curl -L -o /tmp/memcached.tar.gz "https://github.com/php-memcached-dev/php-memcached/archive/php7.tar.gz" \
|
RUN curl -L -o /tmp/memcached.tar.gz "https://github.com/php-memcached-dev/php-memcached/archive/php7.tar.gz" \
|
||||||
&& mkdir -p /usr/src/php/ext/memcached \
|
&& mkdir -p memcached \
|
||||||
&& tar -C /usr/src/php/ext/memcached -zxvf /tmp/memcached.tar.gz --strip 1 \
|
&& tar -C memcached -zxvf /tmp/memcached.tar.gz --strip 1 \
|
||||||
&& docker-php-ext-configure memcached \
|
&& ( \
|
||||||
&& docker-php-ext-install memcached \
|
cd memcached \
|
||||||
&& rm /tmp/memcached.tar.gz
|
&& phpize \
|
||||||
|
&& ./configure \
|
||||||
|
&& make -j$(nproc) \
|
||||||
|
&& make install \
|
||||||
|
) \
|
||||||
|
&& rm -r memcached \
|
||||||
|
&& rm /tmp/memcached.tar.gz \
|
||||||
|
&& docker-php-ext-enable memcached
|
||||||
|
|
||||||
|
# Install xdebug
|
||||||
|
RUN pecl install xdebug \
|
||||||
|
&& docker-php-ext-enable xdebug
|
||||||
|
|
||||||
RUN usermod -u 1000 www-data
|
RUN usermod -u 1000 www-data
|
||||||
|
|
||||||
|
@ -1,3 +1,14 @@
|
|||||||
date.timezone=UTC
|
date.timezone=UTC
|
||||||
display_errors=Off
|
display_errors=Off
|
||||||
log_errors=On
|
log_errors=On
|
||||||
|
extension=mongodb.so
|
||||||
|
|
||||||
|
; Maximum amount of memory a script may consume (128MB)
|
||||||
|
; http://php.net/memory-limit
|
||||||
|
memory_limit = 128M
|
||||||
|
; Maximum allowed size for uploaded files.
|
||||||
|
; http://php.net/upload-max-filesize
|
||||||
|
upload_max_filesize = 20M
|
||||||
|
; Sets max size of post data allowed.
|
||||||
|
; http://php.net/post-max-size
|
||||||
|
post_max_size = 20M
|
||||||
|
@ -4,8 +4,8 @@ MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
|||||||
|
|
||||||
#COPY redis.conf /usr/local/etc/redis/redis.conf
|
#COPY redis.conf /usr/local/etc/redis/redis.conf
|
||||||
|
|
||||||
VOLUME /var/lib/redis
|
VOLUME /data
|
||||||
|
|
||||||
CMD [ "redis-server" ]
|
|
||||||
|
|
||||||
EXPOSE 6379
|
EXPOSE 6379
|
||||||
|
|
||||||
|
CMD ["redis-server"]
|
||||||
|
@ -20,7 +20,7 @@ RUN add-apt-repository -y \
|
|||||||
ppa:ondrej/php
|
ppa:ondrej/php
|
||||||
|
|
||||||
# Install PHP-CLI 7, some PHP extentions and some useful Tools with APT
|
# Install PHP-CLI 7, some PHP extentions and some useful Tools with APT
|
||||||
RUN apt-get update && apt-get install -y \
|
RUN apt-get update && apt-get install -y --force-yes \
|
||||||
php7.0-cli \
|
php7.0-cli \
|
||||||
php7.0-common \
|
php7.0-common \
|
||||||
php7.0-curl \
|
php7.0-curl \
|
||||||
@ -29,41 +29,58 @@ RUN apt-get update && apt-get install -y \
|
|||||||
php7.0-mbstring \
|
php7.0-mbstring \
|
||||||
php7.0-mcrypt \
|
php7.0-mcrypt \
|
||||||
php7.0-mysql \
|
php7.0-mysql \
|
||||||
|
php7.0-pgsql \
|
||||||
php7.0-sqlite \
|
php7.0-sqlite \
|
||||||
php7.0-sqlite3 \
|
php7.0-sqlite3 \
|
||||||
php7.0-zip \
|
php7.0-zip \
|
||||||
|
php7.0-memcached \
|
||||||
|
php7.0-gd \
|
||||||
|
php7.0-xdebug \
|
||||||
|
php-dev \
|
||||||
|
libcurl4-openssl-dev \
|
||||||
|
libedit-dev \
|
||||||
|
libssl-dev \
|
||||||
|
libxml2-dev \
|
||||||
|
xz-utils \
|
||||||
sqlite3 \
|
sqlite3 \
|
||||||
libsqlite3-dev \
|
libsqlite3-dev \
|
||||||
git \
|
git \
|
||||||
curl \
|
curl \
|
||||||
vim \
|
vim \
|
||||||
nano \
|
nano \
|
||||||
nodejs \
|
pkg-config
|
||||||
nodejs-dev \
|
|
||||||
npm
|
|
||||||
|
|
||||||
# Clean up, to free some space
|
# Clean up, to free some space
|
||||||
RUN apt-get clean
|
RUN apt-get clean
|
||||||
|
|
||||||
# Install gulp and bower with NPM
|
# remove load xdebug extension (only load on phpunit command)
|
||||||
RUN npm install -g \
|
RUN sed -i 's/^/;/g' /etc/php/7.0/cli/conf.d/20-xdebug.ini
|
||||||
gulp \
|
|
||||||
bower
|
|
||||||
|
|
||||||
# Add a symbolic link for Node
|
# Add bin folder of composer to PATH.
|
||||||
RUN ln -s /usr/bin/nodejs /usr/bin/node
|
RUN echo "export PATH=${PATH}:/var/www/laravel/vendor/bin" >> ~/.bashrc
|
||||||
|
|
||||||
# Add an alias for PHPUnit
|
|
||||||
RUN echo "alias phpunit='./vendor/bin/phpunit'" >> ~/.bashrc
|
|
||||||
|
|
||||||
# Install Composer
|
# Install Composer
|
||||||
RUN curl -s http://getcomposer.org/installer | php \
|
RUN curl -s http://getcomposer.org/installer | php \
|
||||||
&& mv composer.phar /usr/local/bin/ \
|
&& mv composer.phar /usr/local/bin/composer
|
||||||
&& echo "alias composer='/usr/local/bin/composer.phar'" >> ~/.bashrc
|
|
||||||
|
|
||||||
# Install the Laravel Installer
|
# Load xdebug Zend extension with phpunit command
|
||||||
RUN composer.phar global require "laravel/installer" \
|
RUN echo "alias phpunit='php -dzend_extension=xdebug.so /var/www/laravel/vendor/bin/phpunit'" >> ~/.bashrc
|
||||||
&& echo "export PATH='~/.composer/vendor/bin:$PATH'" >> ~/.bashrc
|
|
||||||
|
# Install mongodb extension
|
||||||
|
RUN pecl install mongodb
|
||||||
|
RUN echo "extension=mongodb.so" >> /etc/php/7.0/cli/php.ini
|
||||||
|
|
||||||
|
# Install nvm (Node Version Manager)
|
||||||
|
RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.1/install.sh | bash
|
||||||
|
|
||||||
|
ENV NVM_DIR=/root/.nvm
|
||||||
|
|
||||||
|
# Install stable node
|
||||||
|
RUN . ~/.nvm/nvm.sh \
|
||||||
|
&& nvm install stable \
|
||||||
|
&& nvm use stable \
|
||||||
|
&& nvm alias stable \
|
||||||
|
&& npm install -g gulp bower
|
||||||
|
|
||||||
# Source the bash
|
# Source the bash
|
||||||
RUN . ~/.bashrc
|
RUN . ~/.bashrc
|
||||||
@ -72,3 +89,9 @@ RUN . ~/.bashrc
|
|||||||
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||||
|
|
||||||
WORKDIR /var/www/laravel
|
WORKDIR /var/www/laravel
|
||||||
|
|
||||||
|
# Install optional software
|
||||||
|
ARG INSTALL_PRESTISSIMO=false
|
||||||
|
RUN if [ "$INSTALL_PRESTISSIMO" = true ] ; then \
|
||||||
|
composer global require "hirak/prestissimo:^0.3"; \
|
||||||
|
fi
|
||||||
|
Reference in New Issue
Block a user