Compare commits

..

18 Commits

Author SHA1 Message Date
f97f0b0d11 update readme: include hhvm and new logo 2016-07-24 07:39:25 +03:00
05e1dd4c13 Merge pull request #174 from orette/add-hhvm
Add hhvm
2016-07-24 07:27:40 +03:00
fc78ab7764 Merge remote-tracking branch 'upstream/master' into add-hhvm 2016-07-24 03:05:09 +00:00
ef8579987f Added HHVM container and used environment variable for switching 2016-07-24 02:49:57 +00:00
4dda3b969e add gitter link to the readme 2016-07-23 19:53:16 +03:00
4d2452101a add more awesome people to the contributors list 2016-07-22 00:36:26 +03:00
233cfb5b07 Merge pull request #169 from orette/create-code-standards-file
Added dot file to maintain consistent coding styles
2016-07-22 00:27:37 +03:00
63b9ec2bd8 Added dot file to maintain consistent coding styles 2016-07-21 09:48:21 -05:00
d5a51d4de9 Merge pull request #168 from appleboy/patch-2
convert tab to space.
2016-07-21 16:54:57 +03:00
c7fae1a807 convert tab to space. 2016-07-21 11:05:52 +08:00
d6329c26b3 Merge pull request #165 from orette/mongodb-library-fix
Added pkg-config to the PHP extentions and Tools that are installed from APT
2016-07-21 05:35:04 +03:00
a96ee88692 Added pkg-config to the PHP extentions and Tools that are installed from APT 2016-07-20 15:59:50 -05:00
2799a94a9f Merge pull request #159 from computerfr33k/master
Add caddy webserver container
2016-07-20 07:41:45 +03:00
5bcbe0d291 add rewrite rule to fix 404 errors when navigating to different pages. 2016-07-19 22:16:36 -05:00
9e7a669d5b incorporate upstream changes. 2016-07-19 22:01:20 -05:00
9b084433c3 add caddy server. 2016-07-19 21:51:20 -05:00
fc303dee08 Merge pull request #151 from computerfr33k/issue-147
Fix Memcached extension not installing
2016-07-18 23:55:18 +03:00
d75a43c615 Update Dockerfile-70
fixes memcached extension not installing
2016-07-16 13:07:56 -05:00
11 changed files with 162 additions and 27 deletions

12
.editorconfig Normal file
View File

@ -0,0 +1,12 @@
root = true
[*]
end_of_line = lf
insert_final_newline = true
[*]
charset = utf-8
[{Dockerfile,docker-compose.yml}]
indent_style = space
indent_size = 4

3
.env
View File

@ -1 +1,2 @@
INSTALL_PRESTISSIMO=false
INSTALL_PRESTISSIMO=false
PHP_PROCESS_MANAGER=php-fpm

View File

@ -2,6 +2,7 @@
[![forthebadge](http://forthebadge.com/images/badges/built-by-developers.svg)](http://zalt.me)
[![Gitter](https://badges.gitter.im/LaraDock/laradock.svg)](https://gitter.im/LaraDock/laradock?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
LaraDock helps you run your **Laravel** App on **Docker** real quick.
<br>
@ -9,7 +10,8 @@ It's like Laravel Homestead but for Docker instead of Vagrant.
>With LaraDock, use Docker first and learn about it later.
![](http://s18.postimg.org/fhykchl09/new_laradock_cover.png)
![](https://s31.postimg.org/nbettdki3/lara_dock_poster_new.jpg)
<br>
## Contents
@ -72,10 +74,10 @@ docker-compose up nginx mysql redis
<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: Memcached - MariaDB ...
- Every software runs on a separate container: PHP-FPM - NGINX ...
- Easy switch between PHP versions: 7.0, 5.6, 5.5...
- Choose your favorite database engine: MySQL, Postgres, MariaDB...
- Run your own combination of software's: Memcached, HHVM, Beanstalkd...
- Every software runs on a separate container: PHP-FPM, NGINX, PHP-CLI...
- 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.
@ -84,6 +86,7 @@ docker-compose up nginx mysql redis
- Clean and well structured Dockerfiles (`dockerfile`).
- Latest version of the Docker Compose file (`docker-compose`).
- Everything is visible and editable.
- More to come every week..
<a name="Supported-Containers"></a>
@ -91,13 +94,15 @@ docker-compose up nginx mysql redis
- PHP-FPM (7.0 - 5.6 - 5.5)
- NGINX
- HHVM
- MySQL
- PostgreSQL
- MariaDB
- Neo4j
- MongoDB
- Neo4j
- Redis
- Memcached
- Caddy
- Beanstalkd
- Beanstalkd Console
- Workspace (contains: Composer, PHP7-CLI, Laravel Installer, Git, Node, Gulp, Bower, SQLite, Vim, Nano, cURL and much more)
@ -166,7 +171,7 @@ What's better than a [**Demo Video**](https://www.youtube.com/watch?v=-DamFMczwD
## Installation
1 - Clone the `LaraDock` repository.
1 - Clone the `LaraDock` repository:
**A)** If you already have a Laravel project, clone this repository on your `Laravel` root direcotry:
@ -205,7 +210,7 @@ docker-compose up -d nginx mysql
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`.
`nginx`, `hhvm` ,`mysql`, `redis`, `postgres`, `mariadb`, `neo4j`, `mongo`, `memcached`, `beanstalkd`, `beanstalkd-console`, `caddy`, `workspace`, `data`, `php-fpm`, `application`.
**Note**: `workspace`, `data`, `php-fpm` and `application` will run automatically in most of the cases.
@ -858,12 +863,11 @@ This little project was built by one man who has a full time job and many respon
<a name="Help"></a>
## Help & Questions
If you need any help with Docker and Laravel, you can schedule a live call with the creator of this project at [Codementor.io](https://www.codementor.io/mahmoudz), He would love to help.
Join the chat room on [Gitter](https://gitter.im/LaraDock/laradock) and get help and support from the community.
For general questions you can open [Issues](https://github.com/laradock/laradock/issues) here on Github (We will label them as questions).
Additionally, you can contact Mahmoud Zalt (the creator of this project) via a direct message on LaraChat, (his username is `mahmoud_zalt`). Or send him an email (`mahmoud@zalt.me`).
You can as well can open an [issue](https://github.com/laradock/laradock/issues) on Github (will be labeled as Question) and discuss it with people on [Gitter](https://gitter.im/LaraDock/laradock).
For special help with Docker and/or Laravel, you can schedule a live call with the creator of this project at [Codementor.io](https://www.codementor.io/mahmoudz).
## Credits
@ -873,10 +877,13 @@ Additionally, you can contact Mahmoud Zalt (the creator of this project) via a d
**Main Contributors:**
- [Jack Fletcher](https://github.com/Kauhat)
- [Bo-Yi Wu](https://github.com/appleboy)
- [Amin Mkh](https://github.com/AminMkh)
- [Matthew Tonkin Dunn](https://github.com/mattythebatty)
- [Eric Pfeiffer (computerfr33k)](https://github.com/computerfr33k)
- [Orette](https://github.com/orette)
- [Jack Fletcher (Kauhat)](https://github.com/Kauhat)
- [Bo-Yi Wu (appleboy)](https://github.com/appleboy)
- [Amin Mkh (AminMkh)](https://github.com/AminMkh)
- [Matthew Tonkin Dunn (mattythebatty)](https://github.com/mattythebatty)
- [Zhivitsa Kirill (zhikiri)](https://github.com/zhikiri)
- [Benmag](https://github.com/benmag)
**Awesome People:**

12
caddy/Caddyfile Normal file
View File

@ -0,0 +1,12 @@
# Docs: https://caddyserver.com/docs/caddyfile
0.0.0.0:80
fastcgi / php-fpm:9000 php
rewrite {
to /index.php?{query}
}
browse
log stdout
errors stdout
# Uncomment to enable TLS (HTTPS)
# Change the first list to listen on port 443 when enabling TLS
#tls self_signed

22
caddy/Dockerfile Normal file
View File

@ -0,0 +1,22 @@
FROM alpine:3.4
MAINTAINER Eric Pfeiffer <computerfr33k@users.noreply.github.com>
LABEL caddy_version="0.9.0" architecture="amd64"
RUN apk update \
&& apk upgrade \
&& apk add tar curl
RUN curl --silent --show-error --fail --location \
--header "Accept: application/tar+gzip, application/x-gzip, application/octet-stream" -o - \
"https://github.com/mholt/caddy/releases/download/v0.9.0/caddy_linux_amd64.tar.gz" \
| tar --no-same-owner -C /usr/bin/ -xz caddy_linux_amd64 \
&& mv /usr/bin/caddy_linux_amd64 /usr/bin/caddy \
&& chmod 0755 /usr/bin/caddy \
&& /usr/bin/caddy -version
EXPOSE 80 443 2015
WORKDIR /var/www/laravel/public
ENTRYPOINT ["caddy"]
CMD ["-conf", "/etc/Caddyfile"]

View File

@ -5,7 +5,10 @@ services:
### Nginx Server Container ##################################
nginx:
build: ./nginx
build:
context: ./nginx
args:
- PHP_UPSTREAM=${PHP_PROCESS_MANAGER}
volumes_from:
- volumes_source
volumes:
@ -14,7 +17,7 @@ services:
- "80:80"
- "443:443"
links:
- php-fpm
- ${PHP_PROCESS_MANAGER}
### PHP-FPM Container #######################################
@ -29,6 +32,17 @@ services:
links:
- workspace
### HHVM Container ##########################################
hhvm:
build: ./hhvm
volumes_from:
- volumes_source
expose:
- "9000"
links:
- workspace
### MySQL Container #########################################
mysql:
@ -160,5 +174,21 @@ services:
- /var/lib/redis:/data
- /var/lib/neo4j:/var/lib/neo4j/data
- /var/lib/mongo:/data/db
### Caddy Server Container ##################################
# Edit the Caddyfile if needed (./caddy/Caddyfile)
caddy:
build: ./caddy
volumes_from:
- volumes_source
ports:
- "80:80"
- "443:443"
- "2015:2015"
volumes:
- ./caddy/Caddyfile:/etc/Caddyfile
links:
- php-fpm
### Add more Containers below ###############################

21
hhvm/Dockerfile Normal file
View File

@ -0,0 +1,21 @@
FROM ubuntu:14.04
RUN apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449
RUN apt-get update -y && apt-get install -y software-properties-common \
&& add-apt-repository "deb http://dl.hhvm.com/ubuntu $(lsb_release -sc) main" \
&& apt-get update -y \
&& apt-get install -y hhvm \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
RUN mkdir -p /var/www/laravel
ADD server.ini /etc/hhvm/server.ini
RUN usermod -u 1000 www-data
WORKDIR /var/www/laravel
CMD ["/usr/bin/hhvm", "-m", "server", "-c", "/etc/hhvm/server.ini"]
EXPOSE 9000

20
hhvm/server.ini Normal file
View File

@ -0,0 +1,20 @@
; php options
pid = /var/run/hhvm/pid
; hhvm specific
hhvm.server.port = 9000
hhvm.server.type = fastcgi
hhvm.server.default_document = index.php
hhvm.server.error_document404 = index.php
hhvm.server.upload.upload_max_file_size = 25M
hhvm.log.level = Error
hhvm.log.header = true
hhvm.log.access[default][file] = /var/log/hhvm/access.log
hhvm.log.access[default][format] = "%h %l %u %t \"%r\" %>s %b"
hhvm.server.source_root=/var/www/laravel/public
hhvm.repo.central.path = /var/run/hhvm/hhvm.hhbc
; Uncomment to log to files instead of STDOUT
;hhvm.log.use_log_file = true
;hhvm.log.file = /var/log/hhvm/error.log

View File

@ -5,7 +5,9 @@ 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-fpm:9000; }" > /etc/nginx/conf.d/upstream.conf
ARG PHP_UPSTREAM
RUN echo "upstream php-upstream { server ${PHP_UPSTREAM}:9000; }" > /etc/nginx/conf.d/upstream.conf
RUN usermod -u 1000 www-data

View File

@ -37,11 +37,18 @@ RUN docker-php-ext-install \
# 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" \
&& mkdir -p /usr/src/php/ext/memcached \
&& tar -C /usr/src/php/ext/memcached -zxvf /tmp/memcached.tar.gz --strip 1 \
&& docker-php-ext-configure memcached \
&& docker-php-ext-install memcached \
&& rm /tmp/memcached.tar.gz
&& mkdir -p memcached \
&& tar -C memcached -zxvf /tmp/memcached.tar.gz --strip 1 \
&& ( \
cd memcached \
&& phpize \
&& ./configure \
&& make -j$(nproc) \
&& make install \
) \
&& rm -r memcached \
&& rm /tmp/memcached.tar.gz \
&& docker-php-ext-enable memcached
# Install xdebug
RUN pecl install xdebug \

View File

@ -47,7 +47,8 @@ RUN apt-get update && apt-get install -y --force-yes \
git \
curl \
vim \
nano
nano \
pkg-config
# Clean up, to free some space
RUN apt-get clean
@ -93,4 +94,4 @@ WORKDIR /var/www/laravel
ARG INSTALL_PRESTISSIMO=false
RUN if [ "$INSTALL_PRESTISSIMO" = true ] ; then \
composer global require "hirak/prestissimo:^0.3"; \
fi
fi