Compare commits

...

11 Commits

Author SHA1 Message Date
Mahmoud Zalt
03e7eb622e update the readme file 2016-04-04 10:19:49 +03:00
Mahmoud Zalt
d9f10f367c upgrade the readme file
adding the different PHP versions to the docs in addition to general
updates
2016-04-04 10:03:11 +03:00
Mahmoud Zalt
dac12296c6 upgrade to php 5.6 by default
adding `phpnginx` or `php55nginx` will pull PHP 5.5 while `php56nginx`
will pull PHP 5.6
2016-04-04 10:02:21 +03:00
Mahmoud Zalt
62ec36d9dd replace the images versions from the latest to the latest stable version (tag).
to avoid any errors while experimenting on the master branch
2016-04-04 05:33:18 +03:00
Mahmoud Zalt
5bc35214e6 update the readme file≈ 2016-03-11 11:06:31 +02:00
Mahmoud Zalt
d179226247 update the readme file 2016-03-11 10:11:24 +02:00
Mahmoud Zalt
97ad0cdcfe update the readme file 2016-03-11 09:40:59 +02:00
Mahmoud Zalt
bd88b95bb5 Merge pull request #13 from vitr/patch-1
Update README.md (a typo)
2016-03-10 05:32:21 +02:00
Vitaliy Ryepnoy
8e5aa26b99 Update README.md 2016-03-10 09:35:11 +10:00
Mahmoud Zalt
45cc9908ad update the documentation design 2016-03-06 07:29:15 +02:00
Mahmoud Zalt
84e26f046b update the readme file 2016-02-26 13:24:55 +02:00
3 changed files with 125 additions and 73 deletions

10
LICENSE
View File

@@ -1,6 +1,6 @@
The MIT License (MIT) The MIT License (MIT)
Copyright (c) 2015 Mahmoud Zalt Copyright 2016 <Mahmoud Zalt>
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal
@@ -9,13 +9,13 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions: furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all The above copyright notice and this permission notice shall be included in
copies or substantial portions of the Software. all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
SOFTWARE. THE SOFTWARE.

172
README.md
View File

@@ -1,9 +1,17 @@
# LaraDock # LaraDock
[![forthebadge](http://forthebadge.com/images/badges/built-with-love.svg)](http://www.zalt.me) [![forthebadge](http://forthebadge.com/images/badges/built-with-love.svg)](http://www.zalt.me)
Like Laravel Homstead but for Docker instead of Vagrant.
<br>
LaraDock helps you run your **Laravel** App on **Docker** in seconds.
![](http://s11.postimg.org/uqpl3efab/laradock.jpg)
<br>
## Contents ## Contents
@@ -11,21 +19,17 @@
- [Requirements](#Requirements) - [Requirements](#Requirements)
- [Usage](#Usage) - [Usage](#Usage)
- [Documentation](#Documentation) - [Documentation](#Documentation)
- [Supported Images](#Supports) - [Docker Images](#Images)
![](http://s11.postimg.org/uqpl3efab/laradock.jpg)
<a name="Intro"></a> <a name="Intro"></a>
### What is LaraDock? ### Intro
**LaraDock** helps you run your **Laravel** App on **Docker** in seconds.
LaraDock strives to make the development experience easier. LaraDock strives to make the development experience easier.
It contains pre-packaged Docker Images that provides you a wonderful development environment without requiring you to install PHP, NGINX, MySQL, REDIS, and any other software on your local machine. It contains pre-packaged Docker Images that provides you a wonderful development environment without requiring you to install PHP, NGINX, MySQL, REDIS, and any other software on your local machine.
### What is Docker? ### What is Docker?
[Docker](https://www.docker.com) is an open-source project that automates the deployment of applications inside software containers, by providing an additional layer of abstraction and automation of [operating-system-level virtualization](https://en.wikipedia.org/wiki/Operating-system-level_virtualization) on Linux, Mac OS and Windows. [Docker](https://www.docker.com) is an open-source project that automates the deployment of applications inside software containers, by providing an additional layer of abstraction and automation of [operating-system-level virtualization](https://en.wikipedia.org/wiki/Operating-system-level_virtualization) on Linux, Mac OS and Windows.
@@ -45,6 +49,21 @@ Instead of providing a full Virtual Machines, like you get with Vagrant, Docker
<a name="Images"></a>
## Supported Software (Docker Images)
- PHP 5.6 / NGINX
- PHP 5.5 / NGINX
- MySQL
- Redis
- Data Volume (for MySQL & Redis)
- 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
@@ -53,41 +72,31 @@ Instead of providing a full Virtual Machines, like you get with Vagrant, Docker
- Git ([Download](https://git-scm.com/downloads)) - Git ([Download](https://git-scm.com/downloads))
- Composer ([Download](https://getcomposer.org/download/)) - Composer ([Download](https://getcomposer.org/download/))
*Note: Git & Composer can be installed on Docker Containers if you don't want to install them on your machine. (But you have to do this yourself for now).*
<a name="Usage"></a> <a name="Usage"></a>
## Usage ## Usage
1 - First install any version of Laravel, or use any of your existing Laravel projects. 1 - Install any version of Laravel, or use any of your existing Laravel projects.
2 - Open your terminal and go to your Laravel project directory. 2 - Clone the LaraDock repository, inside a `docker` folder, on the root directory of your Laravel project.
3 - Create a new folder on the root directory of your Laravel project and name it `docker` then go into it.
```bash ```bash
mkdir docker && cd $_ git clone https://github.com/LaraDock/laradock.git docker
``` ```
3 - Clone the LaraDock repository inside that `docker` folder. 3 - Find your Docker IP address.
```bash
git clone https://github.com/LaraDock/laradock.git .
```
4 - Find your Docker IP address.
- If you are on Linux OS: your IP Address is `127.0.0.1` because the containers run directly on your localhost. - If you are on Linux OS: your IP Address is `127.0.0.1` because the containers run directly on your localhost.
- If you are on MAC or Windows OS and using the **docker-machine**: start your docker machine then type `docker-machine ip {vm-name-here}`. *(The default IP is 192.168.99.100)* - If you are on MAC or Windows and using the **docker-machine**: start your docker machine then type `docker-machine ip {vm-name-here}`. *(The default IP is 192.168.99.100)*
- If you are on MAC or Windows OS and using **boot2docker**: type `boot2docker ip` when boot2docker is up. - If you are on MAC or Windows and using **boot2docker**: type `boot2docker ip` when boot2docker is up.
5 - Open your hosts file `/etc/hosts`. 4 - Open your hosts file `/etc/hosts`.
```bash ```bash
sudo nano /etc/hosts sudo nano /etc/hosts
``` ```
6 - Map your `Docker IP` to the `laravel.dev` domain, by adding the following to the `hosts` file. 5 - Map your `Docker IP` to the `laravel.dev` domain, by adding the following to the `hosts` file.
```bash ```bash
xxx.xxx.xxx.xxx laravel.dev xxx.xxx.xxx.xxx laravel.dev
@@ -95,41 +104,60 @@ xxx.xxx.xxx.xxx laravel.dev
Don't forget to replace the `xxx.xxx.xxx.xxx` with your Docker IP Address. Don't forget to replace the `xxx.xxx.xxx.xxx` with your Docker IP Address.
7 - Open `docker-compose.yml` file and replace the `xxx.xxx.xxx.xxx` with your Docker IP Adress as well. 6 - From the new created `docker` folder in step 2, open the `docker-compose.yml` file to replace the `xxx.xxx.xxx.xxx` with your Docker IP Adress as well.
8 - Open your Laravel's `.env` file and set the `DB_HOST` and the `REDIS_HOST` to `laravel.dev` instead of the default `127.0.0.1`. 7 - Open your Laravel's `.env` file and set the `DB_HOST` and the `REDIS_HOST` to `laravel.dev` instead of the default `127.0.0.1`.
```env ```env
DB_HOST=laravel.dev DB_HOST=laravel.dev
REDIS_HOST=laravel.dev REDIS_HOST=laravel.dev
``` ```
If you want to use Redis for Caching and/or for Sessions Management, set `CACHE_DRIVER` and `SESSION_DRIVER` to `redis` instead of the default `file`. 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 `laravel.dev` for Redis like so:
```php
'redis' => [
'cluster' => false,
'default' => [
'host' => 'laravel.dev',
'port' => 6379,
'database' => 0,
],
],
```
If you want to use Redis for Caching and/or for Sessions Management. Open the `.env` file and 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
``` ```
9 - Finally run the containers. Make sure you are in the `docker` folder before running this command. 8 - Finally run the containers. **Make sure you are in the `docker` folder** before running this command.
```bash ```bash
docker-compose up -d docker-compose up -d
``` ```
*"Note: Only the first time you run this command, it will take up to 7 minutes (depend on your connection speed) to download the images to your local machine.* You can run `docker-compose up` (without **-d**) if you don't want to run the containers in the background.
10 - Open your browser and visit `http://laravel.dev` *"Note: Only the first time you run this command, it will take up to 5 minutes (depend on your connection speed) to download the images to your local machine.*
> Debugging: in case you faced a problem with the docker mahcine here, run this command in your current terminal session `eval "$(docker-machine env {vm-name-here})"`.
> Debugging: in case you faced an error here, it might be that you forget to provide some permissions for Laravel, so try running the following command on the Laravel rood directory: 9 - Open your browser and visit `http://laravel.dev`
`sudo chmod -R 777 storage && sudo chmod -R 777 bootstrap/cache`
> Debugging: in case you faced an error here, it might be that you forget to provide some permissions for Laravel, so try running the following command on the Laravel root directory:
`sudo chmod -R 777 storage && sudo chmod -R 777 bootstrap/cache`.
<br>
[Follow @Mahmoud_Zalt](https://twitter.com/Mahmoud_Zalt)
<br>
<a name="Documentation"></a> <a name="Documentation"></a>
## Documentation ## Documentation
@@ -138,14 +166,14 @@ docker-compose up -d
docker ps docker ps
``` ```
<br>
#### Close all running Containers #### Close all running Containers
```bash ```bash
docker-compose stop docker-compose stop
``` ```
<br>
#### Delete all existing Containers #### Delete all existing Containers
```bash ```bash
docker-compose rm -f docker-compose rm -f
@@ -157,17 +185,52 @@ docker-compose rm -f
<br>
#### Change the PHP Version
By default **PHP 5.6** is running.
<br>
To change the default PHP version, simply open your `docker-compose.yml` file and edit this line:
```yaml
image: laradock/php56nginx:0.1.0
```
Supported versions:
- (PHP 5.5.*) laradock/php55nginx:latest
- (PHP 5.6.*) laradock/php56nginx:latest
**Note:**
If you set `laradock/phpnginx` as your image, this will pull from `laradock/php56nginx`.
<br>
#### Upgrade the docker images
By default `docker-compose.yml` is configured to use the latest stable version of the image (latest stable realease `tag`).
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>
#### Remove Container #### Remove Container
To prevent a container (software) from running, open the `docker-compose.yml` file, and comment out the container section or remove it entirely. To prevent a container (software) from running, open the `docker-compose.yml` file, and comment out the container section or remove it entirely.
<br>
#### Add an Image (add a software to run with other Containers) #### Add an Image (add a software to run with other Containers)
To add an image (software), just edit the `laradock/docker/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/). 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/).
<br>
#### Edit a Container (change Ports or Volumes) #### Edit a Container (change Ports or Volumes)
To modify a container you can simply open the `laradock/docker/docker-compose.yml` and change everything you want. To modify a container you can simply open the `docker-compose.yml` and change everything you want.
Example: if you want to set the MySQL port to 3333, just replace the default port with yours: Example: if you want to set the MySQL port to 3333, just replace the default port with yours:
@@ -176,41 +239,34 @@ Example: if you want to set the MySQL port to 3333, just replace the default por
- "3333:3306" - "3333:3306"
``` ```
#### Edit an existing Image (change some configuration in the image)
To edit an image, and take full control of it:
1. clone the LaraDock `docker-images` repository [https://github.com/LaraDock/docker-images](https://github.com/LaraDock/images)
2. modify whichever `Dockfile` you want
3. from the modified image directory run `docker build -t {your-image-name} .`
All the images are open source and hosted on the [Docker Hub](https://hub.docker.com/u/laradock/).
*If you find any bug or you have and suggestion that can improve the performance of any image, please consider contributing. Thanks in advance.*
<br>
#### View the Log files #### View the Log files
The Log files are stored in the `docker/logs` directory. The Log files are stored in the `docker/logs` directory.
<a name="Supports"></a> <br>
## Highlights #### Edit an existing Image (change some configuration in the image)
To edit an image, and take full control of it:
__Currently Supported Docker Images:__ 1. Clone any Image from [https://github.com/LaraDock](https://github.com/LaraDock)
2. Modify the `Dockfile`
- [NGINX+PHP](https://hub.docker.com/r/laradock/phpnginx/) 3. Run `docker build -t {your-image-name} .`
- [MySQL](https://hub.docker.com/r/laradock/mysql/)
- [Redis](https://hub.docker.com/r/laradock/redis/)
- [Beanstalked](https://hub.docker.com/r/laradock/beanstalkd/)
- [Data Volume](https://hub.docker.com/r/laradock/data/) (for MySQL & Redis)
All the images are open source and hosted on the [Docker Hub](https://hub.docker.com/u/laradock/).
*If you find any bug or you have and suggestion that can improve the performance of any image, please consider contributing. Thanks in advance.*
<br>
## Contributing ## Contributing
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 for the current containers, 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 for the current containers, or anything else.. Do not hesitate to contribute, you are more than welcome :)
All Docker Images can be found at [https://github.com/LaraDock](https://github.com/LaraDock)
## Support ## Support

View File

@@ -1,10 +1,6 @@
###########################################################
# MAINTAINER: Mahmoud Zalt <mahmoud@zalt.me> #
###########################################################
# PHP + NGINX Container #---------------------------------- # PHP + NGINX Container #----------------------------------
php-nginx: php-nginx:
image: laradock/phpnginx:latest image: laradock/php56nginx:0.1.0
container_name: php-nginx container_name: php-nginx
ports: ports:
- "80:80" - "80:80"
@@ -21,7 +17,7 @@ php-nginx:
# MySQL Container #---------------------------------------- # MySQL Container #----------------------------------------
mysql: mysql:
image: laradock/mysql:latest image: laradock/mysql:0.1.0
container_name: mysql container_name: mysql
ports: ports:
- "3306:3306" - "3306:3306"
@@ -35,7 +31,7 @@ mysql:
# Redis Container #---------------------------------------- # Redis Container #----------------------------------------
redis: redis:
image: laradock/redis:latest image: laradock/redis:0.1.0
container_name: redis container_name: redis
ports: ports:
- "6379:6379" - "6379:6379"
@@ -48,7 +44,7 @@ redis:
# Data Volume Container #---------------------------------- # Data Volume Container #----------------------------------
data: data:
image: laradock/data:latest image: laradock/data:0.1.0
container_name: data container_name: data
volumes: volumes:
- /var/lib/mysql - /var/lib/mysql
@@ -56,7 +52,7 @@ data:
# Beanstalkd Container #----------------------------------- # Beanstalkd Container #-----------------------------------
# beanstalkd: # beanstalkd:
# image: laradock/beanstalkd:latest # image: laradock/beanstalkd:0.1.0
# container_name: beanstalkd # container_name: beanstalkd
# ports: # ports:
# - "11300:11300" # - "11300:11300"