Compare commits

...

8 Commits

Author SHA1 Message Date
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
5bc35214e6 update the readme file≈ 2016-03-11 11:06:31 +02:00
d179226247 update the readme file 2016-03-11 10:11:24 +02:00
97ad0cdcfe update the readme file 2016-03-11 09:40:59 +02:00
bd88b95bb5 Merge pull request #13 from vitr/patch-1
Update README.md (a typo)
2016-03-10 05:32:21 +02:00
8e5aa26b99 Update README.md 2016-03-10 09:35:11 +10:00
45cc9908ad update the documentation design 2016-03-06 07:29:15 +02:00
84e26f046b update the readme file 2016-02-26 13:24:55 +02:00
3 changed files with 78 additions and 68 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.

122
README.md
View File

@ -1,9 +1,16 @@
# 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 +18,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.
@ -46,6 +49,23 @@ Instead of providing a full Virtual Machines, like you get with Vagrant, Docker
<br>
<a name="Images"></a>
## Included Software
__Docker Images:__
- [NGINX+PHP](https://hub.docker.com/r/laradock/phpnginx/)
- [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)
You can edit these images, on this repository [https://github.com/LaraDock/docker-images ](https://github.com/LaraDock/docker-images).
<a name="Requirements"></a> <a name="Requirements"></a>
## Requirements ## Requirements
- Laravel ([Download](https://laravel.com/docs/master/installation)) - Laravel ([Download](https://laravel.com/docs/master/installation))
@ -53,83 +73,88 @@ 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).* <br>
<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
``` ```
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
``` ```
*"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 -d` if you 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 docker mahcine here, try to running this command in your current terminal session `docker-machine env {vm-name-here}` and then `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:
`sudo chmod -R 777 storage && sudo chmod -R 777 bootstrap/cache`
9 - Open your browser and visit `http://laravel.dev`
> 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>
<a name="Documentation"></a> <a name="Documentation"></a>
## Documentation ## Documentation
@ -191,25 +216,14 @@ All the images are open source and hosted on the [Docker Hub](https://hub.docker
The Log files are stored in the `docker/logs` directory. The Log files are stored in the `docker/logs` directory.
<br>
<a name="Supports"></a>
## Highlights
__Currently Supported Docker Images:__
- [NGINX+PHP](https://hub.docker.com/r/laradock/phpnginx/)
- [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)
## 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 :)
The project consist of 2 repositories:
- Laradock: https://github.com/LaraDock/laradock
- Docker-Images: https://github.com/LaraDock/docker-images
## 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/phpnginx: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"