Compare commits
13 Commits
Author | SHA1 | Date | |
---|---|---|---|
d6329c26b3 | |||
a96ee88692 | |||
2799a94a9f | |||
5bcbe0d291 | |||
9e7a669d5b | |||
9b084433c3 | |||
fc303dee08 | |||
d75a43c615 | |||
06337e6024 | |||
16b82d066e | |||
074deec781 | |||
2d382b683a | |||
68576f9022 |
31
README.md
31
README.md
@ -7,6 +7,7 @@ LaraDock helps you run your **Laravel** App on **Docker** real quick.
|
|||||||
<br>
|
<br>
|
||||||
It's like Laravel Homestead but for Docker instead of Vagrant.
|
It's like Laravel Homestead but for Docker instead of Vagrant.
|
||||||
|
|
||||||
|
>With LaraDock, use Docker first and learn about it later.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@ -49,7 +50,7 @@ It's like Laravel Homestead but for Docker instead of Vagrant.
|
|||||||
- [Run a Docker Virtual Host](#Run-Docker-Virtual-Host)
|
- [Run a Docker Virtual Host](#Run-Docker-Virtual-Host)
|
||||||
- [Find your Docker IP Address](#Find-Docker-IP-Address)
|
- [Find your Docker IP Address](#Find-Docker-IP-Address)
|
||||||
- [Use custom Domain](#Use-custom-Domain)
|
- [Use custom Domain](#Use-custom-Domain)
|
||||||
- [Install-Prestissimo](#Install-Prestissimo)
|
- [Install Prestissimo](#Install-Prestissimo)
|
||||||
- [Debugging](#debugging)
|
- [Debugging](#debugging)
|
||||||
- [Help & Questions](#Help)
|
- [Help & Questions](#Help)
|
||||||
|
|
||||||
@ -99,7 +100,8 @@ docker-compose up nginx mysql redis
|
|||||||
- Memcached
|
- Memcached
|
||||||
- Beanstalkd
|
- Beanstalkd
|
||||||
- Beanstalkd Console
|
- Beanstalkd Console
|
||||||
- Workspace (contains: Composer, PHP7-CLI, Laravel Installer, Git, Node, Gulp, Bower, SQLite, Vim, Nano and cURL)
|
- Caddy
|
||||||
|
- Workspace (contains: Composer, PHP7-CLI, Laravel Installer, Git, Node, Gulp, Bower, SQLite, Vim, Nano, cURL and much more)
|
||||||
- Data *(Databases Data Container)*
|
- Data *(Databases Data Container)*
|
||||||
- Application *(Application Code Container)*
|
- Application *(Application Code Container)*
|
||||||
|
|
||||||
@ -113,7 +115,7 @@ docker-compose up nginx mysql redis
|
|||||||
<a name="what-is-docker"></a>
|
<a name="what-is-docker"></a>
|
||||||
### What is Docker?
|
### What is Docker?
|
||||||
|
|
||||||
[Docker](https://www.docker.com) is an open-source project that automates the deployment of applications inside software containers, by providing an additional layer of abstraction and automation of [operating-system-level virtualization](https://en.wikipedia.org/wiki/Operating-system-level_virtualization) on Linux, Mac OS and Windows.
|
[Docker](https://www.docker.com) is an open-source project that automates the deployment of applications inside software containers, by providing an additional layer of abstraction and automation of [operating-system-level virtualization](https://en.wikipedia.org/wiki/Operating-system-level_virtualization) on Linux, Mac OS and Windows.
|
||||||
|
|
||||||
<a name="what-is-laravel"></a>
|
<a name="what-is-laravel"></a>
|
||||||
### What is Laravel?
|
### What is Laravel?
|
||||||
@ -140,26 +142,21 @@ LaraDock and [Homestead](https://laravel.com/docs/master/homestead) both gives y
|
|||||||
|
|
||||||
- Homestead is a tool that controls Vagrant for you (using Homestead special commands). And Vagrant manages your Virtual Machine.
|
- Homestead is a tool that controls Vagrant for you (using Homestead special commands). And Vagrant manages your Virtual Machine.
|
||||||
|
|
||||||
- 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 & Docker Compose official commands). And Docker manages your 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. Thus **LaraDock is much faster than Homestead**.
|
||||||
<br>Thus **LaraDock is much faster than Homestead**.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="Requirements"></a>
|
<a name="Requirements"></a>
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
| Linux | Windows & MAC |
|
| Linux | Windows & MAC |
|
||||||
|-----------------------------------------------------------------------------------------|---------------------------------------------------------|
|
|--------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------|
|
||||||
| [Laravel](https://laravel.com/docs/master/installation) | [Laravel](https://laravel.com/docs/master/installation) |
|
| [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) |
|
| [Git](https://git-scm.com/downloads) | [Git](https://git-scm.com/downloads) |
|
||||||
| [Docker Engine](https://docs.docker.com/engine/installation/linux/ubuntulinux) | [Docker Toolbox](https://www.docker.com/toolbox) |
|
| [Docker Engine](https://docs.docker.com/engine/installation/linux/ubuntulinux) | [Docker Toolbox](https://www.docker.com/toolbox) OR [Native Docker](https://beta.docker.com/) |
|
||||||
| [Docker Compose](https://docs.docker.com/compose/install) | |
|
| [Docker Compose](https://docs.docker.com/compose/install) | |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="Demo"></a>
|
<a name="Demo"></a>
|
||||||
## Demo Video
|
## Demo Video
|
||||||
@ -209,7 +206,7 @@ docker-compose up -d nginx mysql
|
|||||||
|
|
||||||
You can select your own combination of container form this list:
|
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`, `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.
|
**Note**: `workspace`, `data`, `php-fpm` and `application` will run automatically in most of the cases.
|
||||||
|
12
caddy/Caddyfile
Normal file
12
caddy/Caddyfile
Normal 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
22
caddy/Dockerfile
Normal 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"]
|
@ -153,12 +153,28 @@ services:
|
|||||||
volumes_data:
|
volumes_data:
|
||||||
build: ./volumes/data
|
build: ./volumes/data
|
||||||
volumes:
|
volumes:
|
||||||
- ./data/mysql:/var/lib/mysql
|
- /var/lib/mysql:/var/lib/mysql
|
||||||
- ./data/postgres:/var/lib/postgres
|
- /var/lib/postgres:/var/lib/postgres
|
||||||
- ./data/mariadb:/var/lib/mariadb
|
- /var/lib/mariadb:/var/lib/mariadb
|
||||||
- ./data/memcached:/var/lib/memcached
|
- /var/lib/memcached:/var/lib/memcached
|
||||||
- ./data/redis:/data
|
- /var/lib/redis:/data
|
||||||
- ./data/neo4j:/var/lib/neo4j/data
|
- /var/lib/neo4j:/var/lib/neo4j/data
|
||||||
- ./data/mongo:/data/db
|
- /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 ###############################
|
### Add more Containers below ###############################
|
||||||
|
@ -9,6 +9,7 @@ RUN apt-get update && apt-get install -y \
|
|||||||
libpq-dev \
|
libpq-dev \
|
||||||
libmemcached-dev \
|
libmemcached-dev \
|
||||||
curl \
|
curl \
|
||||||
|
libjpeg-dev \
|
||||||
libpng12-dev \
|
libpng12-dev \
|
||||||
libfreetype6-dev \
|
libfreetype6-dev \
|
||||||
libssl-dev \
|
libssl-dev \
|
||||||
@ -25,6 +26,7 @@ RUN pecl install mongodb
|
|||||||
# configure gd library
|
# configure gd library
|
||||||
RUN docker-php-ext-configure gd \
|
RUN docker-php-ext-configure gd \
|
||||||
--enable-gd-native-ttf \
|
--enable-gd-native-ttf \
|
||||||
|
--with-jpeg-dir=/usr/lib \
|
||||||
--with-freetype-dir=/usr/include/freetype2
|
--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
|
||||||
|
@ -9,6 +9,7 @@ RUN apt-get update && apt-get install -y \
|
|||||||
libpq-dev \
|
libpq-dev \
|
||||||
libmemcached-dev \
|
libmemcached-dev \
|
||||||
curl \
|
curl \
|
||||||
|
libjpeg-dev \
|
||||||
libpng12-dev \
|
libpng12-dev \
|
||||||
libfreetype6-dev \
|
libfreetype6-dev \
|
||||||
libssl-dev \
|
libssl-dev \
|
||||||
@ -25,6 +26,7 @@ RUN pecl install mongodb
|
|||||||
# configure gd library
|
# configure gd library
|
||||||
RUN docker-php-ext-configure gd \
|
RUN docker-php-ext-configure gd \
|
||||||
--enable-gd-native-ttf \
|
--enable-gd-native-ttf \
|
||||||
|
--with-jpeg-dir=/usr/lib \
|
||||||
--with-freetype-dir=/usr/include/freetype2
|
--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
|
||||||
|
@ -37,11 +37,18 @@ RUN docker-php-ext-install \
|
|||||||
|
|
||||||
# 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" \
|
||||||
&& mkdir -p /usr/src/php/ext/memcached \
|
&& mkdir -p memcached \
|
||||||
&& tar -C /usr/src/php/ext/memcached -zxvf /tmp/memcached.tar.gz --strip 1 \
|
&& tar -C memcached -zxvf /tmp/memcached.tar.gz --strip 1 \
|
||||||
&& docker-php-ext-configure memcached \
|
&& ( \
|
||||||
&& docker-php-ext-install memcached \
|
cd memcached \
|
||||||
&& rm /tmp/memcached.tar.gz
|
&& phpize \
|
||||||
|
&& ./configure \
|
||||||
|
&& make -j$(nproc) \
|
||||||
|
&& make install \
|
||||||
|
) \
|
||||||
|
&& rm -r memcached \
|
||||||
|
&& rm /tmp/memcached.tar.gz \
|
||||||
|
&& docker-php-ext-enable memcached
|
||||||
|
|
||||||
# Install xdebug
|
# Install xdebug
|
||||||
RUN pecl install xdebug \
|
RUN pecl install xdebug \
|
||||||
|
@ -47,7 +47,8 @@ RUN apt-get update && apt-get install -y --force-yes \
|
|||||||
git \
|
git \
|
||||||
curl \
|
curl \
|
||||||
vim \
|
vim \
|
||||||
nano
|
nano \
|
||||||
|
pkg-config
|
||||||
|
|
||||||
# Clean up, to free some space
|
# Clean up, to free some space
|
||||||
RUN apt-get clean
|
RUN apt-get clean
|
||||||
@ -93,4 +94,4 @@ WORKDIR /var/www/laravel
|
|||||||
ARG INSTALL_PRESTISSIMO=false
|
ARG INSTALL_PRESTISSIMO=false
|
||||||
RUN if [ "$INSTALL_PRESTISSIMO" = true ] ; then \
|
RUN if [ "$INSTALL_PRESTISSIMO" = true ] ; then \
|
||||||
composer global require "hirak/prestissimo:^0.3"; \
|
composer global require "hirak/prestissimo:^0.3"; \
|
||||||
fi
|
fi
|
||||||
|
Reference in New Issue
Block a user