Compare commits
18 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
18bf12bfde | ||
|
|
d829482a06 | ||
|
|
86c6389650 | ||
|
|
991e28046d | ||
|
|
ccbc73c6bc | ||
|
|
246c7366ba | ||
|
|
762e2ec07b | ||
|
|
adaaa25f47 | ||
|
|
11a13a0c33 | ||
|
|
c642560993 | ||
|
|
ea9f5c635f | ||
|
|
fd4253afb6 | ||
|
|
73310e45e8 | ||
|
|
7f91fc9798 | ||
|
|
a8a7685a40 | ||
|
|
06c4c19a6f | ||
|
|
8bff7656f6 | ||
|
|
5c9eb97db5 |
86
README.md
86
README.md
@@ -90,6 +90,7 @@ docker-compose up nginx mysql redis
|
||||
- MySQL
|
||||
- PostgreSQL
|
||||
- MariaDB
|
||||
- Neo4j
|
||||
- Redis
|
||||
- Memcached
|
||||
- Beanstalkd
|
||||
@@ -206,7 +207,7 @@ docker-compose up -d nginx mysql
|
||||
*Note: the PHP-FPM, Workspace, Application and Data Containers will automatically run.*
|
||||
|
||||
|
||||
Supported Containers: `nginx`, `mysql`, `redis`, `postgres`, `mariadb`, `memcached`, `beanstalkd`, `beanstalkd-console`, `workspace`, `data`, `php-fpm`, `application`.
|
||||
Supported Containers: `nginx`, `mysql`, `redis`, `postgres`, `mariadb`, `neo4j`, `memcached`, `beanstalkd`, `beanstalkd-console`, `workspace`, `data`, `php-fpm`, `application`.
|
||||
|
||||
|
||||
|
||||
@@ -245,7 +246,7 @@ DB_HOST=xxx.xxx.xxx.xxx
|
||||
**Debugging**: in case you faced an error here, run this command from the Laravel root directory:
|
||||
|
||||
```bash
|
||||
sudo chmod -R 777 storage && sudo chmod -R 777 bootstrap/cache
|
||||
sudo chmod -R 777 storage bootstrap/cache
|
||||
```
|
||||
|
||||
<br>
|
||||
@@ -259,12 +260,12 @@ If you have any problem, or need a special support. Feel free to contact me, mor
|
||||
|
||||
|
||||
<a name="Docker"></a>
|
||||
### Docker
|
||||
### [Docker]
|
||||
|
||||
|
||||
|
||||
<a name="List-current-running-Containers"></a>
|
||||
#### List current running Containers
|
||||
### List current running Containers
|
||||
```bash
|
||||
docker ps
|
||||
```
|
||||
@@ -280,7 +281,7 @@ docker-compose ps
|
||||
|
||||
<br>
|
||||
<a name="Close-all-running-Containers"></a>
|
||||
#### Close all running Containers
|
||||
### Close all running Containers
|
||||
```bash
|
||||
docker-compose stop
|
||||
```
|
||||
@@ -298,7 +299,7 @@ docker-compose stop {container-name}
|
||||
|
||||
<br>
|
||||
<a name="Delete-all-existing-Containers"></a>
|
||||
#### Delete all existing Containers
|
||||
### Delete all existing Containers
|
||||
```bash
|
||||
docker-compose down
|
||||
```
|
||||
@@ -313,7 +314,7 @@ docker-compose down
|
||||
|
||||
<br>
|
||||
<a name="Enter-Container"></a>
|
||||
#### Enter a Container (SSH into a running Container)
|
||||
### Enter a Container (SSH into a running Container)
|
||||
|
||||
1 - first list the current running containers with `docker ps`
|
||||
|
||||
@@ -332,7 +333,7 @@ docker exec -it {container-name} bash
|
||||
|
||||
<br>
|
||||
<a name="Edit-Container"></a>
|
||||
#### Edit default container configuration
|
||||
### Edit default container configuration
|
||||
Open the `docker-compose.yml` and change anything you want.
|
||||
|
||||
Examples:
|
||||
@@ -360,7 +361,7 @@ Change Redis defaut port to 1111:
|
||||
|
||||
<br>
|
||||
<a name="Edit-a-Docker-Image"></a>
|
||||
#### Edit a Docker Image
|
||||
### Edit a Docker Image
|
||||
|
||||
1 - Find the `dockerfile` of the image you want to edit,
|
||||
<br>
|
||||
@@ -387,7 +388,7 @@ docker-compose build mysql
|
||||
|
||||
<br>
|
||||
<a name="Build-Re-build-Containers"></a>
|
||||
#### Build/Re-build Containers
|
||||
### Build/Re-build Containers
|
||||
|
||||
If you do any change to any `dockerfile` make sure you run this command, for the changes to take effect:
|
||||
|
||||
@@ -407,7 +408,7 @@ docker-compose build {container-name}
|
||||
|
||||
<br>
|
||||
<a name="Add-Docker-Images"></a>
|
||||
#### Add more Software's (Docker Images)
|
||||
### Add more Software's (Docker Images)
|
||||
|
||||
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/).
|
||||
|
||||
@@ -421,7 +422,7 @@ To add an image (software), just edit the `docker-compose.yml` and add your cont
|
||||
|
||||
<br>
|
||||
<a name="View-the-Log-files"></a>
|
||||
#### View the Log files
|
||||
### View the Log files
|
||||
The Nginx Log file is stored in the `logs/nginx` directory.
|
||||
|
||||
However to view the logs of all the other containers (MySQL, PHP-FPM,...) you can run this:
|
||||
@@ -436,31 +437,27 @@ docker logs {container-name}
|
||||
|
||||
<br>
|
||||
<a name="Laravel"></a>
|
||||
### Laravel
|
||||
### [Laravel]
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="Install-Laravel"></a>
|
||||
## Install Laravel from a Docker Container
|
||||
### Install Laravel from a Docker Container
|
||||
|
||||
1 - First you need to enter the Workspace Container.
|
||||
|
||||
2 - Install Laravel anyway you like.
|
||||
|
||||
Example using the Laravel Installer:
|
||||
|
||||
```bash
|
||||
laravel new my-cool-app
|
||||
```
|
||||
2 - Install Laravel.
|
||||
|
||||
Example using Composer
|
||||
|
||||
```bash
|
||||
composer create-project laravel/laravel my-cool-app "5.1.*"
|
||||
composer create-project laravel/laravel my-cool-app "5.2.*"
|
||||
```
|
||||
|
||||
For more about this check out this [link](https://laravel.com/docs/master#installing-laravel).
|
||||
> We recommand using `composer create-project` instead of the Laravel installer, to install Laravel.
|
||||
|
||||
For more about the Laravel installation click [here](https://laravel.com/docs/master#installing-laravel).
|
||||
|
||||
|
||||
3 - Edit `docker-compose.yml` to Map the new application path:
|
||||
@@ -483,8 +480,9 @@ cd my-cool-app
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Run-Artisan-Commands"></a>
|
||||
#### Run Artisan Commands
|
||||
### Run Artisan Commands
|
||||
|
||||
You can run artisan commands and many other Terminal commands from the Workspace container.
|
||||
|
||||
@@ -530,7 +528,7 @@ laravel new blog
|
||||
|
||||
<br>
|
||||
<a name="Use-Redis"></a>
|
||||
#### Use Redis
|
||||
### Use Redis
|
||||
|
||||
1 - First make sure you run the Redis Container with the `docker-compose` command.
|
||||
|
||||
@@ -583,7 +581,7 @@ composer require predis/predis:^1.0
|
||||
|
||||
<br>
|
||||
<a name="PHP"></a>
|
||||
### PHP
|
||||
### [PHP]
|
||||
|
||||
|
||||
|
||||
@@ -591,7 +589,7 @@ composer require predis/predis:^1.0
|
||||
|
||||
|
||||
<a name="Install-PHP-Extensions"></a>
|
||||
#### Install PHP Extensions
|
||||
### Install PHP Extensions
|
||||
|
||||
Before installing PHP extensions, you have to decide whether you need for the `FPM` or `CLI` because each lives on a different container, if you need it for both you have to edit both containers.
|
||||
|
||||
@@ -609,7 +607,7 @@ The PHP-CLI extensions should be installed in `workspace/Dockerfile`.
|
||||
|
||||
<br>
|
||||
<a name="Change-the-PHP-FPM-Version"></a>
|
||||
#### Change the PHP-FPM Version
|
||||
### Change the PHP-FPM Version
|
||||
By default **PHP-FPM 7.0** is running.
|
||||
|
||||
>The PHP-FPM is responsible of serving your application code, you don't have to change the PHP-CLI version if you are planing to run your application on different PHP-FPM version.
|
||||
@@ -656,7 +654,7 @@ For more details about the PHP base image, visit the [official PHP docker images
|
||||
|
||||
<br>
|
||||
<a name="Change-the-PHP-CLI-Version"></a>
|
||||
#### Change the PHP-CLI Version
|
||||
### Change the PHP-CLI Version
|
||||
By default **PHP-CLI 7.0** is running.
|
||||
|
||||
>Note: it's not very essential to edit the PHP-CLI verion. The PHP-CLI is only used for the Artisan Commands & Composer. It doesn't serve your Application code, this is the PHP-FPM job.
|
||||
@@ -677,14 +675,14 @@ Right now you have to manually edit the `Dockerfile` or create a new one like it
|
||||
|
||||
<br>
|
||||
<a name="Misc"></a>
|
||||
### Misc
|
||||
### [Misc]
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="Run-Docker-Virtual-Host"></a>
|
||||
#### Run a Docker Virtual Host
|
||||
### Run a Docker Virtual Host
|
||||
|
||||
These steps are only for **Windows & MAC** users *(Linux users don't need a virtual host)*:
|
||||
|
||||
@@ -714,10 +712,12 @@ eval $(docker-machine env)
|
||||
|
||||
<br>
|
||||
<a name="Find-Docker-IP-Address"></a>
|
||||
#### Find your Docker IP Address
|
||||
### Find your Docker IP Address
|
||||
|
||||
**On Windows & MAC:**
|
||||
|
||||
Run this command in your terminal:
|
||||
|
||||
```bash
|
||||
docker-machine ip default
|
||||
```
|
||||
@@ -725,36 +725,26 @@ If your Host name is different then `default`, you have to specify it (`docker-m
|
||||
|
||||
*(The default IP is 192.168.99.100)*
|
||||
|
||||
<br>
|
||||
|
||||
> **boot2docker** users: run `boot2docker ip` *(when boot2docker is up)*.
|
||||
|
||||
<br>
|
||||
**On Linux:**
|
||||
|
||||
1 - Run `ifconfig` in the terminal.
|
||||
|
||||
2 - In the result search for `docker0`, your IP address will be next to `inet addr`.
|
||||
|
||||
Example: (In this example your IP address is `172.17.0.1`).
|
||||
Run this command in your terminal:
|
||||
|
||||
```shell
|
||||
docker0 Link encap:Ethernet HWaddr 02:42:41:2d:c4:24
|
||||
inet addr:172.17.0.1 Bcast:0.0.0.0 Mask:255.255.0.0
|
||||
UP BROADCAST MULTICAST MTU:1500 Metric:1
|
||||
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
|
||||
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
|
||||
collisions:0 txqueuelen:0
|
||||
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
|
||||
ifconfig docker0 | grep 'inet' | cut -d: -f2 | awk '{ print $1}' | head -n1
|
||||
```
|
||||
>If you have an easier way to do it, share it with us.
|
||||
|
||||
|
||||
|
||||
*(The default IP is 172.17.0.1)*
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Use-custom-Domain"></a>
|
||||
#### Use custom Domain (instead of the Docker IP)
|
||||
### Use custom Domain (instead of the Docker IP)
|
||||
|
||||
Assuming your custom domain is `laravel.dev` and your current `Docker-IP` is `xxx.xxx.xxx.xxx`.
|
||||
|
||||
|
||||
@@ -32,6 +32,7 @@ services:
|
||||
- /var/lib/mariadb
|
||||
- /var/lib/redis
|
||||
- /var/lib/memcached
|
||||
- /var/lib/neo4j/data
|
||||
|
||||
### Nginx Server Container ##################################
|
||||
|
||||
@@ -60,8 +61,6 @@ services:
|
||||
MYSQL_USER: homestead
|
||||
MYSQL_PASSWORD: secret
|
||||
MYSQL_ROOT_PASSWORD: root
|
||||
links:
|
||||
- php-fpm
|
||||
|
||||
### PostgreSQL Container ####################################
|
||||
|
||||
@@ -75,8 +74,6 @@ services:
|
||||
POSTGRES_DB: homestead
|
||||
POSTGRES_USER: homestead
|
||||
POSTGRES_PASSWORD: secret
|
||||
links:
|
||||
- php-fpm
|
||||
|
||||
### MariaDB Container #######################################
|
||||
|
||||
@@ -91,8 +88,18 @@ services:
|
||||
MYSQL_USER: homestead
|
||||
MYSQL_PASSWORD: secret
|
||||
MYSQL_ROOT_PASSWORD: root
|
||||
links:
|
||||
- php-fpm
|
||||
|
||||
### Neo4j Container #########################################
|
||||
|
||||
neo4j:
|
||||
build: ./neo4j
|
||||
ports:
|
||||
- "7474:7474"
|
||||
- "1337:1337"
|
||||
environment:
|
||||
- NEO4J_AUTH=homestead:secret
|
||||
volumes_from:
|
||||
- data
|
||||
|
||||
### Redis Container #########################################
|
||||
|
||||
@@ -102,8 +109,6 @@ services:
|
||||
- data
|
||||
ports:
|
||||
- "6379:6379"
|
||||
links:
|
||||
- php-fpm
|
||||
|
||||
### Memcached Container #####################################
|
||||
|
||||
|
||||
7
neo4j/Dockerfile
Normal file
7
neo4j/Dockerfile
Normal file
@@ -0,0 +1,7 @@
|
||||
FROM tpires/neo4j
|
||||
|
||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||
|
||||
VOLUME /var/lib/neo4j/data
|
||||
|
||||
EXPOSE 7474 1337
|
||||
@@ -20,7 +20,7 @@ RUN add-apt-repository -y \
|
||||
ppa:ondrej/php
|
||||
|
||||
# Install PHP-CLI 7, some PHP extentions and some useful Tools with APT
|
||||
RUN apt-get update && apt-get install -y \
|
||||
RUN apt-get update && apt-get install -y --force-yes \
|
||||
php7.0-cli \
|
||||
php7.0-common \
|
||||
php7.0-curl \
|
||||
@@ -29,9 +29,11 @@ RUN apt-get update && apt-get install -y \
|
||||
php7.0-mbstring \
|
||||
php7.0-mcrypt \
|
||||
php7.0-mysql \
|
||||
php7.0-pgsql \
|
||||
php7.0-sqlite \
|
||||
php7.0-sqlite3 \
|
||||
php7.0-zip \
|
||||
php7.0-memcached \
|
||||
sqlite3 \
|
||||
libsqlite3-dev \
|
||||
git \
|
||||
@@ -61,10 +63,6 @@ RUN curl -s http://getcomposer.org/installer | php \
|
||||
&& mv composer.phar /usr/local/bin/ \
|
||||
&& echo "alias composer='/usr/local/bin/composer.phar'" >> ~/.bashrc
|
||||
|
||||
# Install the Laravel Installer
|
||||
RUN composer.phar global require "laravel/installer" \
|
||||
&& echo "export PATH='~/.composer/vendor/bin:$PATH'" >> ~/.bashrc
|
||||
|
||||
# Source the bash
|
||||
RUN . ~/.bashrc
|
||||
|
||||
|
||||
Reference in New Issue
Block a user