Compare commits

..

29 Commits

Author SHA1 Message Date
3e61554625 Merge pull request #687 from jefhar/jefhar-patch-1
Jefhar patch 1
2017-03-17 11:09:45 -04:00
6054c2d250 Merge pull request #686 from cjmaxik/patch-3
Update Dockerfile-71
2017-03-17 11:08:29 -04:00
5589a12b9d Merge pull request #691 from davidtaboas/patch-1
Fix Dockerfile-70
2017-03-17 11:07:36 -04:00
e2384e2722 Merge pull request #689 from picospuch/patch-1
Update env-example
2017-03-17 11:07:21 -04:00
d077085595 Merge pull request #688 from Mvzundert/master
re-added .gitignore for nginx dir, still do not want configs in git
2017-03-17 11:07:06 -04:00
53f1032975 Merge pull request #673 from cabrerabywaters/PHP_WORKER
Php worker
2017-03-17 11:05:53 -04:00
875ec23ade Merge pull request #661 from g9308370/add_apache_vhost_conf
Add apache2 vhost & example
2017-03-17 11:01:10 -04:00
cee9de7ed1 Fix Dockerfile-70
Add ;fi to end if INSTALL_INTL block
2017-03-17 10:10:32 +01:00
badad156e1 Merge branch 'master' into add_apache_vhost_conf 2017-03-17 16:37:59 +08:00
8e89725381 Update env-example 2017-03-17 16:37:42 +08:00
baf29b1223 re-added .gitignore for nginx dir, still do not want configs in git 2017-03-17 08:48:47 +01:00
9ae6e45dda Merge branch 'master' of https://github.com/Laradock/laradock
* 'master' of https://github.com/Laradock/laradock:
  Update docker-compose.yml
  intl support
2017-03-17 02:46:35 -04:00
94d88e91c5 add missing steps to the docs 2017-03-17 02:46:19 -04:00
8b4901ce57 Closed if
Closed if [] ;fi in Human Language and Character Encoding Support:
2017-03-16 23:28:29 -07:00
08086be4c5 PHP_FPM_INSTALL_INTL env-example
added PHP_FPM_INSTALL_INTL=false to PHP_FPM_INSTALL_INTL=false
2017-03-16 23:26:54 -07:00
f2805bca52 Update docker-compose.yml 2017-03-16 22:21:26 -03:00
033e1b8721 Merge branch 'master' into PHP_WORKER 2017-03-16 21:59:28 -03:00
9e290ffddb Merge pull request #680 from cjmaxik/feature-intl
Adding intl support to php-fpm container
2017-03-16 20:57:47 -04:00
6ada2f1b91 nginx samples sites for multiple projects
- add `project-1.conf` and `project-1.conf` to match the docs.
- keep default to work with both multiple and single projects.
- delete the .gitignore.
- update docker-compose and example-env file to match the new settings
- update the docs
- delete `laravel-https.conf` to replace it with documentation instead
2017-03-16 20:53:14 -04:00
c6e393f5ce Update Dockerfile-71
We have already 7.1 image builded. + intl and ghostscript support 
https://github.com/laradock/laradock/pull/672
https://github.com/laradock/laradock/pull/680
2017-03-17 10:32:04 +10:00
4e443cec09 Merge branch 'master' into feature-intl 2017-03-17 10:08:21 +10:00
528b60eb17 fixing Volumes and Workdir 2017-03-16 21:03:04 -03:00
aedc7c8438 edit the docs 2017-03-16 19:28:01 -04:00
ec4ccb4a20 Move CNAME from the docs to the DOC.. 2017-03-16 18:33:29 -04:00
c62ce7d36f Update docker-compose.yml 2017-03-16 09:59:52 +10:00
8ee2229c84 intl support 2017-03-16 09:59:05 +10:00
cbd3cf7c20 Adding php-worker container to docker-compose 2017-03-14 11:06:45 -03:00
d505871faf Adding php-worker for Laravel 2017-03-14 11:05:22 -03:00
37ed904f1a add vhost example 2017-03-09 10:26:47 +08:00
27 changed files with 511 additions and 273 deletions

View File

@ -39,14 +39,15 @@ You can request a new feature by submitting an [Issue](https://github.com/larado
Laradock uses [Hugo](https://gohugo.io/) as website generator tool, with the [Material Docs theme](http://themes.gohugo.io/theme/material-docs/). You might need to check their docs quickly.
1. Install [Hugo](https://gohugo.io/) on your machine (easy steps).
2. Open the `DOCUMENTATION/_settings/content` and search for the markdown file you want to edit (every folder is a section in the menu).
3. After done editing, run the this command `hugo` to generate the updated site inside the `docs` folder (It's recommended to delete all files form the `/docs` folder, except the `CNAME` file, before running the `hugo` command).
1. Install [Hugo](https://gohugo.io/) on your machine (easy thing).
2. Open the `DOCUMENTATION/_settings/content` and search for the markdown file you want to edit (every folder represents a section in the menu).
3. Delete the `/docs` folder from the root.
4. When you finish editing, run the `hugo` command to generate the HTML docs (in the `/docs`).
#### To Host the website locally
### To Host the website locally
Go to `DOCUMENTATION/_settings` in your terminal and run `hugo serve` to host the website locally.
#### Edit the sidebar
### Edit the sidebar
To add a new section to the sidebar or edit existing one, you need to edit this file `DOCUMENTATION/_settings/config.toml`.

View File

@ -176,6 +176,11 @@ However to view the logs of all the other containers (MySQL, PHP-FPM,...) you ca
docker logs {container-name}
```
More [options](https://docs.docker.com/compose/reference/logs/)
```bash
docker logs -f {container-name}
```

View File

@ -32,7 +32,6 @@ Choose the setup the best suits your needs.
<a name="A1"></a>
### A.1) Already have a PHP project:
> (Follow these steps if you already have a PHP project, and all you need is an environment to run it)
1 - Clone laradock on your project root directory:
@ -50,16 +49,18 @@ git submodule add https://github.com/Laradock/laradock.git
Your folder structure should look like this:
```
- project1
- laradock
- project2
- laradock
+ project-a
+ laradock-a
+ project-b
+ laradock-b
```
(It's important to rename the folders differently in each project.)
> **Now jump to the [Usage](#Usage) section.**
<a name="A2"></a>
### A.2) Don't have a PHP project yet:
> (Follow these steps if you don't have a PHP project yet, and you need an environment to create the project)
1 - Clone this repository anywhere on your machine:
@ -70,58 +71,57 @@ git clone https://github.com/laradock/laradock.git
Your folder structure should look like this:
```
- projects
- laradock
- myProject
+ laradock
+ project-z
```
2 - Edit the `docker-compose.yml` file to map to your project directory once you have it (example: `- ../myProject:/var/www`).
2 - Edit your web server sites configuration.
3 - Stop and re-run your docker-compose command for the changes to take place.
**In case of NGINX:** open `nginx/sites/default.conf` and change the `root` from `/var/www/public` to `/var/www/{my-project-folder-name}/public`.
*Or you can keep `default.conf` as it is, and create a separate config `my-site.conf` file for it.*
**In case of Apache:** :P
<br>
> **Now jump to the [Usage](#Usage) section.**
```
docker-compose stop && docker-compose up -d XXXX YYYY ZZZZ ....
```
<a name="B"></a>
### B) Setup for Multiple Projects:
> (Follow these steps if you want a single Docker environment for all project)
> (Follow these steps if you want a single Docker environment for all your project)
1 - Clone this repository anywhere on your machine:
1 - Clone this repository anywhere on your machine (similar to [Steps A.2. from above](#A2)):
```bash
git clone https://github.com/laradock/laradock.git
```
2 - Edit the `docker-compose.yml` (or the `.env`) file to map to your projects directories:
Your folder structure should look like this:
```
applications:
volumes:
- ../project1/:/var/www/project1
- ../project2/:/var/www/project2
+ laradock
+ project-1
+ project-2
```
3 - You can access all sites by visiting `http://localhost/project1/public` and `http://localhost/project2/public` but of course that's not very useful so let's setup NGINX quickly.
2 - Go to `nginx/sites` and create config files to point to different project directory when visiting different domains.
Laradock by default includes `project-1.conf` and `project-2.conf` as working samples.
4 - Go to `nginx/sites` and copy `sample.conf.example` to `project1.conf` then to `project2.conf`
3 - change the default names `project-n`:
5 - Open the `project1.conf` file and edit the `server_name` and the `root` as follow:
You can rename the config files, project folders and domains as you like, just make sure the `root` in the config files, is pointing to the correct project folder name.
4 - Add the domains to the **hosts** files.
```
server_name project1.dev;
root /var/www/project1/public;
```
Do the same for each project `project2.conf`, `project3.conf`,...
6 - Add the domains to the **hosts** files.
```
127.0.0.1 project1.dev
127.0.0.1 project-1.dev
127.0.0.1 project-2.dev
```
7 - Create your project Databases. Right now you have to do it manually by entering your DB container, until we automate it soon.
> **Now jump to the [Usage](#Usage) section.**
@ -129,6 +129,7 @@ Do the same for each project `project2.conf`, `project3.conf`,...
<a name="Usage"></a>
## Usage
**Read Before starting:**
@ -144,10 +145,18 @@ If you are using **Docker Toolbox** (VM), do one of the following:
<br>
1 - Run Containers: *(Make sure you are in the `laradock` folder before running the `docker-compose` commands).*
1 - Enter the laradock folder and rename `env-example` to `.env`
```shell
cp env-example .env
```
You can edit the `.env` file to chose which software's you want to be installed in your environment. You can always refer to the `docker-compose.yml` file to see how those variables are been used.
**Example:** Running NGINX and MySQL:
2 - Build the enviroment and run it using `docker-compose`
In this example we'll see how to run NGINX (web server) and MySQL (database engine) to host a PHP Web Scripts:
```bash
docker-compose up -d nginx mysql
@ -156,21 +165,21 @@ docker-compose up -d nginx mysql
**Note**: The `workspace` and `php-fpm` will run automatically in most of the cases, so no need to specify them in the `up` command. If you couldn't find them running then you need specify them as follow: `docker-compose up -d nginx php-fpm mysql workspace`.
You can select your own combination of Containers form the list below:
You can select your own combination of containers form the list below:
`nginx`, `hhvm`, `php-fpm`, `mysql`, `redis`, `postgres`, `mariadb`, `neo4j`, `mongo`, `apache2`, `caddy`, `memcached`, `beanstalkd`, `beanstalkd-console`, `rabbitmq`, `beanstalkd-console`, `workspace`, `phpmyadmin`, `aerospike`, `pgadmin`, `elasticsearch`, `rethinkdb`, `postgres-postgis`, `certbot`, `mailhog`, `minio` and more...!
> `nginx`, `hhvm`, `php-fpm`, `mysql`, `redis`, `postgres`, `mariadb`, `neo4j`, `mongo`, `apache2`, `caddy`, `memcached`, `beanstalkd`, `beanstalkd-console`, `rabbitmq`, `beanstalkd-console`, `workspace`, `phpmyadmin`, `aerospike`, `pgadmin`, `elasticsearch`, `rethinkdb`, `postgres-postgis`, `certbot`, `mailhog`, `minio` and more...!
*(Please note that sometimes we forget to update the docs, so check the `docker-compose.yml` file to see an updated list of all available containers).*
<br>
2 - Enter the Workspace container, to execute commands like (Artisan, Composer, PHPUnit, Gulp, ...).
3 - Enter the Workspace container, to execute commands like (Artisan, Composer, PHPUnit, Gulp, ...)
```bash
docker-compose exec workspace bash
```
Alternatively, for Windows PowerShell users: execute the following command to enter any running container:
*Alternatively, for Windows PowerShell users: execute the following command to enter any running container:*
```bash
docker exec -it {workspace-container-id} bash
@ -182,12 +191,12 @@ docker exec -it {workspace-container-id} bash
docker-compose exec --user=laradock workspace bash
```
*You can change the PUID (User id) and PGID (group id) variables from the `docker-compose.yml` or the `.env`)*
*You can change the PUID (User id) and PGID (group id) variables from the `.env` file)*
<br>
3 - Edit your project configurations.
4 - Update your project configurations to use the database host
Open your `.env` file and set the `DB_HOST` to `mysql`:
Open your PHP project's `.env` file or whichever configuration file you are reading from, and set the database host `DB_HOST` to `mysql`:
```env
DB_HOST=mysql
@ -196,4 +205,6 @@ DB_HOST=mysql
*If you want to install Laravel as PHP project, see [How to Install Laravel in a Docker Container](#Install-Laravel).*
<br>
4 - Open your browser and visit your localhost address `http://localhost/`.
5 - Open your browser and visit your localhost address `http://localhost/`. If you followed the multiple projects setup, you can visit `http://project-1.dev/` and `http://project-2.dev/`. But first don't

View File

@ -12,6 +12,8 @@ EXPOSE 80 443
WORKDIR /var/www/
ADD vhost.conf /etc/apache2/sites-enabled/vhost.conf
ENTRYPOINT ["/opt/docker/bin/entrypoint.sh"]
CMD ["supervisord"]

3
apache2/sites/.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
*.conf
!default.conf
!default.apache.conf

View File

@ -0,0 +1,16 @@
<VirtualHost *:80>
ServerName laradock.dev
DocumentRoot /var/www/html/
Options Indexes FollowSymLinks
<Directory "/var/www/html/">
AllowOverride All
<IfVersion < 2.4>
Allow from all
</IfVersion>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
</Directory>
</VirtualHost>

View File

@ -0,0 +1,16 @@
<VirtualHost *:80>
ServerName sample.dev
DocumentRoot /var/www/sample/public/
Options Indexes FollowSymLinks
<Directory "/var/www/sample/public/">
AllowOverride All
<IfVersion < 2.4>
Allow from all
</IfVersion>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
</Directory>
</VirtualHost>

1
apache2/vhost.conf Normal file
View File

@ -0,0 +1 @@
Include /etc/apache2/sites-available/*.conf

View File

@ -7,7 +7,7 @@ services:
applications:
image: tianon/true
volumes:
- ${APPLICATION_1}:/var/www
- ${APPLICATION}:/var/www
### Workspace Utilities Container ###########################
@ -60,6 +60,7 @@ services:
- INSTALL_AEROSPIKE_EXTENSION=${PHP_FPM_INSTALL_AEROSPIKE_EXTENSION}
- INSTALL_MYSQLI=${PHP_FPM_INSTALL_MYSQLI}
- INSTALL_TOKENIZER=${PHP_FPM_INSTALL_TOKENIZER}
- INSTALL_INTL=${PHP_FPM_INSTALL_INTL}
dockerfile: ${PHP_FPM_DOCKER_FILE}
volumes_from:
- applications
@ -71,6 +72,15 @@ services:
- "dockerhost:${DOCKER_HOST_IP}"
environment:
- PHP_IDE_CONFIG=${PHP_IDE_CONFIG}
### PHP Worker Container #####################################
php-worker:
build:
context: ./php-worker
volumes_from:
- applications
depends_on:
- workspace
### Nginx Server Container ##################################
@ -101,6 +111,9 @@ services:
- applications
volumes:
- ${APACHE_HOST_LOG_PATH}:/var/log/apache2
- ./apache2/sites:/etc/apache2/sites-available
ports:
- "${APACHE_HOST_HTTP_PORT}:80"
- "${APACHE_HOST_HTTPS_PORT}:443"

View File

@ -346,16 +346,17 @@ features, by not reporting duplicate issues.</em></p>
<p>Laradock uses <a href="https://gohugo.io/">Hugo</a> as website generator tool, with the <a href="http://themes.gohugo.io/theme/material-docs/">Material Docs theme</a>. You might need to check their docs quickly.</p>
<ol>
<li>Install <a href="https://gohugo.io/">Hugo</a> on your machine (easy steps).</li>
<li>Open the <code>DOCUMENTATION/_settings/content</code> and search for the markdown file you want to edit (every folder is a section in the menu).</li>
<li>After done editing, run the this command <code>hugo</code> to generate the updated site inside the <code>docs</code> folder (It&rsquo;s recommended to delete all files form the <code>/docs</code> folder, except the <code>CNAME</code> file, before running the <code>hugo</code> command).</li>
<li>Install <a href="https://gohugo.io/">Hugo</a> on your machine (easy thing).</li>
<li>Open the <code>DOCUMENTATION/_settings/content</code> and search for the markdown file you want to edit (every folder represents a section in the menu).</li>
<li>Delete the <code>/docs</code> folder from the root.</li>
<li>When you finish editing, run the <code>hugo</code> command to generate the HTML docs (in the <code>/docs</code>).</li>
</ol>
<h4 id="to-host-the-website-locally">To Host the website locally</h4>
<h3 id="to-host-the-website-locally">To Host the website locally</h3>
<p>Go to <code>DOCUMENTATION/_settings</code> in your terminal and run <code>hugo serve</code> to host the website locally.</p>
<h4 id="edit-the-sidebar">Edit the sidebar</h4>
<h3 id="edit-the-sidebar">Edit the sidebar</h3>
<p>To add a new section to the sidebar or edit existing one, you need to edit this file <code>DOCUMENTATION/_settings/config.toml</code>.</p>

View File

@ -49,16 +49,17 @@ features, by not reporting duplicate issues.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Laradock uses &lt;a href=&#34;https://gohugo.io/&#34;&gt;Hugo&lt;/a&gt; as website generator tool, with the &lt;a href=&#34;http://themes.gohugo.io/theme/material-docs/&#34;&gt;Material Docs theme&lt;/a&gt;. You might need to check their docs quickly.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Install &lt;a href=&#34;https://gohugo.io/&#34;&gt;Hugo&lt;/a&gt; on your machine (easy steps).&lt;/li&gt;
&lt;li&gt;Open the &lt;code&gt;DOCUMENTATION/_settings/content&lt;/code&gt; and search for the markdown file you want to edit (every folder is a section in the menu).&lt;/li&gt;
&lt;li&gt;After done editing, run the this command &lt;code&gt;hugo&lt;/code&gt; to generate the updated site inside the &lt;code&gt;docs&lt;/code&gt; folder (It&amp;rsquo;s recommended to delete all files form the &lt;code&gt;/docs&lt;/code&gt; folder, except the &lt;code&gt;CNAME&lt;/code&gt; file, before running the &lt;code&gt;hugo&lt;/code&gt; command).&lt;/li&gt;
&lt;li&gt;Install &lt;a href=&#34;https://gohugo.io/&#34;&gt;Hugo&lt;/a&gt; on your machine (easy thing).&lt;/li&gt;
&lt;li&gt;Open the &lt;code&gt;DOCUMENTATION/_settings/content&lt;/code&gt; and search for the markdown file you want to edit (every folder represents a section in the menu).&lt;/li&gt;
&lt;li&gt;Delete the &lt;code&gt;/docs&lt;/code&gt; folder from the root.&lt;/li&gt;
&lt;li&gt;When you finish editing, run the &lt;code&gt;hugo&lt;/code&gt; command to generate the HTML docs (in the &lt;code&gt;/docs&lt;/code&gt;).&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&#34;to-host-the-website-locally&#34;&gt;To Host the website locally&lt;/h4&gt;
&lt;h3 id=&#34;to-host-the-website-locally&#34;&gt;To Host the website locally&lt;/h3&gt;
&lt;p&gt;Go to &lt;code&gt;DOCUMENTATION/_settings&lt;/code&gt; in your terminal and run &lt;code&gt;hugo serve&lt;/code&gt; to host the website locally.&lt;/p&gt;
&lt;h4 id=&#34;edit-the-sidebar&#34;&gt;Edit the sidebar&lt;/h4&gt;
&lt;h3 id=&#34;edit-the-sidebar&#34;&gt;Edit the sidebar&lt;/h3&gt;
&lt;p&gt;To add a new section to the sidebar or edit existing one, you need to edit this file &lt;code&gt;DOCUMENTATION/_settings/config.toml&lt;/code&gt;.&lt;/p&gt;

View File

@ -447,6 +447,11 @@ example for <code>mysql</code> it will be <code>mysql/Dockerfile</code>.</p>
<pre><code class="language-bash">docker logs {container-name}
</code></pre>
<p>More <a href="https://docs.docker.com/compose/reference/logs/">options</a></p>
<pre><code class="language-bash">docker logs -f {container-name}
</code></pre>
<p><br>
<a name="PHP"></a></p>

View File

@ -150,6 +150,11 @@ example for &lt;code&gt;mysql&lt;/code&gt; it will be &lt;code&gt;mysql/Dockerfi
&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;docker logs {container-name}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;More &lt;a href=&#34;https://docs.docker.com/compose/reference/logs/&#34;&gt;options&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;docker logs -f {container-name}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;br&gt;
&lt;a name=&#34;PHP&#34;&gt;&lt;/a&gt;&lt;/p&gt;

View File

@ -346,10 +346,6 @@
<h3 id="a-1-already-have-a-php-project">A.1) Already have a PHP project:</h3>
<blockquote>
<p>(Follow these steps if you already have a PHP project, and all you need is an environment to run it)</p>
</blockquote>
<p>1 - Clone laradock on your project root directory:</p>
<pre><code class="language-bash">git submodule add https://github.com/Laradock/laradock.git
@ -365,20 +361,22 @@
<p>Your folder structure should look like this:</p>
<pre><code>- project1
- laradock
- project2
- laradock
<pre><code>+ project-a
+ laradock-a
+ project-b
+ laradock-b
</code></pre>
<p>(It&rsquo;s important to rename the folders differently in each project.)</p>
<blockquote>
<p><strong>Now jump to the <a href="#Usage">Usage</a> section.</strong></p>
</blockquote>
<p><a name="A2"></a></p>
<h3 id="a-2-don-t-have-a-php-project-yet">A.2) Don&rsquo;t have a PHP project yet:</h3>
<blockquote>
<p>(Follow these steps if you don&rsquo;t have a PHP project yet, and you need an environment to create the project)</p>
</blockquote>
<p>1 - Clone this repository anywhere on your machine:</p>
<pre><code class="language-bash">git clone https://github.com/laradock/laradock.git
@ -386,57 +384,62 @@
<p>Your folder structure should look like this:</p>
<pre><code>- projects
- laradock
- myProject
<pre><code>+ laradock
+ project-z
</code></pre>
<p>2 - Edit the <code>docker-compose.yml</code> file to map to your project directory once you have it (example: <code>- ../myProject:/var/www</code>).</p>
<p>2 - Edit your web server sites configuration.</p>
<p>3 - Stop and re-run your docker-compose command for the changes to take place.</p>
<p><strong>In case of NGINX:</strong> open <code>nginx/sites/default.conf</code> and change the <code>root</code> from <code>/var/www/public</code> to <code>/var/www/{my-project-folder-name}/public</code>.</p>
<pre><code>docker-compose stop &amp;&amp; docker-compose up -d XXXX YYYY ZZZZ ....
</code></pre>
<p><em>Or you can keep <code>default.conf</code> as it is, and create a separate config <code>my-site.conf</code> file for it.</em></p>
<p><strong>In case of Apache:</strong> :P
<br></p>
<blockquote>
<p><strong>Now jump to the <a href="#Usage">Usage</a> section.</strong></p>
</blockquote>
<p><a name="B"></a></p>
<h3 id="b-setup-for-multiple-projects">B) Setup for Multiple Projects:</h3>
<blockquote>
<p>(Follow these steps if you want a single Docker environment for all project)</p>
<p>(Follow these steps if you want a single Docker environment for all your project)</p>
</blockquote>
<p>1 - Clone this repository anywhere on your machine:</p>
<p>1 - Clone this repository anywhere on your machine (similar to <a href="#A2">Steps A.2. from above</a>):</p>
<pre><code class="language-bash">git clone https://github.com/laradock/laradock.git
</code></pre>
<p>2 - Edit the <code>docker-compose.yml</code> (or the <code>.env</code>) file to map to your projects directories:</p>
<p>Your folder structure should look like this:</p>
<pre><code> applications:
volumes:
- ../project1/:/var/www/project1
- ../project2/:/var/www/project2
<pre><code>+ laradock
+ project-1
+ project-2
</code></pre>
<p>3 - You can access all sites by visiting <code>http://localhost/project1/public</code> and <code>http://localhost/project2/public</code> but of course that&rsquo;s not very useful so let&rsquo;s setup NGINX quickly.</p>
<p>2 - Go to <code>nginx/sites</code> and create config files to point to different project directory when visiting different domains.</p>
<p>4 - Go to <code>nginx/sites</code> and copy <code>sample.conf.example</code> to <code>project1.conf</code> then to <code>project2.conf</code></p>
<p>Laradock by default includes <code>project-1.conf</code> and <code>project-2.conf</code> as working samples.</p>
<p>5 - Open the <code>project1.conf</code> file and edit the <code>server_name</code> and the <code>root</code> as follow:</p>
<p>3 - change the default names <code>project-n</code>:</p>
<pre><code> server_name project1.dev;
root /var/www/project1/public;
<p>You can rename the config files, project folders and domains as you like, just make sure the <code>root</code> in the config files, is pointing to the correct project folder name.</p>
<p>4 - Add the domains to the <strong>hosts</strong> files.</p>
<pre><code>127.0.0.1 project-1.dev
127.0.0.1 project-2.dev
</code></pre>
<p>Do the same for each project <code>project2.conf</code>, <code>project3.conf</code>,&hellip;</p>
<blockquote>
<p><strong>Now jump to the <a href="#Usage">Usage</a> section.</strong></p>
</blockquote>
<p>6 - Add the domains to the <strong>hosts</strong> files.</p>
<pre><code>127.0.0.1 project1.dev
</code></pre>
<p>7 - Create your project Databases. Right now you have to do it manually by entering your DB container, until we automate it soon.</p>
<p><a name="Usage"></a></p>
<h2 id="usage">Usage</h2>
@ -457,28 +460,37 @@
<p><br></p>
<p>1 - Run Containers: <em>(Make sure you are in the <code>laradock</code> folder before running the <code>docker-compose</code> commands).</em></p>
<p>1 - Enter the laradock folder and rename <code>env-example</code> to <code>.env</code></p>
<p><strong>Example:</strong> Running NGINX and MySQL:</p>
<pre><code class="language-shell">cp env-example .env
</code></pre>
<p>You can edit the <code>.env</code> file to chose which software&rsquo;s you want to be installed in your environment. You can always refer to the <code>docker-compose.yml</code> file to see how those variables are been used.</p>
<p>2 - Build the enviroment and run it using <code>docker-compose</code></p>
<p>In this example we&rsquo;ll see how to run NGINX (web server) and MySQL (database engine) to host a PHP Web Scripts:</p>
<pre><code class="language-bash">docker-compose up -d nginx mysql
</code></pre>
<p><strong>Note</strong>: The <code>workspace</code> and <code>php-fpm</code> will run automatically in most of the cases, so no need to specify them in the <code>up</code> command. If you couldn&rsquo;t find them running then you need specify them as follow: <code>docker-compose up -d nginx php-fpm mysql workspace</code>.</p>
<p>You can select your own combination of Containers form the list below:</p>
<p>You can select your own combination of containers form the list below:</p>
<blockquote>
<p><code>nginx</code>, <code>hhvm</code>, <code>php-fpm</code>, <code>mysql</code>, <code>redis</code>, <code>postgres</code>, <code>mariadb</code>, <code>neo4j</code>, <code>mongo</code>, <code>apache2</code>, <code>caddy</code>, <code>memcached</code>, <code>beanstalkd</code>, <code>beanstalkd-console</code>, <code>rabbitmq</code>, <code>beanstalkd-console</code>, <code>workspace</code>, <code>phpmyadmin</code>, <code>aerospike</code>, <code>pgadmin</code>, <code>elasticsearch</code>, <code>rethinkdb</code>, <code>postgres-postgis</code>, <code>certbot</code>, <code>mailhog</code>, <code>minio</code> and more&hellip;!</p>
</blockquote>
<p><em>(Please note that sometimes we forget to update the docs, so check the <code>docker-compose.yml</code> file to see an updated list of all available containers).</em></p>
<p><br>
2 - Enter the Workspace container, to execute commands like (Artisan, Composer, PHPUnit, Gulp, &hellip;).</p>
3 - Enter the Workspace container, to execute commands like (Artisan, Composer, PHPUnit, Gulp, &hellip;)</p>
<pre><code class="language-bash">docker-compose exec workspace bash
</code></pre>
<p>Alternatively, for Windows PowerShell users: execute the following command to enter any running container:</p>
<p><em>Alternatively, for Windows PowerShell users: execute the following command to enter any running container:</em></p>
<pre><code class="language-bash">docker exec -it {workspace-container-id} bash
</code></pre>
@ -488,12 +500,12 @@
<pre><code class="language-shell">docker-compose exec --user=laradock workspace bash
</code></pre>
<p><em>You can change the PUID (User id) and PGID (group id) variables from the <code>docker-compose.yml</code> or the <code>.env</code>)</em></p>
<p><em>You can change the PUID (User id) and PGID (group id) variables from the <code>.env</code> file)</em></p>
<p><br>
3 - Edit your project configurations.</p>
4 - Update your project configurations to use the database host</p>
<p>Open your <code>.env</code> file and set the <code>DB_HOST</code> to <code>mysql</code>:</p>
<p>Open your PHP project&rsquo;s <code>.env</code> file or whichever configuration file you are reading from, and set the database host <code>DB_HOST</code> to <code>mysql</code>:</p>
<pre><code class="language-env">DB_HOST=mysql
</code></pre>
@ -501,7 +513,7 @@
<p><em>If you want to install Laravel as PHP project, see <a href="#Install-Laravel">How to Install Laravel in a Docker Container</a>.</em></p>
<p><br>
4 - Open your browser and visit your localhost address <code>http://localhost/</code>.</p>
5 - Open your browser and visit your localhost address <code>http://localhost/</code>. If you followed the multiple projects setup, you can visit <code>http://project-1.dev/</code> and <code>http://project-2.dev/</code>. But first don&rsquo;t</p>
<aside class="copyright" role="note">

View File

@ -49,10 +49,6 @@
&lt;h3 id=&#34;a-1-already-have-a-php-project&#34;&gt;A.1) Already have a PHP project:&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;(Follow these steps if you already have a PHP project, and all you need is an environment to run it)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;1 - Clone laradock on your project root directory:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;git submodule add https://github.com/Laradock/laradock.git
@ -68,20 +64,22 @@
&lt;p&gt;Your folder structure should look like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;- project1
- laradock
- project2
- laradock
&lt;pre&gt;&lt;code&gt;+ project-a
+ laradock-a
+ project-b
+ laradock-b
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;(It&amp;rsquo;s important to rename the folders differently in each project.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Now jump to the &lt;a href=&#34;#Usage&#34;&gt;Usage&lt;/a&gt; section.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a name=&#34;A2&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;a-2-don-t-have-a-php-project-yet&#34;&gt;A.2) Don&amp;rsquo;t have a PHP project yet:&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;(Follow these steps if you don&amp;rsquo;t have a PHP project yet, and you need an environment to create the project)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;1 - Clone this repository anywhere on your machine:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;git clone https://github.com/laradock/laradock.git
@ -89,57 +87,62 @@
&lt;p&gt;Your folder structure should look like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;- projects
- laradock
- myProject
&lt;pre&gt;&lt;code&gt;+ laradock
+ project-z
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;2 - Edit the &lt;code&gt;docker-compose.yml&lt;/code&gt; file to map to your project directory once you have it (example: &lt;code&gt;- ../myProject:/var/www&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;2 - Edit your web server sites configuration.&lt;/p&gt;
&lt;p&gt;3 - Stop and re-run your docker-compose command for the changes to take place.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;In case of NGINX:&lt;/strong&gt; open &lt;code&gt;nginx/sites/default.conf&lt;/code&gt; and change the &lt;code&gt;root&lt;/code&gt; from &lt;code&gt;/var/www/public&lt;/code&gt; to &lt;code&gt;/var/www/{my-project-folder-name}/public&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker-compose stop &amp;amp;&amp;amp; docker-compose up -d XXXX YYYY ZZZZ ....
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Or you can keep &lt;code&gt;default.conf&lt;/code&gt; as it is, and create a separate config &lt;code&gt;my-site.conf&lt;/code&gt; file for it.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;In case of Apache:&lt;/strong&gt; :P
&lt;br&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Now jump to the &lt;a href=&#34;#Usage&#34;&gt;Usage&lt;/a&gt; section.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a name=&#34;B&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;b-setup-for-multiple-projects&#34;&gt;B) Setup for Multiple Projects:&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;(Follow these steps if you want a single Docker environment for all project)&lt;/p&gt;
&lt;p&gt;(Follow these steps if you want a single Docker environment for all your project)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;1 - Clone this repository anywhere on your machine:&lt;/p&gt;
&lt;p&gt;1 - Clone this repository anywhere on your machine (similar to &lt;a href=&#34;#A2&#34;&gt;Steps A.2. from above&lt;/a&gt;):&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;git clone https://github.com/laradock/laradock.git
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;2 - Edit the &lt;code&gt;docker-compose.yml&lt;/code&gt; (or the &lt;code&gt;.env&lt;/code&gt;) file to map to your projects directories:&lt;/p&gt;
&lt;p&gt;Your folder structure should look like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt; applications:
volumes:
- ../project1/:/var/www/project1
- ../project2/:/var/www/project2
&lt;pre&gt;&lt;code&gt;+ laradock
+ project-1
+ project-2
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;3 - You can access all sites by visiting &lt;code&gt;http://localhost/project1/public&lt;/code&gt; and &lt;code&gt;http://localhost/project2/public&lt;/code&gt; but of course that&amp;rsquo;s not very useful so let&amp;rsquo;s setup NGINX quickly.&lt;/p&gt;
&lt;p&gt;2 - Go to &lt;code&gt;nginx/sites&lt;/code&gt; and create config files to point to different project directory when visiting different domains.&lt;/p&gt;
&lt;p&gt;4 - Go to &lt;code&gt;nginx/sites&lt;/code&gt; and copy &lt;code&gt;sample.conf.example&lt;/code&gt; to &lt;code&gt;project1.conf&lt;/code&gt; then to &lt;code&gt;project2.conf&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Laradock by default includes &lt;code&gt;project-1.conf&lt;/code&gt; and &lt;code&gt;project-2.conf&lt;/code&gt; as working samples.&lt;/p&gt;
&lt;p&gt;5 - Open the &lt;code&gt;project1.conf&lt;/code&gt; file and edit the &lt;code&gt;server_name&lt;/code&gt; and the &lt;code&gt;root&lt;/code&gt; as follow:&lt;/p&gt;
&lt;p&gt;3 - change the default names &lt;code&gt;project-n&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt; server_name project1.dev;
root /var/www/project1/public;
&lt;p&gt;You can rename the config files, project folders and domains as you like, just make sure the &lt;code&gt;root&lt;/code&gt; in the config files, is pointing to the correct project folder name.&lt;/p&gt;
&lt;p&gt;4 - Add the domains to the &lt;strong&gt;hosts&lt;/strong&gt; files.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;127.0.0.1 project-1.dev
127.0.0.1 project-2.dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Do the same for each project &lt;code&gt;project2.conf&lt;/code&gt;, &lt;code&gt;project3.conf&lt;/code&gt;,&amp;hellip;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Now jump to the &lt;a href=&#34;#Usage&#34;&gt;Usage&lt;/a&gt; section.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;6 - Add the domains to the &lt;strong&gt;hosts&lt;/strong&gt; files.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;127.0.0.1 project1.dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;7 - Create your project Databases. Right now you have to do it manually by entering your DB container, until we automate it soon.&lt;/p&gt;
&lt;p&gt;&lt;a name=&#34;Usage&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&gt;
@ -160,28 +163,37 @@
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;1 - Run Containers: &lt;em&gt;(Make sure you are in the &lt;code&gt;laradock&lt;/code&gt; folder before running the &lt;code&gt;docker-compose&lt;/code&gt; commands).&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;1 - Enter the laradock folder and rename &lt;code&gt;env-example&lt;/code&gt; to &lt;code&gt;.env&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; Running NGINX and MySQL:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-shell&#34;&gt;cp env-example .env
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can edit the &lt;code&gt;.env&lt;/code&gt; file to chose which software&amp;rsquo;s you want to be installed in your environment. You can always refer to the &lt;code&gt;docker-compose.yml&lt;/code&gt; file to see how those variables are been used.&lt;/p&gt;
&lt;p&gt;2 - Build the enviroment and run it using &lt;code&gt;docker-compose&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;In this example we&amp;rsquo;ll see how to run NGINX (web server) and MySQL (database engine) to host a PHP Web Scripts:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;docker-compose up -d nginx mysql
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: The &lt;code&gt;workspace&lt;/code&gt; and &lt;code&gt;php-fpm&lt;/code&gt; will run automatically in most of the cases, so no need to specify them in the &lt;code&gt;up&lt;/code&gt; command. If you couldn&amp;rsquo;t find them running then you need specify them as follow: &lt;code&gt;docker-compose up -d nginx php-fpm mysql workspace&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;You can select your own combination of Containers form the list below:&lt;/p&gt;
&lt;p&gt;You can select your own combination of containers form the list below:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;nginx&lt;/code&gt;, &lt;code&gt;hhvm&lt;/code&gt;, &lt;code&gt;php-fpm&lt;/code&gt;, &lt;code&gt;mysql&lt;/code&gt;, &lt;code&gt;redis&lt;/code&gt;, &lt;code&gt;postgres&lt;/code&gt;, &lt;code&gt;mariadb&lt;/code&gt;, &lt;code&gt;neo4j&lt;/code&gt;, &lt;code&gt;mongo&lt;/code&gt;, &lt;code&gt;apache2&lt;/code&gt;, &lt;code&gt;caddy&lt;/code&gt;, &lt;code&gt;memcached&lt;/code&gt;, &lt;code&gt;beanstalkd&lt;/code&gt;, &lt;code&gt;beanstalkd-console&lt;/code&gt;, &lt;code&gt;rabbitmq&lt;/code&gt;, &lt;code&gt;beanstalkd-console&lt;/code&gt;, &lt;code&gt;workspace&lt;/code&gt;, &lt;code&gt;phpmyadmin&lt;/code&gt;, &lt;code&gt;aerospike&lt;/code&gt;, &lt;code&gt;pgadmin&lt;/code&gt;, &lt;code&gt;elasticsearch&lt;/code&gt;, &lt;code&gt;rethinkdb&lt;/code&gt;, &lt;code&gt;postgres-postgis&lt;/code&gt;, &lt;code&gt;certbot&lt;/code&gt;, &lt;code&gt;mailhog&lt;/code&gt;, &lt;code&gt;minio&lt;/code&gt; and more&amp;hellip;!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;em&gt;(Please note that sometimes we forget to update the docs, so check the &lt;code&gt;docker-compose.yml&lt;/code&gt; file to see an updated list of all available containers).&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;br&gt;
2 - Enter the Workspace container, to execute commands like (Artisan, Composer, PHPUnit, Gulp, &amp;hellip;).&lt;/p&gt;
3 - Enter the Workspace container, to execute commands like (Artisan, Composer, PHPUnit, Gulp, &amp;hellip;)&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;docker-compose exec workspace bash
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Alternatively, for Windows PowerShell users: execute the following command to enter any running container:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Alternatively, for Windows PowerShell users: execute the following command to enter any running container:&lt;/em&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;docker exec -it {workspace-container-id} bash
&lt;/code&gt;&lt;/pre&gt;
@ -191,12 +203,12 @@
&lt;pre&gt;&lt;code class=&#34;language-shell&#34;&gt;docker-compose exec --user=laradock workspace bash
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;You can change the PUID (User id) and PGID (group id) variables from the &lt;code&gt;docker-compose.yml&lt;/code&gt; or the &lt;code&gt;.env&lt;/code&gt;)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;You can change the PUID (User id) and PGID (group id) variables from the &lt;code&gt;.env&lt;/code&gt; file)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;br&gt;
3 - Edit your project configurations.&lt;/p&gt;
4 - Update your project configurations to use the database host&lt;/p&gt;
&lt;p&gt;Open your &lt;code&gt;.env&lt;/code&gt; file and set the &lt;code&gt;DB_HOST&lt;/code&gt; to &lt;code&gt;mysql&lt;/code&gt;:&lt;/p&gt;
&lt;p&gt;Open your PHP project&amp;rsquo;s &lt;code&gt;.env&lt;/code&gt; file or whichever configuration file you are reading from, and set the database host &lt;code&gt;DB_HOST&lt;/code&gt; to &lt;code&gt;mysql&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-env&#34;&gt;DB_HOST=mysql
&lt;/code&gt;&lt;/pre&gt;
@ -204,7 +216,7 @@
&lt;p&gt;&lt;em&gt;If you want to install Laravel as PHP project, see &lt;a href=&#34;#Install-Laravel&#34;&gt;How to Install Laravel in a Docker Container&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;br&gt;
4 - Open your browser and visit your localhost address &lt;code&gt;http://localhost/&lt;/code&gt;.&lt;/p&gt;
5 - Open your browser and visit your localhost address &lt;code&gt;http://localhost/&lt;/code&gt;. If you followed the multiple projects setup, you can visit &lt;code&gt;http://project-1.dev/&lt;/code&gt; and &lt;code&gt;http://project-2.dev/&lt;/code&gt;. But first don&amp;rsquo;t&lt;/p&gt;
</description>
</item>

View File

@ -544,10 +544,6 @@ QUEUE_HOST=beanstalkd
<h3 id="a-1-already-have-a-php-project">A.1) Already have a PHP project:</h3>
<blockquote>
<p>(Follow these steps if you already have a PHP project, and all you need is an environment to run it)</p>
</blockquote>
<p>1 - Clone laradock on your project root directory:</p>
<pre><code class="language-bash">git submodule add https://github.com/Laradock/laradock.git
@ -563,20 +559,22 @@ QUEUE_HOST=beanstalkd
<p>Your folder structure should look like this:</p>
<pre><code>- project1
- laradock
- project2
- laradock
<pre><code>+ project-a
+ laradock-a
+ project-b
+ laradock-b
</code></pre>
<p>(It&rsquo;s important to rename the folders differently in each project.)</p>
<blockquote>
<p><strong>Now jump to the <a href="#Usage">Usage</a> section.</strong></p>
</blockquote>
<p><a name="A2"></a></p>
<h3 id="a-2-don-t-have-a-php-project-yet">A.2) Don&rsquo;t have a PHP project yet:</h3>
<blockquote>
<p>(Follow these steps if you don&rsquo;t have a PHP project yet, and you need an environment to create the project)</p>
</blockquote>
<p>1 - Clone this repository anywhere on your machine:</p>
<pre><code class="language-bash">git clone https://github.com/laradock/laradock.git
@ -584,57 +582,62 @@ QUEUE_HOST=beanstalkd
<p>Your folder structure should look like this:</p>
<pre><code>- projects
- laradock
- myProject
<pre><code>+ laradock
+ project-z
</code></pre>
<p>2 - Edit the <code>docker-compose.yml</code> file to map to your project directory once you have it (example: <code>- ../myProject:/var/www</code>).</p>
<p>2 - Edit your web server sites configuration.</p>
<p>3 - Stop and re-run your docker-compose command for the changes to take place.</p>
<p><strong>In case of NGINX:</strong> open <code>nginx/sites/default.conf</code> and change the <code>root</code> from <code>/var/www/public</code> to <code>/var/www/{my-project-folder-name}/public</code>.</p>
<pre><code>docker-compose stop &amp;&amp; docker-compose up -d XXXX YYYY ZZZZ ....
</code></pre>
<p><em>Or you can keep <code>default.conf</code> as it is, and create a separate config <code>my-site.conf</code> file for it.</em></p>
<p><strong>In case of Apache:</strong> :P
<br></p>
<blockquote>
<p><strong>Now jump to the <a href="#Usage">Usage</a> section.</strong></p>
</blockquote>
<p><a name="B"></a></p>
<h3 id="b-setup-for-multiple-projects">B) Setup for Multiple Projects:</h3>
<blockquote>
<p>(Follow these steps if you want a single Docker environment for all project)</p>
<p>(Follow these steps if you want a single Docker environment for all your project)</p>
</blockquote>
<p>1 - Clone this repository anywhere on your machine:</p>
<p>1 - Clone this repository anywhere on your machine (similar to <a href="#A2">Steps A.2. from above</a>):</p>
<pre><code class="language-bash">git clone https://github.com/laradock/laradock.git
</code></pre>
<p>2 - Edit the <code>docker-compose.yml</code> (or the <code>.env</code>) file to map to your projects directories:</p>
<p>Your folder structure should look like this:</p>
<pre><code> applications:
volumes:
- ../project1/:/var/www/project1
- ../project2/:/var/www/project2
<pre><code>+ laradock
+ project-1
+ project-2
</code></pre>
<p>3 - You can access all sites by visiting <code>http://localhost/project1/public</code> and <code>http://localhost/project2/public</code> but of course that&rsquo;s not very useful so let&rsquo;s setup NGINX quickly.</p>
<p>2 - Go to <code>nginx/sites</code> and create config files to point to different project directory when visiting different domains.</p>
<p>4 - Go to <code>nginx/sites</code> and copy <code>sample.conf.example</code> to <code>project1.conf</code> then to <code>project2.conf</code></p>
<p>Laradock by default includes <code>project-1.conf</code> and <code>project-2.conf</code> as working samples.</p>
<p>5 - Open the <code>project1.conf</code> file and edit the <code>server_name</code> and the <code>root</code> as follow:</p>
<p>3 - change the default names <code>project-n</code>:</p>
<pre><code> server_name project1.dev;
root /var/www/project1/public;
<p>You can rename the config files, project folders and domains as you like, just make sure the <code>root</code> in the config files, is pointing to the correct project folder name.</p>
<p>4 - Add the domains to the <strong>hosts</strong> files.</p>
<pre><code>127.0.0.1 project-1.dev
127.0.0.1 project-2.dev
</code></pre>
<p>Do the same for each project <code>project2.conf</code>, <code>project3.conf</code>,&hellip;</p>
<blockquote>
<p><strong>Now jump to the <a href="#Usage">Usage</a> section.</strong></p>
</blockquote>
<p>6 - Add the domains to the <strong>hosts</strong> files.</p>
<pre><code>127.0.0.1 project1.dev
</code></pre>
<p>7 - Create your project Databases. Right now you have to do it manually by entering your DB container, until we automate it soon.</p>
<p><a name="Usage"></a></p>
<h2 id="usage">Usage</h2>
@ -655,28 +658,37 @@ QUEUE_HOST=beanstalkd
<p><br></p>
<p>1 - Run Containers: <em>(Make sure you are in the <code>laradock</code> folder before running the <code>docker-compose</code> commands).</em></p>
<p>1 - Enter the laradock folder and rename <code>env-example</code> to <code>.env</code></p>
<p><strong>Example:</strong> Running NGINX and MySQL:</p>
<pre><code class="language-shell">cp env-example .env
</code></pre>
<p>You can edit the <code>.env</code> file to chose which software&rsquo;s you want to be installed in your environment. You can always refer to the <code>docker-compose.yml</code> file to see how those variables are been used.</p>
<p>2 - Build the enviroment and run it using <code>docker-compose</code></p>
<p>In this example we&rsquo;ll see how to run NGINX (web server) and MySQL (database engine) to host a PHP Web Scripts:</p>
<pre><code class="language-bash">docker-compose up -d nginx mysql
</code></pre>
<p><strong>Note</strong>: The <code>workspace</code> and <code>php-fpm</code> will run automatically in most of the cases, so no need to specify them in the <code>up</code> command. If you couldn&rsquo;t find them running then you need specify them as follow: <code>docker-compose up -d nginx php-fpm mysql workspace</code>.</p>
<p>You can select your own combination of Containers form the list below:</p>
<p>You can select your own combination of containers form the list below:</p>
<blockquote>
<p><code>nginx</code>, <code>hhvm</code>, <code>php-fpm</code>, <code>mysql</code>, <code>redis</code>, <code>postgres</code>, <code>mariadb</code>, <code>neo4j</code>, <code>mongo</code>, <code>apache2</code>, <code>caddy</code>, <code>memcached</code>, <code>beanstalkd</code>, <code>beanstalkd-console</code>, <code>rabbitmq</code>, <code>beanstalkd-console</code>, <code>workspace</code>, <code>phpmyadmin</code>, <code>aerospike</code>, <code>pgadmin</code>, <code>elasticsearch</code>, <code>rethinkdb</code>, <code>postgres-postgis</code>, <code>certbot</code>, <code>mailhog</code>, <code>minio</code> and more&hellip;!</p>
</blockquote>
<p><em>(Please note that sometimes we forget to update the docs, so check the <code>docker-compose.yml</code> file to see an updated list of all available containers).</em></p>
<p><br>
2 - Enter the Workspace container, to execute commands like (Artisan, Composer, PHPUnit, Gulp, &hellip;).</p>
3 - Enter the Workspace container, to execute commands like (Artisan, Composer, PHPUnit, Gulp, &hellip;)</p>
<pre><code class="language-bash">docker-compose exec workspace bash
</code></pre>
<p>Alternatively, for Windows PowerShell users: execute the following command to enter any running container:</p>
<p><em>Alternatively, for Windows PowerShell users: execute the following command to enter any running container:</em></p>
<pre><code class="language-bash">docker exec -it {workspace-container-id} bash
</code></pre>
@ -686,12 +698,12 @@ QUEUE_HOST=beanstalkd
<pre><code class="language-shell">docker-compose exec --user=laradock workspace bash
</code></pre>
<p><em>You can change the PUID (User id) and PGID (group id) variables from the <code>docker-compose.yml</code> or the <code>.env</code>)</em></p>
<p><em>You can change the PUID (User id) and PGID (group id) variables from the <code>.env</code> file)</em></p>
<p><br>
3 - Edit your project configurations.</p>
4 - Update your project configurations to use the database host</p>
<p>Open your <code>.env</code> file and set the <code>DB_HOST</code> to <code>mysql</code>:</p>
<p>Open your PHP project&rsquo;s <code>.env</code> file or whichever configuration file you are reading from, and set the database host <code>DB_HOST</code> to <code>mysql</code>:</p>
<pre><code class="language-env">DB_HOST=mysql
</code></pre>
@ -699,7 +711,7 @@ QUEUE_HOST=beanstalkd
<p><em>If you want to install Laravel as PHP project, see <a href="#Install-Laravel">How to Install Laravel in a Docker Container</a>.</em></p>
<p><br>
4 - Open your browser and visit your localhost address <code>http://localhost/</code>.</p>
5 - Open your browser and visit your localhost address <code>http://localhost/</code>. If you followed the multiple projects setup, you can visit <code>http://project-1.dev/</code> and <code>http://project-2.dev/</code>. But first don&rsquo;t</p>
<h1>Documentation </h1>
@ -840,6 +852,11 @@ example for <code>mysql</code> it will be <code>mysql/Dockerfile</code>.</p>
<pre><code class="language-bash">docker logs {container-name}
</code></pre>
<p>More <a href="https://docs.docker.com/compose/reference/logs/">options</a></p>
<pre><code class="language-bash">docker logs -f {container-name}
</code></pre>
<p><br>
<a name="PHP"></a></p>
@ -1960,16 +1977,17 @@ features, by not reporting duplicate issues.</em></p>
<p>Laradock uses <a href="https://gohugo.io/">Hugo</a> as website generator tool, with the <a href="http://themes.gohugo.io/theme/material-docs/">Material Docs theme</a>. You might need to check their docs quickly.</p>
<ol>
<li>Install <a href="https://gohugo.io/">Hugo</a> on your machine (easy steps).</li>
<li>Open the <code>DOCUMENTATION/_settings/content</code> and search for the markdown file you want to edit (every folder is a section in the menu).</li>
<li>After done editing, run the this command <code>hugo</code> to generate the updated site inside the <code>docs</code> folder (It&rsquo;s recommended to delete all files form the <code>/docs</code> folder, except the <code>CNAME</code> file, before running the <code>hugo</code> command).</li>
<li>Install <a href="https://gohugo.io/">Hugo</a> on your machine (easy thing).</li>
<li>Open the <code>DOCUMENTATION/_settings/content</code> and search for the markdown file you want to edit (every folder represents a section in the menu).</li>
<li>Delete the <code>/docs</code> folder from the root.</li>
<li>When you finish editing, run the <code>hugo</code> command to generate the HTML docs (in the <code>/docs</code>).</li>
</ol>
<h4 id="to-host-the-website-locally">To Host the website locally</h4>
<h3 id="to-host-the-website-locally">To Host the website locally</h3>
<p>Go to <code>DOCUMENTATION/_settings</code> in your terminal and run <code>hugo serve</code> to host the website locally.</p>
<h4 id="edit-the-sidebar">Edit the sidebar</h4>
<h3 id="edit-the-sidebar">Edit the sidebar</h3>
<p>To add a new section to the sidebar or edit existing one, you need to edit this file <code>DOCUMENTATION/_settings/config.toml</code>.</p>

View File

@ -251,10 +251,6 @@ QUEUE_HOST=beanstalkd
&lt;h3 id=&#34;a-1-already-have-a-php-project&#34;&gt;A.1) Already have a PHP project:&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;(Follow these steps if you already have a PHP project, and all you need is an environment to run it)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;1 - Clone laradock on your project root directory:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;git submodule add https://github.com/Laradock/laradock.git
@ -270,20 +266,22 @@ QUEUE_HOST=beanstalkd
&lt;p&gt;Your folder structure should look like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;- project1
- laradock
- project2
- laradock
&lt;pre&gt;&lt;code&gt;+ project-a
+ laradock-a
+ project-b
+ laradock-b
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;(It&amp;rsquo;s important to rename the folders differently in each project.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Now jump to the &lt;a href=&#34;#Usage&#34;&gt;Usage&lt;/a&gt; section.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a name=&#34;A2&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;a-2-don-t-have-a-php-project-yet&#34;&gt;A.2) Don&amp;rsquo;t have a PHP project yet:&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;(Follow these steps if you don&amp;rsquo;t have a PHP project yet, and you need an environment to create the project)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;1 - Clone this repository anywhere on your machine:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;git clone https://github.com/laradock/laradock.git
@ -291,57 +289,62 @@ QUEUE_HOST=beanstalkd
&lt;p&gt;Your folder structure should look like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;- projects
- laradock
- myProject
&lt;pre&gt;&lt;code&gt;+ laradock
+ project-z
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;2 - Edit the &lt;code&gt;docker-compose.yml&lt;/code&gt; file to map to your project directory once you have it (example: &lt;code&gt;- ../myProject:/var/www&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;2 - Edit your web server sites configuration.&lt;/p&gt;
&lt;p&gt;3 - Stop and re-run your docker-compose command for the changes to take place.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;In case of NGINX:&lt;/strong&gt; open &lt;code&gt;nginx/sites/default.conf&lt;/code&gt; and change the &lt;code&gt;root&lt;/code&gt; from &lt;code&gt;/var/www/public&lt;/code&gt; to &lt;code&gt;/var/www/{my-project-folder-name}/public&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker-compose stop &amp;amp;&amp;amp; docker-compose up -d XXXX YYYY ZZZZ ....
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Or you can keep &lt;code&gt;default.conf&lt;/code&gt; as it is, and create a separate config &lt;code&gt;my-site.conf&lt;/code&gt; file for it.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;In case of Apache:&lt;/strong&gt; :P
&lt;br&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Now jump to the &lt;a href=&#34;#Usage&#34;&gt;Usage&lt;/a&gt; section.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a name=&#34;B&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;b-setup-for-multiple-projects&#34;&gt;B) Setup for Multiple Projects:&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;(Follow these steps if you want a single Docker environment for all project)&lt;/p&gt;
&lt;p&gt;(Follow these steps if you want a single Docker environment for all your project)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;1 - Clone this repository anywhere on your machine:&lt;/p&gt;
&lt;p&gt;1 - Clone this repository anywhere on your machine (similar to &lt;a href=&#34;#A2&#34;&gt;Steps A.2. from above&lt;/a&gt;):&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;git clone https://github.com/laradock/laradock.git
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;2 - Edit the &lt;code&gt;docker-compose.yml&lt;/code&gt; (or the &lt;code&gt;.env&lt;/code&gt;) file to map to your projects directories:&lt;/p&gt;
&lt;p&gt;Your folder structure should look like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt; applications:
volumes:
- ../project1/:/var/www/project1
- ../project2/:/var/www/project2
&lt;pre&gt;&lt;code&gt;+ laradock
+ project-1
+ project-2
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;3 - You can access all sites by visiting &lt;code&gt;http://localhost/project1/public&lt;/code&gt; and &lt;code&gt;http://localhost/project2/public&lt;/code&gt; but of course that&amp;rsquo;s not very useful so let&amp;rsquo;s setup NGINX quickly.&lt;/p&gt;
&lt;p&gt;2 - Go to &lt;code&gt;nginx/sites&lt;/code&gt; and create config files to point to different project directory when visiting different domains.&lt;/p&gt;
&lt;p&gt;4 - Go to &lt;code&gt;nginx/sites&lt;/code&gt; and copy &lt;code&gt;sample.conf.example&lt;/code&gt; to &lt;code&gt;project1.conf&lt;/code&gt; then to &lt;code&gt;project2.conf&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Laradock by default includes &lt;code&gt;project-1.conf&lt;/code&gt; and &lt;code&gt;project-2.conf&lt;/code&gt; as working samples.&lt;/p&gt;
&lt;p&gt;5 - Open the &lt;code&gt;project1.conf&lt;/code&gt; file and edit the &lt;code&gt;server_name&lt;/code&gt; and the &lt;code&gt;root&lt;/code&gt; as follow:&lt;/p&gt;
&lt;p&gt;3 - change the default names &lt;code&gt;project-n&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt; server_name project1.dev;
root /var/www/project1/public;
&lt;p&gt;You can rename the config files, project folders and domains as you like, just make sure the &lt;code&gt;root&lt;/code&gt; in the config files, is pointing to the correct project folder name.&lt;/p&gt;
&lt;p&gt;4 - Add the domains to the &lt;strong&gt;hosts&lt;/strong&gt; files.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;127.0.0.1 project-1.dev
127.0.0.1 project-2.dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Do the same for each project &lt;code&gt;project2.conf&lt;/code&gt;, &lt;code&gt;project3.conf&lt;/code&gt;,&amp;hellip;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Now jump to the &lt;a href=&#34;#Usage&#34;&gt;Usage&lt;/a&gt; section.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;6 - Add the domains to the &lt;strong&gt;hosts&lt;/strong&gt; files.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;127.0.0.1 project1.dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;7 - Create your project Databases. Right now you have to do it manually by entering your DB container, until we automate it soon.&lt;/p&gt;
&lt;p&gt;&lt;a name=&#34;Usage&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&gt;
@ -362,28 +365,37 @@ QUEUE_HOST=beanstalkd
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;1 - Run Containers: &lt;em&gt;(Make sure you are in the &lt;code&gt;laradock&lt;/code&gt; folder before running the &lt;code&gt;docker-compose&lt;/code&gt; commands).&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;1 - Enter the laradock folder and rename &lt;code&gt;env-example&lt;/code&gt; to &lt;code&gt;.env&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; Running NGINX and MySQL:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-shell&#34;&gt;cp env-example .env
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can edit the &lt;code&gt;.env&lt;/code&gt; file to chose which software&amp;rsquo;s you want to be installed in your environment. You can always refer to the &lt;code&gt;docker-compose.yml&lt;/code&gt; file to see how those variables are been used.&lt;/p&gt;
&lt;p&gt;2 - Build the enviroment and run it using &lt;code&gt;docker-compose&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;In this example we&amp;rsquo;ll see how to run NGINX (web server) and MySQL (database engine) to host a PHP Web Scripts:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;docker-compose up -d nginx mysql
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: The &lt;code&gt;workspace&lt;/code&gt; and &lt;code&gt;php-fpm&lt;/code&gt; will run automatically in most of the cases, so no need to specify them in the &lt;code&gt;up&lt;/code&gt; command. If you couldn&amp;rsquo;t find them running then you need specify them as follow: &lt;code&gt;docker-compose up -d nginx php-fpm mysql workspace&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;You can select your own combination of Containers form the list below:&lt;/p&gt;
&lt;p&gt;You can select your own combination of containers form the list below:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;nginx&lt;/code&gt;, &lt;code&gt;hhvm&lt;/code&gt;, &lt;code&gt;php-fpm&lt;/code&gt;, &lt;code&gt;mysql&lt;/code&gt;, &lt;code&gt;redis&lt;/code&gt;, &lt;code&gt;postgres&lt;/code&gt;, &lt;code&gt;mariadb&lt;/code&gt;, &lt;code&gt;neo4j&lt;/code&gt;, &lt;code&gt;mongo&lt;/code&gt;, &lt;code&gt;apache2&lt;/code&gt;, &lt;code&gt;caddy&lt;/code&gt;, &lt;code&gt;memcached&lt;/code&gt;, &lt;code&gt;beanstalkd&lt;/code&gt;, &lt;code&gt;beanstalkd-console&lt;/code&gt;, &lt;code&gt;rabbitmq&lt;/code&gt;, &lt;code&gt;beanstalkd-console&lt;/code&gt;, &lt;code&gt;workspace&lt;/code&gt;, &lt;code&gt;phpmyadmin&lt;/code&gt;, &lt;code&gt;aerospike&lt;/code&gt;, &lt;code&gt;pgadmin&lt;/code&gt;, &lt;code&gt;elasticsearch&lt;/code&gt;, &lt;code&gt;rethinkdb&lt;/code&gt;, &lt;code&gt;postgres-postgis&lt;/code&gt;, &lt;code&gt;certbot&lt;/code&gt;, &lt;code&gt;mailhog&lt;/code&gt;, &lt;code&gt;minio&lt;/code&gt; and more&amp;hellip;!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;em&gt;(Please note that sometimes we forget to update the docs, so check the &lt;code&gt;docker-compose.yml&lt;/code&gt; file to see an updated list of all available containers).&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;br&gt;
2 - Enter the Workspace container, to execute commands like (Artisan, Composer, PHPUnit, Gulp, &amp;hellip;).&lt;/p&gt;
3 - Enter the Workspace container, to execute commands like (Artisan, Composer, PHPUnit, Gulp, &amp;hellip;)&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;docker-compose exec workspace bash
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Alternatively, for Windows PowerShell users: execute the following command to enter any running container:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Alternatively, for Windows PowerShell users: execute the following command to enter any running container:&lt;/em&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;docker exec -it {workspace-container-id} bash
&lt;/code&gt;&lt;/pre&gt;
@ -393,12 +405,12 @@ QUEUE_HOST=beanstalkd
&lt;pre&gt;&lt;code class=&#34;language-shell&#34;&gt;docker-compose exec --user=laradock workspace bash
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;You can change the PUID (User id) and PGID (group id) variables from the &lt;code&gt;docker-compose.yml&lt;/code&gt; or the &lt;code&gt;.env&lt;/code&gt;)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;You can change the PUID (User id) and PGID (group id) variables from the &lt;code&gt;.env&lt;/code&gt; file)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;br&gt;
3 - Edit your project configurations.&lt;/p&gt;
4 - Update your project configurations to use the database host&lt;/p&gt;
&lt;p&gt;Open your &lt;code&gt;.env&lt;/code&gt; file and set the &lt;code&gt;DB_HOST&lt;/code&gt; to &lt;code&gt;mysql&lt;/code&gt;:&lt;/p&gt;
&lt;p&gt;Open your PHP project&amp;rsquo;s &lt;code&gt;.env&lt;/code&gt; file or whichever configuration file you are reading from, and set the database host &lt;code&gt;DB_HOST&lt;/code&gt; to &lt;code&gt;mysql&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-env&#34;&gt;DB_HOST=mysql
&lt;/code&gt;&lt;/pre&gt;
@ -406,7 +418,7 @@ QUEUE_HOST=beanstalkd
&lt;p&gt;&lt;em&gt;If you want to install Laravel as PHP project, see &lt;a href=&#34;#Install-Laravel&#34;&gt;How to Install Laravel in a Docker Container&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;br&gt;
4 - Open your browser and visit your localhost address &lt;code&gt;http://localhost/&lt;/code&gt;.&lt;/p&gt;
5 - Open your browser and visit your localhost address &lt;code&gt;http://localhost/&lt;/code&gt;. If you followed the multiple projects setup, you can visit &lt;code&gt;http://project-1.dev/&lt;/code&gt; and &lt;code&gt;http://project-2.dev/&lt;/code&gt;. But first don&amp;rsquo;t&lt;/p&gt;
</description>
</item>
@ -552,6 +564,11 @@ example for &lt;code&gt;mysql&lt;/code&gt; it will be &lt;code&gt;mysql/Dockerfi
&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;docker logs {container-name}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;More &lt;a href=&#34;https://docs.docker.com/compose/reference/logs/&#34;&gt;options&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;docker logs -f {container-name}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;br&gt;
&lt;a name=&#34;PHP&#34;&gt;&lt;/a&gt;&lt;/p&gt;
@ -1687,16 +1704,17 @@ features, by not reporting duplicate issues.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Laradock uses &lt;a href=&#34;https://gohugo.io/&#34;&gt;Hugo&lt;/a&gt; as website generator tool, with the &lt;a href=&#34;http://themes.gohugo.io/theme/material-docs/&#34;&gt;Material Docs theme&lt;/a&gt;. You might need to check their docs quickly.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Install &lt;a href=&#34;https://gohugo.io/&#34;&gt;Hugo&lt;/a&gt; on your machine (easy steps).&lt;/li&gt;
&lt;li&gt;Open the &lt;code&gt;DOCUMENTATION/_settings/content&lt;/code&gt; and search for the markdown file you want to edit (every folder is a section in the menu).&lt;/li&gt;
&lt;li&gt;After done editing, run the this command &lt;code&gt;hugo&lt;/code&gt; to generate the updated site inside the &lt;code&gt;docs&lt;/code&gt; folder (It&amp;rsquo;s recommended to delete all files form the &lt;code&gt;/docs&lt;/code&gt; folder, except the &lt;code&gt;CNAME&lt;/code&gt; file, before running the &lt;code&gt;hugo&lt;/code&gt; command).&lt;/li&gt;
&lt;li&gt;Install &lt;a href=&#34;https://gohugo.io/&#34;&gt;Hugo&lt;/a&gt; on your machine (easy thing).&lt;/li&gt;
&lt;li&gt;Open the &lt;code&gt;DOCUMENTATION/_settings/content&lt;/code&gt; and search for the markdown file you want to edit (every folder represents a section in the menu).&lt;/li&gt;
&lt;li&gt;Delete the &lt;code&gt;/docs&lt;/code&gt; folder from the root.&lt;/li&gt;
&lt;li&gt;When you finish editing, run the &lt;code&gt;hugo&lt;/code&gt; command to generate the HTML docs (in the &lt;code&gt;/docs&lt;/code&gt;).&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&#34;to-host-the-website-locally&#34;&gt;To Host the website locally&lt;/h4&gt;
&lt;h3 id=&#34;to-host-the-website-locally&#34;&gt;To Host the website locally&lt;/h3&gt;
&lt;p&gt;Go to &lt;code&gt;DOCUMENTATION/_settings&lt;/code&gt; in your terminal and run &lt;code&gt;hugo serve&lt;/code&gt; to host the website locally.&lt;/p&gt;
&lt;h4 id=&#34;edit-the-sidebar&#34;&gt;Edit the sidebar&lt;/h4&gt;
&lt;h3 id=&#34;edit-the-sidebar&#34;&gt;Edit the sidebar&lt;/h3&gt;
&lt;p&gt;To add a new section to the sidebar or edit existing one, you need to edit this file &lt;code&gt;DOCUMENTATION/_settings/config.toml&lt;/code&gt;.&lt;/p&gt;

View File

@ -1,6 +1,5 @@
### Application
# Point to your application code, wish should be available at `/var/www`
APPLICATION_1=../
### PHP version (Does not apply for HHVM)
# PHP_VERSION=55
@ -46,10 +45,11 @@ PHP_FPM_INSTALL_EXIF=false
PHP_FPM_INSTALL_AEROSPIKE_EXTENSION=false
PHP_FPM_INSTALL_MYSQLI=false
PHP_FPM_INSTALL_TOKENIZER=false
PHP_FPM_INSTALL_INTL=false
### NGINX Container
NGINX_HOST_HTTP_PORT=80
NGINX_HOST_HTTPS_PORT=433
NGINX_HOST_HTTPS_PORT=443
NGINX_HOST_LOG_PATH=./logs/nginx/
NGINX_SITES_PATH=./nginx/sites/

View File

@ -1,2 +1,2 @@
*.conf
!default.conf
!default.conf

View File

@ -3,7 +3,7 @@ server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
server_name laradock;
server_name locahost;
root /var/www/public;
index index.php index.html index.htm;

View File

@ -3,8 +3,8 @@ server {
listen 80;
listen [::]:80;
server_name sample.dev;
root /var/www/sample/public;
server_name project-1.dev;
root /var/www/project-1/public;
index index.php index.html index.htm;
location / {
@ -15,6 +15,8 @@ server {
try_files $uri /index.php =404;
fastcgi_pass php-upstream;
fastcgi_index index.php;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
@ -22,6 +24,11 @@ server {
location ~ /\.ht {
deny all;
}
location /.well-known/acme-challenge/ {
root /var/www/letsencrypt/;
log_not_found off;
}
}

View File

@ -1,14 +1,10 @@
server {
listen 443 default_server;
listen [::]:443 default_server ipv6only=on;
listen 80;
listen [::]:80;
#ssl on;
#ssl_certificate /var/certs/cert1.pem;
#ssl_certificate_key /var/certs/privkey1.pem;
server_name laravel;
root /var/www/laravel/public;
server_name project-2.dev;
root /var/www/project-2/public;
index index.php index.html index.htm;
location / {
@ -19,6 +15,8 @@ server {
try_files $uri /index.php =404;
fastcgi_pass php-upstream;
fastcgi_index index.php;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
@ -27,4 +25,11 @@ server {
deny all;
}
location /.well-known/acme-challenge/ {
root /var/www/letsencrypt/;
log_not_found off;
}
}

View File

@ -192,6 +192,18 @@ RUN if [ ${INSTALL_TOKENIZER} = true ]; then \
docker-php-ext-install tokenizer \
;fi
#####################################
# Human Language and Character Encoding Support:
#####################################
ARG INSTALL_INTL=false
RUN if [ ${INSTALL_INTL} = true ]; then \
# Install intl and requirements
apt-get install -y zlib1g-dev libicu-dev g++ && \
docker-php-ext-configure intl && \
docker-php-ext-install intl \
;fi
#####################################
# GHOSTSCRIPT:
#####################################

View File

@ -10,7 +10,7 @@
# https://hub.docker.com/r/laradock/php-fpm/tags/
#
FROM laradock/php-fpm:7.1--0.0 # placeholder. Need change after new image would be built.
FROM laradock/php-fpm:7.1--1.3
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
@ -140,6 +140,32 @@ RUN if [ ${CODEIGNITER} = true ]; then \
docker-php-ext-install tokenizer \
;fi
#####################################
# Human Language and Character Encoding Support:
#####################################
ARG INTL=false
RUN if [ ${INTL} = true ]; then \
# Install intl and requirements
apt-get install -y zlib1g-dev libicu-dev g++ && \
docker-php-ext-configure intl && \
docker-php-ext-install intl \
;fi
#####################################
# GHOSTSCRIPT:
#####################################
ARG GHOSTSCRIPT=false
RUN if [ ${GHOSTSCRIPT} = true ]; then \
# Install the ghostscript extension
# for PDF editing
apt-get -y update \
&& apt-get install -y \
poppler-utils \
ghostscript \
;fi
#
#--------------------------------------------------------------------------
# Final Touch

39
php-worker/Dockerfile Normal file
View File

@ -0,0 +1,39 @@
#
#--------------------------------------------------------------------------
# Image Setup
#--------------------------------------------------------------------------
#
# To take a look at the'php-worker' base Image, visit its DockerHub page
# https://hub.docker.com/r/nielsvdoorn/laravel-supervisor/
#
FROM nielsvdoorn/laravel-supervisor
#
#--------------------------------------------------------------------------
# Optional Supervisord Configuration
#--------------------------------------------------------------------------
#
# Modify the ./supervisor.conf file to match your App's requirements.
# Make sure you rebuild your container with every change.
#
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
#
#--------------------------------------------------------------------------
# Optional Software's Installation
#--------------------------------------------------------------------------
#
# If you need to modify this image, feel free to do it right here.
#
# -- Your awesome modifications go here -- #
#
#--------------------------------------------------------------------------
# Final Touch
#--------------------------------------------------------------------------
#
RUN rm -r /var/lib/apt/lists/*
WORKDIR /etc/supervisor/conf.d/

View File

@ -0,0 +1,9 @@
[supervisord]
nodaemon=true
[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/laravel/artisan queue:work --sleep=3 --tries=3 --daemon
autostart=true
autorestart=true
numprocs=8
redirect_stderr=true