Compare commits

...

75 Commits

Author SHA1 Message Date
b569765f82 Add .env file for converting Windows paths to resolve issues with Docker Compose in Docker Toolbox (#531) 2017-01-07 11:35:59 -05:00
1c9596dd80 Merge pull request #523 from yaoshanliang/patch-1
Update README-zh.md
2017-01-03 09:43:25 +08:00
c59dea3745 add beanstalkd section and update the readme.md 2017-01-02 20:41:00 -05:00
iat
460b24f7ee Update README-zh.md 2017-01-03 09:27:45 +08:00
2fc3919598 Added service container for Selenium standalone with Chrome (#519)
* Added service container for Selenium standalone with Chrome
2017-01-01 10:22:01 -05:00
978dd425b9 Merge pull request #515 from cosmospham/master
fix syntax in xdebugPhpFpm
2016-12-27 14:36:01 +08:00
1b8726458f fix syntax in xdebugPhpFpm 2016-12-27 13:32:59 +07:00
3557f508d0 Merge pull request #513 from cristiancmello/add-rethinkdb
Add rethinkdb
2016-12-26 22:44:21 +08:00
1ce802f2cc Update docker-compose.yml 2016-12-26 12:38:50 -02:00
f0eda43906 Update README.md 2016-12-26 02:12:11 -02:00
343a950adc add rethink-db container 2016-12-26 01:59:58 -02:00
0218ef6b9f remove tabs. 2016-12-26 10:30:14 +08:00
33e8e91e49 Add Laravel Envoy (#510)
Add laravel envoy
2016-12-25 12:38:25 -05:00
e78b3ff799 Merge pull request #507 from WDZThorn/patch-1
Update Dockerfile
2016-12-24 07:00:02 -06:00
13bdfa119d Update Dockerfile
Replace tab with 4 spaces.
2016-12-23 13:35:45 +08:00
0eea7a639a Merge pull request #506 from Jono20201/patch/artisan-alias
Add `art` alias for `php artisan` - like homestead
2016-12-22 16:14:57 -05:00
f2db21f339 Add art alias for php artisan -- like homestead 2016-12-22 15:28:23 +00:00
b10108a9b5 disable installing the bcmath by default
disable installing the PHP bcmath extension by default on the php-fpm container
2016-12-21 14:20:40 -05:00
dd3e88fba9 Merge pull request #502 from laradock/support-bcmath-php-ext
Support bcmath php extension on php-fpm and workspace (base image 1.3)
2016-12-21 14:10:14 -05:00
860af556e2 Support bcmath php extention on php-fpm and workspace (base image 1.3)
Probably closes #453
2016-12-21 14:01:51 -05:00
586a21086f Merge pull request #501 from whoan/patch-1
Typo
2016-12-21 23:30:02 +08:00
d76f9e7722 Typo
elasticsearch-pkugins ->  elasticsearch-plugins
2016-12-21 10:16:32 -03:00
79ce978527 Merge pull request #500 from shukebeta/master
fix a important document typo
2016-12-21 09:20:20 +08:00
944639b248 fix a important typo
docker-compose build php => docker-compose build php-fpm
2016-12-21 08:09:41 +08:00
2728a99986 Merge pull request #496 from cosmospham/master
Fix PHP 5.6 Dockerfile syntax error
2016-12-20 02:29:59 -05:00
5bb515751a Fix PHP 5.6 Dockerfile syntax error
Syntax error: ";" unexpected
2016-12-20 13:20:53 +07:00
ea148943ed Merge pull request #495 from philtrep/related-projects
Added related projects to docs
2016-12-19 10:57:25 -05:00
97f882e4c7 Added related projects to docs 2016-12-19 10:55:44 -05:00
e9d3a838f1 Merge pull request #491 from laradock/bug
fix #490 duplication of key "volumes"
2016-12-16 17:23:01 +08:00
380eef5fd9 fix #490 duplication of key "volumes"
Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
2016-12-16 17:21:45 +08:00
047e7f7cc3 Merge pull request #489 from laradock/yarn
Support specific version of yarn.
2016-12-16 10:58:38 +08:00
b8142222e5 Support specific version of yarn.
Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
2016-12-16 09:36:08 +08:00
b62d9bcb60 Merge pull request #488 from abtrumpet/add-soap
Added SOAP option to php-fpm install.
2016-12-15 17:59:40 -05:00
da6b950623 Added SOAP option to php-fpm install. 2016-12-15 12:13:27 -07:00
9d60dad222 Merge pull request #486 from dlnsk/mysql_strict_fix
Fix mysql strict NO_ZERO_DATE
2016-12-15 10:14:22 -05:00
6ffa36f188 Fix mysql strict NO_ZERO_DATE 2016-12-15 21:51:22 +07:00
f82d3b30b4 Merge pull request #483 from edmundluong/master
Add option to install Google V8 Javascript Engine PHP extension
2016-12-13 20:22:20 -05:00
8bacb129c6 Add option to install Google V8 Javascript Engine PHP extension 2016-12-13 20:00:48 -05:00
99fb1b4169 Merge pull request #474 from AliveCorpse/master
Fix load of mongodb library
2016-12-12 13:37:13 -05:00
6c9d5866b4 Merge pull request #477 from thebrubaker/patch-1
Update Readme.md
2016-12-12 08:58:27 +08:00
e8ef7ab8c9 Update Readme.md
Very small grammar updates.
2016-12-11 14:41:10 -08:00
5da5d5e29c Merge pull request #476 from jbaron-mx/master
Fix typos and missing commas in docs
2016-12-11 10:34:58 -05:00
19a2110b06 Fix typos and missing commas in docs 2016-12-10 22:22:40 -06:00
2fab33d4e4 Fix load of mongodb library
```
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/mongodb.so' - /usr/lib/php/20151012/mongodb.so: undefined symbol: php_json_serializable_ce in Unknown on line 0
```
2016-12-09 21:13:04 +02:00
4f819c238c Merge pull request #451 from Blaasvis/master
Update MySQL startup script
2016-11-28 22:53:32 -05:00
d8875cb588 Update startup 2016-11-28 21:25:52 +01:00
bb9f65eb2a Merge pull request #445 from danielabbatt/patch-1
Update README.md
2016-11-26 01:33:50 +08:00
d6508f3bb3 Update README.md
Fixed typo on "environment"
2016-11-25 16:59:13 +00:00
a3288462a8 Merge pull request #434 from dlnsk/Fixes
Fixes for nginx and mysql
2016-11-25 01:51:25 -05:00
225fb8cf4f Merge pull request #384 from LarryEitel/phpstorm-guide
phpstorm-debugging-guide
2016-11-18 16:03:33 -05:00
f67edee5e5 LaraDock-PHPStorm Debugging Guide
-	modified:   README.md
-	new file:   _guides/photos/KiTTY/Connection.png
-	new file:   _guides/photos/KiTTY/ConnectionData.png
-	new file:   _guides/photos/KiTTY/ConnectionSSH.png
-	new file:   _guides/photos/KiTTY/ConnectionSSHAuth.png
-	new file:   _guides/photos/KiTTY/Session.png
-	new file:   _guides/photos/KiTTY/Terminal.png
-	new file:   _guides/photos/KiTTY/TerminalKeyboard.png
-	new file:   _guides/photos/KiTTY/TerminalShell.png
-	new file:   _guides/photos/KiTTY/Window.png
-	new file:   _guides/photos/KiTTY/WindowAppearance.png
-	new file:   _guides/photos/PHPStorm/DebugRemoteOn.png
-	new file:   _guides/photos/PHPStorm/RemoteDebuggingSuccess.png
-	new file:   _guides/photos/PHPStorm/RemoteHost.png
-	new file:   _guides/photos/PHPStorm/RemoteTestDebuggingSuccess.png
-	new file:   _guides/photos/PHPStorm/RemoteWebDebuggingSuccess.png
-	new file:   _guides/photos/PHPStorm/Settings/BuildDeploymentConnection.png
-	new file:   _guides/photos/PHPStorm/Settings/BuildDeploymentConnectionMappings.png
-	new file:   _guides/photos/PHPStorm/Settings/BuildDeploymentDebugger.png
-	new file:   _guides/photos/PHPStorm/Settings/EditRunConfigurationRemoteExampleTestDebug.png
-	new file:   _guides/photos/PHPStorm/Settings/EditRunConfigurationRemoteWebDebug.png
-	new file:   _guides/photos/PHPStorm/Settings/LangsPHPDebug.png
-	new file:   _guides/photos/PHPStorm/Settings/LangsPHPInterpreters.png
-	new file:   _guides/photos/PHPStorm/Settings/LangsPHPPHPUnit.png
-	new file:   _guides/photos/PHPStorm/Settings/LangsPHPServers.png
-	new file:   _guides/photos/PHPStorm/Settings/WindowsFirewallAllowedApps.png
-	new file:   _guides/photos/PHPStorm/Settings/WindowsHyperVManager.png
-	new file:   _guides/photos/PHPStorm/Settings/hosts.png
-	new file:   _guides/photos/SimpleHostsEditor/AddHost_laravel.png
-	new file:   _guides/phpstorm.md
2016-11-18 14:12:10 -06:00
e5a8fb9c95 Merge pull request #437 from philtrep/fix-mysql-change-env
Added proper creation of mysql user, removal of default homestead user
2016-11-18 10:12:37 -05:00
4ef5db3713 Added proper creation of mysql user, removal of default homestead user 2016-11-17 16:37:51 -05:00
6bbd1fbe19 Use mysql 5.7 with disabled option ONLY_FULL_GROUP_BY (which causes many problem to people) 2016-11-16 16:16:52 +07:00
d703c82c46 Exclude sites configuration from image and just use volume 2016-11-16 15:58:42 +07:00
ecc4e06740 Merge pull request #432 from philtrep/port-already-allocated
Added 'port is already allocated' error to the docs debugging section
2016-11-15 09:20:37 -05:00
8b09149b15 Added 'port is already allocated' error to the docs debugging section 2016-11-14 20:48:59 -05:00
380178e6fa Merge pull request #429 from philtrep/mysql-bind-port
Added mysql change port bind documentation
2016-11-14 11:34:02 -05:00
be64b54606 Merge pull request #428 from laradock/appleboy-patch-1
fixed #420 remove phpmyadmin volume setting.
2016-11-14 11:32:55 -05:00
cbeeb48aa1 Added mysql change port binnd documentation 2016-11-14 11:24:28 -05:00
7e2814168a fixed #420 remove phpmyadmin volume setting. 2016-11-14 23:45:52 +08:00
5e9ae56a7f Merge pull request #419 from laradock/yarn
Revert #418 and fix install yarn package management.
2016-11-10 09:32:19 -05:00
5d98e78dba Revert #418 and fix install yarn package management.
Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
2016-11-10 10:23:49 +08:00
c5d1116333 Merge pull request #418 from moxar/yarn
Fix a bug that prevents yarn from installing #415
2016-11-09 15:17:42 -05:00
5594c53e03 Fix bug in PATH 2016-11-09 17:55:35 +01:00
44045f85e6 Fix a bug that prevents yarn from installing 2016-11-09 16:14:49 +01:00
fc31a2415c Merge pull request #414 from joaojoyce/postgis-support
Postgis Support
2016-11-08 09:45:31 -05:00
a42f62c626 Postgis 2016-11-08 13:17:23 +00:00
3e4a5edc64 Merge pull request #407 from michaeljhopkins/patch-2
Add solution to mysql connection issues
2016-11-05 18:52:53 -04:00
9289c1b6c0 Add solution to mysql connection issues
Adding in a more "docker conventional" solution to the mysql connection issues
2016-11-05 06:42:19 -06:00
3f157a3277 Merge pull request #403 from darthrevan13/patch-1
Fix for mariadb local path
2016-11-03 23:02:16 +08:00
f732bb283b update the workspace container version 2016-11-03 09:50:21 -04:00
ca4aeada08 add missing step to the docs 2016-11-03 09:50:10 -04:00
3d54d68aa1 Fix for mariadb local path
When running docker-compose with mariadb the following message will appear:

ERROR: for mariadb  Cannot create container for service mariadb: Invalid volume spec "mariadb": Invalid volume destination path: 'mariadb' mount path must be absolute.
ERROR: Encountered errors while bringing up the project.

This commit fixes the issue.
2016-11-03 15:45:59 +02:00
a0153810c6 remove laradock logo on zh document.
Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
2016-11-02 13:43:45 +08:00
47 changed files with 970 additions and 163 deletions

1
.env Normal file
View File

@ -0,0 +1 @@
COMPOSE_CONVERT_WINDOWS_PATHS=1

1
.gitignore vendored
View File

@ -1,4 +1,3 @@
.idea
/logs
/data
.env

View File

@ -5,7 +5,7 @@ Your contribution is more than welcome. Let's keep LaraDock amazing.
### Got a Question or Problem?
If you have questions about how to use LaraDock, please direct your questions to the discussion on [Gitter](https://gitter.im/LaraDock/laradock). If you beleave your question could help others, then consider opening an [Issue](https://github.com/laradock/laradock/issues) (it will be labeled as Question).
If you have questions about how to use LaraDock, please direct your questions to the discussion on [Gitter](https://gitter.im/LaraDock/laradock). If you believe your question could help others, then consider opening an [Issue](https://github.com/laradock/laradock/issues) (it will be labeled as Question).
### Found an Issue?
If you find a bug in the source code or a mistake in the documentation, you can help us by

View File

@ -7,9 +7,7 @@
LaraDock能够帮你在**Docker**上快速搭建**Laravel**应用。
<br>
就像Laravel Homestead一样但是Docker替换了Vagrant。
>先在Docker上使用LaraDock然后再学习它们。
![](https://s31.postimg.org/nbettdki3/lara_dock_poster_new.jpg)
> 先在使用 LaraDock然后再学习它们。
<br>
## 目录
@ -471,7 +469,7 @@ composer create-project laravel/laravel my-cool-app "5.2.*"
系统默认LaraDock假定Laravel应用在LaraDock的父级目录中
By default LaraDock assumes the Laravel application is living in the parent directory of the laradock folder.
新Laravel应用在 `my-cool-app` 目录中, 我们需要用 `../my-cool-app/:/var/www`替换 `../:/var/www` , 如下:
新Laravel应用在 `my-cool-app` 目录中, 我们需要用 `../my-cool-app/:/var/www`替换 `../:/var/www` , 如下:
```yaml
application:

603
README.md

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

302
_guides/phpstorm.md Normal file
View File

@ -0,0 +1,302 @@
# PHPStorm Debugging Guide
- [Intro](#Intro)
- [Installation](#Installation)
- [Customize laradock/docker-compose.yml](#CustomizeDockerCompose)
- [Clean House](#InstallCleanHouse)
- [LaraDock Dial Tone](#InstallLaraDockDialTone)
- [hosts](#AddToHosts)
- [Firewall](#FireWall)
- [Enable xDebug on php-fpm](#enablePhpXdebug)
- [PHPStorm Settings](#InstallPHPStorm)
- [Configs](#InstallPHPStormConfigs)
- [Usage](#Usage)
- [Laravel](#UsageLaravel)
- [Run ExampleTest](#UsagePHPStormRunExampleTest)
- [Debug ExampleTest](#UsagePHPStormDebugExampleTest)
- [Debug Web Site](#UsagePHPStormDebugSite)
- [SSH into workspace](#SSHintoWorkspace)
- [KiTTY](#InstallKiTTY)
<a name="Intro"></a>
## Intro
Wiring up [Laravel](https://laravel.com/), [LaraDock](https://github.com/LaraDock/laradock) [Laravel+Docker] and [PHPStorm](https://www.jetbrains.com/phpstorm/) to play nice together complete with remote xdebug'ing as icing on top! Although this guide is based on `PHPStorm Windows`,
you should be able to adjust accordingly. This guide was written based on Docker for Windows Native.
<a name="Installation"></a>
## Installation
- This guide assumes the following:
- you have already installed and are familiar with Laravel, LaraDock and PHPStorm.
- you have installed Laravel as a parent of `laradock`. This guide assumes `/c/_dk/laravel`.
<a name="AddToHosts"></a>
## hosts
- Add `laravel` to your hosts file located on Windows 10 at `C:\Windows\System32\drivers\etc\hosts`. It should be set to the IP of your running container. Mine is: `10.0.75.2`
On Windows you can find it by opening Windows `Hyper-V Manager`.
- ![Windows Hyper-V Manager](photos/PHPStorm/Settings/WindowsHyperVManager.png)
- [Hosts File Editor](https://github.com/scottlerch/HostsFileEditor) makes it easy to change your hosts file.
- Set `laravel` to your docker host IP. See [Example](photos/SimpleHostsEditor/AddHost_laravel.png).
<a name="FireWall"></a>
## Firewall
Your PHPStorm will need to be able to receive a connection from PHP xdebug either your running workspace or php-fpm containers on port 9000. This means that your Windows Firewall should either enable connections from the Application PHPStorm OR the port.
- It is important to note that if the Application PHPStorm is NOT enabled in the firewall, you will not be able to recreate a rule to override that.
- Also be aware that if you are installing/upgrade different versions of PHPStorm, you MAY have orphaned references to PHPStorm in your Firewall! You may decide to remove orphaned references however in either case, make sure that they are set to receive public TCP traffic.
### Edit laradock/docker-compose.yml
Set the following variables:
```
### Workspace Utilities Container ###########################
workspace:
build:
context: ./workspace
args:
- INSTALL_XDEBUG=true
- INSTALL_WORKSPACE_SSH=true
...
### PHP-FPM Container #######################################
php-fpm:
build:
context: ./php-fpm
args:
- INSTALL_XDEBUG=true
...
```
### Edit xdebug.ini files
- `laradock/workspace/xdebug.ini`
- `laradock/php-fpm/xdebug.ini`
Set the following variables:
```
xdebug.remote_autostart=1
xdebug.remote_enable=1
xdebug.remote_connect_back=1
xdebug.cli_color=1
```
<a name="InstallCleanHouse"></a>
### Need to clean house first?
Make sure you are starting with a clean state. For example, do you have other LaraDock containers and images?
Here are a few things I use to clean things up.
- Delete all containers using `grep laradock_` on the names, see: [Remove all containers based on docker image name](https://linuxconfig.org/remove-all-containners-based-on-docker-image-name).
`docker ps -a | awk '{ print $1,$2 }' | grep laradock_ | awk '{print $1}' | xargs -I {} docker rm {}`
- Delete all images containing `laradock`.
`docker images | awk '{print $1,$2,$3}' | grep laradock_ | awk '{print $3}' | xargs -I {} docker rmi {}`
**Note:** This will only delete images that were built with `LaraDock`, **NOT** `laradock/*` which are pulled down by `LaraDock` such as `laradock/workspace`, etc.
**Note:** Some may fail with:
`Error response from daemon: conflict: unable to delete 3f38eaed93df (cannot be forced) - image has dependent child images`
- I added this to my `.bashrc` to remove orphaned images.
```
dclean() {
processes=`docker ps -q -f status=exited`
if [ -n "$processes" ]; thend
docker rm $processes
fi
images=`docker images -q -f dangling=true`
if [ -n "$images" ]; then
docker rmi $images
fi
}
```
- If you frequently switch configurations for LaraDock, you may find that adding the following and added to your `.bashrc` or equivalent useful:
```
# remove laravel* containers
# remove laravel_* images
dcleanlaradockfunction()
{
echo 'Removing ALL containers associated with laradock'
docker ps -a | awk '{ print $1,$2 }' | grep laradock | awk '{print $1}' | xargs -I {} docker rm {}
# remove ALL images associated with laradock_
# does NOT delete laradock/* which are hub images
echo 'Removing ALL images associated with laradock_'
docker images | awk '{print $1,$2,$3}' | grep laradock_ | awk '{print $3}' | xargs -I {} docker rmi {}
echo 'Listing all laradock docker hub images...'
docker images | grep laradock
echo 'dcleanlaradock completed'
}
# associate the above function with an alias
# so can recall/lookup by typing 'alias'
alias dcleanlaradock=dcleanlaradockfunction
```
<a name="InstallLaraDockDialTone"></a>
#### Let's get a dial-tone with Laravel
```
# barebones at this point
docker-compose up -d nginx mysql
# run
docker-compose ps
# Should see:
Name Command State Ports
-----------------------------------------------------------------------------------------------------------
laradock_mysql_1 docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp
laradock_nginx_1 nginx Up 0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp
laradock_php-fpm_1 php-fpm Up 9000/tcp
laradock_volumes_data_1 true Exit 0
laradock_volumes_source_1 true Exit 0
laradock_workspace_1 /sbin/my_init Up 0.0.0.0:2222->22/tcp
```
<a name="enablePhpXdebug"></a>
#### Enable xDebug on php-fpm
In a host terminal sitting in the laradock folder, run: `./xdebugPhpFpm status`
You should see something like the following:
```
xDebug status
laradock_php-fpm_1
PHP 7.0.9 (cli) (built: Aug 10 2016 19:45:48) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
with Xdebug v2.4.1, Copyright (c) 2002-2016, by Derick Rethans
```
Other commands include `./xdebugPhpFpm start | stop`.
If you have enabled `xdebug=true` in `docker-compose.yml/php-fpm`, `xdebug` will already be running when
`php-fpm` is started and listening for debug info on port 9000.
<a name="InstallPHPStormConfigs"></a>
#### PHPStorm Settings
- Here are some settings that are known to work:
- `Settings/BuildDeploymentConnection`
- ![Settings/BuildDeploymentConnection](photos/PHPStorm/Settings/BuildDeploymentConnection.png)
- `Settings/BuildDeploymentConnectionMappings`
- ![Settings/BuildDeploymentConnectionMappings](photos/PHPStorm/Settings/BuildDeploymentConnectionMappings.png)
- `Settings/BuildDeploymentDebugger`
- ![Settings/BuildDeploymentDebugger](photos/PHPStorm/Settings/BuildDeploymentDebugger.png)
- `Settings/EditRunConfigurationRemoteWebDebug`
- ![Settings/EditRunConfigurationRemoteWebDebug](photos/PHPStorm/Settings/EditRunConfigurationRemoteWebDebug.png)
- `Settings/EditRunConfigurationRemoteExampleTestDebug`
- ![Settings/EditRunConfigurationRemoteExampleTestDebug](photos/PHPStorm/Settings/EditRunConfigurationRemoteExampleTestDebug.png)
- `Settings/LangsPHPDebug`
- ![Settings/LangsPHPDebug](photos/PHPStorm/Settings/LangsPHPDebug.png)
- `Settings/LangsPHPInterpreters`
- ![Settings/LangsPHPInterpreters](photos/PHPStorm/Settings/LangsPHPInterpreters.png)
- `Settings/LangsPHPPHPUnit`
- ![Settings/LangsPHPPHPUnit](photos/PHPStorm/Settings/LangsPHPPHPUnit.png)
- `Settings/LangsPHPServers`
- ![Settings/LangsPHPServers](photos/PHPStorm/Settings/LangsPHPServers.png)
- `RemoteHost`
To switch on this view, go to: `Menu/Tools/Deployment/Browse Remote Host`.
- ![RemoteHost](photos/PHPStorm/RemoteHost.png)
- `RemoteWebDebug`
- ![DebugRemoteOn](photos/PHPStorm/DebugRemoteOn.png)
- `EditRunConfigurationRemoteWebDebug`
Go to: `Menu/Run/Edit Configurations`.
- ![EditRunConfigurationRemoteWebDebug](photos/PHPStorm/Settings/EditRunConfigurationRemoteWebDebug.png)
- `EditRunConfigurationRemoteExampleTestDebug`
Go to: `Menu/Run/Edit Configurations`.
- ![EditRunConfigurationRemoteExampleTestDebug](photos/PHPStorm/Settings/EditRunConfigurationRemoteExampleTestDebug.png)
- `WindowsFirewallAllowedApps`
Go to: `Control Panel\All Control Panel Items\Windows Firewall\Allowed apps`.
- ![WindowsFirewallAllowedApps.png](photos/PHPStorm/Settings/WindowsFirewallAllowedApps.png)
- `hosts`
Edit: `C:\Windows\System32\drivers\etc\hosts`.
- ![WindowsFirewallAllowedApps.png](photos/PHPStorm/Settings/hosts.png)
- [Enable xDebug on php-fpm](#enablePhpXdebug)
<a name="Usage"></a>
## Usage
<a name="UsagePHPStormRunExampleTest"></a>
### Run ExampleTest
- right-click on `tests/ExampleTest.php`
- Select: `Run 'ExampleTest.php'` or `Ctrl+Shift+F10`.
- Should pass!! You just ran a remote test via SSH!
<a name="UsagePHPStormDebugExampleTest"></a>
### Debug ExampleTest
- Open to edit: `tests/ExampleTest.php`
- Add a BreakPoint on line 16: `$this->visit('/')`
- right-click on `tests/ExampleTest.php`
- Select: `Debug 'ExampleTest.php'`.
- Should have stopped at the BreakPoint!! You are now debugging locally against a remote Laravel project via SSH!
- ![Remote Test Debugging Success](photos/PHPStorm/RemoteTestDebuggingSuccess.png)
<a name="UsagePHPStormDebugSite"></a>
### Debug WebSite
- In case xDebug is disabled, from the `laradock` folder run:
`./xdebugPhpFpm start`.
- To switch xdebug off, run:
`./xdebugPhpFpm stop`
- Start Remote Debugging
- ![DebugRemoteOn](photos/PHPStorm/DebugRemoteOn.png)
- Open to edit: `bootstrap/app.php`
- Add a BreakPoint on line 14: `$app = new Illuminate\Foundation\Application(`
- Reload [Laravel Site](http://laravel/)
- Should have stopped at the BreakPoint!! You are now debugging locally against a remote Laravel project via SSH!
- ![Remote Debugging Success](photos/PHPStorm/RemoteDebuggingSuccess.png)
<a name="SSHintoWorkspace"></a>
#### Let's shell into workspace
Assuming that you are in laradock folder, type:
`ssh -i workspace/insecure_id_rsa -p2222 root@laravel`
**Cha Ching!!!!**
- `workspace/insecure_id_rsa.ppk` may become corrupted. In which case:
- fire up `puttygen`
- import `workspace/insecure_id_rsa`
- save private key to `workspace/insecure_id_rsa.ppk`
<a name="InstallKiTTY"></a>
##### KiTTY
[Kitty](http://www.9bis.net/kitty/) KiTTY is a fork from version 0.67 of PuTTY.
- Here are some settings that are working for me:
- ![Session](photos/KiTTY/Session.png)
- ![Terminal](photos/KiTTY/Terminal.png)
- ![Window](photos/KiTTY/Window.png)
- ![WindowAppearance](photos/KiTTY/WindowAppearance.png)
- ![Connection](photos/KiTTY/Connection.png)
- ![ConnectionData](photos/KiTTY/ConnectionData.png)
- ![ConnectionSSH](photos/KiTTY/ConnectionSSH.png)
- ![ConnectionSSHAuth](photos/KiTTY/ConnectionSSHAuth.png)
- ![TerminalShell](photos/KiTTY/TerminalShell.png)

View File

@ -22,11 +22,14 @@ services:
- INSTALL_YARN=false
- INSTALL_DRUSH=false
- INSTALL_AEROSPIKE_EXTENSION=false
- INSTALL_V8JS_EXTENSION=false
- COMPOSER_GLOBAL_INSTALL=false
- INSTALL_WORKSPACE_SSH=false
- INSTALL_LARAVEL_ENVOY=false
- PUID=1000
- PGID=1000
- NODE_VERSION=stable
- YARN_VERSION=latest
- TZ=UTC
volumes_from:
- applications
@ -44,8 +47,10 @@ services:
context: ./php-fpm
args:
- INSTALL_XDEBUG=false
- INSTALL_SOAP=false
- INSTALL_MONGO=false
- INSTALL_ZIP_ARCHIVE=false
- INSTALL_BCMATH=false
- INSTALL_MEMCACHED=false
- INSTALL_OPCACHE=false
- INSTALL_AEROSPIKE_EXTENSION=false
@ -75,6 +80,7 @@ services:
- applications
volumes:
- ./logs/nginx/:/var/log/nginx
- ./nginx/sites/:/etc/nginx/sites-available
ports:
- "80:80"
- "443:443"
@ -112,23 +118,24 @@ services:
### MySQL Container #########################################
mysql:
build: ./mysql
build:
context: ./mysql
args:
- MYSQL_DATABASE=homestead
- MYSQL_USER=homestead
- MYSQL_PASSWORD=secret
- MYSQL_ROOT_PASSWORD=root
volumes:
- mysql:/var/lib/mysql
ports:
- "3306:3306"
environment:
MYSQL_DATABASE: homestead
MYSQL_USER: homestead
MYSQL_PASSWORD: secret
MYSQL_ROOT_PASSWORD: root
### MariaDB Container #######################################
mariadb:
build: ./mariadb
volumes:
- mariadb
- mysql:/var/lib/mysql
ports:
- "3306:3306"
environment:
@ -150,6 +157,19 @@ services:
POSTGRES_USER: homestead
POSTGRES_PASSWORD: secret
### PostgreSQL PostGis Container ############################
postgres-postgis:
build: ./postgres-postgis
volumes:
- postgres:/var/lib/postgresql/data
ports:
- "5432:5432"
environment:
POSTGRES_DB: homestead
POSTGRES_USER: homestead
POSTGRES_PASSWORD: secret
### Neo4j Container #########################################
neo4j:
@ -170,6 +190,15 @@ services:
- "27017:27017"
volumes:
- mongo:/data/db
### RethinkDB Container #######################################
rethinkdb:
build: ./rethinkdb
ports:
- "8090:8080"
volumes:
- rethinkdb:/data/rethinkdb_data
### Redis Container #########################################
@ -244,14 +273,12 @@ services:
caddy:
build: ./caddy
volumes_from:
- applications
volumes:
- caddy:/root/.caddy
ports:
- "80:80"
- "443:443"
- "2015:2015"
volumes_from:
- applications
volumes:
- ./caddy/Caddyfile:/etc/Caddyfile
- ./logs/caddy:/var/log/caddy
@ -267,8 +294,6 @@ services:
MYSQL_USER: homestead
MYSQL_PASSWORD: secret
MYSQL_ROOT_PASSWORD: root
volumes:
- phpmyadmin
ports:
- "8080:80"
links:
@ -292,13 +317,20 @@ services:
build: ./elasticsearch
volumes:
- elasticsearch-data:/usr/share/elasticsearch/data
- elasticsearch-pkugins:/usr/share/elasticsearch/data
- elasticsearch-plugins:/usr/share/elasticsearch/data
ports:
- "9200:9200"
- "9300:9300"
links:
- php-fpm
### Selenium Container #########################################
selenium:
build: ./selenium
ports:
- "4444:4444"
### Volumes Setup ###########################################
volumes:
@ -316,6 +348,8 @@ volumes:
driver: "local"
mongo:
driver: "local"
rethinkdb:
driver: "local"
phpmyadmin:
driver: "local"
aerospike:
@ -324,7 +358,7 @@ volumes:
driver: "local"
elasticsearch-data:
driver: "local"
elasticsearch-pkugins:
elasticsearch-plugins:
driver: "local"
sessions: ## nothing is connected to this (- ./data/sessions:/sessions)
driver: "local"

View File

@ -1,9 +1,27 @@
FROM mysql:5.6
FROM mysql:5.7
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
ADD startup /etc/mysql/startup
RUN chown -R mysql:root /var/lib/mysql/
ARG MYSQL_DATABASE=homestead
ARG MYSQL_USER=homestead
ARG MYSQL_PASSWORD=secret
ARG MYSQL_ROOT_PASSWORD=root
ENV MYSQL_DATABASE=$MYSQL_DATABASE
ENV MYSQL_USER=$MYSQL_USER
ENV MYSQL_PASSWORD=$MYSQL_PASSWORD
ENV MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD
RUN sed -i 's/MYSQL_DATABASE/'$MYSQL_DATABASE'/g' /etc/mysql/startup && \
sed -i 's/MYSQL_USER/'$MYSQL_USER'/g' /etc/mysql/startup && \
sed -i 's/MYSQL_PASSWORD/'$MYSQL_PASSWORD'/g' /etc/mysql/startup
ADD my.cnf /etc/mysql/conf.d/my.cnf
CMD ["mysqld"]
CMD ["mysqld", "--init-file=/etc/mysql/startup"]
EXPOSE 3306

View File

@ -4,3 +4,6 @@
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
[mysql]
[mysqld]
sql-mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

4
mysql/startup Normal file
View File

@ -0,0 +1,4 @@
DROP USER IF EXISTS 'MYSQL_USER';
CREATE USER 'MYSQL_USER'@'%';
CREATE DATABASE IF NOT EXISTS MYSQL_DATABASE;
GRANT ALL ON MYSQL_DATABASE.* TO 'MYSQL_USER'@'%' IDENTIFIED BY 'MYSQL_PASSWORD';

View File

@ -3,7 +3,6 @@ FROM nginx:alpine
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
ADD nginx.conf /etc/nginx/
COPY sites/*.conf /etc/nginx/sites-available/
ARG PHP_UPSTREAM=php-fpm

2
nginx/sites/.gitignore vendored Normal file
View File

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

View File

@ -36,6 +36,18 @@ MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
# - INSTALL_ZIP_ARCHIVE=true
#
#####################################
# SOAP:
#####################################
ARG INSTALL_SOAP=false
RUN if [ ${INSTALL_SOAP} = true ]; then \
# Install the soap extension
apt-get -y update && \
apt-get -y install libxml2-dev && \
docker-php-ext-install soap \
;fi
#####################################
# xDebug:
#####################################
@ -72,6 +84,16 @@ RUN if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \
docker-php-ext-enable zip \
;fi
#####################################
# bcmath:
#####################################
ARG INSTALL_BCMATH=false
RUN if [ ${INSTALL_BCMATH} = true ]; then \
# Install the bcmath extension
docker-php-ext-install bcmath \
;fi
#####################################
# PHP Memcached:
#####################################

View File

@ -37,6 +37,18 @@ MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
# - ...
#
#####################################
# SOAP:
#####################################
ARG INSTALL_SOAP=false
RUN if [ ${INSTALL_SOAP} = true ]; then \
# Install the soap extension
apt-get -y update && \
apt-get -y install libxml2-dev && \
docker-php-ext-install soap \
;fi
#####################################
# xDebug:
#####################################
@ -73,6 +85,16 @@ RUN if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \
docker-php-ext-enable zip \
;fi
#####################################
# bcmath:
#####################################
ARG INSTALL_BCMATH=false
RUN if [ ${INSTALL_BCMATH} = true ]; then \
# Install the bcmath extension
docker-php-ext-install bcmath \
;fi
#####################################
# PHP Memcached:
#####################################

View File

@ -0,0 +1,5 @@
FROM mdillon/postgis:latest
CMD ["postgres"]
EXPOSE 5432

11
rethinkdb/Dockerfile Normal file
View File

@ -0,0 +1,11 @@
FROM rethinkdb:latest
MAINTAINER Cristian Mello <cristianc.mello@gmail.com>
VOLUME /data/rethinkdb_data
RUN cp /etc/rethinkdb/default.conf.sample /etc/rethinkdb/instances.d/instance1.conf
CMD ["rethinkdb", "--bind", "all"]
EXPOSE 8080

5
selenium/Dockerfile Normal file
View File

@ -0,0 +1,5 @@
FROM selenium/standalone-chrome
MAINTAINER Edmund Luong <edmundvmluong@gmail.com>
EXPOSE 4444

View File

@ -10,7 +10,7 @@
# https://hub.docker.com/r/laradock/workspace/tags/
#
FROM laradock/workspace:1.1
FROM laradock/workspace:1.3
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
@ -46,7 +46,7 @@ ARG PUID=1000
ARG PGID=1000
RUN groupadd -g $PGID laradock && \
useradd -u $PUID -g laradock -m laradock
#####################################
# Set Timezone
#####################################
@ -125,7 +125,7 @@ ENV INSTALL_MONGO ${INSTALL_MONGO}
RUN if [ ${INSTALL_MONGO} = true ]; then \
# Install the mongodb extension
pecl install mongodb && \
echo "extension=mongodb.so" >> /etc/php/7.0/cli/php.ini \
echo "extension=mongodb.so" >> /etc/php/7.0/cli/conf.d/30-mongodb.ini \
;fi
#####################################
@ -189,9 +189,16 @@ USER laradock
ARG INSTALL_YARN=false
ENV INSTALL_YARN ${INSTALL_YARN}
ARG YARN_VERSION=latest
ENV YARN_VERSION ${YARN_VERSION}
RUN if [ ${INSTALL_YARN} = true ]; then \
curl -o- -L https://yarnpkg.com/install.sh | bash && \
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" && \
if [ ${YARN_VERSION} = "latest" ]; then \
curl -o- -L https://yarnpkg.com/install.sh | bash; \
else \
curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version ${YARN_VERSION}; \
fi && \
echo "" >> ~/.bashrc && \
echo 'export PATH="$HOME/.yarn/bin:$PATH"' >> ~/.bashrc \
;fi
@ -234,6 +241,23 @@ RUN if [ ${INSTALL_AEROSPIKE_EXTENSION} = false ]; then \
rm /etc/php/7.0/cli/conf.d/aerospike.ini \
;fi
#####################################
# PHP V8JS:
#####################################
USER root
ARG INSTALL_V8JS_EXTENSION=false
ENV INSTALL_V8JS_EXTENSION ${INSTALL_V8JS_EXTENSION}
RUN if [ ${INSTALL_V8JS_EXTENSION} = true ]; then \
# Install the php V8JS extension
add-apt-repository -y ppa:pinepain/libv8-5.4 \
&& apt-get update \
&& apt-get install -y php-dev php-pear libv8-5.4 \
&& pecl install v8js \
&& echo "extension=v8js.so" >> /etc/php/7.0/cli/php.ini \
;fi
#####################################
# Non-root user : PHPUnit path
#####################################
@ -244,6 +268,29 @@ USER laradock
RUN echo "" >> ~/.bashrc && \
echo 'export PATH="/var/www/vendor/bin:$PATH"' >> ~/.bashrc
#####################################
# Laravel Artisan Alias
#####################################
USER root
RUN echo "" >> ~/.bashrc && \
echo 'alias art="php artisan"' >> ~/.bashrc
#####################################
# Laravel Envoy:
#####################################
USER laradock
ARG INSTALL_LARAVEL_ENVOY=true
ENV INSTALL_LARAVEL_ENVOY ${INSTALL_LARAVEL_ENVOY}
RUN if [ ${INSTALL_LARAVEL_ENVOY} = true ]; then \
# Install the Laravel Envoy
echo "" >> ~/.bashrc && \
echo 'export PATH="~/.composer/vendor/bin:$PATH"' >> ~/.bashrc \
&& composer global require "laravel/envoy=~1.0" \
;fi
#
#--------------------------------------------------------------------------
# Final Touch

View File

@ -4,7 +4,7 @@
# Grab full name of php-fpm container
PHP_FPM_CONTAINER=$(docker-compose ps | grep php-fpm | cut -d" " -f 1)
PHP_FPM_CONTAINER=$(docker-compose ps | grep php-fpm | cut -d " " -f 1)
# Grab OS type