Compare commits
31 Commits
Author | SHA1 | Date | |
---|---|---|---|
68aca9f8f9 | |||
6d0ecaecf4 | |||
a434588a66 | |||
5aa01b1757 | |||
3b2831bf1d | |||
7171996843 | |||
66f08a4f60 | |||
07a07ab3ac | |||
fb4fcdcb23 | |||
a69681b07c | |||
2c05c87400 | |||
16a1041ef5 | |||
5ef193d55b | |||
4d8a798224 | |||
1574231a80 | |||
6eb3a9bd5f | |||
377f24fe2b | |||
51b6d4f844 | |||
97500508f5 | |||
7dcf481d21 | |||
efd062fd88 | |||
504c9c59d5 | |||
4edf941872 | |||
36b49f5ae2 | |||
e49836ba90 | |||
84f766363d | |||
03c991c89d | |||
fdba7e7c09 | |||
405067d4af | |||
7f4e411d3d | |||
e946573d75 |
279
README.md
279
README.md
@ -29,13 +29,13 @@ It's like Laravel Homestead but for Docker instead of Vagrant.
|
||||
- [Close all running Containers](#Close-all-running-Containers)
|
||||
- [Delete all existing Containers](#Delete-all-existing-Containers)
|
||||
- [Build/Re-build Containers](#Build-Re-build-Containers)
|
||||
- [Use Redis](#Use-Redis)
|
||||
- [Change the PHP Version](#Change-the-PHP-Version)
|
||||
- [Add/Remove a Docker Container](#AddRemove-a-Docker-Container)
|
||||
- [Add more Software's (Docker Images)](#Add-Docker-Images)
|
||||
- [Edit default container configuration](#Edit-Container)
|
||||
- [Use custom Domain](Use-custom-Domain)
|
||||
- [View the Log files](#View-the-Log-files)
|
||||
- [Use Redis](#Use-Redis)
|
||||
- [Enter a Container (SSH into a running Container)](#Enter-Container)
|
||||
- [Edit a Docker Image](#Edit-a-Docker-Image)
|
||||
- [Run a Docker Virtual Host](#Run-Docker-Virtual-Host)
|
||||
@ -52,22 +52,50 @@ 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.
|
||||
|
||||
|
||||
**Usage Overview:** Run `NGINX` and `MySQL`.
|
||||
|
||||
```shell
|
||||
docker-compose up nginx mysql
|
||||
```
|
||||
|
||||
<a name="features"></a>
|
||||
### Features
|
||||
|
||||
- Easy switch between PHP versions: 7.0 - 5.6 - 5.5 - ...
|
||||
- Choose your favorite database engine: MySQL - Postgres - Redis - ...
|
||||
- Run your own combination of software's: PHP - NGINX - MySQL - ...
|
||||
- Every software runs on a separate container: PHP - NGINX - ...
|
||||
- Easy switch between PHP versions: 7.0 - 5.6 - 5.5 ...
|
||||
- Choose your favorite database engine: MySQL - Postgres - Redis ...
|
||||
- Run your own combination of software's: Memcached - MariaDB ...
|
||||
- Every software runs on a separate container: PHP-FPM - NGINX ...
|
||||
- Easy to customize any container, with simple edit to the `dockerfile`.
|
||||
- All Images extends from an official base Image. (Trusted base Images).
|
||||
- Pre-configured Nginx for Laravel. And very easy to update.
|
||||
- Using of a Data container, to keep the Data safe and accessible at anytime.
|
||||
- Pre-configured Nginx for Laravel.
|
||||
- Data container, to keep Data safe and accessible.
|
||||
- Easy to apply configurations inside containers.
|
||||
- Clean and well structured Dockerfiles (`dockerfile`).
|
||||
- Latest version of the Docker Compose file (`docker-compose`).
|
||||
- Everything is visible and editable.
|
||||
- Best practices everywhere.
|
||||
|
||||
|
||||
<a name="Supported-Containers"></a>
|
||||
## Supported Containers
|
||||
|
||||
- PHP-FPM (7.0 - 5.6 - 5.5)
|
||||
- NGINX
|
||||
- MySQL
|
||||
- PostgreSQL
|
||||
- MariaDB
|
||||
- Redis
|
||||
- Memcached
|
||||
- Beanstalkd
|
||||
- Beanstalkd Console
|
||||
- Workspace (includes: Composer, PHP7-CLI, Laravel Installer, Git, Vim, Nano and cURL)
|
||||
- Data Volume *(Databases Data Container)*
|
||||
- Application *(Application Code Container)*
|
||||
|
||||
|
||||
>If you can't find your container, build it yourself and add it to this list. Contributions are welcomed :)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="what-is-docker"></a>
|
||||
@ -105,22 +133,6 @@ LaraDock and [Homestead](https://laravel.com/docs/master/homestead) both gives y
|
||||
Running a virtual Container is much faster than running a full virtual Machine.
|
||||
<br>Thus **LaraDock is much faster than Homestead**.
|
||||
|
||||
<a name="Supported-Containers"></a>
|
||||
## Supported Containers
|
||||
|
||||
- PHP (7.0 - 5.6 - 5.5)
|
||||
- NGINX
|
||||
- MySQL
|
||||
- PostgreSQL
|
||||
- MariaDB
|
||||
- Redis
|
||||
- Memcached
|
||||
- Beanstalkd
|
||||
- Beanstalkd Console
|
||||
- Data Volume
|
||||
|
||||
Cannot find your container! we would love to have it as well. Consider contributing your container and adding it to this list.
|
||||
|
||||
|
||||
|
||||
<a name="Requirements"></a>
|
||||
@ -130,26 +142,67 @@ Cannot find your container! we would love to have it as well. Consider contribut
|
||||
|-----------------------------------------------------------------------------------------|---------------------------------------------------------|
|
||||
| [Laravel](https://laravel.com/docs/master/installation) | [Laravel](https://laravel.com/docs/master/installation) |
|
||||
| [Git](https://git-scm.com/downloads) | [Git](https://git-scm.com/downloads) |
|
||||
| [Docker Engine](https://docs.docker.com/engine/installation/linux/ubuntulinux/#install) | [Docker Toolbox](https://www.docker.com/toolbox) |
|
||||
| [Docker Engine](https://docs.docker.com/engine/installation/linux/ubuntulinux) | [Docker Toolbox](https://www.docker.com/toolbox) |
|
||||
| [Docker Compose](https://docs.docker.com/compose/install) | |
|
||||
|
||||
|
||||
<a name="Installation"></a>
|
||||
## Installation
|
||||
|
||||
1 - Clone the `LaraDock` repository, in any of your `Laravel` projects:
|
||||
#### A - In existing Laravel Projects:
|
||||
|
||||
1 - Clone the `LaraDock` repository, inside your `Laravel` project root direcotry:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/LaraDock/laradock.git docker
|
||||
git submodule add https://github.com/LaraDock/laradock.git
|
||||
```
|
||||
|
||||
You can use `git submodule add` instead of `git clone` if you are already using Git for your Laravel project *(Recommended)*:
|
||||
2 - That's it, jump to the Usage section now.
|
||||
|
||||
*If you are not already using Git for your Laravel project, you can use `git clone` instead of `git submodule`.*
|
||||
|
||||
|
||||
#### B - From scratch (Install LaraDock and Laravel):
|
||||
|
||||
*If you don't have any Laravel project yet, and you want to start your Laravel project with Docker.*
|
||||
|
||||
1 - Clone the `LaraDock` repository anywhere on your machine:
|
||||
|
||||
```bash
|
||||
git submodule add https://github.com/LaraDock/laradock.git docker
|
||||
git clone https://github.com/LaraDock/laradock.git
|
||||
```
|
||||
|
||||
>These commands should create a `docker` folder, on the root directory of your Laravel project.
|
||||
2 - Go to the Uage section below and do the steps 1 and 3 then come back here.
|
||||
|
||||
3 - Enter the Workspace container. (assuming you have the Workspace container running):
|
||||
|
||||
```bash
|
||||
docker exec -it {Workspace-Container-Name} bash
|
||||
```
|
||||
Replace `{Workspace-Container-Name}` with your Workspace container name. To get the name type `docker-compose ps` and copy it.
|
||||
|
||||
4 - Install Laravel anyway you like.
|
||||
|
||||
Example using the Laravel Installer:
|
||||
|
||||
```bash
|
||||
laravel new my-cool-app
|
||||
```
|
||||
For more about this check out this [link](https://laravel.com/docs/master#installing-laravel).
|
||||
|
||||
5 - 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.
|
||||
|
||||
Since the new Laravel application is in the `my-cool-app` folder, we should replace `../:/var/www/laravel` with `../my-cool-app/:/var/www/laravel`, as follow:
|
||||
|
||||
```yaml
|
||||
application:
|
||||
build: ./application
|
||||
volumes:
|
||||
- ../my-cool-app/:/var/www/laravel
|
||||
```
|
||||
6 - finally go to the Usage section below again and do steps 2 and 4.
|
||||
|
||||
|
||||
|
||||
@ -157,14 +210,14 @@ git submodule add https://github.com/LaraDock/laradock.git docker
|
||||
<a name="Usage"></a>
|
||||
## Usage
|
||||
|
||||
0 - For **Windows & MAC** users only: make sure you have a running Docker Virtual Host on your machine.
|
||||
1 - For **Windows & MAC** users only: make sure you have a running Docker Virtual Host on your machine.
|
||||
(**Linux** users don't need a Virtual Host, so skip this step).
|
||||
<br>
|
||||
[How to run a Docker Virtual Host?](#Run-Docker-Virtual-Host)
|
||||
|
||||
|
||||
<br>
|
||||
1 - Open your Laravel's `.env` file and set the `DB_HOST` to your `{Docker-IP}`:
|
||||
2 - Open your Laravel's `.env` file and set the `DB_HOST` to your `{Docker-IP}`:
|
||||
|
||||
```env
|
||||
DB_HOST=xxx.xxx.xxx.xxx
|
||||
@ -172,28 +225,22 @@ DB_HOST=xxx.xxx.xxx.xxx
|
||||
[How to find my Docker IP Address?](#Find-Docker-IP-Address)
|
||||
|
||||
<br>
|
||||
2 - Run the Containers, (you can select the software's (containers) that you wish to run)
|
||||
3 - Run the Containers, (you can select the software's (containers) that you wish to run)
|
||||
<br>
|
||||
*Make sure you are in the `docker` folder before running the `docker-compose` command.*
|
||||
*Make sure you are in the `laradock` folder before running the `docker-compose` command.*
|
||||
|
||||
> Running PHP, NGINX and MySQL:
|
||||
**Example:** Running NGINX, MySQL, Redis and the Workspace:
|
||||
|
||||
```bash
|
||||
docker-compose up -d php nginx mysql redis
|
||||
docker-compose up -d nginx mysql redis workspace
|
||||
```
|
||||
*Note: the PHP-FPM, Application and Data Containers will automatically run.*
|
||||
|
||||
Note: you can choose your own combination of software's (containers), another example:
|
||||
|
||||
> Running PHP, NGINX, Postgres and Redis:
|
||||
|
||||
```bash
|
||||
docker-compose up -d php nginx beanstalkd postgres
|
||||
```
|
||||
|
||||
Supported Containers: `nginx`, `mysql`, `redis`, `postgres`, `mariadb`, `Memcached`, `beanstalkd`, `beanstalkd-console`, `data`, `php`.
|
||||
Supported Containers: `workspace`, `nginx`, `mysql`, `redis`, `postgres`, `mariadb`, `memcached`, `beanstalkd`, `beanstalkd-console`, `data`, `php-fpm`, `application`.
|
||||
|
||||
<br>
|
||||
3 - Open your browser and visit your `{Docker-IP}` address (`http://xxx.xxx.xxx.xxx`).
|
||||
4 - Open your browser and visit your `{Docker-IP}` address (`http://xxx.xxx.xxx.xxx`).
|
||||
|
||||
|
||||
<br>
|
||||
@ -220,6 +267,12 @@ sudo chmod -R 777 storage && sudo chmod -R 777 bootstrap/cache
|
||||
```bash
|
||||
docker ps
|
||||
```
|
||||
You can also use the this command if you want to see only this project containers:
|
||||
|
||||
```bash
|
||||
docker-compose ps
|
||||
```
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Close-all-running-Containers"></a>
|
||||
@ -240,7 +293,7 @@ docker-compose stop {container-name}
|
||||
<a name="Delete-all-existing-Containers"></a>
|
||||
#### Delete all existing Containers
|
||||
```bash
|
||||
docker-compose rm -f
|
||||
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):*
|
||||
@ -264,50 +317,6 @@ docker-compose build {container-name}
|
||||
```
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Use-Redis"></a>
|
||||
#### Use Redis
|
||||
|
||||
1 - First make sure you run the Redis Container with the `docker-compose` command.
|
||||
|
||||
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.
|
||||
|
||||
```env
|
||||
REDIS_HOST=xxx.xxx.xxx.xxx
|
||||
```
|
||||
|
||||
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 default `127.0.0.1` IP with your `Docker-IP` for Redis like this:
|
||||
|
||||
```php
|
||||
'redis' => [
|
||||
'cluster' => false,
|
||||
'default' => [
|
||||
'host' => 'xxx.xxx.xxx.xxx',
|
||||
'port' => 6379,
|
||||
'database' => 0,
|
||||
],
|
||||
],
|
||||
```
|
||||
|
||||
3 - To enable Redis Caching and/or for Sessions Management. Also from the `.env` file set `CACHE_DRIVER` and `SESSION_DRIVER` to `redis` instead of the default `file`.
|
||||
|
||||
```env
|
||||
CACHE_DRIVER=redis
|
||||
SESSION_DRIVER=redis
|
||||
```
|
||||
|
||||
4 - Finally make sure you have the `predis/predis` package `(~1.0)` installed via Composer first.
|
||||
|
||||
```bash
|
||||
composer require predis/predis:^1.0
|
||||
```
|
||||
|
||||
5 - You can manually test it from Laravel with this code:
|
||||
|
||||
```php
|
||||
\Cache::store('redis')->put('LaraDock', 'Awesome', 10);
|
||||
```
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
@ -317,28 +326,38 @@ By default **PHP 7.0** is running.
|
||||
<br>
|
||||
To change the default PHP version:
|
||||
|
||||
1 - Open the `dockerfile` of the `php` folder.
|
||||
1 - Open the `docker-compose.yml`.
|
||||
|
||||
2 - Change the PHP version number in the first line,
|
||||
2 - Search for `Dockerfile-70` in the PHP container section.
|
||||
|
||||
3 - Change the version number.
|
||||
<br>
|
||||
Example to select version 5.6 instead of 7.0 you have to replace `Dockerfile-70` with `Dockerfile-56`.
|
||||
|
||||
Sample:
|
||||
|
||||
```txt
|
||||
FROM php:7.0-fpm
|
||||
php-fpm:
|
||||
build:
|
||||
context: ./php-fpm
|
||||
dockerfile: Dockerfile-70
|
||||
```
|
||||
|
||||
Supported Versions:
|
||||
|
||||
- For (PHP 7.0.*) use `php:7.0-fpm`
|
||||
- For (PHP 5.6.*) use `php:5.6-fpm`
|
||||
- For (PHP 5.5.*) use `php:5.5-fpm`
|
||||
- For (PHP 7.0.*) use `Dockerfile-70`
|
||||
- For (PHP 5.6.*) use `Dockerfile-56`
|
||||
- For (PHP 5.5.*) use `Dockerfile-55`
|
||||
|
||||
For more details visit the [official PHP docker images](https://hub.docker.com/_/php/).
|
||||
|
||||
3 - Finally rebuild the container
|
||||
4 - Finally rebuild the container
|
||||
|
||||
```bash
|
||||
docker-compose build php
|
||||
```
|
||||
|
||||
For more details about the PHP base image, visit the [official PHP docker images](https://hub.docker.com/_/php/).
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Add-Docker-Images"></a>
|
||||
@ -397,7 +416,7 @@ DB_HOST=xxx.xxx.xxx.xxx
|
||||
|
||||
Optionally you can define the server name in the nginx config file, like this:
|
||||
|
||||
```
|
||||
```conf
|
||||
server_name laravel.dev;
|
||||
```
|
||||
|
||||
@ -407,7 +426,63 @@ server_name laravel.dev;
|
||||
<br>
|
||||
<a name="View-the-Log-files"></a>
|
||||
#### View the Log files
|
||||
The Log files are stored in the `docker/logs` 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:
|
||||
|
||||
```bash
|
||||
docker logs {container-name}
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Use-Redis"></a>
|
||||
#### Use Redis
|
||||
|
||||
1 - First make sure you run the Redis Container with the `docker-compose` command.
|
||||
|
||||
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.
|
||||
|
||||
```env
|
||||
REDIS_HOST=xxx.xxx.xxx.xxx
|
||||
```
|
||||
|
||||
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 default `127.0.0.1` IP with your `Docker-IP` for Redis like this:
|
||||
|
||||
```php
|
||||
'redis' => [
|
||||
'cluster' => false,
|
||||
'default' => [
|
||||
'host' => 'xxx.xxx.xxx.xxx',
|
||||
'port' => 6379,
|
||||
'database' => 0,
|
||||
],
|
||||
],
|
||||
```
|
||||
|
||||
3 - To enable Redis Caching and/or for Sessions Management. Also from the `.env` file set `CACHE_DRIVER` and `SESSION_DRIVER` to `redis` instead of the default `file`.
|
||||
|
||||
```env
|
||||
CACHE_DRIVER=redis
|
||||
SESSION_DRIVER=redis
|
||||
```
|
||||
|
||||
4 - Finally make sure you have the `predis/predis` package `(~1.0)` installed via Composer first.
|
||||
|
||||
```bash
|
||||
composer require predis/predis:^1.0
|
||||
```
|
||||
|
||||
5 - You can manually test it from Laravel with this code:
|
||||
|
||||
```php
|
||||
\Cache::store('redis')->put('LaraDock', 'Awesome', 10);
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
@ -421,7 +496,7 @@ The Log files are stored in the `docker/logs` directory.
|
||||
2 - enter any container using:
|
||||
|
||||
```bash
|
||||
docker exec -it {container-name-or-id} bash
|
||||
docker exec -it {container-name} bash
|
||||
```
|
||||
3 - to exit a container, type `exit`.
|
||||
|
||||
@ -527,4 +602,4 @@ If you have any question, send me a direct message on LaraChat, my username is `
|
||||
## License
|
||||
|
||||
[MIT License (MIT)](https://github.com/laradock/laradock/blob/master/LICENSE)
|
||||
[]([]())
|
||||
[]([]())
|
||||
|
7
application/Dockerfile
Normal file
7
application/Dockerfile
Normal file
@ -0,0 +1,7 @@
|
||||
FROM debian:jessie
|
||||
|
||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||
|
||||
WORKDIR /var/www/laravel
|
||||
|
||||
CMD ["true"]
|
@ -2,30 +2,25 @@ version: '2'
|
||||
|
||||
services:
|
||||
|
||||
### Nginx Server Container ##################################
|
||||
### PHP-FPM Container #######################################
|
||||
|
||||
nginx:
|
||||
build: ./nginx
|
||||
php-fpm:
|
||||
build:
|
||||
context: ./php-fpm
|
||||
dockerfile: Dockerfile-70
|
||||
volumes_from:
|
||||
- php
|
||||
volumes:
|
||||
- ./logs/nginx/:/var/log/nginx
|
||||
ports:
|
||||
- "80:80"
|
||||
links:
|
||||
- php
|
||||
|
||||
### PHP Container ###########################################
|
||||
|
||||
php:
|
||||
build: ./php
|
||||
volumes:
|
||||
- ../:/var/www/laravel
|
||||
- ./logs/php/:/usr/local/var/log
|
||||
- application
|
||||
expose:
|
||||
- "9000"
|
||||
|
||||
### DATA Container ##########################################
|
||||
### Laravel Application Code Container ######################
|
||||
|
||||
application:
|
||||
build: ./application
|
||||
volumes:
|
||||
- ../:/var/www/laravel
|
||||
|
||||
### Databases Data Container ################################
|
||||
|
||||
data:
|
||||
build: ./data
|
||||
@ -36,6 +31,20 @@ services:
|
||||
- /var/lib/redis
|
||||
- /var/lib/memcached
|
||||
|
||||
### Nginx Server Container ##################################
|
||||
|
||||
nginx:
|
||||
build: ./nginx
|
||||
volumes_from:
|
||||
- application
|
||||
volumes:
|
||||
- ./logs/nginx/:/var/log/nginx
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
links:
|
||||
- php-fpm
|
||||
|
||||
### MySQL Container #########################################
|
||||
|
||||
mysql:
|
||||
@ -50,7 +59,7 @@ services:
|
||||
MYSQL_PASSWORD: secret
|
||||
MYSQL_ROOT_PASSWORD: root
|
||||
links:
|
||||
- php
|
||||
- php-fpm
|
||||
|
||||
### PostgreSQL Container ####################################
|
||||
|
||||
@ -65,7 +74,7 @@ services:
|
||||
POSTGRES_USER: homestead
|
||||
POSTGRES_PASSWORD: secret
|
||||
links:
|
||||
- php
|
||||
- php-fpm
|
||||
|
||||
### MariaDB Container #######################################
|
||||
|
||||
@ -81,7 +90,7 @@ services:
|
||||
MYSQL_PASSWORD: secret
|
||||
MYSQL_ROOT_PASSWORD: root
|
||||
links:
|
||||
- php
|
||||
- php-fpm
|
||||
|
||||
### Redis Container #########################################
|
||||
|
||||
@ -91,6 +100,19 @@ services:
|
||||
- data
|
||||
ports:
|
||||
- "6379:6379"
|
||||
links:
|
||||
- php-fpm
|
||||
|
||||
### Memcached Container #####################################
|
||||
|
||||
memcached:
|
||||
build: ./memcached
|
||||
volumes_from:
|
||||
- data
|
||||
ports:
|
||||
- "11211:11211"
|
||||
links:
|
||||
- php-fpm
|
||||
|
||||
### Beanstalkd Container ####################################
|
||||
|
||||
@ -99,8 +121,10 @@ services:
|
||||
ports:
|
||||
- "11300:11300"
|
||||
privileged: true
|
||||
links:
|
||||
- php-fpm
|
||||
|
||||
### Beanstalkd-Console Container ############################
|
||||
### Beanstalkd Console Container ############################
|
||||
|
||||
beanstalkd-console:
|
||||
build: ./beanstalkd-console
|
||||
@ -109,13 +133,12 @@ services:
|
||||
links:
|
||||
- beanstalkd
|
||||
|
||||
### Memcached Container #########################################
|
||||
### Workspace Utilities Container ###########################
|
||||
|
||||
memcached:
|
||||
build: ./memcached
|
||||
workspace:
|
||||
build: ./workspace
|
||||
volumes_from:
|
||||
- data
|
||||
ports:
|
||||
- "11211:11211"
|
||||
- application
|
||||
tty: true
|
||||
|
||||
### Add more Containers below ###############################
|
||||
|
@ -5,7 +5,7 @@ MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||
ADD nginx.conf /etc/nginx/
|
||||
ADD laravel.conf /etc/nginx/sites-available/
|
||||
|
||||
RUN echo "upstream php-upstream { server php:9000; }" > /etc/nginx/conf.d/upstream.conf
|
||||
RUN echo "upstream php-upstream { server php-fpm:9000; }" > /etc/nginx/conf.d/upstream.conf
|
||||
|
||||
RUN usermod -u 1000 www-data
|
||||
|
||||
|
28
php-fpm/Dockerfile-55
Normal file
28
php-fpm/Dockerfile-55
Normal file
@ -0,0 +1,28 @@
|
||||
FROM php:5.5-fpm
|
||||
|
||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||
|
||||
ADD ./laravel.ini /usr/local/etc/php/conf.d
|
||||
ADD ./laravel.pool.conf /usr/local/etc/php-fpm.d/
|
||||
|
||||
RUN apt-get update && apt-get install -y \
|
||||
libpq-dev \
|
||||
libmemcached-dev \
|
||||
curl
|
||||
|
||||
# Install extensions using the helper script provided by the base image
|
||||
RUN docker-php-ext-install \
|
||||
pdo_mysql \
|
||||
pdo_pgsql
|
||||
|
||||
#Install memcached
|
||||
RUN pecl install memcached \
|
||||
&& docker-php-ext-enable memcached
|
||||
|
||||
RUN usermod -u 1000 www-data
|
||||
|
||||
WORKDIR /var/www/laravel
|
||||
|
||||
CMD ["php-fpm"]
|
||||
|
||||
EXPOSE 9000
|
28
php-fpm/Dockerfile-56
Normal file
28
php-fpm/Dockerfile-56
Normal file
@ -0,0 +1,28 @@
|
||||
FROM php:5.6-fpm
|
||||
|
||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||
|
||||
ADD ./laravel.ini /usr/local/etc/php/conf.d
|
||||
ADD ./laravel.pool.conf /usr/local/etc/php-fpm.d/
|
||||
|
||||
RUN apt-get update && apt-get install -y \
|
||||
libpq-dev \
|
||||
libmemcached-dev \
|
||||
curl
|
||||
|
||||
# Install extensions using the helper script provided by the base image
|
||||
RUN docker-php-ext-install \
|
||||
pdo_mysql \
|
||||
pdo_pgsql
|
||||
|
||||
#Install memcached
|
||||
RUN pecl install memcached \
|
||||
&& docker-php-ext-enable memcached
|
||||
|
||||
RUN usermod -u 1000 www-data
|
||||
|
||||
WORKDIR /var/www/laravel
|
||||
|
||||
CMD ["php-fpm"]
|
||||
|
||||
EXPOSE 9000
|
@ -1,15 +1,14 @@
|
||||
# You can change the PHP version from here. After changing the PHP version, check the Memcached section below because it replies on PHP 7.
|
||||
FROM php:7.0-fpm
|
||||
FROM php:7.0-fpm
|
||||
|
||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||
|
||||
ADD ./laravel.ini /usr/local/etc/php/conf.d
|
||||
ADD ./laravel.pool.conf /usr/local/etc/php-fpm.d/
|
||||
|
||||
RUN apt-get update && apt-get install \
|
||||
libpq-dev -y \
|
||||
curl \
|
||||
libmemcached-dev
|
||||
RUN apt-get update && apt-get install -y \
|
||||
libpq-dev \
|
||||
libmemcached-dev \
|
||||
curl
|
||||
|
||||
# Install extensions using the helper script provided by the base image
|
||||
RUN docker-php-ext-install \
|
55
workspace/Dockerfile
Normal file
55
workspace/Dockerfile
Normal file
@ -0,0 +1,55 @@
|
||||
FROM phusion/baseimage:latest
|
||||
|
||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||
|
||||
RUN DEBIAN_FRONTEND=noninteractive
|
||||
RUN locale-gen en_US.UTF-8
|
||||
|
||||
ENV LANGUAGE=en_US.UTF-8
|
||||
ENV LC_ALL=en_US.UTF-8
|
||||
ENV LC_CTYPE=UTF-8
|
||||
ENV LANG=en_US.UTF-8
|
||||
ENV TERM xterm
|
||||
|
||||
# Install "software-properties-common" (for add-apt-repository) and add the "PHP 7" ppa
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y software-properties-common \
|
||||
&& add-apt-repository -y ppa:ondrej/php
|
||||
|
||||
# Install PHP-CLI 7 and some useful Tools
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y \
|
||||
php7.0-cli \
|
||||
php7.0-common \
|
||||
php7.0-curl \
|
||||
php7.0-json \
|
||||
php7.0-xml \
|
||||
php7.0-mbstring \
|
||||
php7.0-mcrypt \
|
||||
php7.0-mysql \
|
||||
php7.0-zip \
|
||||
git \
|
||||
curl \
|
||||
vim \
|
||||
nano
|
||||
|
||||
# Install Composer
|
||||
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
|
||||
|
||||
# Add an alias for PHPUnit
|
||||
RUN echo "alias phpunit='./vendor/bin/phpunit'" >> ~/.bashrc
|
||||
|
||||
# Source the bash
|
||||
RUN . ~/.bashrc
|
||||
|
||||
# Clean up
|
||||
RUN apt-get autoclean && apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
|
||||
WORKDIR /var/www/laravel
|
Reference in New Issue
Block a user