Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
03e7eb622e | ||
|
|
d9f10f367c | ||
|
|
dac12296c6 | ||
|
|
62ec36d9dd | ||
|
|
5bc35214e6 | ||
|
|
d179226247 | ||
|
|
97ad0cdcfe | ||
|
|
bd88b95bb5 | ||
|
|
8e5aa26b99 | ||
|
|
45cc9908ad | ||
|
|
84e26f046b |
10
LICENSE
10
LICENSE
@@ -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.
|
||||||
174
README.md
174
README.md
@@ -1,9 +1,17 @@
|
|||||||
# LaraDock
|
# LaraDock
|
||||||
|
|
||||||
|
|
||||||
[](http://www.zalt.me)
|
[](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.
|
||||||
|
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
<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)
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<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,83 +72,92 @@ 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
|
||||||
```
|
```
|
||||||
|
|
||||||
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
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
Reference in New Issue
Block a user