Compare commits
33 Commits
Author | SHA1 | Date | |
---|---|---|---|
243392444f | |||
72a8fc049d | |||
de6db93da8 | |||
1af9dc5ac2 | |||
62878e7c49 | |||
3cd1f070e1 | |||
fb5ea7f42c | |||
aa8be6f95b | |||
aa0a726945 | |||
e5e04e4e18 | |||
44d8720400 | |||
f0200626ba | |||
69406db3e0 | |||
bcb749151a | |||
ca413edff4 | |||
f6d1d6f617 | |||
117382a050 | |||
2e930df2a7 | |||
4922c5fafd | |||
198c38f6cd | |||
8d216f83d5 | |||
05c5fcf216 | |||
fccee522c6 | |||
f3eb6a5fc4 | |||
685c34d12d | |||
ceba1af3ae | |||
c4100b5052 | |||
124a3553e6 | |||
3ff4aaca79 | |||
4c06a03ead | |||
1cb131ba36 | |||
1090bb4db6 | |||
9c7054abe2 |
1
.gitignore
vendored
1
.gitignore
vendored
@ -1 +1,2 @@
|
|||||||
/logs
|
/logs
|
||||||
|
.env
|
106
README.md
106
README.md
@ -40,6 +40,7 @@ It's like Laravel Homestead but for Docker instead of Vagrant.
|
|||||||
- [Install Laravel from a Docker Container](#Install-Laravel)
|
- [Install Laravel from a Docker Container](#Install-Laravel)
|
||||||
- [Run Artisan Commands](#Run-Artisan-Commands)
|
- [Run Artisan Commands](#Run-Artisan-Commands)
|
||||||
- [Use Redis](#Use-Redis)
|
- [Use Redis](#Use-Redis)
|
||||||
|
- [Use Mongo](#Use-Mongo)
|
||||||
- [PHP](#PHP)
|
- [PHP](#PHP)
|
||||||
- [Install PHP Extensions](#Install-PHP-Extensions)
|
- [Install PHP Extensions](#Install-PHP-Extensions)
|
||||||
- [Change the PHP-FPM Version](#Change-the-PHP-FPM-Version)
|
- [Change the PHP-FPM Version](#Change-the-PHP-FPM-Version)
|
||||||
@ -92,6 +93,7 @@ docker-compose up nginx mysql redis
|
|||||||
- PostgreSQL
|
- PostgreSQL
|
||||||
- MariaDB
|
- MariaDB
|
||||||
- Neo4j
|
- Neo4j
|
||||||
|
- MongoDB
|
||||||
- Redis
|
- Redis
|
||||||
- Memcached
|
- Memcached
|
||||||
- Beanstalkd
|
- Beanstalkd
|
||||||
@ -189,15 +191,14 @@ git clone https://github.com/LaraDock/laradock.git
|
|||||||
|
|
||||||
|
|
||||||
1 - For **Windows & MAC** users only: If you are not using the native Docker-Engine `Beta`, make sure you have a running Docker Virtual Host on your machine.
|
1 - For **Windows & MAC** users only: If you are not using the native Docker-Engine `Beta`, make sure you have a running Docker Virtual Host on your machine.
|
||||||
|
[How to run a Docker Virtual Host?](#Run-Docker-Virtual-Host)
|
||||||
(**Linux** users don't need a Virtual Host, so skip this step).
|
(**Linux** users don't need a Virtual Host, so skip this step).
|
||||||
|
|
||||||
[How to run a Docker Virtual Host?](#Run-Docker-Virtual-Host)
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
2 - Run the Containers, (you can select the containers that you wish to run)
|
2 - Run some Containers: *(Make sure you are in the `laradock` folder before running the `docker-compose` commands).*
|
||||||
<br>
|
|
||||||
*Make sure you are in the `laradock` folder before running the `docker-compose` command.*
|
|
||||||
|
|
||||||
**Example:** Running NGINX and MySQL:
|
**Example:** Running NGINX and MySQL:
|
||||||
|
|
||||||
@ -205,10 +206,14 @@ git clone https://github.com/LaraDock/laradock.git
|
|||||||
docker-compose up -d nginx mysql
|
docker-compose up -d nginx mysql
|
||||||
```
|
```
|
||||||
|
|
||||||
*Note: the PHP-FPM, Workspace, Application and Data Containers will automatically run.*
|
You can select your own combination of container form this list:
|
||||||
|
|
||||||
|
`nginx`, `mysql`, `redis`, `postgres`, `mariadb`, `neo4j`, `mongo`, `memcached`, `beanstalkd`, `beanstalkd-console`, `workspace`, `data`, `php-fpm`, `application`.
|
||||||
|
|
||||||
|
|
||||||
|
**Note**: `workspace`, `data`, `php-fpm` and `application` will run automatically in most of the cases.
|
||||||
|
|
||||||
|
|
||||||
Supported Containers: `nginx`, `mysql`, `redis`, `postgres`, `mariadb`, `neo4j`, `memcached`, `beanstalkd`, `beanstalkd-console`, `workspace`, `data`, `php-fpm`, `application`.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -512,22 +517,16 @@ Composer update
|
|||||||
```bash
|
```bash
|
||||||
phpunit
|
phpunit
|
||||||
```
|
```
|
||||||
```bash
|
|
||||||
laravel new blog
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Use-Redis"></a>
|
<a name="Use-Redis"></a>
|
||||||
### Use Redis
|
### Use Redis
|
||||||
|
|
||||||
1 - First make sure you run the Redis Container with the `docker-compose` command.
|
1 - First make sure you run the Redis Container (`redis`) with the `docker-compose up` command.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose up -d redis
|
||||||
|
```
|
||||||
|
|
||||||
2 - Open your Laravel's `.env` file and set the `REDIS_HOST` to your `Docker-IP` instead of the default `127.0.0.1` IP.
|
2 - Open your Laravel's `.env` file and set the `REDIS_HOST` to your `Docker-IP` instead of the default `127.0.0.1` IP.
|
||||||
|
|
||||||
@ -555,7 +554,7 @@ CACHE_DRIVER=redis
|
|||||||
SESSION_DRIVER=redis
|
SESSION_DRIVER=redis
|
||||||
```
|
```
|
||||||
|
|
||||||
4 - Finally make sure you have the `predis/predis` package `(~1.0)` installed via Composer first.
|
4 - Finally make sure you have the `predis/predis` package `(~1.0)` installed via Composer:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
composer require predis/predis:^1.0
|
composer require predis/predis:^1.0
|
||||||
@ -571,6 +570,59 @@ composer require predis/predis:^1.0
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<a name="Use-Mongo"></a>
|
||||||
|
### Use Mongo
|
||||||
|
|
||||||
|
1 - First make sure you run the MongoDB Container (`mongo`) with the `docker-compose up` command.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose up -d mongo
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
2 - Add the MongoDB configurations to the `config/database.php` config file:
|
||||||
|
|
||||||
|
```php
|
||||||
|
'connections' => [
|
||||||
|
|
||||||
|
'mongodb' => [
|
||||||
|
'driver' => 'mongodb',
|
||||||
|
'host' => env('DB_HOST', 'localhost'),
|
||||||
|
'port' => env('DB_PORT', 27017),
|
||||||
|
'database' => env('DB_DATABASE', 'database'),
|
||||||
|
'username' => '',
|
||||||
|
'password' => '',
|
||||||
|
'options' => [
|
||||||
|
'database' => '',
|
||||||
|
]
|
||||||
|
],
|
||||||
|
|
||||||
|
// ...
|
||||||
|
|
||||||
|
],
|
||||||
|
```
|
||||||
|
|
||||||
|
3 - Open your Laravel's `.env` file and update the following variables:
|
||||||
|
|
||||||
|
- set the `DB_HOST` to your `Docker-IP`.
|
||||||
|
- set the `DB_PORT` to `27017`.
|
||||||
|
- set the `DB_DATABASE` to `database`.
|
||||||
|
|
||||||
|
|
||||||
|
4 - Finally make sure you have the `jenssegers/mongodb` package installed via Composer and its Service Provider is added.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
composer require jenssegers/mongodb
|
||||||
|
```
|
||||||
|
More details about this [here](https://github.com/jenssegers/laravel-mongodb#installation).
|
||||||
|
|
||||||
|
5 - Test it:
|
||||||
|
|
||||||
|
- First let your Models extend from the Mongo Eloquent Model. Check the [documentation](https://github.com/jenssegers/laravel-mongodb#eloquent).
|
||||||
|
- Enter the Workspace Container `docker exec -it laradock_workspace_1 bash`.
|
||||||
|
- Migrate the Database `php artisan migrate`.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -814,8 +866,22 @@ Additionally, you can contact Mahmoud Zalt (the creator of this project) via a d
|
|||||||
|
|
||||||
## Credits
|
## Credits
|
||||||
|
|
||||||
|
**Creator:**
|
||||||
|
|
||||||
- [Mahmoud Zalt](https://github.com/Mahmoudz) (Twitter [@Mahmoud_Zalt](https://twitter.com/Mahmoud_Zalt))
|
- [Mahmoud Zalt](https://github.com/Mahmoudz) (Twitter [@Mahmoud_Zalt](https://twitter.com/Mahmoud_Zalt))
|
||||||
- [Awesome list of contributors](https://github.com/LaraDock/laradock/graphs/contributors)
|
|
||||||
|
**Main Contributors:**
|
||||||
|
|
||||||
|
- [Bo-Yi Wu](https://github.com/appleboy)
|
||||||
|
- [Amin Mkh](https://github.com/AminMkh)
|
||||||
|
- [Matthew Tonkin Dunn](https://github.com/mattythebatty)
|
||||||
|
- [Benmag](https://github.com/benmag)
|
||||||
|
|
||||||
|
**Awesome People:**
|
||||||
|
|
||||||
|
- [Contributors](https://github.com/LaraDock/laradock/graphs/contributors)
|
||||||
|
- [Supporters](https://github.com/LaraDock/laradock/issues?utf8=%E2%9C%93&q=)
|
||||||
|
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
|
@ -31,8 +31,9 @@ services:
|
|||||||
- /var/lib/postgres:/var/lib/postgres
|
- /var/lib/postgres:/var/lib/postgres
|
||||||
- /var/lib/mariadb:/var/lib/mariadb
|
- /var/lib/mariadb:/var/lib/mariadb
|
||||||
- /var/lib/memcached:/var/lib/memcached
|
- /var/lib/memcached:/var/lib/memcached
|
||||||
- /var/lib/neo4j:/var/lib/neo4j/data
|
|
||||||
- /var/lib/redis:/data
|
- /var/lib/redis:/data
|
||||||
|
- /var/lib/neo4j:/var/lib/neo4j/data
|
||||||
|
- /var/lib/mongo:/data/db
|
||||||
|
|
||||||
### Nginx Server Container ##################################
|
### Nginx Server Container ##################################
|
||||||
|
|
||||||
@ -101,6 +102,15 @@ services:
|
|||||||
volumes_from:
|
volumes_from:
|
||||||
- data
|
- data
|
||||||
|
|
||||||
|
### MongoDB Container #######################################
|
||||||
|
|
||||||
|
mongo:
|
||||||
|
build: ./mongo
|
||||||
|
ports:
|
||||||
|
- "27017:27017"
|
||||||
|
volumes_from:
|
||||||
|
- data
|
||||||
|
|
||||||
### Redis Container #########################################
|
### Redis Container #########################################
|
||||||
|
|
||||||
redis:
|
redis:
|
||||||
@ -143,7 +153,10 @@ services:
|
|||||||
### Workspace Utilities Container ###########################
|
### Workspace Utilities Container ###########################
|
||||||
|
|
||||||
workspace:
|
workspace:
|
||||||
build: ./workspace
|
build:
|
||||||
|
context: ./workspace
|
||||||
|
args:
|
||||||
|
INSTALL_PRESTISSIMO: ${INSTALL_PRESTISSIMO}
|
||||||
volumes_from:
|
volumes_from:
|
||||||
- application
|
- application
|
||||||
tty: true
|
tty: true
|
||||||
|
12
mongo/Dockerfile
Normal file
12
mongo/Dockerfile
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
FROM mongo:latest
|
||||||
|
|
||||||
|
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||||
|
|
||||||
|
#COPY mongo.conf /usr/local/etc/mongo/mongo.conf
|
||||||
|
|
||||||
|
VOLUME /data/db /data/configdb
|
||||||
|
|
||||||
|
CMD ["mongod"]
|
||||||
|
|
||||||
|
EXPOSE 27017
|
||||||
|
|
@ -9,13 +9,29 @@ RUN apt-get update && apt-get install -y \
|
|||||||
libpq-dev \
|
libpq-dev \
|
||||||
libmemcached-dev \
|
libmemcached-dev \
|
||||||
curl \
|
curl \
|
||||||
|
libpng12-dev \
|
||||||
|
libfreetype6-dev \
|
||||||
|
libssl-dev \
|
||||||
|
libmcrypt-dev \
|
||||||
--no-install-recommends \
|
--no-install-recommends \
|
||||||
&& rm -r /var/lib/apt/lists/*
|
&& rm -r /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# install mcrypt library
|
||||||
|
RUN docker-php-ext-install mcrypt
|
||||||
|
|
||||||
|
# Install mongodb driver
|
||||||
|
RUN pecl install mongodb
|
||||||
|
|
||||||
|
# configure gd library
|
||||||
|
RUN docker-php-ext-configure gd \
|
||||||
|
--enable-gd-native-ttf \
|
||||||
|
--with-freetype-dir=/usr/include/freetype2
|
||||||
|
|
||||||
# Install extensions using the helper script provided by the base image
|
# Install extensions using the helper script provided by the base image
|
||||||
RUN docker-php-ext-install \
|
RUN docker-php-ext-install \
|
||||||
pdo_mysql \
|
pdo_mysql \
|
||||||
pdo_pgsql
|
pdo_pgsql \
|
||||||
|
gd
|
||||||
|
|
||||||
# Install memcached
|
# Install memcached
|
||||||
RUN pecl install memcached \
|
RUN pecl install memcached \
|
||||||
|
@ -9,13 +9,29 @@ RUN apt-get update && apt-get install -y \
|
|||||||
libpq-dev \
|
libpq-dev \
|
||||||
libmemcached-dev \
|
libmemcached-dev \
|
||||||
curl \
|
curl \
|
||||||
|
libpng12-dev \
|
||||||
|
libfreetype6-dev \
|
||||||
|
libssl-dev \
|
||||||
|
libmcrypt-dev \
|
||||||
--no-install-recommends \
|
--no-install-recommends \
|
||||||
&& rm -r /var/lib/apt/lists/*
|
&& rm -r /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# install mcrypt library
|
||||||
|
RUN docker-php-ext-install mcrypt
|
||||||
|
|
||||||
|
# Install mongodb driver
|
||||||
|
RUN pecl install mongodb
|
||||||
|
|
||||||
|
# configure gd library
|
||||||
|
RUN docker-php-ext-configure gd \
|
||||||
|
--enable-gd-native-ttf \
|
||||||
|
--with-freetype-dir=/usr/include/freetype2
|
||||||
|
|
||||||
# Install extensions using the helper script provided by the base image
|
# Install extensions using the helper script provided by the base image
|
||||||
RUN docker-php-ext-install \
|
RUN docker-php-ext-install \
|
||||||
pdo_mysql \
|
pdo_mysql \
|
||||||
pdo_pgsql
|
pdo_pgsql \
|
||||||
|
gd
|
||||||
|
|
||||||
# Install memcached
|
# Install memcached
|
||||||
RUN pecl install memcached \
|
RUN pecl install memcached \
|
||||||
|
@ -9,13 +9,29 @@ RUN apt-get update && apt-get install -y \
|
|||||||
libpq-dev \
|
libpq-dev \
|
||||||
libmemcached-dev \
|
libmemcached-dev \
|
||||||
curl \
|
curl \
|
||||||
|
libpng12-dev \
|
||||||
|
libfreetype6-dev \
|
||||||
|
libssl-dev \
|
||||||
|
libmcrypt-dev \
|
||||||
--no-install-recommends \
|
--no-install-recommends \
|
||||||
&& rm -r /var/lib/apt/lists/*
|
&& rm -r /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# install mcrypt library
|
||||||
|
RUN docker-php-ext-install mcrypt
|
||||||
|
|
||||||
|
# Install mongodb driver
|
||||||
|
RUN pecl install mongodb
|
||||||
|
|
||||||
|
# configure gd library
|
||||||
|
RUN docker-php-ext-configure gd \
|
||||||
|
--enable-gd-native-ttf \
|
||||||
|
--with-freetype-dir=/usr/include/freetype2
|
||||||
|
|
||||||
# Install extensions using the helper script provided by the base image
|
# Install extensions using the helper script provided by the base image
|
||||||
RUN docker-php-ext-install \
|
RUN docker-php-ext-install \
|
||||||
pdo_mysql \
|
pdo_mysql \
|
||||||
pdo_pgsql
|
pdo_pgsql \
|
||||||
|
gd
|
||||||
|
|
||||||
# Install Memcached for php 7
|
# Install Memcached for php 7
|
||||||
RUN curl -L -o /tmp/memcached.tar.gz "https://github.com/php-memcached-dev/php-memcached/archive/php7.tar.gz" \
|
RUN curl -L -o /tmp/memcached.tar.gz "https://github.com/php-memcached-dev/php-memcached/archive/php7.tar.gz" \
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
date.timezone=UTC
|
date.timezone=UTC
|
||||||
display_errors=Off
|
display_errors=Off
|
||||||
log_errors=On
|
log_errors=On
|
||||||
|
extension=mongodb.so
|
||||||
|
@ -34,37 +34,52 @@ RUN apt-get update && apt-get install -y --force-yes \
|
|||||||
php7.0-sqlite3 \
|
php7.0-sqlite3 \
|
||||||
php7.0-zip \
|
php7.0-zip \
|
||||||
php7.0-memcached \
|
php7.0-memcached \
|
||||||
|
php7.0-gd \
|
||||||
|
php7.0-xdebug \
|
||||||
|
php-dev \
|
||||||
|
libcurl4-openssl-dev \
|
||||||
|
libedit-dev \
|
||||||
|
libssl-dev \
|
||||||
|
libxml2-dev \
|
||||||
|
xz-utils \
|
||||||
sqlite3 \
|
sqlite3 \
|
||||||
libsqlite3-dev \
|
libsqlite3-dev \
|
||||||
git \
|
git \
|
||||||
curl \
|
curl \
|
||||||
vim \
|
vim \
|
||||||
nano \
|
nano
|
||||||
nodejs \
|
|
||||||
nodejs-dev \
|
|
||||||
npm
|
|
||||||
|
|
||||||
# Clean up, to free some space
|
# Clean up, to free some space
|
||||||
RUN apt-get clean
|
RUN apt-get clean
|
||||||
|
|
||||||
# Install gulp and bower with NPM
|
# remove load xdebug extension (only load on phpunit command)
|
||||||
RUN npm install -g \
|
RUN sed -i 's/^/;/g' /etc/php/7.0/cli/conf.d/20-xdebug.ini
|
||||||
gulp \
|
|
||||||
bower
|
|
||||||
|
|
||||||
# Link the global gulp to be used locally
|
# Add bin folder of composer to PATH.
|
||||||
RUN npm link gulp
|
RUN echo "export PATH=${PATH}:/var/www/laravel/vendor/bin" >> ~/.bashrc
|
||||||
|
|
||||||
# Add a symbolic link for Node
|
|
||||||
RUN ln -s /usr/bin/nodejs /usr/bin/node
|
|
||||||
|
|
||||||
# Add an alias for PHPUnit
|
|
||||||
RUN echo "alias phpunit='./vendor/bin/phpunit'" >> ~/.bashrc
|
|
||||||
|
|
||||||
# Install Composer
|
# Install Composer
|
||||||
RUN curl -s http://getcomposer.org/installer | php \
|
RUN curl -s http://getcomposer.org/installer | php \
|
||||||
&& mv composer.phar /usr/local/bin/ \
|
&& mv composer.phar /usr/local/bin/composer
|
||||||
&& echo "alias composer='/usr/local/bin/composer.phar'" >> ~/.bashrc
|
|
||||||
|
# Load xdebug Zend extension with phpunit command
|
||||||
|
RUN echo "alias phpunit='php -dzend_extension=xdebug.so /var/www/laravel/vendor/bin/phpunit'" >> ~/.bashrc
|
||||||
|
|
||||||
|
# Install mongodb extension
|
||||||
|
RUN pecl install mongodb
|
||||||
|
RUN echo "extension=mongodb.so" >> /etc/php/7.0/cli/php.ini
|
||||||
|
|
||||||
|
# Install nvm (Node Version Manager)
|
||||||
|
RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.1/install.sh | bash
|
||||||
|
|
||||||
|
ENV NVM_DIR=/root/.nvm
|
||||||
|
|
||||||
|
# Install stable node
|
||||||
|
RUN . ~/.nvm/nvm.sh \
|
||||||
|
&& nvm install stable \
|
||||||
|
&& nvm use stable \
|
||||||
|
&& nvm alias stable \
|
||||||
|
&& npm install -g gulp bower
|
||||||
|
|
||||||
# Source the bash
|
# Source the bash
|
||||||
RUN . ~/.bashrc
|
RUN . ~/.bashrc
|
||||||
@ -73,3 +88,9 @@ RUN . ~/.bashrc
|
|||||||
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||||
|
|
||||||
WORKDIR /var/www/laravel
|
WORKDIR /var/www/laravel
|
||||||
|
|
||||||
|
# Install optional software
|
||||||
|
ARG INSTALL_PRESTISSIMO=false
|
||||||
|
RUN if [ "$INSTALL_PRESTISSIMO" = true ] ; then \
|
||||||
|
composer global require "hirak/prestissimo:^0.3"; \
|
||||||
|
fi
|
Reference in New Issue
Block a user