Compare commits
88 Commits
Author | SHA1 | Date | |
---|---|---|---|
a5c505bf28 | |||
427088e11b | |||
3467821c28 | |||
f9553dff4c | |||
8e556008d8 | |||
dff0e82ddb | |||
1702a5cc09 | |||
f15bc8e6b7 | |||
903c77421c | |||
2bedfdd9d7 | |||
525c4313a0 | |||
01c358b6bc | |||
a0685705c0 | |||
98b2b2e47b | |||
eeee14338f | |||
a2edf57e3b | |||
881cbfb8c2 | |||
6cff904eba | |||
04770bc4ec | |||
1281490c39 | |||
3f7988060e | |||
615cb72eab | |||
e036e69da2 | |||
8989c73711 | |||
61144ab2d9 | |||
221edf4bb2 | |||
5a073ae841 | |||
8c1e71eca5 | |||
c0e823b8d2 | |||
8cb4c8d62e | |||
f765afd4c2 | |||
6ea49a0683 | |||
998aa1365e | |||
f2420ec52c | |||
fe254e86e3 | |||
53b7f75500 | |||
4150f0b140 | |||
d340b6e60f | |||
e7357eab83 | |||
110aa91c59 | |||
e5aef41dd2 | |||
ae048e6c66 | |||
a5f3a92eb4 | |||
655b9a1526 | |||
7ac37ecd35 | |||
792789e479 | |||
801ccd47d2 | |||
5c5f94600a | |||
b2e372054f | |||
0a23d53ee5 | |||
f6552aca97 | |||
e9806d9bca | |||
e56801846b | |||
f9e6acd4e1 | |||
b61ff4f484 | |||
8485add87a | |||
d3fb967f0f | |||
a36620c3bd | |||
cddc934e1e | |||
53b3ad0f7e | |||
fdcf9117ac | |||
f800a3221a | |||
a1d3eeb7e6 | |||
b2f7348552 | |||
ebeddcba23 | |||
dba37307b5 | |||
2af5b2ff49 | |||
93d5b318fe | |||
9ce470e14e | |||
38fb49bccc | |||
08896f9fb6 | |||
dcab211b07 | |||
76001daf71 | |||
30b626d43e | |||
586a225c11 | |||
c099a51d52 | |||
245ddf3441 | |||
0192346cf2 | |||
e4f4de47e7 | |||
69ccd74d2e | |||
bf691337f1 | |||
d616545268 | |||
57ecd6e515 | |||
5b5ba53112 | |||
bd87a26db1 | |||
c0283da6ee | |||
e372d624a6 | |||
db6c6e7e0f |
7
.github/README.md
vendored
7
.github/README.md
vendored
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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`).
|
||||
|
||||
|
@ -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.
|
||||
|
@ -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:
|
||||
- 
|
||||
- 
|
||||
|
||||
<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/)
|
||||
|
@ -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.
|
||||
|
@ -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
1
aws/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
./ssh_keys
|
17
aws/Dockerfile
Normal file
17
aws/Dockerfile
Normal 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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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:
|
||||
|
18
env-example
18
env-example
@ -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
|
||||
|
@ -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
5
maildev/Dockerfile
Normal file
@ -0,0 +1,5 @@
|
||||
FROM djfarrelly/maildev
|
||||
|
||||
MAINTAINER Maxime Hélias <maximehelias16@gmail.com>
|
||||
|
||||
EXPOSE 80 25
|
@ -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 \
|
||||
|
@ -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
|
||||
|
@ -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/*
|
||||
|
||||
|
@ -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/*
|
||||
|
||||
|
@ -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/*
|
||||
|
||||
|
@ -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
|
@ -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
59
php-worker/Dockerfile-71
Normal 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/
|
@ -1,4 +1,4 @@
|
||||
FROM postgres:latest
|
||||
FROM postgres:alpine
|
||||
|
||||
MAINTAINER Ben M <git@bmagg.com>
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
|
@ -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'
|
||||
|
Reference in New Issue
Block a user