Compare commits
10 Commits
Author | SHA1 | Date | |
---|---|---|---|
5d84c6481f | |||
26229e150d | |||
2b98b0b82e | |||
457c5d4b1b | |||
cd97ac0aa6 | |||
22f11e03ee | |||
5d62ec1e67 | |||
daa5ed981f | |||
9ac7541dc9 | |||
05a83d383f |
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
/logs
|
201
README.md
201
README.md
@ -15,23 +15,23 @@ It's like Laravel Homestead but for Docker instead of Vagrant.
|
|||||||
|
|
||||||
|
|
||||||
- [Intro](#Intro)
|
- [Intro](#Intro)
|
||||||
- [Supported Software (Docker Images)](#Supported-Software)
|
- [Supported Containers](#Supported-Containers)
|
||||||
- [Requirements](#Requirements)
|
- [Requirements](#Requirements)
|
||||||
- [Screencast Tutorial](https://www.youtube.com/watch?v=jGkyO6Is_aI)
|
|
||||||
- [Installation](#Installation)
|
- [Installation](#Installation)
|
||||||
- [Usage](#Usage)
|
- [Usage](#Usage)
|
||||||
- [Documentation](#Documentation)
|
- [Documentation](#Documentation)
|
||||||
- [List current running Containers](#List-current-running-Containers)
|
- [List current running Containers](#List-current-running-Containers)
|
||||||
- [Close all running Containers](#Close-all-running-Containers)
|
- [Close all running Containers](#Close-all-running-Containers)
|
||||||
- [Delete all existing Containers](#Delete-all-existing-Containers)
|
- [Delete all existing Containers](#Delete-all-existing-Containers)
|
||||||
- [Use Redis in Laravel](#Use-Redis-in-Laravel)
|
- [Build/Re-build Containers](#Build-Re-build-Containers)
|
||||||
|
- [Use Redis](#Use-Redis)
|
||||||
- [Use custom Domain](Use-custom-Domain)
|
- [Use custom Domain](Use-custom-Domain)
|
||||||
- [Change the PHP Version](#Change-the-PHP-Version)
|
- [Change the PHP Version](#Change-the-PHP-Version)
|
||||||
- [Add/Remove a Docker Container](#AddRemove-a-Docker-Container)
|
- [Add/Remove a Docker Container](#AddRemove-a-Docker-Container)
|
||||||
- [Add Docker Images](#Add-Docker-Images)
|
- [Add more Software's (Docker Images)](#Add-Docker-Images)
|
||||||
- [Edit a Docker Container](#Edit-a-Docker-Container)
|
- [Edit a Docker Container](#Edit-a-Docker-Container)
|
||||||
- [View the Log files](#View-the-Log-files)
|
- [View the Log files](#View-the-Log-files)
|
||||||
- [Upgrade the Docker Images](#Upgrade-the-Docker-Images)
|
- [Enter a Container (SSH into a running Container)](#Enter-Container)
|
||||||
- [Edit a Docker Image](#Edit-a-Docker-Image)
|
- [Edit a Docker Image](#Edit-a-Docker-Image)
|
||||||
- [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)
|
||||||
@ -62,21 +62,15 @@ 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.
|
||||||
|
|
||||||
|
|
||||||
<a name="Supported-Software"></a>
|
<a name="Supported-Containers"></a>
|
||||||
## Supported Software (Docker Images)
|
## Supported Containers
|
||||||
|
|
||||||
- PHP 5.6 / NGINX
|
- PHP
|
||||||
- PHP 5.5 / NGINX
|
- NGINX
|
||||||
- MySQL
|
- MySQL
|
||||||
|
- PostgreSQL
|
||||||
- Redis
|
- Redis
|
||||||
- Data Volume (for MySQL & Redis)
|
- Data Volume
|
||||||
- Beanstalked
|
|
||||||
|
|
||||||
|
|
||||||
The Images links on [Github](https://github.com/LaraDock)
|
|
||||||
<br>
|
|
||||||
The Images links on [Docker Hub](https://hub.docker.com/u/laradock/)
|
|
||||||
|
|
||||||
|
|
||||||
<a name="Requirements"></a>
|
<a name="Requirements"></a>
|
||||||
## Requirements
|
## Requirements
|
||||||
@ -88,12 +82,6 @@ The Images links on [Docker Hub](https://hub.docker.com/u/laradock/)
|
|||||||
<a name="Installation"></a>
|
<a name="Installation"></a>
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
What is better than watching a video tutorial!!
|
|
||||||
<br>
|
|
||||||
If you prefer watch this [screencast](https://www.youtube.com/watch?v=jGkyO6Is_aI), for how to install and use this tool.
|
|
||||||
|
|
||||||
<br>
|
|
||||||
|
|
||||||
1 - Clone the `LaraDock` repository, in any of your `Laravel` projects:
|
1 - Clone the `LaraDock` repository, in any of your `Laravel` projects:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
@ -126,23 +114,36 @@ DB_HOST=xxx.xxx.xxx.xxx
|
|||||||
[How to find my Docker IP Address?](#Find-Docker-IP-Address)
|
[How to find my Docker IP Address?](#Find-Docker-IP-Address)
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
2 - Run the containers:
|
2 - Run the Containers, (you can select the software's (containers) that you wish to run)
|
||||||
<br>
|
<br>
|
||||||
*(Make sure you are in the `docker` folder before running this command)*
|
*Make sure you are in the `docker` folder before running the `docker-compose` command.*
|
||||||
|
|
||||||
|
> Running PHP, NGINX and MySQL:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker-compose up -d
|
docker-compose up -d php nginx mysql
|
||||||
```
|
```
|
||||||
|
|
||||||
>*Only the first time you run this command, it will take up to 5 minutes (depend on your connection speed) to download the Docker Images on your local machine.*
|
Note: you can choose your own combination of software's (containers), another example:
|
||||||
|
|
||||||
|
> Running PHP, NGINX, Postgres and Redis:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose up -d php nginx postgres redis
|
||||||
|
```
|
||||||
|
|
||||||
|
Supported Containers: `php`, `nginx`, `mysql`, `postgres`, `redis`, `data`.
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
3 - Open your browser and visit your `{Docker-IP}` address (`http://xxx.xxx.xxx.xxx`).
|
3 - Open your browser and visit your `{Docker-IP}` address (`http://xxx.xxx.xxx.xxx`).
|
||||||
|
|
||||||
|
|
||||||
> **Debugging**: in case you faced an error here, run this command from the Laravel root directory:
|
<br>
|
||||||
> <br>
|
**Debugging**: in case you faced an error here, run this command from the Laravel root directory:
|
||||||
> `sudo chmod -R 777 storage && sudo chmod -R 777 bootstrap/cache`
|
|
||||||
|
```bash
|
||||||
|
sudo chmod -R 777 storage && sudo chmod -R 777 bootstrap/cache
|
||||||
|
```
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
@ -169,6 +170,11 @@ docker ps
|
|||||||
docker-compose stop
|
docker-compose stop
|
||||||
```
|
```
|
||||||
|
|
||||||
|
To stop single container do:
|
||||||
|
|
||||||
|
```php
|
||||||
|
docker-compose stop {container-name}
|
||||||
|
```
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Delete-all-existing-Containers"></a>
|
<a name="Delete-all-existing-Containers"></a>
|
||||||
@ -179,21 +185,38 @@ docker-compose rm -f
|
|||||||
|
|
||||||
*Note: Careful with this command as it will delete your Data Volume Container as well. (if you want to keep your Database data than you should stop each container by itself as follow):*
|
*Note: Careful with this command as it will delete your Data Volume Container as well. (if you want to keep your Database data than you should stop each container by itself as follow):*
|
||||||
|
|
||||||
`docker stop {container-name}`
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Use-Redis-in-Laravel"></a>
|
<a name="Build-Re-build-Containers"></a>
|
||||||
#### Use Redis in Laravel
|
#### Build/Re-build Containers
|
||||||
|
|
||||||
Open your Laravel's `.env` file and set the `REDIS_HOST` to your `Docker-IP` instead of the default `127.0.0.1`.
|
If you do any change to any `dockerfile` make sure you run this command, for the changes to take effect:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose build
|
||||||
|
```
|
||||||
|
Optionally you can specify which container to rebuild (instead of rebuilding all the containers), example rebuilding `PHP`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose build php
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<a name="Use-Redis"></a>
|
||||||
|
#### Use Redis
|
||||||
|
|
||||||
|
1 - First make sure you run the Redis Container with the `docker-compose` command.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
```env
|
```env
|
||||||
REDIS_HOST=xxx.xxx.xxx.xxx
|
REDIS_HOST=xxx.xxx.xxx.xxx
|
||||||
```
|
```
|
||||||
|
|
||||||
If you don't find the `REDIS_HOST` variable in your `.env` file. Go to the database config file `config/database.php` and replace the `127.0.0.1` with your `Docker-IP` for Redis like this:
|
If you don't find the `REDIS_HOST` variable in your `.env` file. Go to the database config file `config/database.php` and replace the default `127.0.0.1` IP with your `Docker-IP` for Redis like this:
|
||||||
|
|
||||||
```php
|
```php
|
||||||
'redis' => [
|
'redis' => [
|
||||||
@ -206,19 +229,26 @@ If you don't find the `REDIS_HOST` variable in your `.env` file. Go to the datab
|
|||||||
],
|
],
|
||||||
```
|
```
|
||||||
|
|
||||||
To enable Redis Caching and/or for Sessions Management. Also from the `.env` file set `CACHE_DRIVER` and `SESSION_DRIVER` to `redis` instead of the default `file`.
|
3 - To enable Redis Caching and/or for Sessions Management. Also from the `.env` file set `CACHE_DRIVER` and `SESSION_DRIVER` to `redis` instead of the default `file`.
|
||||||
|
|
||||||
```env
|
```env
|
||||||
CACHE_DRIVER=redis
|
CACHE_DRIVER=redis
|
||||||
SESSION_DRIVER=redis
|
SESSION_DRIVER=redis
|
||||||
```
|
```
|
||||||
|
|
||||||
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 first.
|
||||||
|
|
||||||
```shell
|
```bash
|
||||||
composer require predis/predis:^1.0
|
composer require predis/predis:^1.0
|
||||||
```
|
```
|
||||||
|
|
||||||
|
5 - You can manually test it from Laravel with this code:
|
||||||
|
|
||||||
|
```php
|
||||||
|
\Cache::store('redis')->put('laradock', 'awesome', 10);
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Use-custom-Domain"></a>
|
<a name="Use-custom-Domain"></a>
|
||||||
@ -240,54 +270,47 @@ Example:
|
|||||||
DB_HOST=xxx.xxx.xxx.xxx
|
DB_HOST=xxx.xxx.xxx.xxx
|
||||||
```
|
```
|
||||||
|
|
||||||
3 - Open the nginx config file `docker/settings/nginx/default` and add this in the `server`:
|
3 - Open your browser and visit `{http://laravel.dev}`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Optionally you can define the server name in the nginx config file, like this:
|
||||||
|
|
||||||
```
|
```
|
||||||
server_name laravel.dev;
|
server_name laravel.dev;
|
||||||
```
|
```
|
||||||
|
|
||||||
4 - Open your browser and visit `{http://laravel.dev}`
|
|
||||||
|
|
||||||
|
|
||||||
>In case you faced any problem, try this additional step:
|
|
||||||
>
|
|
||||||
>Open the `docker-compose.yml` and add the following to `php-nginx:`
|
|
||||||
>
|
|
||||||
>```yaml
|
|
||||||
> extra_hosts:
|
|
||||||
> - "laravel.dev:xxx.xxx.xxx.xxx"
|
|
||||||
>```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Change-the-PHP-Version"></a>
|
<a name="Change-the-PHP-Version"></a>
|
||||||
#### Change the PHP Version
|
#### Change the PHP Version
|
||||||
By default **PHP 5.6** is running.
|
By default **PHP 7.0** is running.
|
||||||
<br>
|
<br>
|
||||||
To change the default PHP version, simply open your `docker-compose.yml` file and edit this line:
|
To change the default PHP version:
|
||||||
|
|
||||||
```yaml
|
1 - Open the `dockerfile` of the `php` folder.
|
||||||
image: laradock/php56nginx:latest
|
|
||||||
|
2 - Change the PHP version number in the first line,
|
||||||
|
|
||||||
|
```txt
|
||||||
|
FROM php:7.0-fpm
|
||||||
```
|
```
|
||||||
Supported versions:
|
|
||||||
|
|
||||||
- (PHP 5.5.*) laradock/php55nginx:latest
|
|
||||||
- (PHP 5.6.*) laradock/php56nginx:latest
|
|
||||||
|
|
||||||
|
|
||||||
**Note:** If you use this `laradock/phpnginx` image, it will pull from `laradock/php56nginx`.
|
|
||||||
|
|
||||||
|
Supported Versions:
|
||||||
|
|
||||||
|
- For (PHP 7.0.*) use `php:7.0-fpm`
|
||||||
|
- For (PHP 5.6.*) use `php:5.6-fpm`
|
||||||
|
- For (PHP 5.5.*) use `php:5.5-fpm`
|
||||||
|
|
||||||
|
For more details visit the [official PHP docker images](https://hub.docker.com/_/php/).
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Add-Docker-Images"></a>
|
<a name="Add-Docker-Images"></a>
|
||||||
#### Add Docker Images
|
#### Add more Software's (Docker Images)
|
||||||
*(add a software to run with other Containers)*
|
|
||||||
<br>
|
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/yml/).
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -311,18 +334,26 @@ Example: if you want to set the MySQL port to 3333, just replace the default por
|
|||||||
The Log files are stored in the `docker/logs` directory.
|
The Log files are stored in the `docker/logs` directory.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Upgrade-the-Docker-Images"></a>
|
<a name="Enter-Container"></a>
|
||||||
#### Upgrade the Docker Images
|
#### Enter a Container (SSH into a running Container)
|
||||||
|
|
||||||
By default `docker-compose.yml` is configured to use the latest stable version of the image (latest stable realease `tag`).
|
1 - first list the current running containers with `docker ps`
|
||||||
|
|
||||||
|
2 - enter any container with:
|
||||||
|
|
||||||
|
Example: enter the `php` container
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker exec -it php bash
|
||||||
|
```
|
||||||
|
|
||||||
|
Example: enter the `nginx` container
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker exec -it nginx bash
|
||||||
|
```
|
||||||
|
|
||||||
To use the latest build you can edit the `docker-compose.yml` file and replace the version number at the end of every image name with `:latest`
|
|
||||||
<br>
|
|
||||||
Example: change `image: laradock/mysql:0.1.0` to `image: laradock/mysql:latest`
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
@ -334,14 +365,19 @@ To prevent a container (software) from running, open the `docker-compose.yml` fi
|
|||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Edit-a-Docker-Image"></a>
|
<a name="Edit-a-Docker-Image"></a>
|
||||||
#### Edit a Docker Image (change some configuration in the image)
|
#### Edit a Docker Image
|
||||||
To edit an image, and take full control of it:
|
|
||||||
|
|
||||||
1. Clone any Image from [https://github.com/LaraDock](https://github.com/LaraDock)
|
1 - Find the `dockerfile` of the image you want to edit,
|
||||||
2. Modify the `Dockfile`
|
<br>
|
||||||
3. Run `docker build -t {your-image-name} .`
|
example for `php` it will be `docker/php/dockerfile`.
|
||||||
|
|
||||||
All the images are open source and hosted on the [Docker Hub](https://hub.docker.com/u/laradock/).
|
2 - Edit the file the way you want.
|
||||||
|
|
||||||
|
3 - Re-build the container:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose build
|
||||||
|
```
|
||||||
|
|
||||||
*If you find any bug or you have and suggestion that can improve the performance of any image, please consider contributing. Thanks in advance.*
|
*If you find any bug or you have and suggestion that can improve the performance of any image, please consider contributing. Thanks in advance.*
|
||||||
|
|
||||||
@ -407,9 +443,8 @@ All Docker Images can be found at [https://github.com/LaraDock](https://github.c
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
#### Questions?
|
### Questions?
|
||||||
[](https://gitter.im/LaraDock/laradock?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
If you have any question, send me a direct message on LaraChat, my username is `mahmoud_zalt`.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Credits
|
## Credits
|
||||||
|
5
data/Dockerfile
Normal file
5
data/Dockerfile
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
FROM debian:jessie
|
||||||
|
|
||||||
|
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||||
|
|
||||||
|
CMD ["true"]
|
@ -1,58 +1,82 @@
|
|||||||
# PHP + NGINX Container #----------------------------------
|
version: '2'
|
||||||
php-nginx:
|
services:
|
||||||
image: laradock/php56nginx:0.1.0
|
|
||||||
container_name: php-nginx
|
|
||||||
ports:
|
|
||||||
- "80:80"
|
|
||||||
volumes:
|
|
||||||
- ./settings/nginx:/etc/nginx/sites-available
|
|
||||||
- ../:/var/www
|
|
||||||
- ./logs/nginx:/var/log/nginx
|
|
||||||
links:
|
|
||||||
- mysql
|
|
||||||
- redis
|
|
||||||
privileged: true
|
|
||||||
|
|
||||||
# MySQL Container #----------------------------------------
|
### Nginx Server Container ##################################
|
||||||
mysql:
|
|
||||||
image: laradock/mysql:0.1.0
|
|
||||||
container_name: mysql
|
|
||||||
ports:
|
|
||||||
- "3306:3306"
|
|
||||||
volumes_from:
|
|
||||||
- data
|
|
||||||
environment:
|
|
||||||
MYSQL_DATABASE: homestead
|
|
||||||
MYSQL_USER: homestead
|
|
||||||
MYSQL_PASSWORD: secret
|
|
||||||
privileged: true
|
|
||||||
|
|
||||||
# Redis Container #----------------------------------------
|
nginx:
|
||||||
redis:
|
build: ./nginx
|
||||||
image: laradock/redis:0.1.0
|
container_name: nginx
|
||||||
container_name: redis
|
volumes_from:
|
||||||
ports:
|
- php
|
||||||
- "6379:6379"
|
volumes:
|
||||||
volumes_from:
|
- ./logs/nginx/:/var/log/nginx
|
||||||
- data
|
ports:
|
||||||
volumes:
|
- "80:80"
|
||||||
- ./logs/redis:/var/log/redis
|
links:
|
||||||
privileged: true
|
- php
|
||||||
|
|
||||||
# Data Volume Container #----------------------------------
|
### PHP Container ###########################################
|
||||||
data:
|
|
||||||
image: laradock/data:0.1.0
|
|
||||||
container_name: data
|
|
||||||
volumes:
|
|
||||||
- /var/lib/mysql
|
|
||||||
- /var/lib/redis
|
|
||||||
|
|
||||||
# Beanstalkd Container #-----------------------------------
|
php:
|
||||||
# beanstalkd:
|
build: ./php
|
||||||
# image: laradock/beanstalkd:0.1.0
|
container_name: php
|
||||||
# container_name: beanstalkd
|
volumes:
|
||||||
# ports:
|
- ../:/var/www/laravel
|
||||||
# - "11300:11300"
|
- ./logs/php/:/usr/local/var/log
|
||||||
# privileged: true
|
expose:
|
||||||
|
- "9000"
|
||||||
|
|
||||||
#----------------------------------------------------------
|
### DATA Container ##########################################
|
||||||
|
|
||||||
|
data:
|
||||||
|
build: ./data
|
||||||
|
container_name: data
|
||||||
|
volumes:
|
||||||
|
- /var/lib/mysql
|
||||||
|
- /var/lib/postgresql/data
|
||||||
|
- /var/lib/redis
|
||||||
|
|
||||||
|
### MySQL Container #########################################
|
||||||
|
|
||||||
|
mysql:
|
||||||
|
build: ./mysql
|
||||||
|
container_name: mysql
|
||||||
|
volumes_from:
|
||||||
|
- data
|
||||||
|
ports:
|
||||||
|
- "3306:3306"
|
||||||
|
environment:
|
||||||
|
MYSQL_DATABASE: homestead
|
||||||
|
MYSQL_USER: homestead
|
||||||
|
MYSQL_PASSWORD: secret
|
||||||
|
MYSQL_ROOT_PASSWORD: root
|
||||||
|
links:
|
||||||
|
- php
|
||||||
|
|
||||||
|
### PostgreSQL Container ####################################
|
||||||
|
|
||||||
|
postgres:
|
||||||
|
build: ./postgres
|
||||||
|
container_name: postgres
|
||||||
|
volumes_from:
|
||||||
|
- data
|
||||||
|
ports:
|
||||||
|
- "5432:5432"
|
||||||
|
environment:
|
||||||
|
POSTGRES_DB: homestead
|
||||||
|
POSTGRES_USER: homestead
|
||||||
|
POSTGRES_PASSWORD: secret
|
||||||
|
links:
|
||||||
|
- php
|
||||||
|
|
||||||
|
### Redis Container #########################################
|
||||||
|
|
||||||
|
redis:
|
||||||
|
build: ./redis
|
||||||
|
container_name: redis
|
||||||
|
volumes_from:
|
||||||
|
- data
|
||||||
|
ports:
|
||||||
|
- "6379:6379"
|
||||||
|
|
||||||
|
### Add more Containers below ###############################
|
||||||
|
9
mysql/Dockerfile
Normal file
9
mysql/Dockerfile
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
FROM mysql:latest
|
||||||
|
|
||||||
|
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||||
|
|
||||||
|
VOLUME /var/lib/mysql
|
||||||
|
|
||||||
|
CMD ["mysqld"]
|
||||||
|
|
||||||
|
EXPOSE 3306
|
14
nginx/Dockerfile
Normal file
14
nginx/Dockerfile
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
FROM nginx:latest
|
||||||
|
|
||||||
|
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||||
|
|
||||||
|
ADD nginx.conf /etc/nginx/
|
||||||
|
ADD laravel.conf /etc/nginx/sites-available/
|
||||||
|
|
||||||
|
RUN echo "upstream php-upstream { server php:9000; }" > /etc/nginx/conf.d/upstream.conf
|
||||||
|
|
||||||
|
RUN usermod -u 1000 www-data
|
||||||
|
|
||||||
|
CMD ["nginx"]
|
||||||
|
|
||||||
|
EXPOSE 80 443
|
@ -2,7 +2,7 @@ server {
|
|||||||
listen 80 default_server;
|
listen 80 default_server;
|
||||||
listen [::]:80 default_server ipv6only=on;
|
listen [::]:80 default_server ipv6only=on;
|
||||||
|
|
||||||
root /var/www/public;
|
root /var/www/laravel/public;
|
||||||
index index.php index.html index.htm;
|
index index.php index.html index.htm;
|
||||||
|
|
||||||
location / {
|
location / {
|
||||||
@ -11,7 +11,7 @@ server {
|
|||||||
|
|
||||||
location ~ \.php$ {
|
location ~ \.php$ {
|
||||||
try_files $uri /index.php =404;
|
try_files $uri /index.php =404;
|
||||||
fastcgi_pass unix:/var/run/php5-fpm.sock;
|
fastcgi_pass php-upstream;
|
||||||
fastcgi_index index.php;
|
fastcgi_index index.php;
|
||||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||||
include fastcgi_params;
|
include fastcgi_params;
|
||||||
@ -21,3 +21,6 @@ server {
|
|||||||
deny all;
|
deny all;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
29
nginx/nginx.conf
Normal file
29
nginx/nginx.conf
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
user www-data;
|
||||||
|
worker_processes 4;
|
||||||
|
pid /run/nginx.pid;
|
||||||
|
|
||||||
|
events {
|
||||||
|
worker_connections 2048;
|
||||||
|
multi_accept on;
|
||||||
|
use epoll;
|
||||||
|
}
|
||||||
|
|
||||||
|
http {
|
||||||
|
server_tokens off;
|
||||||
|
sendfile on;
|
||||||
|
tcp_nopush on;
|
||||||
|
tcp_nodelay on;
|
||||||
|
keepalive_timeout 15;
|
||||||
|
types_hash_max_size 2048;
|
||||||
|
include /etc/nginx/mime.types;
|
||||||
|
default_type application/octet-stream;
|
||||||
|
access_log off;
|
||||||
|
error_log off;
|
||||||
|
gzip on;
|
||||||
|
gzip_disable "msie6";
|
||||||
|
include /etc/nginx/conf.d/*.conf;
|
||||||
|
include /etc/nginx/sites-available/*;
|
||||||
|
open_file_cache max=100;
|
||||||
|
}
|
||||||
|
|
||||||
|
daemon off;
|
16
php/Dockerfile
Normal file
16
php/Dockerfile
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
FROM php:7.0-fpm
|
||||||
|
|
||||||
|
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||||
|
|
||||||
|
ADD ./laravel.ini /usr/local/etc/php/conf.d
|
||||||
|
ADD ./laravel.pool.conf /usr/local/etc/php-fpm.d/
|
||||||
|
|
||||||
|
# Install extensions using the helper script provided by the base image
|
||||||
|
RUN docker-php-ext-install \
|
||||||
|
pdo_mysql
|
||||||
|
|
||||||
|
RUN usermod -u 1000 www-data
|
||||||
|
|
||||||
|
CMD ["php-fpm"]
|
||||||
|
|
||||||
|
EXPOSE 9000
|
3
php/laravel.ini
Normal file
3
php/laravel.ini
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
date.timezone = UTC
|
||||||
|
display_errors = Off
|
||||||
|
log_errors = On
|
76
php/laravel.pool.conf
Normal file
76
php/laravel.pool.conf
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
; Unix user/group of processes
|
||||||
|
; Note: The user is mandatory. If the group is not set, the default user's group
|
||||||
|
; will be used.
|
||||||
|
user = www-data
|
||||||
|
group = www-data
|
||||||
|
|
||||||
|
; The address on which to accept FastCGI requests.
|
||||||
|
; Valid syntaxes are:
|
||||||
|
; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific address on
|
||||||
|
; a specific port;
|
||||||
|
; 'port' - to listen on a TCP socket to all addresses on a
|
||||||
|
; specific port;
|
||||||
|
; '/path/to/unix/socket' - to listen on a unix socket.
|
||||||
|
; Note: This value is mandatory.
|
||||||
|
listen = 0.0.0.0:9000
|
||||||
|
|
||||||
|
; Choose how the process manager will control the number of child processes.
|
||||||
|
; Possible Values:
|
||||||
|
; static - a fixed number (pm.max_children) of child processes;
|
||||||
|
; dynamic - the number of child processes are set dynamically based on the
|
||||||
|
; following directives. With this process management, there will be
|
||||||
|
; always at least 1 children.
|
||||||
|
; pm.max_children - the maximum number of children that can
|
||||||
|
; be alive at the same time.
|
||||||
|
; pm.start_servers - the number of children created on startup.
|
||||||
|
; pm.min_spare_servers - the minimum number of children in 'idle'
|
||||||
|
; state (waiting to process). If the number
|
||||||
|
; of 'idle' processes is less than this
|
||||||
|
; number then some children will be created.
|
||||||
|
; pm.max_spare_servers - the maximum number of children in 'idle'
|
||||||
|
; state (waiting to process). If the number
|
||||||
|
; of 'idle' processes is greater than this
|
||||||
|
; number then some children will be killed.
|
||||||
|
; ondemand - no children are created at startup. Children will be forked when
|
||||||
|
; new requests will connect. The following parameter are used:
|
||||||
|
; pm.max_children - the maximum number of children that
|
||||||
|
; can be alive at the same time.
|
||||||
|
; pm.process_idle_timeout - The number of seconds after which
|
||||||
|
; an idle process will be killed.
|
||||||
|
; Note: This value is mandatory.
|
||||||
|
pm = dynamic
|
||||||
|
|
||||||
|
; The number of child processes to be created when pm is set to 'static' and the
|
||||||
|
; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'.
|
||||||
|
; This value sets the limit on the number of simultaneous requests that will be
|
||||||
|
; served. Equivalent to the ApacheMaxClients directive with mpm_prefork.
|
||||||
|
; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP
|
||||||
|
; CGI. The below defaults are based on a server without much resources. Don't
|
||||||
|
; forget to tweak pm.* to fit your needs.
|
||||||
|
; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand'
|
||||||
|
; Note: This value is mandatory.
|
||||||
|
pm.max_children = 20
|
||||||
|
|
||||||
|
; The number of child processes created on startup.
|
||||||
|
; Note: Used only when pm is set to 'dynamic'
|
||||||
|
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
|
||||||
|
pm.start_servers = 2
|
||||||
|
|
||||||
|
; The desired minimum number of idle server processes.
|
||||||
|
; Note: Used only when pm is set to 'dynamic'
|
||||||
|
; Note: Mandatory when pm is set to 'dynamic'
|
||||||
|
pm.min_spare_servers = 1
|
||||||
|
|
||||||
|
; The desired maximum number of idle server processes.
|
||||||
|
; Note: Used only when pm is set to 'dynamic'
|
||||||
|
; Note: Mandatory when pm is set to 'dynamic'
|
||||||
|
pm.max_spare_servers = 3
|
||||||
|
|
||||||
|
;---------------------
|
||||||
|
|
||||||
|
; Make specific Docker environment variables available to PHP
|
||||||
|
env[DB_1_ENV_MYSQL_DATABASE] = $DB_1_ENV_MYSQL_DATABASE
|
||||||
|
env[DB_1_ENV_MYSQL_USER] = $DB_1_ENV_MYSQL_USER
|
||||||
|
env[DB_1_ENV_MYSQL_PASSWORD] = $DB_1_ENV_MYSQL_PASSWORD
|
||||||
|
|
||||||
|
catch_workers_output = yes
|
9
postgres/Dockerfile
Normal file
9
postgres/Dockerfile
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
FROM postgres:latest
|
||||||
|
|
||||||
|
MAINTAINER Ben M <git@bmagg.com>
|
||||||
|
|
||||||
|
VOLUME /var/lib/postgresql/data
|
||||||
|
|
||||||
|
CMD ["postgres"]
|
||||||
|
|
||||||
|
EXPOSE 5432
|
9
redis/Dockerfile
Normal file
9
redis/Dockerfile
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
FROM redis:latest
|
||||||
|
|
||||||
|
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||||
|
|
||||||
|
#COPY redis.conf /usr/local/etc/redis/redis.conf
|
||||||
|
|
||||||
|
CMD [ "redis-server" ]
|
||||||
|
|
||||||
|
EXPOSE 6379
|
Reference in New Issue
Block a user