Compare commits

...

88 Commits

Author SHA1 Message Date
a5c505bf28 Merge pull request #1181 from zuohuadong/patch-9
use caddy in Apache-2.0
2017-10-14 22:33:43 +03:00
427088e11b Merge pull request #1189 from maxhelias/feature/maildev
Add MailDev Container
2017-10-14 22:32:19 +03:00
3467821c28 Merge pull request #1184 from zuohuadong/patch-12
alpine be quckly
2017-10-14 22:31:51 +03:00
f9553dff4c Merge pull request #1183 from zuohuadong/patch-11
update jenkins version
2017-10-14 22:31:23 +03:00
8e556008d8 Add MailDev Container 2017-10-14 20:01:16 +02:00
dff0e82ddb alpine be quckly
alpine be quckly
2017-10-12 18:42:11 +08:00
1702a5cc09 rm version 2017-10-12 18:40:12 +08:00
f15bc8e6b7 update jenkins version
update jenkins version to 2.73.2
update docker-compose version to 1.16.1
update TINI version to 0.16.1
2017-10-12 18:37:26 +08:00
903c77421c Merge pull request #1182 from khoanguyen96/fix-typos-contributing
fix typos in contributing
2017-10-12 05:47:33 +03:00
2bedfdd9d7 fix typos in contributing 2017-10-11 18:08:24 -07:00
525c4313a0 use caddy in Apache-2.0
see:   https://caddyserver.com/products/licenses

so, I use caddypulg, it is  free
2017-10-11 19:48:07 +08:00
01c358b6bc Merge pull request #1176 from taufek/tj-chrome-driver-var
Move Chrome Driver Version to Env
2017-10-06 20:44:30 +03:00
a0685705c0 Merge pull request #1175 from taufek/tj-dusk-doc-2
Update Dusk Documentation
2017-10-06 20:43:40 +03:00
98b2b2e47b Update Dusk Documentation
Added new option on how to setup and run Dusk tests without Selenium.
2017-10-07 00:47:02 +08:00
eeee14338f Move Chrome Driver Version to Env
This will allow us to upgrade chrome driver easily. Set the default chrome driver to 2.32.

Also remove the comment and empty line to avoid getting below warning:

```
[WARNING]: Empty continuation lines will become errors in a future release.
```
2017-10-06 22:58:52 +08:00
a2edf57e3b Merge pull request #1172 from taufek/tj-chrome-for-dusk
Install Dependencies to Run Dusk Tests
2017-10-03 11:43:49 +03:00
881cbfb8c2 Install Dependencies to Run Dusk Tests
**Why we need this change?**

Currently we are unable to run Dusk (Browser) tests in workspace container. This change,
is to allow us to install all dependencies needed to run Dust test which consists of

1. Linux packages such as xvfb (x-virtual frame buffer to run browser in headless container) and etc.
2. Chrome browser.
3. Chrome driver.

To install the Dusk dependencies.
1. Update `WORKSPACE_INSTALL_DUSK_DEPS` to true.
2. Run `docker-compose build workspace`.

I've also added couple of aliases to facilitate the preparation of test environment.

1. xvfb = `Xvfb -ac :0 -screen 0 1024x768x16 &` (run x-virtual frame buffer in the background)
2. serve = `php artisan serve --quiet &` (run laravel app in the background)

Once those are installed, we will need to update the default chrome driver argument in Laravel 5.5
from `--headless` to `sandbox`. Below are the steps to run Dusk in workspace.

1. `docker-compose run workspace bash` (get into workspace).
2. `laravel new dusk-test` (generate new lavarel app for testing purpose).
3. `cd dusk-test` (change directory to newly generate app folder).
4. `composer install --dev laravel/dusk` (install dusk via composer).
5. `php artisan dusk:install` (generate dusk files).
6. `sed -i '/APP_URL/d' .env` (remove APP_URL entry in .env)
7. `echo 'APP_URL=localhost:8000' >> .env` (add new APP_URL entry in .env)
8. `sed -i--'s/headless/no-sandbox/g' tests/DuskTestCase.php` (replace the default chrome driver argument).
9. `xvfb` (alias to run Xvfb instance in the background).
10. `serve` (alias to run laravel app in the background).
11. `dusk` (alias to run Dusk test).
2017-10-02 20:08:01 +08:00
6cff904eba Merge pull request #1170 from id2s/feature-php-ldap-workspace
Add PHP LDAP extension if needed
2017-09-29 20:15:46 +03:00
04770bc4ec Add PHP LDAP extension if needed 2017-09-29 14:56:28 +02:00
1281490c39 Merge pull request #1168 from nunomazer/master
Add pecl before mongo install on Dockerfile-56 to stop mongodb breaking building
2017-09-29 00:57:45 +03:00
3f7988060e Add pecl before mongo install 2017-09-28 17:16:05 -03:00
615cb72eab Merge pull request #1167 from ifdattic/patch-1
Fix typo
2017-09-28 19:22:37 +03:00
e036e69da2 Fix typo 2017-09-28 16:59:21 +03:00
8989c73711 Merge pull request #1163 from luciano-jr/FixAerospikeClientLink
Fix aerospike client link
2017-09-25 23:32:49 +03:00
61144ab2d9 Change the wrong link to aerospike client PHP 2017-09-25 18:30:00 +01:00
221edf4bb2 Merge pull request #23 from laradock/master
Just update the fork
2017-09-25 18:17:10 +01:00
5a073ae841 Merge pull request #1158 from taufek/tj-aliases-update
Add artisan aliases
2017-09-25 01:16:41 +03:00
8c1e71eca5 Add artisan aliases
Added below php artisan commonly used aliases:

```
dusk =  php artisan dusk
fresh = php artisan migrate:fresh
refresh = php artisan migrate:refresh
rollback = php artisan migrate:rollback
```
2017-09-24 22:16:04 +08:00
c0e823b8d2 Merge pull request #1153 from taufek/tj-terraform
Add Terraform to Workspace
2017-09-24 00:56:25 +03:00
8cb4c8d62e Add Terraform to Workspace
Added Terraform (www.terraform.io) binary to workspace container.
This tool is useful to spawn resources to multiple cloud providers via config files.
2017-09-23 15:49:55 +08:00
f765afd4c2 Merge pull request #1151 from luciano-jr/AddAerospikeExtensionOnPhpFpm
Add aerospike.so line to be load on php-fpm
2017-09-22 19:32:19 +03:00
6ea49a0683 Merge pull request #1150 from samdark/fix-typo
Fixed typo in "nginx"
2017-09-22 19:31:55 +03:00
998aa1365e Add aerospike.so line to be load on php-fpm 2017-09-22 12:23:20 +01:00
f2420ec52c Merge pull request #22 from laradock/master
Just update the fork
2017-09-22 12:13:42 +01:00
fe254e86e3 Fixed typo in nginx [skip ci] 2017-09-22 13:10:08 +03:00
53b7f75500 Merge pull request #1145 from vjekoslav/master
Fixes issue #1139, non-responding mirrors.aliyun.com. Reverses 6440ca…
2017-09-20 20:09:47 +03:00
4150f0b140 Fixes issue #1139, non-responding mirrors.aliyun.com. Reverses 6440ca841a 2017-09-20 05:44:36 -07:00
d340b6e60f Merge pull request #1140 from deleugpn/patch-1
Make it easier to solve nginx build stuck
2017-09-19 01:39:15 +03:00
e7357eab83 Merge pull request #1142 from roelal/apache_socket_timeout
add APACHE_PHP_UPSTREAM_TIMEOUT
2017-09-19 01:38:28 +03:00
110aa91c59 add APACHE_PHP_UPSTREAM_TIMEOUT 2017-09-18 15:24:48 +02:00
e5aef41dd2 Make it easier to solve nginx build stuck 2017-09-18 13:07:30 +02:00
ae048e6c66 Merge pull request #1137 from JoelRSimpson/patch-1
Update docker-compose.yml
2017-09-15 22:08:55 +03:00
a5f3a92eb4 Update docker-compose.yml
It looks like the 
     219: user: "1000:50" 
statement was added a while back to fix a file permissions issue, but on a completely fresh up it keeps mysql from starting, generating the following.  Removing the line allowed everything to work properly.:

mysql_1                | Initializing database
mysql_1                | mysqld: Can't create/write to file '/var/lib/mysql/is_writable' (Errcode: 13 - Permission denied)
mysql_1                | 2017-09-14T23:55:30.989254Z 0 [Note] Basedir set to /usr/
mysql_1                | 2017-09-14T23:55:30.989559Z 0 [Warning] The syntax '--symbolic-links/-s' is deprecated and will be removed in a future release
mysql_1                | 2017-09-14T23:55:30.989602Z 0 [Warning] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
mysql_1                | 2017-09-14T23:55:30.990877Z 0 [ERROR] --initialize specified but the data directory exists and is not writable. Aborting.
mysql_1                | 2017-09-14T23:55:30.990886Z 0 [ERROR] Aborting
2017-09-14 17:17:34 -07:00
655b9a1526 Merge pull request #1128 from chkm8/aws-ebcli
Aws ebcli
2017-09-13 00:17:05 +03:00
7ac37ecd35 added aws docs 2017-09-12 04:30:53 +08:00
792789e479 added eb cli container 2017-09-12 04:13:44 +08:00
801ccd47d2 Merge pull request #1121 from freearhey/master
Added support of ImageMagick
2017-09-06 14:59:29 +03:00
5c5f94600a Rename laravel.pool.conf to xlaravel.pool.conf
Fix issue #1011
2017-09-06 00:22:18 +03:00
b2e372054f Fixed php-fpm build 2017-09-05 23:36:30 +03:00
0a23d53ee5 Move php-imagick to php-fpm and enable it 2017-09-05 21:47:47 +03:00
f6552aca97 Added support of ImageMagick to php-fpm 2017-09-05 21:09:34 +03:00
e9806d9bca Merge pull request #1120 from WanchiaTsai/add-env-path-for-node
add ENV PATH, fix the problem of docker-compose exec workspace npm(or…
2017-09-05 16:30:44 +03:00
e56801846b add ENV PATH, fix the problem of docker-compose exec workspace npm(or other node-related script). 2017-09-05 11:06:53 +08:00
f9e6acd4e1 Fix syntax error 2017-09-05 03:15:24 +03:00
b61ff4f484 Added support of ImageMagick 2017-09-05 02:36:24 +03:00
8485add87a Merge pull request #1117 from masterjus/fix-php_redis-installation
Fix Php Redis extension installation
2017-09-04 22:40:21 +03:00
d3fb967f0f Merge pull request #21 from laradock/master
Up-to-date
2017-09-04 10:49:41 +01:00
a36620c3bd Restart build 2017-09-04 12:05:34 +03:00
cddc934e1e Fix phpreddis installation for all versions of php 2017-09-04 11:33:14 +03:00
53b3ad0f7e Fix Php Redis extension installation 2017-08-31 19:29:19 +03:00
fdcf9117ac Merge pull request #1115 from joaorobertopb/patch-1
Changes to correct version of dockerfile
2017-08-30 01:07:37 +03:00
f800a3221a Changes to correct version of dockerfile
- Removes extra spaces
2017-08-29 12:54:01 -03:00
a1d3eeb7e6 Merge pull request #1107 from oaattia/master
Can't create/write to file '/var/lib/mysql/is_writable'
2017-08-23 21:14:29 +03:00
b2f7348552 Merge pull request #1101 from terryzwt/drpual-console
add drupal console to workspace
2017-08-23 21:14:13 +03:00
ebeddcba23 Merge pull request #1097 from macghriogair/master
[php-worker] dedicated dockerfile for php 7.0/7.1
2017-08-23 21:11:45 +03:00
dba37307b5 Merge pull request #1093 from zuohuadong/patch-7
fix to backup and fix max client
2017-08-23 21:11:02 +03:00
2af5b2ff49 fix mysql can't write to file 2017-08-22 12:12:56 +03:00
93d5b318fe add drupal console to workspace 2017-08-19 22:58:40 +08:00
9ce470e14e [php-worker] dedicated dockerfile for php 7.0/7.1
fixes #927: PHP-Worker container uses PHP-CLI 7.0.9 despite workspace using 7.1.4
2017-08-17 09:39:37 +02:00
38fb49bccc Merge pull request #1095 from exfriend/patch-2
Fix supervisord.conf file path
2017-08-17 04:37:18 +03:00
08896f9fb6 Fix supervisord.conf file path
otherwise image ignores the supplied supervisord.conf
2017-08-16 00:33:51 +03:00
dcab211b07 Merge pull request #1094 from zuohuadong/patch-8
add pgadmin backup volumes
2017-08-14 23:53:31 +03:00
76001daf71 add pgadmin backup volumes
you can use backup files  in ${DATA_SAVE_PATH}/pgadmin-backup
2017-08-14 10:09:17 +08:00
30b626d43e fix to backup and fix max client
in  this version, you can backup postgresql
2017-08-14 10:04:11 +08:00
586a225c11 Merge pull request #1089 from ELD/add-dusk-support-and-docs
add docs on running Laravel Dusk tests
2017-08-11 10:26:31 +03:00
c099a51d52 add docs on running Laravel Dusk tests 2017-08-10 21:08:09 -06:00
245ddf3441 update documentation link in the readme 2017-08-09 16:18:29 +03:00
0192346cf2 Merge pull request #1082 from arywidiantara/master
[UPDATE] change config redis from docker compose to env
2017-08-09 11:28:06 +03:00
e4f4de47e7 [UPDATE] change config redis from docker compose to env 2017-08-09 10:17:53 +07:00
69ccd74d2e Update Improve MAC speed docs 2017-08-08 15:01:41 +03:00
bf691337f1 Merge pull request #20 from laradock/master
Just update the fork
2017-05-24 17:56:05 +01:00
d616545268 Merge pull request #19 from laradock/master
Just update the fork
2017-03-14 13:00:16 +00:00
57ecd6e515 Merge pull request #18 from laradock/master
Just update the fork repository
2017-03-07 13:22:10 +00:00
5b5ba53112 Merge pull request #17 from laradock/master
Just update the fork project
2017-01-23 16:06:25 +00:00
bd87a26db1 Merge pull request #16 from laradock/master
Just update the fork
2017-01-09 17:46:36 +00:00
c0283da6ee Merge pull request #15 from laradock/master
Just update the fork to keep sync
2016-12-30 11:34:19 +00:00
e372d624a6 Merge pull request #14 from laradock/master
Just update the fork repository
2016-12-07 13:18:41 +00:00
db6c6e7e0f Merge pull request #13 from luciano-jr/feature/vue-cli-workspace
Add vue-cli on workspace npm global installers
2016-09-06 23:44:14 +01:00
28 changed files with 992 additions and 152 deletions

7
.github/README.md vendored
View File

@ -22,9 +22,12 @@
---
## Documentation
<p align="center">
<a href="http://laradock.io">
<img src="https://s19.postimg.org/ecnn9vdw3/Screen_Shot_2017-08-01_at_5.08.54_AM.png" width=300px" alt="Laradock Docs"/>
</a>
</p>
[**Full Documentation Here**](http://laradock.io)
## Credits

View File

@ -33,9 +33,9 @@ env:
- PHP_VERSION=70 BUILD_SERVICE=aerospike
- PHP_VERSION=71 BUILD_SERVICE=aerospike
- PHP_VERSION=56 BUILD_SERVICE="memcached beanstalkd beanstalkd-console rabbitmq adminer elasticsearch certbot mailhog selenium jenkins proxy proxy2 balancer"
- PHP_VERSION=70 BUILD_SERVICE="memcached beanstalkd beanstalkd-console rabbitmq adminer elasticsearch certbot mailhog selenium jenkins proxy proxy2 balancer"
- PHP_VERSION=71 BUILD_SERVICE="memcached beanstalkd beanstalkd-console rabbitmq adminer elasticsearch certbot mailhog selenium jenkins proxy proxy2 balancer"
- PHP_VERSION=56 BUILD_SERVICE="memcached beanstalkd beanstalkd-console rabbitmq adminer elasticsearch certbot mailhog maildev selenium jenkins proxy proxy2 balancer"
- PHP_VERSION=70 BUILD_SERVICE="memcached beanstalkd beanstalkd-console rabbitmq adminer elasticsearch certbot mailhog maildev selenium jenkins proxy proxy2 balancer"
- PHP_VERSION=71 BUILD_SERVICE="memcached beanstalkd beanstalkd-console rabbitmq adminer elasticsearch certbot mailhog maildev selenium jenkins proxy proxy2 balancer"
- HUGO_VERSION=0.20.2

View File

@ -14,7 +14,7 @@ If you have questions about how to use Laradock, please direct your questions to
## Found an Issue
If have an issue or you found a typo in the documentation, you can help us by
opnening an [Issue](https://github.com/laradock/laradock/issues).
opening an [Issue](https://github.com/laradock/laradock/issues).
**Steps to do before opening an Issue:**
@ -24,7 +24,7 @@ opnening an [Issue](https://github.com/laradock/laradock/issues).
If your issue appears to be a bug, and hasn't been reported, then open a new issue.
*This Help us to maximize the effort we can spend fixing issues and adding new
*This helps us maximize the effort we can spend fixing issues and adding new
features, by not reporting duplicate issues.*
@ -61,7 +61,7 @@ To update the sidebar or add a new section to it, you can edit this `DOCUMENTATI
## Support new Software (Add new Container)
* Forke the repo and clone the code.
* Fork the repo and clone the code.
* Create folder as the software name (example: `mysql` - `nginx`).
@ -81,7 +81,7 @@ To update the sidebar or add a new section to it, you can edit this `DOCUMENTATI
## Edit supported Software (Edit a Container)
* Forke the repo and clone the code.
* Fork the repo and clone the code.
* Open the software (container) folder (example: `mysql` - `nginx`).

View File

@ -5,6 +5,8 @@ weight: 3
---
<a name="List-current-running-Containers"></a>
## List current running Containers
```bash
@ -153,88 +155,8 @@ You might use the `--no-cache` option if you want full rebuilding (`docker-compo
<br>
<a name="Docker-Sync"></a>
## Speed up with docker-sync
Docker on the Mac [is slow](https://github.com/docker/for-mac/issues/77), at the time of writing. Especially for larger projects, this can be a problem. The problem is [older than March 2016](https://forums.docker.com/t/file-access-in-mounted-volumes-extremely-slow-cpu-bound/8076) - as it's a such a long-running issue, we're including it in the docs here.
In simple terms, docker-sync creates a docker container with a copy of all the application files that can be accessed very quickly from the other containers.
On the other hand, docker-sync runs a process on the host machine that continuously tracks and updates files changes from the host to this intermediate container.
Out of the box, it comes pre-configured for OS X, but using it on Windows is very easy to set-up by modifying the `DOCKER_SYNC_STRATEGY` on the `.env`
#### Usage
Laradock comes with `sync.sh`, an optional bash script, that automates installing, running and stopping docker-sync. Note that to run the bash script you may need to change the permissions `chmod 755 sync.sh`
1) Configure your Laradock environment as you would normally do and test your application to make sure that your sites are running correctly.
2) Make sure to set `DOCKER_SYNC_STRATEGY` on the `.env`. Read the [syncing strategies](https://github.com/EugenMayer/docker-sync/wiki/8.-Strategies) for details.
```
# osx: 'native_osx' (default)
# windows: 'unison'
# linux: docker-sync not required
DOCKER_SYNC_STRATEGY=native_osx
```
2) Install the docker-sync gem on the host-machine:
```bash
./sync.sh install
```
3) Start docker-sync and the Laradock environment.
Specify the services you want to run, as you would normally do with `docker-compose up`
```bash
./sync.sh up nginx mysql
```
Please note that the first time docker-sync runs, it will copy all the files to the intermediate container and that may take a very long time (15min+).
4) To stop the environment and docker-sync do:
```bash
./sync.sh down
```
#### Setting up Aliases (optional)
You may create bash profile aliases to avoid having to remember and type these commands for everyday development.
Add the following lines to your `~/.bash_profile`:
```bash
alias devup="cd /PATH_TO_LARADOCK/laradock; ./sync.sh up nginx mysql" #add your services
alias devbash="cd /PATH_TO_LARADOCK/laradock; ./sync.sh bash"
alias devdown="cd /PATH_TO_LARADOCK/laradock; ./sync.sh down"
```
Now from any location on your machine, you can simply run `devup`, `devbash` and `devdown`.
#### Additional Commands
Opening bash on the workspace container (to run artisan for example):
```bash
./sync.sh bash
```
Manually triggering the synchronization of the files:
```bash
./sync.sh sync
```
Removing and cleaning up the files and the docker-sync container. Use only if you want to rebuild or remove docker-sync completely. The files on the host will be kept untouched.
```bash
./sync.sh clean
```
**Additional Notes:**
- You may run laradock with or without docker-sync at any time using with the same `.env` and `docker-compose.yml`, because the configuration is overridden automatically when docker-sync is used.
- You may inspect the `sync.sh` script to learn each of the commands and even add custom ones.
- If a container cannot access the files on docker-sync, you may need to set a user on the Dockerfile of that container with an id of 1000 (this is the UID that nginx and php-fpm have configured on laradock). Alternatively, you may change the permissions to 777, but this is **not** recommended.
Visit the [docker-sync documentation](https://github.com/EugenMayer/docker-sync/wiki) for more details.
<br>
<a name="Add-Docker-Images"></a>
## Add more Software (Docker Images)
To add an image (software), just edit the `docker-compose.yml` and add your container details, to do so you need to be familiar with the [docker compose file syntax](https://docs.docker.com/compose/compose-file/).
@ -310,7 +232,7 @@ By default **PHP-FPM 7.0** is running.
php-fpm:
build:
context: ./php-fpm
dockerfile: Dockerfile-70
dockerfile: Dockerfile-56
...
```
@ -1000,6 +922,26 @@ docker-compose up -d minio
```
<br>
<a name="Use-AWS"></a>
## Use AWS
1 - Configure AWS:
- make sure to add your SSH keys in aws/ssh_keys folder
2 - Run the Aws Container (`aws`) with the `docker-compose up` command. Example:
```bash
docker-compose up -d aws
```
3 - Access the aws container with `docker-compose exec aws bash`
4 - To start using eb cli inside the container, initiaze your project first by doing 'eb init'. Read the [aws eb cli](http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-configuration.html) docs for more details.
<br>
<a name="CodeIgniter"></a>
@ -1494,7 +1436,11 @@ Moving from Docker Toolbox (VirtualBox) to Docker Native (for Mac/Windows). Requ
<a name="Speed-MacOS"></a>
## Improve speed on MacOS
Sharing code into Docker containers with osxfs have very poor performance compared to Linux. Likely there are some workarounds:
Docker on the Mac [is slow](https://github.com/docker/for-mac/issues/77), at the time of writing. Especially for larger projects, this can be a problem. The problem is [older than March 2016](https://forums.docker.com/t/file-access-in-mounted-volumes-extremely-slow-cpu-bound/8076) - as it's a such a long-running issue, we're including it in the docs here.
So since sharing code into Docker containers with osxfs have very poor performance compared to Linux. Likely there are some workarounds:
### Workaround A: using dinghy
@ -1514,9 +1460,99 @@ Quick Setup giude, (we recommend you check their docs)
<br>
<a name="Docker-Sync"></a>
### Workaround B: using d4m-nfs
You can use the d4m-nfs solution in 2 ways, one is using the Laradock built it integration, and the other is using the tool separatly. Below is show case of both methods:
#### B.1: using the built in d4m-nfs integration
In simple terms, docker-sync creates a docker container with a copy of all the application files that can be accessed very quickly from the other containers.
On the other hand, docker-sync runs a process on the host machine that continuously tracks and updates files changes from the host to this intermediate container.
Out of the box, it comes pre-configured for OS X, but using it on Windows is very easy to set-up by modifying the `DOCKER_SYNC_STRATEGY` on the `.env`
##### Usage
Laradock comes with `sync.sh`, an optional bash script, that automates installing, running and stopping docker-sync. Note that to run the bash script you may need to change the permissions `chmod 755 sync.sh`
1) Configure your Laradock environment as you would normally do and test your application to make sure that your sites are running correctly.
2) Make sure to set `DOCKER_SYNC_STRATEGY` on the `.env`. Read the [syncing strategies](https://github.com/EugenMayer/docker-sync/wiki/8.-Strategies) for details.
```
# osx: 'native_osx' (default)
# windows: 'unison'
# linux: docker-sync not required
DOCKER_SYNC_STRATEGY=native_osx
```
2) Install the docker-sync gem on the host-machine:
```bash
./sync.sh install
```
3) Start docker-sync and the Laradock environment.
Specify the services you want to run, as you would normally do with `docker-compose up`
```bash
./sync.sh up nginx mysql
```
Please note that the first time docker-sync runs, it will copy all the files to the intermediate container and that may take a very long time (15min+).
4) To stop the environment and docker-sync do:
```bash
./sync.sh down
```
##### Setting up Aliases (optional)
You may create bash profile aliases to avoid having to remember and type these commands for everyday development.
Add the following lines to your `~/.bash_profile`:
```bash
alias devup="cd /PATH_TO_LARADOCK/laradock; ./sync.sh up nginx mysql" #add your services
alias devbash="cd /PATH_TO_LARADOCK/laradock; ./sync.sh bash"
alias devdown="cd /PATH_TO_LARADOCK/laradock; ./sync.sh down"
```
Now from any location on your machine, you can simply run `devup`, `devbash` and `devdown`.
##### Additional Commands
Opening bash on the workspace container (to run artisan for example):
```bash
./sync.sh bash
```
Manually triggering the synchronization of the files:
```bash
./sync.sh sync
```
Removing and cleaning up the files and the docker-sync container. Use only if you want to rebuild or remove docker-sync completely. The files on the host will be kept untouched.
```bash
./sync.sh clean
```
##### Additional Notes
- You may run laradock with or without docker-sync at any time using with the same `.env` and `docker-compose.yml`, because the configuration is overridden automatically when docker-sync is used.
- You may inspect the `sync.sh` script to learn each of the commands and even add custom ones.
- If a container cannot access the files on docker-sync, you may need to set a user on the Dockerfile of that container with an id of 1000 (this is the UID that nginx and php-fpm have configured on laradock). Alternatively, you may change the permissions to 777, but this is **not** recommended.
Visit the [docker-sync documentation](https://github.com/EugenMayer/docker-sync/wiki) for more details.
<br>
#### B.2: using the d4m-nfs tool
[D4m-nfs](https://github.com/IFSight/d4m-nfs) automatically mount NFS volume instead of osxfs one.
1) Update the Docker [File Sharing] preferences:
@ -1556,17 +1592,10 @@ docker-compose up ...
### Other good workarounds:
- [docker-sync](https://github.com/EugenMayer/docker-sync)
- Add more here..
More details about this issue [here](https://github.com/docker/for-mac/issues/77).
@ -1651,3 +1680,7 @@ This error sometimes happens because your Laravel application isn't running on t
2. Change the `DB_HOST` variable on env with the IP that you received from previous step.
* Option B
1. Change the `DB_HOST` value to the same name as the MySQL docker container. The Laradock docker-compose file currently has this as `mysql`
## I get stuck when building nginx on `fetch http://mirrors.aliyun.com/alpine/v3.5/main/x86_64/APKINDEX.tar.gz`
As stated on [#749](https://github.com/laradock/laradock/issues/749#issuecomment-293296687), removing the line `RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/' /etc/apk/repositories` from `nginx/Dockerfile` solves the problem.

View File

@ -8,6 +8,7 @@ weight: 4
* [Production Setup on Digital Ocean](#Digital-Ocean)
* [PHPStorm XDebug Setup](#PHPStorm-Debugging)
* [Running Laravel Dusk Test](#Laravel-Dusk)
@ -555,4 +556,330 @@ Assuming that you are in laradock folder, type:
- ![ConnectionSSHAuth](/images/photos/KiTTY/ConnectionSSHAuth.png)
- ![TerminalShell](/images/photos/KiTTY/TerminalShell.png)
<br>
<br>
<br>
<br>
<br>
<a name="Laravel-Dusk"></a>
# Running Laravel Dusk Tests
- [Option 1: Without Selenium](#option1-dusk)
- [Option 2: With Selenium](#option2-dusk)
<a name="option1-dusk"></a>
## Option 1: Without Selenium
- [Intro](#option1-dusk-intro)
- [Workspace Setup](#option1-workspace-setup)
- [Application Setup](#option1-application-setup)
- [Choose Chrome Driver Version (Optional)](#option1-choose-chrome-driver-version)
- [Run Dusk Tests](#option1-run-dusk-tests)
<a name="option1-dusk-intro"></a>
### Intro
This is a guide to run Dusk tests in your `workspace` container with headless
google-chrome and chromedriver. It has been tested with Laravel 5.4 and 5.5.
<a name="option1-workspace-setup"></a>
### Workspace Setup
Update your .env with following entries:
```
...
# Install Laravel installer bin to setup demo app
WORKSPACE_INSTALL_LARAVEL_INSTALLER=true
...
# Install all the necessary dependencies for running Dusk tests
WORKSPACE_INSTALL_DUSK_DEPS=true
...
```
Then run below to build your workspace.
```
docker-compose build workspace
```
<a name="option1-application-setup"></a>
### Application Setup
Run a `workspace` container and you will be inside the container at `/var/www` directory.
```
docker-compose run workspace bash
/var/www#> _
```
Create new Laravel application named `dusk-test` and install Laravel Dusk package.
```
/var/www> laravel new dusk-test
/var/www> cd dusk-test
/var/www/dusk-test> composer require --dev laravel/dusk
/var/www/dusk-test> php artisan dusk:install
```
Create `.env.dusk.local` by copying from `.env` file.
```
/var/www/dusk-test> cp .env .env.dusk.local
```
Update the `APP_URL` entry in `.env.dusk.local` to local Laravel server.
```
APP_URL=http://localhost:8000
```
You will need to run chromedriver with `headless` and `no-sandbox` flag. In Laravel Dusk 2.x it is
already set `headless` so you just need to add `no-sandbox` flag. If you on previous version 1.x,
you will need to update your `DustTestCase#driver` as shown below.
```
<?php
...
abstract class DuskTestCase extends BaseTestCase
{
...
/**
* Update chrome driver with below flags
*/
protected function driver()
{
$options = (new ChromeOptions)->addArguments([
'--disable-gpu',
'--headless',
'--no-sandbox'
]);
return RemoteWebDriver::create(
'http://localhost:9515', DesiredCapabilities::chrome()->setCapability(
ChromeOptions::CAPABILITY, $options
)
);
}
}
```
<a name="option1-choose-chrome-driver-version"></a>
### Choose Chrome Driver Version (Optional)
You could choose to use either:
1. Chrome Driver shipped with Laravel Dusk. (Default)
2. Chrome Driver installed in `workspace` container. (Required tweak on DuskTestCase class)
For Laravel 2.x, you need to update `DuskTestCase#prepare` method if you wish to go with option #2.
```
<?php
...
abstract class DuskTestCase extends BaseTestCase
{
...
public static function prepare()
{
// Only add this line if you wish to use chrome driver installed in workspace container.
// You might want to read the file path from env file.
static::useChromedriver('/usr/local/bin/chromedriver');
static::startChromeDriver();
}
```
For Laravel 1.x, you need to add `DuskTestCase#buildChromeProcess` method if you wish to go with option #2.
```
<?php
...
use Symfony\Component\Process\ProcessBuilder;
abstract class DuskTestCase extends BaseTestCase
{
...
/**
* Only add this method if you wish to use chrome driver installed in workspace container
*/
protected static function buildChromeProcess()
{
return (new ProcessBuilder())
->setPrefix('chromedriver')
->getProcess()
->setEnv(static::chromeEnvironment());
}
...
}
```
<a name="option1-run-dusk-tests"></a>
### Run Dusk Tests
Run local server in `workspace` container and run Dusk tests.
```
# alias to run Laravel server in the background (php artisan serve --quiet &)
/var/www/dusk-test> serve
# alias to run Dusk tests (php artisan dusk)
/var/www/dusk-test> dusk
PHPUnit 6.4.0 by Sebastian Bergmann and contributors.
. 1 / 1 (100%)
Time: 837 ms, Memory: 6.00MB
```
<a name="option2-dusk"></a>
## Option 2: With Selenium
- [Intro](#dusk-intro)
- [DNS Setup](#dns-setup)
- [Docker Compose Setup](#docker-compose)
- [Laravel Dusk Setup](#laravel-dusk-setup)
- [Running Laravel Dusk Tests](#running-tests)
<a name="dusk-intro"></a>
### Intro
Setting up Laravel Dusk tests to run with Laradock appears be something that
eludes most Laradock users. This guide is designed to show you how to wire them
up to work together. This guide is written with macOS and Linux in mind. As such,
it's only been tested on macOS. Feel free to create pull requests to update the guide
for Windows-specific instructions.
This guide assumes you know how to use a DNS forwarder such as `dnsmasq` or are comfortable
with editing the `/etc/hosts` file for one-off DNS changes.
<a name="dns-setup"></a>
### DNS Setup
According to RFC-2606, only four TLDs are reserved for local testing[^1]:
- `.test`
- `.example`
- `.invalid`
- `.localhost`
A common TLD used for local development is `.dev`, but newer versions of Google
Chrome (such as the one bundled with the Selenium Docker image), will fail to
resolve that DNS as there will appear to be a name collision.
The recommended extension is `.test` for your Laravel web apps because you're
running tests. Using a DNS forwarder such as `dnsmasq` or by editing the `/etc/hosts`
file, configure the host to point to `localhost`.
For example, in your `/etc/hosts` file:
```
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
127.0.0.1 myapp.test
```
This will ensure that when navigating to `myapp.test`, it will route the
request to `127.0.0.1` which will be handled by Nginx in Laradock.
<a name="docker-compose"></a>
### Docker Compose setup
In order to make the Selenium container talk to the Nginx container appropriately,
the `docker-compose.yml` needs to be edited to accommodate this. Make the following
changes:
```yaml
...
selenium:
...
depends_on:
- nginx
links:
- nginx:<your_domain>
```
This allows network communication between the Nginx and Selenium containers
and it also ensures that when starting the Selenium container, the Nginx
container starts up first unless it's already running. This allows
the Selenium container to make requests to the Nginx container, which is
necessary for running Dusk tests. These changes also link the `nginx` environment
variable to the domain you wired up in your hosts file.
<a name="laravel-dusk-setup"></a>
### Laravel Dusk Setup
In order to make Laravel Dusk make the proper request to the Selenium container,
you have to edit the `DuskTestCase.php` file that's provided on the initial
installation of Laravel Dusk. The change you have to make deals with the URL the
Remote Web Driver attempts to use to set up the Selenium session.
One recommendation for this is to add a separate config option in your `.env.dusk.local`
so it's still possible to run your Dusk tests locally should you want to.
#### .env.dusk.local
```
...
USE_SELENIUM=true
```
#### DuskTestCase.php
```php
abstract class DuskTestCase extends BaseTestCase
{
...
protected function driver()
{
if (env('USE_SELENIUM', 'false') == 'true') {
return RemoteWebDriver::create(
'http://selenium:4444/wd/hub', DesiredCapabilities::chrome()
);
} else {
return RemoteWebDriver::create(
'http://localhost:9515', DesiredCapabilities::chrome()
);
}
}
}
```
<a name="running-tests"></a>
### Running Laravel Dusk Tests
Now that you have everything set up, to run your Dusk tests, you have to SSH
into the workspace container as you normally would:
```docker-compose exec --user=laradock workspace bash```
Once inside, you can change directory to your application and run:
```php artisan dusk```
One way to make this easier from your project is to create a helper script. Here's one such example:
```bash
#!/usr/bin/env sh
LARADOCK_HOME="path/to/laradock"
pushd ${LARADOCK_HOME}
docker-compose exec --user=laradock workspace bash -c "cd my-project && php artisan dusk && exit"
```
This invokes the Dusk command from inside the workspace container but when the script completes
execution, it returns your session to your project directory.
[^1]: [Don't Use .dev for Development](https://iyware.com/dont-use-dev-for-development/)

View File

@ -97,7 +97,7 @@ Beanstalkd - RabbitMQ - PHP Worker
- **Queueing Management:**
Beanstalkd Console - RabbitMQ Console
- **Random Tools:**
HAProxy - Certbot - Blackfire - Selenium - Jenkins - ElasticSearch - Kibana - Mailhog - Minio - Varnish - Swoole - Laravel Echo...
HAProxy - Certbot - Blackfire - Selenium - Jenkins - ElasticSearch - Kibana - Mailhog - MailDev - Minio - Varnish - Swoole - Laravel Echo...
Laradock introduces the **Workspace** Image, as a development environment.
It contains a rich set of helpful tools, all pre-configured to work and integrate with almost any combination of Containers and tools you may choose.

View File

@ -4,11 +4,14 @@ MAINTAINER Eric Pfeiffer <computerfr33k@users.noreply.github.com>
ARG PHP_UPSTREAM_CONTAINER=php-fpm
ARG PHP_UPSTREAM_PORT=9000
ARG PHP_UPSTREAM_TIMEOUT=60
ENV WEB_PHP_SOCKET=${PHP_UPSTREAM_CONTAINER}:${PHP_UPSTREAM_PORT}
ENV WEB_DOCUMENT_ROOT=/var/www/
ENV WEB_PHP_TIMEOUT=${PHP_UPSTREAM_TIMEOUT}
EXPOSE 80 443
WORKDIR /var/www/

1
aws/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
./ssh_keys

17
aws/Dockerfile Normal file
View File

@ -0,0 +1,17 @@
FROM python:slim
MAINTAINER melchabcede@gmail.com
RUN pip install --upgrade --no-cache-dir awsebcli
RUN apt-get -yqq update && apt-get -yqq install git-all
#NOTE: make sure ssh keys are added to ssh_keys folder
RUN mkdir root/tmp_ssh
COPY /ssh_keys/. /root/.ssh/
RUN cd /root/.ssh && chmod 600 * && chmod 644 *.pub
# Set default work directory
WORKDIR /var/www

View File

@ -1,22 +1,17 @@
FROM alpine:3.5
FROM golang
MAINTAINER Eric Pfeiffer <computerfr33k@users.noreply.github.com>
MAINTAINER Huadong Zuo <admin@zuohuadong.cn>
ENV caddy_version=0.10.5
ARG plugins=http.git
ARG plugins="git"
LABEL caddy_version="$caddy_version" architecture="amd64"
## If you come frome china, please ues it.
RUN apk update \
&& apk upgrade \
&& apk add --no-cache openssh-client git tar curl
# RUN echo "172.217.6.127 golang.org" >> /etc/hosts
RUN curl --silent --show-error --fail --location \
--header "Accept: application/tar+gzip, application/x-gzip, application/octet-stream" -o - \
"https://caddyserver.com/download/linux/amd64?plugins=${plugins}" \
| tar --no-same-owner -C /usr/bin/ -xz caddy \
&& mv /usr/bin/caddy /usr/bin/caddy \
&& chmod 0755 /usr/bin/caddy
RUN go get github.com/abiosoft/caddyplug/caddyplug \
&& caddyplug install-caddy \
&& caddyplug install git
RUN caddy --version
EXPOSE 80 443 2015

View File

@ -18,11 +18,14 @@ services:
- INSTALL_XDEBUG=${WORKSPACE_INSTALL_XDEBUG}
- INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE}
- INSTALL_SOAP=${WORKSPACE_INSTALL_SOAP}
- INSTALL_LDAP=${WORKSPACE_INSTALL_LDAP}
- INSTALL_MONGO=${WORKSPACE_INSTALL_MONGO}
- INSTALL_PHPREDIS=${WORKSPACE_INSTALL_PHPREDIS}
- INSTALL_MSSQL=${WORKSPACE_INSTALL_MSSQL}
- INSTALL_NODE=${WORKSPACE_INSTALL_NODE}
- INSTALL_YARN=${WORKSPACE_INSTALL_YARN}
- INSTALL_DRUSH=${WORKSPACE_INSTALL_DRUSH}
- INSTALL_DRUPAL_CONSOLE=${WORKSPACE_INSTALL_DRUPAL_CONSOLE}
- INSTALL_AEROSPIKE=${WORKSPACE_INSTALL_AEROSPIKE}
- INSTALL_V8JS=${WORKSPACE_INSTALL_V8JS}
- COMPOSER_GLOBAL_INSTALL=${WORKSPACE_COMPOSER_GLOBAL_INSTALL}
@ -35,8 +38,12 @@ services:
- INSTALL_SYMFONY=${WORKSPACE_INSTALL_SYMFONY}
- INSTALL_PYTHON=${WORKSPACE_INSTALL_PYTHON}
- INSTALL_IMAGE_OPTIMIZERS=${WORKSPACE_INSTALL_IMAGE_OPTIMIZERS}
- INSTALL_IMAGEMAGICK=${WORKSPACE_INSTALL_IMAGEMAGICK}
- INSTALL_TERRAFORM=${WORKSPACE_INSTALL_TERRAFORM}
- INSTALL_DUSK_DEPS=${WORKSPACE_INSTALL_DUSK_DEPS}
- PUID=${WORKSPACE_PUID}
- PGID=${WORKSPACE_PGID}
- CHROME_DRIVER_VERSION=${WORKSPACE_CHROME_DRIVER_VERSION}
- NODE_VERSION=${WORKSPACE_NODE_VERSION}
- YARN_VERSION=${WORKSPACE_YARN_VERSION}
- TZ=${WORKSPACE_TIMEZONE}
@ -79,6 +86,7 @@ services:
- INSTALL_LDAP=${PHP_FPM_INSTALL_LDAP}
- INSTALL_SWOOLE=${PHP_FPM_INSTALL_SWOOLE}
- INSTALL_IMAGE_OPTIMIZERS=${PHP_FPM_INSTALL_IMAGE_OPTIMIZERS}
- INSTALL_IMAGEMAGICK=${PHP_FPM_INSTALL_IMAGEMAGICK}
dockerfile: "Dockerfile-${PHP_VERSION}"
volumes_from:
- applications
@ -100,6 +108,7 @@ services:
php-worker:
build:
context: ./php-worker
dockerfile: "Dockerfile-${PHP_VERSION}"
volumes_from:
- applications
depends_on:
@ -151,6 +160,7 @@ services:
args:
- PHP_UPSTREAM_CONTAINER=${APACHE_PHP_UPSTREAM_CONTAINER}
- PHP_UPSTREAM_PORT=${APACHE_PHP_UPSTREAM_PORT}
- PHP_UPSTREAM_TIMEOUT=${APACHE_PHP_UPSTREAM_TIMEOUT}
volumes_from:
- applications
volumes:
@ -338,7 +348,7 @@ services:
volumes:
- ${DATA_SAVE_PATH}/redis:/data
ports:
- "6379:6379"
- "${REDIS_PORT}:6379"
networks:
- backend
@ -468,12 +478,15 @@ services:
build: ./pgadmin
ports:
- "5050:5050"
volumes:
- ${DATA_SAVE_PATH}/pgadmin-backup:/var/lib/pgadmin4/data/storage/pgadmin4
depends_on:
- postgres
networks:
- frontend
- backend
### ElasticSearch Container #################################
elasticsearch:
@ -537,6 +550,17 @@ services:
- frontend
- backend
### MailDev Container #######################################
maildev:
build: ./maildev
ports:
- "${MAILDEV_HTTP_PORT}:80"
- "${MAILDEV_SMTP_PORT}:25"
networks:
- frontend
- backend
### Selenium Container ########################################
selenium:
@ -629,6 +653,16 @@ services:
- frontend
- backend
### AWS EB-CLI ####
aws:
build:
context: ./aws
volumes_from:
- applications
depends_on:
- workspace
tty: true
### Networks Setup ############################################
networks:

View File

@ -30,12 +30,15 @@ PHP_INTERPRETER=php-fpm
### WORKSPACE ##########################################################################################################
WORKSPACE_INSTALL_XDEBUG=false
WORKSPACE_INSTALL_LDAP=false
WORKSPACE_INSTALL_SOAP=false
WORKSPACE_INSTALL_MONGO=false
WORKSPACE_INSTALL_PHPREDIS=false
WORKSPACE_INSTALL_MSSQL=false
WORKSPACE_INSTALL_NODE=false
WORKSPACE_INSTALL_YARN=false
WORKSPACE_INSTALL_DRUSH=false
WORKSPACE_INSTALL_DRUPAL_CONSOLE=false
WORKSPACE_INSTALL_AEROSPIKE=false
WORKSPACE_INSTALL_V8JS=false
WORKSPACE_COMPOSER_GLOBAL_INSTALL=false
@ -48,8 +51,12 @@ WORKSPACE_INSTALL_MC=false
WORKSPACE_INSTALL_SYMFONY=false
WORKSPACE_INSTALL_PYTHON=false
WORKSPACE_INSTALL_IMAGE_OPTIMIZERS=false
WORKSPACE_INSTALL_IMAGEMAGICK=false
WORKSPACE_INSTALL_TERRAFORM=false
WORKSPACE_INSTALL_DUSK_DEPS=false
WORKSPACE_PUID=1000
WORKSPACE_PGID=1000
WORKSPACE_CHROME_DRIVER_VERSION=2.32
WORKSPACE_NODE_VERSION=stable
WORKSPACE_YARN_VERSION=latest
WORKSPACE_TIMEZONE=UTC
@ -75,6 +82,7 @@ PHP_FPM_INSTALL_GHOSTSCRIPT=false
PHP_FPM_INSTALL_LDAP=false
PHP_FPM_INSTALL_SWOOLE=false
PHP_FPM_INSTALL_IMAGE_OPTIMIZERS=false
PHP_FPM_INSTALL_IMAGEMAGICK=false
### NGINX ##############################################################################################################
@ -93,6 +101,7 @@ APACHE_HOST_LOG_PATH=./logs/apache2
APACHE_SITES_PATH=./apache2/sites
APACHE_PHP_UPSTREAM_CONTAINER=php-fpm
APACHE_PHP_UPSTREAM_PORT=9000
APACHE_PHP_UPSTREAM_TIMEOUT=60
### MYSQL ##############################################################################################################
@ -104,6 +113,10 @@ MYSQL_PORT=3306
MYSQL_ROOT_PASSWORD=root
MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d
### REDIS ##############################################################################################################
REDIS_PORT=6379
### Percona ############################################################################################################
PERCONA_DATABASE=homestead
@ -192,6 +205,11 @@ PMA_PASSWORD=secret
PMA_ROOT_PASSWORD=secret
PMA_PORT=8080
### MAILDEV ############################################################################################################
MAILDEV_HTTP_PORT=1080
MAILDEV_SMTP_PORT=25
### VARNISH ############################################################################################################
VARNISH_CONFIG=/etc/varnish/default.vcl

View File

@ -25,8 +25,8 @@ VOLUME /var/jenkins_home
# or config file with your custom jenkins Docker image.
RUN mkdir -p /usr/share/jenkins/ref/init.groovy.d
ENV TINI_VERSION 0.13.2
ENV TINI_SHA afbf8de8a63ce8e4f18cb3f34dfdbbd354af68a1
ENV TINI_VERSION 0.16.1
ENV TINI_SHA d1cb5d71adc01d47e302ea439d70c79bd0864288
# Use tini as subreaper in Docker container to adopt zombie processes
RUN curl -fsSL https://github.com/krallin/tini/releases/download/v${TINI_VERSION}/tini-static-amd64 -o /bin/tini && chmod +x /bin/tini \
@ -36,10 +36,10 @@ COPY init.groovy /usr/share/jenkins/ref/init.groovy.d/tcp-slave-agent-port.groov
# jenkins version being bundled in this docker image
ARG JENKINS_VERSION
ENV JENKINS_VERSION ${JENKINS_VERSION:-2.32.3}
ENV JENKINS_VERSION ${JENKINS_VERSION:-2.73.2}
# jenkins.war checksum, download will be validated using it
ARG JENKINS_SHA=a25b9a314ca9e76f9673da7309e1882e32674223
ARG JENKINS_SHA=f6d1351beef34d980b32f8c463be505445f637e2fc62156fecd42891c53c97d3
# Can be used to customize where jenkins.war get downloaded from
ARG JENKINS_URL=https://repo.jenkins-ci.org/public/org/jenkins-ci/main/jenkins-war/${JENKINS_VERSION}/jenkins-war-${JENKINS_VERSION}.war
@ -47,7 +47,7 @@ ARG JENKINS_URL=https://repo.jenkins-ci.org/public/org/jenkins-ci/main/jenkins-w
# could use ADD but this one does not check Last-Modified header neither does it allow to control checksum
# see https://github.com/docker/docker/issues/8331
RUN curl -fsSL ${JENKINS_URL} -o /usr/share/jenkins/jenkins.war \
&& echo "${JENKINS_SHA} /usr/share/jenkins/jenkins.war" | sha1sum -c -
&& echo "${JENKINS_SHA} /usr/share/jenkins/jenkins.war" | sha256sum -c -
ENV JENKINS_UC https://updates.jenkins.io
RUN chown -R ${user} "$JENKINS_HOME" /usr/share/jenkins/ref
@ -71,7 +71,7 @@ RUN apt-get install -y curl && curl -sSL https://get.docker.com/ | sh
RUN usermod -aG docker jenkins
# Install Docker-Compose
RUN curl -L "https://github.com/docker/compose/releases/download/1.10.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
RUN curl -L "https://github.com/docker/compose/releases/download/1.16.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
RUN chmod +x /usr/local/bin/docker-compose

5
maildev/Dockerfile Normal file
View File

@ -0,0 +1,5 @@
FROM djfarrelly/maildev
MAINTAINER Maxime Hélias <maximehelias16@gmail.com>
EXPOSE 80 25

View File

@ -7,9 +7,6 @@ ADD nginx.conf /etc/nginx/
ARG PHP_UPSTREAM_CONTAINER=php-fpm
ARG PHP_UPSTREAM_PORT=9000
# fix a problem--#397, change application source from dl-cdn.alpinelinux.org to aliyun source.
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/' /etc/apk/repositories
RUN apk update \
&& apk upgrade \
&& apk add --no-cache bash \

View File

@ -1,5 +1,10 @@
FROM chorss/docker-pgadmin4
FROM fenglc/pgadmin4
MAINTAINER Bo-Yi Wu <appleboy.tw@gmail.com>
MAINTAINER Huadong Zuo <admin@zuohuadong.cn>
# user: pgadmin4@pgadmin.org
# password: admin
# pg_dump in "/usr/bin"
# backup in "/var/lib/pgadmin4/data/storage/pgadmin4/"
EXPOSE 5050

View File

@ -87,7 +87,7 @@ RUN if [ ${INSTALL_XDEBUG} = false -a ${INSTALL_BLACKFIRE} = true ]; then \
ARG INSTALL_PHPREDIS=false
RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
# Install Php Redis Extension
pecl install -o -f redis \
printf "\n" | pecl install -o -f redis \
&& rm -rf /tmp/pear \
&& docker-php-ext-enable redis \
;fi
@ -269,6 +269,19 @@ RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \
apt-get install -y --force-yes jpegoptim optipng pngquant gifsicle \
;fi
#####################################
# ImageMagick:
#####################################
USER root
ARG INSTALL_IMAGEMAGICK=false
ENV INSTALL_IMAGEMAGICK ${INSTALL_IMAGEMAGICK}
RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \
apt-get update -y && \
apt-get install -y libmagickwand-dev imagemagick && \
pecl install imagick && \
docker-php-ext-enable imagick \
;fi
#
#--------------------------------------------------------------------------
# Final Touch
@ -276,7 +289,7 @@ RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \
#
ADD ./laravel.ini /usr/local/etc/php/conf.d
ADD ./laravel.pool.conf /usr/local/etc/php-fpm.d/
ADD ./xlaravel.pool.conf /usr/local/etc/php-fpm.d/
#RUN rm -r /var/lib/apt/lists/*

View File

@ -84,7 +84,7 @@ RUN if [ ${INSTALL_XDEBUG} = false -a ${INSTALL_BLACKFIRE} = true ]; then \
ARG INSTALL_PHPREDIS=false
RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
# Install Php Redis Extension
pecl install -o -f redis \
printf "\n" | pecl install -o -f redis \
&& rm -rf /tmp/pear \
&& docker-php-ext-enable redis \
;fi
@ -173,11 +173,11 @@ ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE}
COPY ./aerospike.ini /usr/local/etc/php/conf.d/aerospike.ini
RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
# Install the php aerospike extension
curl -L -o /tmp/aerospike-client-php.tar.gz "https://github.com/aerospike/aerospike-client-php/archive/3.4.14.tar.gz" \
curl -L -o /tmp/aerospike-client-php.tar.gz "https://github.com/aerospike/aerospike-client-php/archive/master.tar.gz" \
&& mkdir -p aerospike-client-php \
&& tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \
&& ( \
cd aerospike-client-php/src/aerospike \
cd aerospike-client-php/src \
&& phpize \
&& ./build.sh \
&& make install \
@ -293,6 +293,19 @@ RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \
apt-get install -y --force-yes jpegoptim optipng pngquant gifsicle \
;fi
#####################################
# ImageMagick:
#####################################
USER root
ARG INSTALL_IMAGEMAGICK=false
ENV INSTALL_IMAGEMAGICK ${INSTALL_IMAGEMAGICK}
RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \
apt-get update -y && \
apt-get install -y libmagickwand-dev imagemagick && \
pecl install imagick && \
docker-php-ext-enable imagick \
;fi
#
#--------------------------------------------------------------------------
# Final Touch
@ -300,7 +313,7 @@ RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \
#
ADD ./laravel.ini /usr/local/etc/php/conf.d/
ADD ./laravel.pool.conf /usr/local/etc/php-fpm.d/
ADD ./xlaravel.pool.conf /usr/local/etc/php-fpm.d/
#RUN rm -r /var/lib/apt/lists/*

View File

@ -61,7 +61,7 @@ RUN if [ ${INSTALL_XDEBUG} = true ]; then \
docker-php-ext-enable xdebug \
;fi
# Copy xdebug configration for remote debugging
# Copy xdebug configuration for remote debugging
COPY ./xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
#####################################
@ -78,13 +78,13 @@ RUN if [ ${INSTALL_XDEBUG} = false -a ${INSTALL_BLACKFIRE} = true ]; then \
;fi
#####################################
# PHP REDIS EXTENSION FOR PHP 7
# PHP REDIS EXTENSION FOR PHP 7.0
#####################################
ARG INSTALL_PHPREDIS=false
RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
# Install Php Redis Extension
pecl install -o -f redis \
printf "\n" | pecl install -o -f redis \
&& rm -rf /tmp/pear \
&& docker-php-ext-enable redis \
;fi
@ -179,11 +179,11 @@ RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
apt-get -y install sudo wget && \
# Install the php aerospike extension
curl -L -o /tmp/aerospike-client-php.tar.gz "https://github.com/aerospike/aerospike-client-php/archive/3.4.14.tar.gz" \
curl -L -o /tmp/aerospike-client-php.tar.gz "https://github.com/aerospike/aerospike-client-php/archive/master.tar.gz" \
&& mkdir -p aerospike-client-php \
&& tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \
&& ( \
cd aerospike-client-php/src/aerospike \
cd aerospike-client-php/src \
&& phpize \
&& ./build.sh \
&& make install \
@ -300,6 +300,19 @@ RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \
apt-get install -y --force-yes jpegoptim optipng pngquant gifsicle \
;fi
#####################################
# ImageMagick:
#####################################
USER root
ARG INSTALL_IMAGEMAGICK=false
ENV INSTALL_IMAGEMAGICK ${INSTALL_IMAGEMAGICK}
RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \
apt-get update -y && \
apt-get install -y libmagickwand-dev imagemagick && \
pecl install imagick && \
docker-php-ext-enable imagick \
;fi
#
#--------------------------------------------------------------------------
# Final Touch
@ -307,7 +320,7 @@ RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \
#
ADD ./laravel.ini /usr/local/etc/php/conf.d
ADD ./laravel.pool.conf /usr/local/etc/php-fpm.d/
ADD ./xlaravel.pool.conf /usr/local/etc/php-fpm.d/
#RUN rm -r /var/lib/apt/lists/*

View File

@ -1,2 +1,3 @@
extension=aerospike.so
aerospike.udf.lua_system_path=/usr/local/aerospike/lua
aerospike.udf.lua_user_path=/usr/local/aerospike/usr-lua

View File

@ -3,14 +3,30 @@
# 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
FROM php:7.0-alpine
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
RUN apk --update add wget \
curl \
git \
build-base \
libmemcached-dev \
libmcrypt-dev \
libxml2-dev \
zlib-dev \
autoconf \
cyrus-sasl-dev \
libgsasl-dev \
supervisor
RUN docker-php-ext-install mysqli mbstring pdo pdo_mysql mcrypt tokenizer xml
RUN pecl channel-update pecl.php.net && pecl install memcached && docker-php-ext-enable memcached
RUN rm /var/cache/apk/* \
&& mkdir -p /var/www
#
#--------------------------------------------------------------------------
# Optional Supervisord Configuration
@ -19,7 +35,10 @@ MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
# 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
COPY supervisord.conf /etc/supervisord.conf
ENTRYPOINT ["/usr/bin/supervisord", "-n", "-c", "/etc/supervisord.conf"]
#
#--------------------------------------------------------------------------

59
php-worker/Dockerfile-71 Normal file
View File

@ -0,0 +1,59 @@
#
#--------------------------------------------------------------------------
# Image Setup
#--------------------------------------------------------------------------
#
FROM php:7.1-alpine
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
RUN apk --update add wget \
curl \
git \
build-base \
libmemcached-dev \
libmcrypt-dev \
libxml2-dev \
zlib-dev \
autoconf \
cyrus-sasl-dev \
libgsasl-dev \
supervisor
RUN docker-php-ext-install mysqli mbstring pdo pdo_mysql mcrypt tokenizer xml
RUN pecl channel-update pecl.php.net && pecl install memcached && docker-php-ext-enable memcached
RUN rm /var/cache/apk/* \
&& mkdir -p /var/www
#
#--------------------------------------------------------------------------
# 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/supervisord.conf
ENTRYPOINT ["/usr/bin/supervisord", "-n", "-c", "/etc/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
#--------------------------------------------------------------------------
#
WORKDIR /etc/supervisor/conf.d/

View File

@ -1,4 +1,4 @@
FROM postgres:latest
FROM postgres:alpine
MAINTAINER Ben M <git@bmagg.com>

View File

@ -189,11 +189,25 @@ ARG INSTALL_MONGO=false
ENV INSTALL_MONGO ${INSTALL_MONGO}
RUN if [ ${INSTALL_MONGO} = true ]; then \
# Install the mongodb extension
pecl channel-update pecl.php.net && \
pecl install mongodb && \
echo "extension=mongodb.so" >> /etc/php/5.6/mods-available/mongodb.ini && \
ln -s /etc/php/5.6/mods-available/mongodb.ini /etc/php/5.6/cli/conf.d/30-mongodb.ini \
;fi
#####################################
# PHP REDIS EXTENSION FOR PHP 5.6
#####################################
ARG INSTALL_PHPREDIS=false
ENV INSTALL_PHPREDIS ${INSTALL_PHPREDIS}
RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
# Install Php Redis extension
printf "\n" | pecl -q install -o -f redis && \
echo "extension=redis.so" >> /etc/php/5.6/mods-available/redis.ini && \
phpenmod redis \
;fi
#####################################
# Drush:
#####################################
@ -210,6 +224,20 @@ RUN if [ ${INSTALL_DRUSH} = true ]; then \
drush core-status \
;fi
#####################################
# Drupal Console:
#####################################
USER root
ARG INSTALL_DRUPAL_CONSOLE=false
ENV INSTALL_DRUPAL_CONSOLE ${INSTALL_DRUPAL_CONSOLE}
RUN if [ ${INSTALL_DRUPAL_CONSOLE} = true ]; then \
apt-get update -yqq && \
apt-get -y install mysql-client && \
curl https://drupalconsole.com/installer -L -o drupal.phar && \
mv drupal.phar /usr/local/bin/drupal && \
chmod +x /usr/local/bin/drupal \
;fi
USER laradock
#####################################
@ -249,6 +277,9 @@ RUN if [ ${INSTALL_NODE} = true ]; then \
echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm' >> ~/.bashrc \
;fi
# Add PATH for node
ENV PATH $PATH:$NVM_DIR/versions/node/v${NODE_VERSION}/bin
#####################################
# YARN:
#####################################
@ -469,6 +500,60 @@ RUN if [ ${INSTALL_PYTHON} = true ]; then \
&& pip install --upgrade virtualenv \
;fi
#####################################
# ImageMagick:
#####################################
USER root
ARG INSTALL_IMAGEMAGICK=false
ENV INSTALL_IMAGEMAGICK ${INSTALL_IMAGEMAGICK}
RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \
apt-get install -y --force-yes imagemagick php-imagick \
;fi
#####################################
# Terraform:
#####################################
USER root
ARG INSTALL_TERRAFORM=false
ENV INSTALL_TERRAFORM ${INSTALL_TERRAFORM}
RUN if [ ${INSTALL_TERRAFORM} = true ]; then \
apt-get update -yqq \
&& apt-get -y install sudo wget unzip \
&& wget https://releases.hashicorp.com/terraform/0.10.6/terraform_0.10.6_linux_amd64.zip \
&& unzip terraform_0.10.6_linux_amd64.zip \
&& mv terraform /usr/local/bin \
&& rm terraform_0.10.6_linux_amd64.zip \
;fi
#####################################
# Dusk Dependencies:
#####################################
USER root
ARG INSTALL_DUSK_DEPS=false
ENV INSTALL_DUSK_DEPS ${INSTALL_DUSK_DEPS}
RUN if [ ${INSTALL_DUSK_DEPS} = true ]; then \
# Install required packages
add-apt-repository ppa:ondrej/php \
&& apt-get update \
&& apt-get -y install zip wget unzip xdg-utils \
libxpm4 libxrender1 libgtk2.0-0 libnss3 libgconf-2-4 xvfb \
gtk2-engines-pixbuf xfonts-cyrillic xfonts-100dpi xfonts-75dpi \
xfonts-base xfonts-scalable x11-apps \
# Install Google Chrome
&& wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \
&& dpkg -i --force-depends google-chrome-stable_current_amd64.deb \
&& apt-get -y -f install \
&& dpkg -i --force-depends google-chrome-stable_current_amd64.deb \
&& rm google-chrome-stable_current_amd64.deb \
# Install Chrome Driver
&& wget https://chromedriver.storage.googleapis.com/2.31/chromedriver_linux64.zip \
&& unzip chromedriver_linux64.zip \
&& mv chromedriver /usr/local/bin/ \
&& rm chromedriver_linux64.zip \
;fi
#
#--------------------------------------------------------------------------
# Final Touch

View File

@ -69,6 +69,19 @@ RUN if [ ${INSTALL_SOAP} = true ]; then \
apt-get -y install libxml2-dev php7.0-soap \
;fi
#####################################
# LDAP:
#####################################
ARG INSTALL_LDAP=false
ENV INSTALL_LDAP ${INSTALL_LDAP}
RUN if [ ${INSTALL_LDAP} = true ]; then \
apt-get update -yqq && \
apt-get install -y libldap2-dev && \
apt-get install -y php7.0-ldap \
;fi
#####################################
# Set Timezone
#####################################
@ -194,6 +207,19 @@ RUN if [ ${INSTALL_MONGO} = true ]; then \
ln -s /etc/php/7.0/mods-available/mongodb.ini /etc/php/7.0/cli/conf.d/30-mongodb.ini \
;fi
#####################################
# PHP REDIS EXTENSION FOR PHP 7
#####################################
ARG INSTALL_PHPREDIS=false
ENV INSTALL_PHPREDIS ${INSTALL_PHPREDIS}
RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
# Install Php Redis extension
printf "\n" | pecl -q install -o -f redis && \
echo "extension=redis.so" >> /etc/php/7.0/mods-available/redis.ini && \
phpenmod redis \
;fi
#####################################
# Drush:
#####################################
@ -210,6 +236,20 @@ RUN if [ ${INSTALL_DRUSH} = true ]; then \
drush core-status \
;fi
#####################################
# Drupal Console:
#####################################
USER root
ARG INSTALL_DRUPAL_CONSOLE=false
ENV INSTALL_DRUPAL_CONSOLE ${INSTALL_DRUPAL_CONSOLE}
RUN if [ ${INSTALL_DRUPAL_CONSOLE} = true ]; then \
apt-get update -yqq && \
apt-get -y install mysql-client && \
curl https://drupalconsole.com/installer -L -o drupal.phar && \
mv drupal.phar /usr/local/bin/drupal && \
chmod +x /usr/local/bin/drupal \
;fi
USER laradock
#####################################
@ -249,6 +289,9 @@ RUN if [ ${INSTALL_NODE} = true ]; then \
echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm' >> ~/.bashrc \
;fi
# Add PATH for node
ENV PATH $PATH:$NVM_DIR/versions/node/v${NODE_VERSION}/bin
#####################################
# YARN:
#####################################
@ -293,11 +336,11 @@ COPY ./aerospike.ini /etc/php/7.0/cli/conf.d/aerospike.ini
RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
# Install the php aerospike extension
curl -L -o /tmp/aerospike-client-php.tar.gz "https://github.com/aerospike/aerospike-client-php/archive/3.4.14.tar.gz" \
curl -L -o /tmp/aerospike-client-php.tar.gz "https://github.com/aerospike/aerospike-client-php/archive/master.tar.gz" \
&& mkdir -p aerospike-client-php \
&& tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \
&& ( \
cd aerospike-client-php/src/aerospike \
cd aerospike-client-php/src \
&& phpize \
&& ./build.sh \
&& make install \
@ -550,6 +593,60 @@ RUN if [ ${INSTALL_PYTHON} = true ]; then \
&& pip install --upgrade virtualenv \
;fi
#####################################
# ImageMagick:
#####################################
USER root
ARG INSTALL_IMAGEMAGICK=false
ENV INSTALL_IMAGEMAGICK ${INSTALL_IMAGEMAGICK}
RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \
apt-get install -y --force-yes imagemagick php-imagick \
;fi
#####################################
# Terraform:
#####################################
USER root
ARG INSTALL_TERRAFORM=false
ENV INSTALL_TERRAFORM ${INSTALL_TERRAFORM}
RUN if [ ${INSTALL_TERRAFORM} = true ]; then \
apt-get update -yqq \
&& apt-get -y install sudo wget unzip \
&& wget https://releases.hashicorp.com/terraform/0.10.6/terraform_0.10.6_linux_amd64.zip \
&& unzip terraform_0.10.6_linux_amd64.zip \
&& mv terraform /usr/local/bin \
&& rm terraform_0.10.6_linux_amd64.zip \
;fi
#####################################
# Dusk Dependencies:
#####################################
USER root
ARG INSTALL_DUSK_DEPS=false
ENV INSTALL_DUSK_DEPS ${INSTALL_DUSK_DEPS}
RUN if [ ${INSTALL_DUSK_DEPS} = true ]; then \
# Install required packages
add-apt-repository ppa:ondrej/php \
&& apt-get update \
&& apt-get -y install zip wget unzip xdg-utils \
libxpm4 libxrender1 libgtk2.0-0 libnss3 libgconf-2-4 xvfb \
gtk2-engines-pixbuf xfonts-cyrillic xfonts-100dpi xfonts-75dpi \
xfonts-base xfonts-scalable x11-apps \
# Install Google Chrome
&& wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \
&& dpkg -i --force-depends google-chrome-stable_current_amd64.deb \
&& apt-get -y -f install \
&& dpkg -i --force-depends google-chrome-stable_current_amd64.deb \
&& rm google-chrome-stable_current_amd64.deb \
# Install Chrome Driver
&& wget https://chromedriver.storage.googleapis.com/2.31/chromedriver_linux64.zip \
&& unzip chromedriver_linux64.zip \
&& mv chromedriver /usr/local/bin/ \
&& rm chromedriver_linux64.zip \
;fi
#
#--------------------------------------------------------------------------
# Final Touch

View File

@ -69,6 +69,19 @@ RUN if [ ${INSTALL_SOAP} = true ]; then \
apt-get -y install libxml2-dev php7.1-soap \
;fi
#####################################
# LDAP:
#####################################
ARG INSTALL_LDAP=false
ENV INSTALL_LDAP ${INSTALL_LDAP}
RUN if [ ${INSTALL_LDAP} = true ]; then \
apt-get update -yqq && \
apt-get install -y libldap2-dev && \
apt-get install -y php7.1-ldap \
;fi
#####################################
# Set Timezone
#####################################
@ -186,11 +199,24 @@ ARG INSTALL_MONGO=false
ENV INSTALL_MONGO ${INSTALL_MONGO}
RUN if [ ${INSTALL_MONGO} = true ]; then \
# Install the mongodb extension
pecl install mongodb && \
pecl -q install mongodb && \
echo "extension=mongodb.so" >> /etc/php/7.1/mods-available/mongodb.ini && \
ln -s /etc/php/7.1/mods-available/mongodb.ini /etc/php/7.1/cli/conf.d/30-mongodb.ini \
;fi
#####################################
# PHP REDIS EXTENSION FOR PHP 7.1
#####################################
ARG INSTALL_PHPREDIS=false
ENV INSTALL_PHPREDIS ${INSTALL_PHPREDIS}
RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
# Install Php Redis extension
printf "\n" | pecl -q install -o -f redis && \
echo "extension=redis.so" >> /etc/php/7.1/mods-available/redis.ini && \
phpenmod redis \
;fi
#####################################
# Drush:
#####################################
@ -207,6 +233,20 @@ RUN if [ ${INSTALL_DRUSH} = true ]; then \
drush core-status \
;fi
#####################################
# Drupal Console:
#####################################
USER root
ARG INSTALL_DRUPAL_CONSOLE=false
ENV INSTALL_DRUPAL_CONSOLE ${INSTALL_DRUPAL_CONSOLE}
RUN if [ ${INSTALL_DRUPAL_CONSOLE} = true ]; then \
apt-get update -yqq && \
apt-get -y install mysql-client && \
curl https://drupalconsole.com/installer -L -o drupal.phar && \
mv drupal.phar /usr/local/bin/drupal && \
chmod +x /usr/local/bin/drupal \
;fi
USER laradock
#####################################
@ -246,6 +286,10 @@ RUN if [ ${INSTALL_NODE} = true ]; then \
echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm' >> ~/.bashrc \
;fi
# Add PATH for node
ENV PATH $PATH:$NVM_DIR/versions/node/v${NODE_VERSION}/bin
#####################################
# YARN:
#####################################
@ -294,11 +338,11 @@ RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
apt-get -y install sudo wget && \
# Install the php aerospike extension
curl -L -o /tmp/aerospike-client-php.tar.gz "https://github.com/aerospike/aerospike-client-php/archive/3.4.14.tar.gz" \
curl -L -o /tmp/aerospike-client-php.tar.gz "https://github.com/aerospike/aerospike-client-php/archive/master.tar.gz" \
&& mkdir -p aerospike-client-php \
&& tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \
&& ( \
cd aerospike-client-php/src/aerospike \
cd aerospike-client-php/src \
&& phpize \
&& ./build.sh \
&& make install \
@ -555,6 +599,56 @@ RUN if [ ${INSTALL_PYTHON} = true ]; then \
&& pip install --upgrade virtualenv \
;fi
#####################################
# ImageMagick:
#####################################
USER root
ARG INSTALL_IMAGEMAGICK=false
ENV INSTALL_IMAGEMAGICK ${INSTALL_IMAGEMAGICK}
RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \
apt-get install -y --force-yes imagemagick php-imagick \
;fi
#####################################
# Terraform:
#####################################
USER root
ARG INSTALL_TERRAFORM=false
ENV INSTALL_TERRAFORM ${INSTALL_TERRAFORM}
RUN if [ ${INSTALL_TERRAFORM} = true ]; then \
apt-get update -yqq \
&& apt-get -y install sudo wget unzip \
&& wget https://releases.hashicorp.com/terraform/0.10.6/terraform_0.10.6_linux_amd64.zip \
&& unzip terraform_0.10.6_linux_amd64.zip \
&& mv terraform /usr/local/bin \
&& rm terraform_0.10.6_linux_amd64.zip \
;fi
#####################################
# Dusk Dependencies:
#####################################
USER root
ARG CHROME_DRIVER_VERSION=stable
ENV CHROME_DRIVER_VERSION ${CHROME_DRIVER_VERSION}
ARG INSTALL_DUSK_DEPS=false
ENV INSTALL_DUSK_DEPS ${INSTALL_DUSK_DEPS}
RUN if [ ${INSTALL_DUSK_DEPS} = true ]; then \
add-apt-repository ppa:ondrej/php \
&& apt-get update \
&& apt-get -y install zip wget unzip xdg-utils \
libxpm4 libxrender1 libgtk2.0-0 libnss3 libgconf-2-4 xvfb \
gtk2-engines-pixbuf xfonts-cyrillic xfonts-100dpi xfonts-75dpi \
xfonts-base xfonts-scalable x11-apps \
&& wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \
&& dpkg -i --force-depends google-chrome-stable_current_amd64.deb \
&& apt-get -y -f install \
&& dpkg -i --force-depends google-chrome-stable_current_amd64.deb \
&& rm google-chrome-stable_current_amd64.deb \
&& wget https://chromedriver.storage.googleapis.com/${CHROME_DRIVER_VERSION}/chromedriver_linux64.zip \
&& unzip chromedriver_linux64.zip \
&& mv chromedriver /usr/local/bin/ \
&& rm chromedriver_linux64.zip \
;fi
#
#--------------------------------------------------------------------------

View File

@ -63,8 +63,13 @@ alias artisan="php artisan"
alias cdump="composer dump-autoload -o"
alias composer:dump="composer dump-autoload -o"
alias db:reset="php artisan migrate:reset && php artisan migrate --seed"
alias dusk="php artisan dusk"
alias fresh="php artisan migrate:fresh"
alias migrate="php artisan migrate"
alias refresh="php artisan migrate:refresh"
alias rollback="php artisan migrate:rollback"
alias seed="php artisan:seed"
alias serve="php artisan serve --quiet &"
alias phpunit="./vendor/bin/phpunit"
alias pu="phpunit"
@ -84,6 +89,9 @@ alias reload="source ~/.aliases && echo \"$COL_GREEN ==> Aliases Reloaded... $CO
alias run="npm run"
alias tree="xtree"
# Xvfb
alias xvfb="Xvfb -ac :0 -screen 0 1024x768x16 &"
# requires installation of 'https://www.npmjs.com/package/npms-cli'
alias npms="npms search"
# requires installation of 'https://www.npmjs.com/package/package-menu-cli'