Compare commits

...

11 Commits

Author SHA1 Message Date
03e7eb622e update the readme file 2016-04-04 10:19:49 +03:00
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
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
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 125 additions and 73 deletions

10
LICENSE
View File

@ -1,6 +1,6 @@
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
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
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
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
SOFTWARE.
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

172
README.md
View File

@ -1,9 +1,17 @@
# LaraDock
[![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
@ -11,21 +19,17 @@
- [Requirements](#Requirements)
- [Usage](#Usage)
- [Documentation](#Documentation)
- [Supported Images](#Supports)
![](http://s11.postimg.org/uqpl3efab/laradock.jpg)
- [Docker Images](#Images)
<a name="Intro"></a>
### What is LaraDock?
**LaraDock** helps you run your **Laravel** App on **Docker** in seconds.
### Intro
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.
### 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.
@ -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>
## 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))
- 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>
## 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.
3 - Create a new folder on the root directory of your Laravel project and name it `docker` then go into it.
2 - Clone the LaraDock repository, inside a `docker` folder, on the root directory of your Laravel project.
```bash
mkdir docker && cd $_
git clone https://github.com/LaraDock/laradock.git docker
```
3 - Clone the LaraDock repository inside that `docker` folder.
```bash
git clone https://github.com/LaraDock/laradock.git .
```
4 - Find your Docker IP address.
3 - 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 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 OS and using **boot2docker**: type `boot2docker ip` when boot2docker is up.
- 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 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
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
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.
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
DB_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
CACHE_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
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:
`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>
[Follow @Mahmoud_Zalt](https://twitter.com/Mahmoud_Zalt)
<br>
<a name="Documentation"></a>
## Documentation
@ -138,14 +166,14 @@ docker-compose up -d
docker ps
```
<br>
#### Close all running Containers
```bash
docker-compose stop
```
<br>
#### Delete all existing Containers
```bash
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
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)
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)
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:
@ -176,41 +239,34 @@ Example: if you want to set the MySQL port to 3333, just replace the default por
- "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
The Log files are stored in the `docker/logs` directory.
<a name="Supports"></a>
## Highlights
<br>
#### Edit an existing Image (change some configuration in the image)
To edit an image, and take full control of it:
__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)
1. Clone any Image from [https://github.com/LaraDock](https://github.com/LaraDock)
2. Modify the `Dockfile`
3. 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>
## 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 :)
All Docker Images can be found at [https://github.com/LaraDock](https://github.com/LaraDock)
## Support

View File

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