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 |
3
.gitignore
vendored
3
.gitignore
vendored
@ -1 +1,2 @@
|
|||||||
/logs
|
/logs
|
||||||
|
.env
|
136
README.md
136
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
|
||||||
@ -139,7 +141,7 @@ LaraDock and [Homestead](https://laravel.com/docs/master/homestead) both gives y
|
|||||||
|
|
||||||
- LaraDock is a tool that controls Docker for you (using Docker Compose official commands). And Docker manages you Virtual Containers.
|
- LaraDock is a tool that controls Docker for you (using Docker Compose official commands). And Docker manages you Virtual Containers.
|
||||||
|
|
||||||
Running a virtual Container is much faster than running a full virtual Machine.
|
Running a virtual Container is much faster than running a full virtual Machine.
|
||||||
<br>Thus **LaraDock is much faster than Homestead**.
|
<br>Thus **LaraDock is much faster than Homestead**.
|
||||||
|
|
||||||
|
|
||||||
@ -161,7 +163,7 @@ Running a virtual Container is much faster than running a full virtual Machine.
|
|||||||
<a name="Demo"></a>
|
<a name="Demo"></a>
|
||||||
## Demo Video
|
## Demo Video
|
||||||
|
|
||||||
What's better than a [**Demo Video**](https://www.youtube.com/watch?v=-DamFMczwDA) :)
|
What's better than a [**Demo Video**](https://www.youtube.com/watch?v=-DamFMczwDA) :)
|
||||||
|
|
||||||
<a name="Installation"></a>
|
<a name="Installation"></a>
|
||||||
## Installation
|
## Installation
|
||||||
@ -188,16 +190,15 @@ git clone https://github.com/LaraDock/laradock.git
|
|||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
|
|
||||||
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`.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -218,7 +223,7 @@ Supported Containers: `nginx`, `mysql`, `redis`, `postgres`, `mariadb`, `neo4j`,
|
|||||||
```bash
|
```bash
|
||||||
docker exec -it {Workspace-Container-Name} bash
|
docker exec -it {Workspace-Container-Name} bash
|
||||||
```
|
```
|
||||||
Replace `{Workspace-Container-Name}` with your Workspace container name.
|
Replace `{Workspace-Container-Name}` with your Workspace container name.
|
||||||
<br>
|
<br>
|
||||||
To find the containers names type `docker-compose ps`.
|
To find the containers names type `docker-compose ps`.
|
||||||
|
|
||||||
@ -301,7 +306,7 @@ docker-compose stop {container-name}
|
|||||||
docker-compose down
|
docker-compose down
|
||||||
```
|
```
|
||||||
|
|
||||||
*Note: Careful with this command as it will delete your Data Volume Container as well. (if you want to keep your Database data than you should stop each container by itself as follow):*
|
*Note: Careful with this command as it will delete your Data Volume Container as well. (if you want to keep your Database data than you should stop each container by itself as follow):*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -333,7 +338,7 @@ docker exec -it {container-name} bash
|
|||||||
### Edit default container configuration
|
### Edit default container configuration
|
||||||
Open the `docker-compose.yml` and change anything you want.
|
Open the `docker-compose.yml` and change anything you want.
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
|
|
||||||
Change MySQL Database Name:
|
Change MySQL Database Name:
|
||||||
|
|
||||||
@ -360,7 +365,7 @@ Change Redis defaut port to 1111:
|
|||||||
<a name="Edit-a-Docker-Image"></a>
|
<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,
|
1 - Find the `dockerfile` of the image you want to edit,
|
||||||
<br>
|
<br>
|
||||||
example for `mysql` it will be `mysql/Dockerfile`.
|
example for `mysql` it will be `mysql/Dockerfile`.
|
||||||
|
|
||||||
@ -419,7 +424,7 @@ To add an image (software), just edit the `docker-compose.yml` and add your cont
|
|||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="View-the-Log-files"></a>
|
<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.
|
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:
|
However to view the logs of all the other containers (MySQL, PHP-FPM,...) you can run this:
|
||||||
@ -459,7 +464,7 @@ For more about the Laravel installation click [here](https://laravel.com/docs/ma
|
|||||||
|
|
||||||
3 - Edit `docker-compose.yml` to Map the new application path:
|
3 - Edit `docker-compose.yml` to Map the new application path:
|
||||||
|
|
||||||
By default LaraDock assumes the Laravel application is living in the parent directory of the laradock folder.
|
By default LaraDock assumes the Laravel application is living in the parent directory of the laradock folder.
|
||||||
|
|
||||||
Since the new Laravel application is in the `my-cool-app` folder, we need to replace `../:/var/www/laravel` with `../my-cool-app/:/var/www/laravel`, as follow:
|
Since the new Laravel application is in the `my-cool-app` folder, we need to replace `../:/var/www/laravel` with `../my-cool-app/:/var/www/laravel`, as follow:
|
||||||
|
|
||||||
@ -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`.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -613,11 +665,11 @@ By default **PHP-FPM 7.0** is running.
|
|||||||
|
|
||||||
2 - Search for `Dockerfile-70` in the PHP container section.
|
2 - Search for `Dockerfile-70` in the PHP container section.
|
||||||
|
|
||||||
3 - Change the version number.
|
3 - Change the version number.
|
||||||
<br>
|
<br>
|
||||||
Example to select version 5.6 instead of 7.0 you have to replace `Dockerfile-70` with `Dockerfile-56`.
|
Example to select version 5.6 instead of 7.0 you have to replace `Dockerfile-70` with `Dockerfile-56`.
|
||||||
|
|
||||||
Sample:
|
Sample:
|
||||||
|
|
||||||
```txt
|
```txt
|
||||||
php-fpm:
|
php-fpm:
|
||||||
@ -709,9 +761,9 @@ eval $(docker-machine env)
|
|||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Find-Docker-IP-Address"></a>
|
<a name="Find-Docker-IP-Address"></a>
|
||||||
### Find your Docker IP Address
|
### Find your Docker IP Address
|
||||||
|
|
||||||
**On Windows & MAC:**
|
**On Windows & MAC:**
|
||||||
|
|
||||||
Run this command in your terminal:
|
Run this command in your terminal:
|
||||||
|
|
||||||
@ -727,7 +779,7 @@ If your Host name is different then `default`, you have to specify it (`docker-m
|
|||||||
> **boot2docker** users: run `boot2docker ip` *(when boot2docker is up)*.
|
> **boot2docker** users: run `boot2docker ip` *(when boot2docker is up)*.
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
**On Linux:**
|
**On Linux:**
|
||||||
|
|
||||||
Run this command in your terminal:
|
Run this command in your terminal:
|
||||||
|
|
||||||
@ -814,8 +866,22 @@ Additionally, you can contact Mahmoud Zalt (the creator of this project) via a d
|
|||||||
|
|
||||||
## Credits
|
## Credits
|
||||||
|
|
||||||
- [Mahmoud Zalt](https://github.com/Mahmoudz) (Twitter [@Mahmoud_Zalt](https://twitter.com/Mahmoud_Zalt))
|
**Creator:**
|
||||||
- [Awesome list of contributors](https://github.com/LaraDock/laradock/graphs/contributors)
|
|
||||||
|
- [Mahmoud Zalt](https://github.com/Mahmoudz) (Twitter [@Mahmoud_Zalt](https://twitter.com/Mahmoud_Zalt))
|
||||||
|
|
||||||
|
**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