Compare commits

...

277 Commits

Author SHA1 Message Date
5016e88515 Merge pull request #1602 from bestlong/php5-mssql-ext-install-faile
php5 support MSSQL extension
2018-06-11 16:32:50 +08:00
e8eb97b398 php5 support MSSQL extension 2018-06-11 14:23:40 +08:00
66c61d9a72 Merge pull request #1595 from bestlong/install-aerospike-build-failed
update AEROSPIKE_PHP_REPOSITORY source url
2018-06-09 10:33:41 +08:00
d8f95bac2a update AEROSPIKE_PHP_REPOSITORY source 2018-06-09 00:15:09 +08:00
ad316bab50 Merge pull request #1585 from ahkui/patch-2
Update Caddy Dockerfile to force agree T&C
2018-06-05 09:00:34 +08:00
6e43dd804d Update Caddy Dockerfile to force agree T&C 2018-06-03 16:29:47 +08:00
ba1a83b40b Merge pull request #1582 from bestlong/php5-fpm-aerospike-build-faile
php-fpm aerospike support php5
2018-06-01 11:20:49 +08:00
34ad8acdbf php-fpm aerospike support php5 2018-06-01 11:02:20 +08:00
d5ea58eb6e Merge pull request #1355 from lamaaa/master
Fix Documentation error for install xDebug
2018-06-01 10:23:12 +08:00
567756475d Merge pull request #1581 from bestlong/php5-fpm-memcached-build-faile
Fix php 5.6 memcached build failed
2018-06-01 09:13:34 +08:00
ad21cd225f fix php 5.6 memcached build failed 2018-06-01 08:45:56 +08:00
f2f5aeabd6 Merge pull request #1580 from bestlong/aerospike-build-failed
fix aerospike build failed
2018-06-01 08:36:49 +08:00
0f4a417f4e fix aerospike build failed
php-fpm and workspace
2018-06-01 01:30:35 +08:00
42a960338b Merge pull request #1530 from ahkui/patch-1
Update Dockerfile install python pip, virtualenv way.
2018-05-29 14:01:50 +08:00
2e75c25c7f Merge pull request #1575 from bestlong/cleanup-and-update
Cleanup and update
2018-05-29 12:36:06 +08:00
beec32498e update drush version 2018-05-28 11:23:59 +08:00
573b8e0afd clean up apt update 2018-05-28 11:15:03 +08:00
409f91662f Merge pull request #1502 from wvdongen/master
Fix Drush installation, consistent arguments, deprecated install note
2018-05-28 10:48:24 +08:00
185ba60a09 Merge branch 'master' into master 2018-05-28 10:46:18 +08:00
a03ce23bf5 Merge pull request #1520 from fnandogp/master
fix: Fix Drush install for the workspace
2018-05-28 10:30:50 +08:00
fc8736773c Merge pull request #1574 from bestlong/pecl-channel-update
update pecl channel
2018-05-28 10:29:34 +08:00
d5efd5309e update pecl channel 2018-05-28 08:47:22 +08:00
da3a7226bd Merge pull request #1572 from luciano-jr/master
Add Portainer.io service
2018-05-27 20:51:06 +08:00
cc20ac2421 Merge pull request #1573 from bestlong/fix-php5-gmp
Fix php5 Unable to locate gmp.h
2018-05-27 20:45:44 +08:00
402383e7b7 Fix php5 Unable to locate gmp.h 2018-05-27 20:01:29 +08:00
9250326664 Swoole support php5 (#1571)
* php5 fpm support swoole
* php5 workspace support swoole
2018-05-27 19:47:13 +08:00
51d253db21 Update documentation adding Portainer section 2018-05-27 11:22:49 +01:00
69de0668e9 Add portainer 2018-05-27 10:39:41 +01:00
472df4d194 Merge pull request #1570 from bestlong/fix-getting-started-step-not-fit
fix Getting Started step "docker-compose up -d nginx mysql" missing workspace container.
2018-05-27 11:23:34 +08:00
62b716f469 fix Getting Started step "docker-compose up -d nginx mysql" missing workspace container. 2018-05-27 11:21:22 +08:00
10ba847415 Merge pull request #1489 from 0reo/elasticsearch-doc-patch-1
corrected elasticsearch default username
2018-05-27 10:13:05 +08:00
a0595491a2 Merge pull request #1491 from falinsky/patch-1
Fix env variable name
2018-05-27 10:11:29 +08:00
7c88c33b29 Merge pull request #1504 from dougblackjr/master
Adding pcntl to php-fpm, php-worker, addresses #1419
2018-05-27 10:08:53 +08:00
808bd72d13 Fix #1544, Unable to locate package libgmp-dev. (#1569)
* Fix #1544, Unable to locate package libgmp-dev.
2018-05-27 10:06:00 +08:00
07410e80cf Merge pull request #1566 from bestlong/fix-php-fpm-ext-soap
Fix install php ext SOAP No package php-soap available
2018-05-26 07:59:33 +08:00
d1170f51c8 Fix install php ext SOAP No package php-soap available 2018-05-26 07:47:29 +08:00
8158b6f50e Merge pull request #1565 from bestlong/fix-php5-xdebug
fix #1535 xdebug installation fails when php version is 5.6
2018-05-26 07:40:15 +08:00
97adef735a fix #1535 xdebug installation fails when php version is 5.6 2018-05-26 07:32:33 +08:00
6e6284d00f Merge pull request #1561 from cyberbit/patch-1
Update index.md
2018-05-25 23:53:58 +08:00
890faa2f3c Update index.md
Improve working
2018-05-25 10:04:59 -05:00
f6f37ec020 Update index.md
Add information for Windows hosts when adding custom cron jobs
2018-05-25 10:01:35 -05:00
20464d1bd2 Merge pull request #1510 from brunen9/remove-unused-variable-php-fpm-install-postgres
Remove unused variable PHP_FPM_INSTALL_POSTGRES.
2018-05-25 22:19:34 +08:00
a5813de5bf Merge pull request #1380 from glorand/patch-1
Update min. docker version
2018-05-25 22:13:32 +08:00
aee1adb0a1 Merge pull request #1533 from kaliberx/master
Add subversion support in workspace
2018-05-25 22:10:58 +08:00
dd322a0e71 Merge pull request #1524 from SDLyu/update-env-example
Update env-example
2018-05-25 22:06:09 +08:00
99c2c846ff Merge pull request #1522 from jeliasson/workspace-imagemagick
Update apt sources before installing imagemagick
2018-05-25 22:04:59 +08:00
d08177d2c2 fix wrong spelling 2018-05-20 19:22:30 +08:00
b990af3353 Add subversion support in workspace 2018-05-07 10:58:55 +02:00
b2c09f6b15 Update Dockerfile
fix pip v10 error 
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name main
2018-05-07 15:03:52 +08:00
9e5fdda294 Update env-example 2018-05-05 22:06:15 +08:00
77bea30cb0 Update apt sources before installing imagemagick
#1512
2018-05-04 22:04:35 +02:00
dac336e6a1 fix: Fix Drush install for the workspace 2018-05-02 10:49:19 -03:00
d142500216 Remove unused variable PHP_FPM_INSTALL_POSTGRES. 2018-04-27 21:48:16 +06:00
6b6e2d5f86 Adding pcntl to php-fpm, php-worker, addresses #1419 2018-04-24 10:25:16 -04:00
3ad17eca0a - Fix Drush installation
- Consistent naming of arguments
- Add deprecated install note
2018-04-23 20:30:47 +02:00
f54e6baf02 Fix env variable name
Fixed env variable name which points to host source directory.
2018-04-20 14:12:00 +03:00
59f3b574da corrected elasticsearch default username 2018-04-19 14:25:19 -04:00
0c41fceae1 add missing DRUSH_VERSION to workspace arguments 2018-04-06 18:06:44 +03:00
76b95752bf fix travis tests 2018-04-06 17:24:11 +03:00
101986c76f merge the php versions dockerfiles in php-fpm, workspace and php-worker 2018-04-06 10:04:56 +03:00
add78a19f4 fix travis build failure 2018-04-06 04:53:04 +03:00
a0c5ef75d2 upgrade docker-compose to v3 2018-04-05 16:43:22 +03:00
06353031ac Merge pull request #1466 from fenech/master
Add missing syntax to continue line
2018-04-05 06:53:22 +03:00
1f193a5310 Add missing syntax to continue line 2018-04-04 20:29:14 +02:00
b45bf46436 Merge pull request #1446 from ByZer0/debug-workspace-scheduler
Use xdebug with Laravel scheduler inside workspace container
2018-04-04 17:48:55 +03:00
0586247e3f Merge branch 'master' into debug-workspace-scheduler 2018-04-04 17:48:46 +03:00
0f8891b56c Merge pull request #1464 from danhunsaker/copy-vs-add
Apply COPY vs ADD best practices
2018-04-04 17:36:31 +03:00
ebeb9e43f3 Merge pull request #1458 from larastarscn/master
[feature] support for php worker hot load
2018-04-04 17:35:29 +03:00
52afd9ef62 Merge pull request #1396 from taufek/tj-volume-cached
Use Cached Flag for Application Path Volume
2018-04-04 17:34:20 +03:00
31a4e29c81 Apply COPY vs ADD best practices
Should only use `ADD` for URLs (and even then, `curl` or `wget` are preferred, for numerous reasons, even within this repo) and when extracting archive contents as part of the `ADD` operation; otherwise `COPY` is clearer and (slightly) more efficient.
2018-04-04 06:13:28 -06:00
067218e010 Merge pull request #1461 from Omranic/patch-1
Fix minor typo!
2018-04-02 12:26:34 +08:00
5ed3526e17 Fix minor typo! 2018-04-02 02:53:23 +02:00
54e6d66c83 [feature] support for php worker hot load 2018-03-30 14:30:49 +08:00
8a090f3e46 Merge pull request #1454 from red-smeg/patch-1
Modify the sample config to support symfony 4
2018-03-29 16:19:21 +08:00
1e5d787a7e Merge pull request #1457 from bestlong/fix-elasticsearch
fix #1418 elasticsearch up fails.
2018-03-29 16:18:07 +08:00
83140d9939 fix #1418 elasticsearch up fails. 2018-03-29 15:34:38 +08:00
9b85ac6c2b Modify the sample config to support symfony 4
This allows Laradock to work with symfony 4 projects
2018-03-28 14:46:19 -04:00
871a9d032a Merge pull request #1438 from pangminfu/apache-docroot-path
Apache document root path configurable with env file
2018-03-25 19:15:16 +03:00
805d7f94e8 Merge pull request #1399 from mariano-dagostino/1372-ssh
Make possible to login via ssh using the laradock user.
2018-03-25 19:14:10 +03:00
c84a57cd13 Merge pull request #1450 from bestlong/increase-install-check
Increase install check
2018-03-24 15:28:29 +08:00
e6817288f8 workspace sql server section: increase install check 2018-03-24 14:23:01 +08:00
cd849dda21 php-fpm sql server section: increase install check 2018-03-24 13:56:06 +08:00
21a5d5bf98 Merge pull request #1421 from spyridonas/patch-1
Save PostgresSQL data to hard drive.
2018-03-23 16:54:41 +08:00
2ab11bf1af Merge pull request #1447 from bestlong/fix-users-aliases
fix mistake #1427 about user aliases.
2018-03-23 16:51:41 +08:00
141d2dbe7f fix file owner. 2018-03-23 16:09:10 +08:00
4d384c0a67 fix mistake #1427 about user aliases. 2018-03-23 15:17:35 +08:00
245515b41d Use xDebug with Laravel scheduler inside workspace container. 2018-03-22 12:38:42 +03:00
9a9d30f173 Merge pull request #1444 from bestlong/clean-up-workspace-laravel
update default install arg and remove extra run command
2018-03-20 13:59:27 +08:00
99c7758799 update default install arg and remove extra run command 2018-03-20 10:59:59 +08:00
164069c256 Merge pull request #1443 from bestlong/clean-up-aerospike
clean up aerospike and empty line
2018-03-19 22:46:13 +08:00
5773d270ca clean up aerospike and empty line 2018-03-19 22:15:24 +08:00
f810962d84 add APACHE_DOCUMENT_ROOT in env-example file 2018-03-18 17:38:49 +08:00
f5f23bed1b apache2 accept APACHE_DOCUMENT_ROOT argument from .env file 2018-03-18 17:37:21 +08:00
e694254fb0 WEB_DOCUMENT_ROOT accept argument DOCUMENT_ROOT with original default value /var/www/ 2018-03-18 17:34:15 +08:00
c34d2d12b3 Merge pull request #1435 from bestlong/sort-up
MAINTAINER is deprecated
2018-03-16 21:47:58 +08:00
349be8b30e MAINTAINER is deprecated 2018-03-16 21:09:15 +08:00
436e9e5a66 Merge pull request #1434 from bestlong/sort-up
Sort up
2018-03-16 18:34:53 +08:00
b445479c99 add gitlab-ci config file. 2018-03-16 17:34:57 +08:00
70e10a4953 MAINTAINER is deprecated 2018-03-16 17:34:47 +08:00
1ab5b405a9 remove wrong comment info. 2018-03-16 16:24:20 +08:00
91784cbf8a Merge pull request #1431 from bestlong/workspace-mssql-build-fail
fix workspace mssql build fail
2018-03-16 15:56:14 +08:00
415a6159f6 fix workspace mssql build fail 2018-03-16 15:22:21 +08:00
2cf368e2cc Arg not consumed (#1430)
* fix arg CHROME_DRIVER_VERSION not consumed
* fix arg INSTALL_V8JS not consumed
2018-03-16 11:39:32 +08:00
f08c3bda4d workspace in gitlab build fail (#1429)
fix "sed: couldn't open temporary file /home/laradock/sed6KGnMb: Permission denied"
2018-03-16 10:41:54 +08:00
c5c4d19476 Merge pull request #1427 from bestlong/workspace-user-aliase-remove-duplicate-command
workspace Dockerfile remove duplicate command in User Aliases section.
2018-03-15 11:32:47 +08:00
40796651f6 workspace Dockerfile remove duplicate command in User Aliases section. 2018-03-15 11:22:43 +08:00
188a7d7624 Merge pull request #1425 from suheb/fix/imagemagick
Run apt-get update before installing imagemagick in workspace
2018-03-15 09:26:00 +08:00
3f1f60da91 Merge pull request #1412 from CantonBolo/optimize
Custom composer repo and npm registry url in php72
2018-03-15 09:24:07 +08:00
21e3ef8c47 Merge pull request #1426 from suheb/fix/mysql
Update mysql version to latest
2018-03-14 20:38:01 +08:00
7876aa2360 Update default mysql version
Signed-off-by: Suhaib Khan <suheb.work@gmail.com>
2018-03-14 15:43:14 +05:30
dee66c2495 Merge pull request #1420 from gentcys/my-fix-branch
PPA 'pinepain/libv8-5.4' has been deprecated, use 'pinepain/libv8-archived' instead
2018-03-14 12:53:36 +08:00
ce8bdb91cf Run apt-get update before installing imagemagick in workspace
Signed-off-by: Suhaib Khan <suheb.work@gmail.com>
2018-03-13 12:18:08 +05:30
f90a81ef8b Update mysql version to latest
Signed-off-by: Suhaib Khan <suheb.work@gmail.com>
2018-03-13 11:52:20 +05:30
23b8239cfa Save PostgresSQL data to hard drive.
PostgresSQL data don't get saved to hard drive. This tweak should fix that
2018-03-09 10:47:43 +02:00
b7b7690bbe The PPA of 'pinepain/libv8-5.4' has been deprecated, use 'pinepain/libv8-archived' instead 2018-03-09 11:43:40 +08:00
e054b622f3 Custom composer repo and npm registry url in php72 2018-03-05 02:08:11 +08:00
c4aef8e901 Merge pull request #1406 from vjrngn/patch-1
Reference beanstalkd-console host port environment variable in docker-compose.yml
2018-03-02 08:22:36 +08:00
47dc7c1eb9 update documentation 2018-03-01 22:10:08 +05:30
8fc33f5bb9 Reference beanstalkd-console host port
This pull request references the of `BEANSTALKD_CONSOLE_HOST_PORT` from the `.env` file in the `docker-compose.yml`. Prior to this PR, the environment variable was defined in the `.env` file but was not used.
2018-03-01 22:00:15 +05:30
8607f670c1 Update .travis.yml
Add Apache Solr  Test
2018-02-27 17:21:48 +08:00
04105b912d Merge pull request #1375 from wvdongen/master
Added support for Apache Solr
2018-02-27 17:19:20 +08:00
a797d67f14 Merge pull request #1402 from bestlong/workspace-php72-prestissimo
Support Prestissimo
2018-02-27 09:12:01 +08:00
4169a9b357 Support Prestissimo 2018-02-27 08:12:16 +08:00
00e43655bd Use Volume Cached Flag for Application Path Volume
Use cached flag to speed up file sync performance.

References:

https://docs.docker.com/docker-for-mac/osxfs-caching/#tuning-with-consistent-cached-and-delegated-configurations

https://blog.docker.com/2017/05/user-guided-caching-in-docker-for-mac/
2018-02-27 00:59:30 +08:00
8d0bd8505c Merge pull request #1354 from taufek/tj-install-prestissimo
Install Prestissimo in Workspace
2018-02-27 00:00:25 +08:00
dc5474d31b Merge pull request #1401 from bestlong/php-fpm-install-imap
Update php-fpm/Dockerfile-72 add IMAP support
2018-02-26 21:32:54 +08:00
ab9f5aba6e Update Dockerfile-72 2018-02-26 21:27:56 +08:00
cbd0f1de79 Update documentation to explain how to login via ssh using the laradock user 2018-02-26 10:25:15 -03:00
2a2d78e249 Merge pull request #1377 from SvenSlijkoord/php-fpm-install-imap
Added IMAP installation to PHP-FPM container
2018-02-26 21:19:02 +08:00
9b328cce1f Make possible to log in via ssh using the laradock user 2018-02-26 09:52:50 -03:00
43ba898df3 Merge branch 'master' into php-fpm-install-imap 2018-02-26 20:33:35 +08:00
3b0f271782 Merge pull request #1368 from Alexanderwmc/my-fix-branch
update nvm to 0.33.8
2018-02-26 20:26:38 +08:00
327e79f902 Merge pull request #1398 from bestlong/optimize-travis-ci
Optimize travis ci job
2018-02-26 18:48:39 +08:00
e546c9c190 Update php72.ini (#1397) 2018-02-26 18:44:02 +08:00
880c3684d7 optimize travis ci job 2018-02-26 17:20:10 +08:00
27ec06bbf0 Merge pull request #1371 from oysterprotocol/change-php-settings
Change php settings
2018-02-26 16:46:21 +08:00
6fe3dc75b3 Update symfony.conf.example 2018-02-26 15:48:06 +08:00
dd751c56b7 Update app.conf.example 2018-02-26 15:47:45 +08:00
91d202dff4 Update laravel.conf.example 2018-02-26 15:47:23 +08:00
ca376935e1 Merge pull request #1382 from desaroger/php-72-pr
Add PHP 7.2 support and fix issues on 5.6-7.0-7.1 versions
2018-02-26 10:43:16 +08:00
227bc37376 Fix MSSQL issue with a non-installed dependency 2018-02-23 22:26:13 +01:00
74ca3b82a1 Fix issue installing Aerospike in php-fpm with php 7.2 2018-02-23 22:02:57 +01:00
d23c553313 Fix installing PG client 2018-02-23 21:27:04 +01:00
16f88029e0 Fix install deployer fail
Install deployer from phar
2018-02-22 17:20:28 +08:00
74217478e0 Update .travis.yml
Add PHP72 Test
2018-02-22 11:39:10 +08:00
13f55ef796 Merge pull request #1387 from CantonBolo/optimize
Support custom composer repo url and npm registry url
2018-02-22 10:08:15 +08:00
715c2176b8 Merge pull request #1347 from zgoo/zgoo-laradock
Remove blank lines in php-fpm/Dockerfile70&71
2018-02-22 10:06:22 +08:00
43bf67b77e update document 2018-02-21 13:28:34 +08:00
4b5a1ef628 support custom composer repo url and npm registry url 2018-02-21 13:13:19 +08:00
198c3906b2 Fix libgmp not locating gmp.h file 2018-02-17 09:50:16 +01:00
9bd34ed665 Fix typo on grep when checking php-version 2018-02-17 09:35:59 +01:00
76da02e779 Add PHP version checkers on all php-related dockerfiles 2018-02-17 09:26:46 +01:00
a52a944003 Install deployer from phar to be compatible with laravel 4 2018-02-17 08:54:02 +01:00
4cffb2fc99 Avoid to install PHP latest on a PHP 7.1 dockerfile 2018-02-17 08:37:25 +01:00
92dda4695c Changes to make travis work, copied from spyridonas PR 2018-02-16 21:12:14 +01:00
c42e039945 Downgrade swoole to pass travis 5.6 test 2018-02-16 21:07:45 +01:00
72d550e6e5 Set php default version to 72 2018-02-16 19:10:03 +01:00
e1c3524f43 Move php-worker mcrypt installation to pecl 2018-02-16 18:51:24 +01:00
91131f0963 Add PHP 7.2 support 2018-02-16 18:40:13 +01:00
545d50105c Update min. docker version 2018-02-16 10:36:22 +02:00
61d3874736 Update docker-compose.yml 2018-02-13 19:19:07 +01:00
03c7611010 Update Dockerfile-56 2018-02-13 19:18:22 +01:00
48de39b1a1 Update Dockerfile-70 2018-02-13 19:18:07 +01:00
2ca9d3c5c6 Update Dockerfile-71 2018-02-13 19:17:31 +01:00
3b219d2974 Added env entry PHP_FPM_INSTALL_IMAP 2018-02-13 19:15:49 +01:00
e77480b69f Merge pull request #1 from laradock/master
Merge origin laradock
2018-02-13 19:10:36 +01:00
b7f89e6b00 Add Solr 2018-02-11 11:36:57 +01:00
acbe7160d9 Merge pull request #1374 from bestlong/fix-php56-swoole-build-fail
Fix PHP56, workspace build fail: pecl/swoole requires PHP (version >= 7.0.0)
2018-02-11 13:29:08 +08:00
f53565f2a6 Fix workspace, PHP56 build fail
pecl/swoole requires PHP (version >= 7.0.0)
2018-02-11 13:04:20 +08:00
dfff0b2fa0 Fix pecl/swoole requires PHP (version >= 7.0.0) 2018-02-11 12:44:24 +08:00
82a2681eed Update php70.ini 2018-02-08 12:59:34 -05:00
e792aa654e Update php71.ini 2018-02-08 12:58:37 -05:00
87e1bdeb92 update nvm to 0.33.8 2018-02-06 14:29:41 +08:00
f05fdc71d5 doubling memory limit for php on brokers 2018-01-31 16:46:45 -08:00
6e96b1c6f9 Update default.conf 2018-01-29 16:38:09 -08:00
fad7c11d53 laravel timeouts 2018-01-29 16:32:18 -08:00
639b14445f Update default.conf 2018-01-29 16:31:48 -08:00
2a74f1433c fix Documentation error for install xDebug 2018-01-17 11:52:30 +08:00
0b902e3e96 Install Prestissimo in Workspace
**Why we need this change?**

[Prestissimo](https://github.com/hirak/prestissimo) will enabled `composer` to install plugins in parallel.

**Source**

http://jackmcdade.com/blog/tired-of-waiting
2018-01-17 10:21:08 +08:00
f27b3aa4be Remove blank lines
Just do it to avoid Warning message on building the php-fpm container
2018-01-12 02:04:02 +08:00
722f7d09c0 Remove blank lines
Just do it to avoid Warning message on building the php-fpm container
2018-01-12 01:43:25 +08:00
0077de28a1 Merge pull request #1345 from jdxia/master
workspace container adds swoole
2018-01-09 19:23:10 +01:00
d098f1f6ad Merge pull request #1322 from jk2K/master
feat: add GMP extension to PHP-fpm
2018-01-09 19:22:19 +01:00
4ea9cd0663 Merge pull request #1342 from zuohuadong/patch-24
add examples in caddy
2018-01-09 19:19:55 +01:00
9de6d9b9e1 Merge pull request #1338 from vitoo/patch-1
Update supervisord.conf to enable supervisorctl
2018-01-09 19:19:06 +01:00
04b4af829f Merge pull request #1332 from mouyong/master
update jenkins from 2.73.2 to 2.89.2 and fix nginx/Dockerfile syntax error.
2018-01-09 19:18:52 +01:00
bf2dbca286 Merge pull request #1335 from m1guelpf-forks/patch-1
Update license year
2018-01-09 19:18:31 +01:00
0b7cb81f47 Merge pull request #1333 from Zamerick/master
updates path for postgres
2018-01-09 19:18:01 +01:00
368c85dc61 Merge pull request #1326 from ed-fruty/add_amqp_supports
Added support for AMQP extension in workspace and php-fpm containers.
2018-01-09 19:16:30 +01:00
ae7dda9ef2 Merge pull request #1329 from monkeycorp/bugfix/elastisearh-low-memory
add memory to process up elastiseach
2018-01-09 19:15:23 +01:00
7e88fb56f1 Merge pull request #1327 from ed-fruty/ssh_for_laradock_user
Ssh for laradock user
2018-01-09 19:13:15 +01:00
807443455a remove codesponsor.io links 2018-01-09 19:09:54 +01:00
x
c44338e370 workspace container adds swoole 2018-01-09 11:25:57 +08:00
b4ded4f21b add examples
webhook & proxy
2018-01-08 12:24:03 +08:00
3e5a6029ab Update supervisord.conf to enable supervisorctl
Enabling supervisorctl allow us to do, start/stop one service without having to stop the entire container for example. Usefull when we have many php process running.

supervisorctl stop laravel-worker
2018-01-04 23:57:33 +01:00
ee205d1198 [F] fix syntax error. 2018-01-04 13:57:46 +08:00
0fcb8b43cc Update license year 2017-12-31 22:12:59 +01:00
7bd22f015e updates path for postgres 2017-12-30 16:14:02 -05:00
07acf291fa remove line 2.73.2 2017-12-30 13:41:54 +08:00
cfe6e254a7 update jenkins from 2.73.2 to 2.89.2 2017-12-30 13:38:07 +08:00
5efda6714b Update apt packages to install librabbitmq for php 7.0 and php 5.6 2017-12-29 16:02:46 +02:00
a83477b439 Added packages update to install librabbit-mq. 2017-12-29 14:25:43 +02:00
00f8c3407e add memory to process up elastiseach 2017-12-28 10:54:45 -06:00
0aaa2c742e Added support for AMQP extension in workspace and php-fpm containers. 2017-12-28 14:25:32 +02:00
4ada536d68 Added laradock user ssh supports for php5.6 and php7.0. 2017-12-28 12:56:11 +02:00
222febadb5 Allowed laradock user use ssh settings (copied from root). 2017-12-28 12:53:33 +02:00
0445d76d11 feat: add GMP extension to PHP-fpm 2017-12-27 18:56:26 +08:00
7fc3a9cb7a add Dockery to a list of related projects
closes #1319
2017-12-27 02:51:50 +01:00
b738253a26 update simple text in the docs 2017-12-20 18:10:20 +01:00
6e6a658a79 fix broken test 2017-12-20 18:07:37 +01:00
4bc6526c3c add missing doc about jenkins 2017-12-20 18:03:10 +01:00
d4f9b04467 ignore /jenkins/jenkins_home/ generated files 2017-12-20 01:09:47 +01:00
b9e982c112 rename balancer to haproxy 2017-12-20 01:09:19 +01:00
ad3698670b replace .dev with .test to avoid issues with the new google chrome 2017-12-17 21:35:31 +01:00
71cc109334 update base tags 2017-12-17 21:31:37 +01:00
0d804cd29a enable remote_connect_back instead of defining remote host in xdebug
and modify the default var display
2017-12-17 21:31:05 +01:00
3fcebd49e7 Merge pull request #1311 from KoRiGaN/master
Give minio access to backend
2017-12-17 21:15:12 +01:00
86eccdb962 Merge pull request #1312 from jonaselan/patch-1
Update index.md
2017-12-17 21:14:56 +01:00
0f46659172 fix misspelled 2017-12-15 09:23:24 -03:00
017fcf188b Update index.md
Google Chrome is releasing v63 which now forces all .dev domains to use HTTPS. Me and my co-workers had problems with this, so I do not want this to happen to others.
2017-12-13 18:22:18 -03:00
63c69231f7 Give minio access to backend
Add volume to persist minio configuration
Modify minio data volume to use the standard DATA_SAVE_PATH
2017-12-13 17:45:15 +01:00
4730ed1b78 Merge pull request #1308 from gorjan-mishevski/patch-1
Update index.md
2017-12-11 18:10:05 +01:00
c21c6760ac Merge pull request #1309 from bestlong/refactoring-travis
Refactor travis.yml
2017-12-11 17:00:53 +08:00
1c194f5c87 Merge duplicate services build job 2017-12-11 14:25:42 +08:00
81b34a72eb ignore aws service 2017-12-11 12:01:23 +08:00
fde265ed6a Update index.md
Syntax typo error fix.
2017-12-11 01:01:15 +01:00
64029d9270 fix sed expression unknown option 2017-12-10 23:48:53 +08:00
407c08017d add new services 2017-12-10 23:23:03 +08:00
2156139b5a merge independent services 2017-12-10 23:21:09 +08:00
e1ccd84c16 Merge pull request #1307 from bestlong/fix-php-worker-build-fail
Fix php-worker build fail
2017-12-10 20:59:53 +08:00
d139b6bc2e fix php-worker build fail 2017-12-10 18:27:30 +08:00
5e10abd536 Merge pull request #1306 from bestlong/fix-hhvm-build-fail
fix install hhvm package cannot be authenticated
2017-12-10 18:19:06 +08:00
c6a8500c44 fix install hhvm package cannot be authenticated 2017-12-10 17:43:30 +08:00
b981168111 Merge pull request #1305 from bestlong/fix-workspace-php-56-build-fail
Fix workspace php56 build fail
2017-12-10 17:33:15 +08:00
cd1c9c0d44 fix aerospike build fail 2017-12-10 16:13:39 +08:00
8e32b93264 Merge pull request #1304 from bestlong/fix-php-fpm-56-aerospike-build-fail
fix aerospike build fail
2017-12-10 09:00:16 +01:00
a2ae141a75 fix aerospike build fail 2017-12-10 15:10:41 +08:00
f22ceb71ab Merge pull request #1298 from nm777/bug/issue-1296-php56-ldap-in-workspace
Add LDAP support to PHP 5.6 workspace
2017-12-06 21:36:32 +01:00
6ea86fbce3 Add LDAP support to PHP 5.6 workspace
Issue #1296:
PHP 7.0 and 7.1 workspaces support adding the PHP LDAP module. The
PHP 5.6 workspace file seems to have missed this for some reason.
2017-12-05 12:52:35 -06:00
dec08ec2b1 Merge pull request #1295 from Rhymond/patch-2
LInk is not working
2017-12-05 02:31:28 +01:00
98fba83331 LInk is not working 2017-12-04 09:38:57 +00:00
694b39ddf4 Merge pull request #1293 from Rhymond/patch-1
Compatibility for COMPOSE_FILE
2017-12-04 08:51:32 +01:00
d0167475ba Merge pull request #1279 from scaule/scaule-patch
Don't use docker-compose down to stop containers
2017-12-04 08:38:29 +01:00
3bdab382ea Merge pull request #1276 from scaule/patch-#1275
#1275 Fix memory leaks in docker-sync with verbose true
2017-12-04 08:36:37 +01:00
80f6e8b60c Merge pull request #1273 from EnnioSimoes/master
adding '\' to the Dockerfile nginx statement
2017-12-04 08:36:03 +01:00
ba61566f28 Merge pull request #1269 from francoisfaubert/master
Clarified how to split multiple docker-compose files on Windows
2017-12-04 08:35:01 +01:00
9ae10d32ce Merge pull request #1233 from zuohuadong/patch-18
Remove duplicate configuration
2017-12-04 08:34:17 +01:00
cf136f891b Windows compatibility
COMPOSE_PATH_SEPARATOR
If set, the value of the COMPOSE_FILE environment variable will be separated using this character as path separator.
2017-12-03 23:04:20 +00:00
59dff53176 Don't use docker-compose down to stop containers
This delete containers and volume too. 
Use docker-compose stop who only stop containers
2017-11-28 15:33:27 +01:00
34267ffc4d #1275 Fix memory leaks in docker-sync with verbose true 2017-11-27 12:00:05 +01:00
57918b69a7 adding '\' to the Dockerfile nginx statement 2017-11-26 17:30:32 -02:00
c11658559a Updated the documentation to illustrate my proposition 2017-11-23 14:21:38 -05:00
47c74d1334 Added clarification on how to split multiple docker-compose files within COMPOSE_FILE on Windows 2017-11-23 14:02:56 -05:00
e779bf96ab reorder some keys in the .env for easier modification 2017-11-23 20:52:42 +02:00
06ce5ca222 add open collective to the documentation 2017-11-23 20:41:41 +02:00
c06c28aa04 Merge branch 'opencollective-opencollective'
* opencollective-opencollective:
  add open collective to the readme
  Update README.md
2017-11-23 20:30:27 +02:00
c1e80e3af4 add open collective to the readme 2017-11-23 20:30:10 +02:00
a7c9232193 Merge branch 'opencollective' of https://github.com/opencollective/laradock into opencollective-opencollective
* 'opencollective' of https://github.com/opencollective/laradock:
  Update README.md
2017-11-23 20:16:54 +02:00
265bc13917 Merge pull request #1251 from mouyong/master
Set environment to change source.
2017-11-23 20:12:11 +02:00
8d410e9c82 merge upstream 2017-11-23 13:42:33 +08:00
f56a585ab2 Update README.md 2017-11-22 17:52:45 -05:00
9b8d4806a8 Merge pull request #1265 from jeff-h/master1
Specifying included docker-compose files in the .env is more flexible
2017-11-22 20:15:07 +02:00
73b95357ac Specifying included docker-compose files in the .env is more flexible than hardcoding in the shell script. 2017-11-22 10:48:22 +13:00
65a8bbc6a4 Merge pull request #1262 from jeff-h/issue-171
Fixes #353 and allows easier dev & prod environments
2017-11-21 22:56:04 +02:00
7c1f3060bf Merge pull request #1257 from nellonican/hotfix
Remove python installation from Dockerfile-71
2017-11-21 22:55:33 +02:00
45e1ecf3c0 Merge pull request #1256 from ricardoseriani/remove-the-github-paragraph-on-header
Remove the github paragraph on header
2017-11-21 22:54:54 +02:00
c6b1eb016d Merge pull request #1255 from zuohuadong/patch-23
Remove useless...
2017-11-21 22:53:32 +02:00
c5005f54f7 Merge pull request #1254 from zuohuadong/patch-22
add git  & Chinese users friendly.
2017-11-21 22:53:19 +02:00
cf5b1af31a Fixes #353 and allows easier dev & prod environments by splitting dev-specific configuration into a separate docker-compose. 2017-11-21 09:59:11 +13:00
8dea201b68 Remove python installation from Dockerfile-71
Python can be installed by using the WORKSPACE_INSTALL_PYTHON
variable in the .env file. Fixes #1238
2017-11-16 21:31:43 +01:00
50a3e24db8 Remove the github paragraph on header
Remove the github paragraph on header, since it already has a link to github using aria to accessibility
2017-11-16 12:13:00 -02:00
9835a20863 Remove useless...
Remove useless...
2017-11-15 13:05:26 +08:00
5bcb99dfb9 add git & Chinese users friendly.
China can not access  golang.org.
2017-11-15 13:00:57 +08:00
a99281cda8 Change application source from dl-cdn.alpinelinux.org to aliyun source 2017-11-14 21:03:19 +08:00
1342b696ea Merge branch 'master' of https://github.com/laradock/laradock 2017-11-14 20:57:52 +08:00
fd5bb38a8c Update env-example
Remove duplicate configuration
2017-11-07 10:54:19 +08:00
025a339062 change application source #397
# fix a problem--#397, change application source from dl-cdn.alpinelinux.org to aliyun source.
2017-02-15 10:20:18 +08:00
79 changed files with 3886 additions and 3566 deletions

10
.github/README-zh.md vendored
View File

@ -669,19 +669,19 @@ PHP-CLI 安装在 Workspace 容器,改变 PHP-CLI 版本你需要编辑 `works
<a name="Use-custom-Domain"></a> <a name="Use-custom-Domain"></a>
### 使用自定义域名 (替换 Docker 的 IP) ### 使用自定义域名 (替换 Docker 的 IP)
假定你的自定义域名是 `laravel.dev` 假定你的自定义域名是 `laravel.test`
1 - 打开 `/etc/hosts` 文件添加以下内容,映射你的 localhost 地址 `127.0.0.1` 为 `laravel.dev` 域名 1 - 打开 `/etc/hosts` 文件添加以下内容,映射你的 localhost 地址 `127.0.0.1` 为 `laravel.test` 域名
```bash ```bash
127.0.0.1 laravel.dev 127.0.0.1 laravel.test
``` ```
2 - 打开你的浏览器访问 `{http://laravel.dev}` 2 - 打开你的浏览器访问 `{http://laravel.test}`
你可以在 nginx 配置文件自定义服务器名称,如下: 你可以在 nginx 配置文件自定义服务器名称,如下:
```conf ```conf
server_name laravel.dev; server_name laravel.test;
``` ```
<a name="Enable-Global-Composer-Build-Install"></a> <a name="Enable-Global-Composer-Build-Install"></a>

27
.github/README.md vendored
View File

@ -6,7 +6,7 @@
<p align="center"> <p align="center">
<a href="https://travis-ci.org/laradock/laradock"><img src="https://travis-ci.org/laradock/laradock.svg?branch=master" alt="Build status"></a> <a href="https://travis-ci.org/laradock/laradock"><img src="https://travis-ci.org/laradock/laradock.svg?branch=master" alt="Build status"></a>
<a href="https://github.com/laradock/laradock/stargazers"><img src="https://img.shields.io/github/stars/laradock/laradock.svg" alt="GitHub stars"></a> <a href="https://github.com/laradock/laradock/stargazers"><a href="#backers" alt="sponsors on Open Collective"><img src="https://opencollective.com/laradock/backers/badge.svg" /></a> <a href="#sponsors" alt="Sponsors on Open Collective"><img src="https://opencollective.com/laradock/sponsors/badge.svg" /></a> <img src="https://img.shields.io/github/stars/laradock/laradock.svg" alt="GitHub stars"></a>
<a href="https://github.com/laradock/laradock/network"><img src="https://img.shields.io/github/forks/laradock/laradock.svg" alt="GitHub forks"></a> <a href="https://github.com/laradock/laradock/network"><img src="https://img.shields.io/github/forks/laradock/laradock.svg" alt="GitHub forks"></a>
<a href="https://github.com/laradock/laradock/issues"><img src="https://img.shields.io/github/issues/laradock/laradock.svg" alt="GitHub issues"></a> <a href="https://github.com/laradock/laradock/issues"><img src="https://img.shields.io/github/issues/laradock/laradock.svg" alt="GitHub issues"></a>
<a href="https://raw.githubusercontent.com/laradock/laradock/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="GitHub license"></a> <a href="https://raw.githubusercontent.com/laradock/laradock/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="GitHub license"></a>
@ -31,9 +31,21 @@
## Sponsors ## Sponsors
<a target='_blank' rel='nofollow' href='https://app.codesponsor.io/link/JHiroABWV9N5QKgcFuTA2NxX/laradock/laradock'> Support this project by becoming a sponsor.
<img alt='Sponsor' width='888' height='68' src='https://app.codesponsor.io/embed/JHiroABWV9N5QKgcFuTA2NxX/laradock/laradock.svg' />
</a> Your logo will show up on the [github repository](https://github.com/laradock/laradock/) index page and the [documentation](http://laradock.io/) main page, with a link to your website. [[Become a sponsor](https://opencollective.com/laradock#sponsor)]
<a href="https://opencollective.com/laradock/sponsor/0/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/0/avatar.svg"></a>
<a href="https://opencollective.com/laradock/sponsor/1/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/1/avatar.svg"></a>
<a href="https://opencollective.com/laradock/sponsor/2/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/2/avatar.svg"></a>
<a href="https://opencollective.com/laradock/sponsor/3/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/3/avatar.svg"></a>
<a href="https://opencollective.com/laradock/sponsor/4/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/4/avatar.svg"></a>
<a href="https://opencollective.com/laradock/sponsor/5/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/5/avatar.svg"></a>
<a href="https://opencollective.com/laradock/sponsor/6/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/6/avatar.svg"></a>
<a href="https://opencollective.com/laradock/sponsor/7/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/7/avatar.svg"></a>
<a href="https://opencollective.com/laradock/sponsor/8/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/8/avatar.svg"></a>
<a href="https://opencollective.com/laradock/sponsor/9/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/9/avatar.svg"></a>
## Contributors ## Contributors
@ -53,7 +65,8 @@
- Join us, by submitting 20 useful PR's. - Join us, by submitting 20 useful PR's.
#### Awesome contributors: #### Awesome contributors:
- See full list [here](https://github.com/apiato/apiato/graphs/contributors).
<a href="https://github.com/laradock/laradock/graphs/contributors"><img src="https://opencollective.com/laradock/contributors.svg?width=890" /></a>
## Donations ## Donations
@ -65,6 +78,10 @@ Donate directly via [Paypal](https://www.paypal.me/mzalt)
[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.me/mzalt) [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.me/mzalt)
or become a backer on [Open Collective](https://opencollective.com/laradock#backer)
<a href="https://opencollective.com/laradock#backers" target="_blank"><img src="https://opencollective.com/laradock/backers.svg?width=890"></a>
or show your support via [Beerpay](https://beerpay.io/laradock/laradock) or show your support via [Beerpay](https://beerpay.io/laradock/laradock)
[![Beerpay](https://beerpay.io/laradock/laradock/badge.svg?style=flat)](https://beerpay.io/laradock/laradock) [![Beerpay](https://beerpay.io/laradock/laradock/badge.svg?style=flat)](https://beerpay.io/laradock/laradock)

3
.gitignore vendored
View File

@ -3,4 +3,5 @@
/data /data
.env .env
/.project /.project
.docker-sync .docker-sync
/jenkins/jenkins_home

62
.gitlab-ci.yml Normal file
View File

@ -0,0 +1,62 @@
# image: docker:latest
# services:
# - docker:dind
image: jonaskello/docker-and-compose:1.12.1-1.8.0
services:
- docker:1.12.1-dind
before_script:
- docker info
- docker-compose version
- cp env-example .env
- sed -i -- "s/=false/=true/g" .env
- cat .env
- env | sort
build:5.6:php-fpm:
variables:
PHP_VERSION: "5.6"
script:
- docker-compose build php-fpm
build:7.0:php-fpm:
variables:
PHP_VERSION: "7.0"
script:
- docker-compose build php-fpm
build:7.1:php-fpm:
variables:
PHP_VERSION: "7.1"
script:
- docker-compose build php-fpm
build:7.2:php-fpm:
variables:
PHP_VERSION: "7.2"
script:
- docker-compose build php-fpm
build:5.6:workspace:
variables:
PHP_VERSION: "5.6"
script:
- docker-compose build workspace
build:7.0:workspace:
variables:
PHP_VERSION: "7.0"
script:
- docker-compose build workspace
build:7.1:workspace:
variables:
PHP_VERSION: "7.1"
script:
- docker-compose build workspace
build:7.2:workspace:
variables:
PHP_VERSION: "7.2"
script:
- docker-compose build workspace

View File

@ -7,37 +7,30 @@ env:
matrix: matrix:
- HUGO_VERSION=0.20.2 - HUGO_VERSION=0.20.2
- PHP_VERSION=56 BUILD_SERVICE="applications blackfire minio percona nginx caddy apache2 mysql mariadb phpmyadmin postgres postgres-postgis pgadmin neo4j mongo redis" - PHP_VERSION=5.6 BUILD_SERVICE=workspace
- PHP_VERSION=70 BUILD_SERVICE="applications blackfire minio percona nginx caddy apache2 mysql mariadb phpmyadmin postgres postgres-postgis pgadmin neo4j mongo redis" - PHP_VERSION=7.0 BUILD_SERVICE=workspace
- PHP_VERSION=71 BUILD_SERVICE="applications blackfire minio percona nginx caddy apache2 mysql mariadb phpmyadmin postgres postgres-postgis pgadmin neo4j mongo redis" - PHP_VERSION=7.1 BUILD_SERVICE=workspace
- PHP_VERSION=7.2 BUILD_SERVICE=workspace
- PHP_VERSION=56 BUILD_SERVICE=workspace - PHP_VERSION=5.6 BUILD_SERVICE=php-fpm
- PHP_VERSION=70 BUILD_SERVICE=workspace - PHP_VERSION=7.0 BUILD_SERVICE=php-fpm
- PHP_VERSION=71 BUILD_SERVICE=workspace - PHP_VERSION=7.1 BUILD_SERVICE=php-fpm
- PHP_VERSION=7.2 BUILD_SERVICE=php-fpm
- PHP_VERSION=56 BUILD_SERVICE=php-fpm - PHP_VERSION=hhvm BUILD_SERVICE=hhvm
- PHP_VERSION=70 BUILD_SERVICE=php-fpm
- PHP_VERSION=71 BUILD_SERVICE=php-fpm
- PHP_VERSION=56 BUILD_SERVICE="php-worker hhvm" # - PHP_VERSION=5.6 BUILD_SERVICE=php-worker
- PHP_VERSION=70 BUILD_SERVICE="php-worker hhvm" - PHP_VERSION=7.0 BUILD_SERVICE=php-worker
- PHP_VERSION=71 BUILD_SERVICE="php-worker hhvm" - PHP_VERSION=7.1 BUILD_SERVICE=php-worker
- PHP_VERSION=7.2 BUILD_SERVICE=php-worker
- PHP_VERSION=56 BUILD_SERVICE=mssql - PHP_VERSION=NA BUILD_SERVICE=solr
- PHP_VERSION=70 BUILD_SERVICE=mssql - PHP_VERSION=NA BUILD_SERVICE="mssql rethinkdb aerospike"
- PHP_VERSION=71 BUILD_SERVICE=mssql - PHP_VERSION=NA BUILD_SERVICE="blackfire minio percona nginx caddy apache2 mysql mariadb postgres postgres-postgis neo4j mongo redis"
- PHP_VERSION=NA BUILD_SERVICE="adminer phpmyadmin pgadmin"
- PHP_VERSION=56 BUILD_SERVICE=rethinkdb - PHP_VERSION=NA BUILD_SERVICE="memcached beanstalkd beanstalkd-console rabbitmq elasticsearch certbot mailhog maildev selenium jenkins proxy proxy2 haproxy"
- PHP_VERSION=70 BUILD_SERVICE=rethinkdb - PHP_VERSION=NA BUILD_SERVICE="kibana grafana laravel-echo-server"
- PHP_VERSION=71 BUILD_SERVICE=rethinkdb # - PHP_VERSION=NA BUILD_SERVICE="aws"
- PHP_VERSION=56 BUILD_SERVICE=aerospike
- 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 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"
# Installing a newer Docker version # Installing a newer Docker version
before_install: before_install:

View File

@ -215,28 +215,24 @@ The PHP-CLI extensions should be installed in `workspace/Dockerfile`.
<br> <br>
<a name="Change-the-PHP-FPM-Version"></a> <a name="Change-the-PHP-FPM-Version"></a>
## Change the (PHP-FPM) Version ## Change the (PHP-FPM) Version
By default **PHP-FPM 7.0** is running. By default the latest stable PHP versin is configured to run.
>The PHP-FPM is responsible of serving your application code, you don't have to change the PHP-CLI version if you are planning to run your application on different PHP-FPM version. >The PHP-FPM is responsible of serving your application code, you don't have to change the PHP-CLI version if you are planning to run your application on different PHP-FPM version.
### A) Switch from PHP `7.0` to PHP `5.6` ### A) Switch from PHP `7.2` to PHP `5.6`
1 - Open the `docker-compose.yml`. 1 - Open the `.env`.
2 - Search for `Dockerfile-70` in the PHP container section. 2 - Search for `PHP_VERSION`.
3 - Change the version number, by replacing `Dockerfile-70` with `Dockerfile-56`, like this: 3 - Set the desired version number:
```yml ```dotenv
php-fpm: PHP_VERSION=5.6
build:
context: ./php-fpm
dockerfile: Dockerfile-56
...
``` ```
4 - Finally rebuild the container 4 - Finally rebuild the image
```bash ```bash
docker-compose build php-fpm docker-compose build php-fpm
@ -245,25 +241,6 @@ docker-compose build php-fpm
> For more details about the PHP base image, visit the [official PHP docker images](https://hub.docker.com/_/php/). > For more details about the PHP base image, visit the [official PHP docker images](https://hub.docker.com/_/php/).
### B) Switch from PHP `7.0` or `5.6` to PHP `5.5`
We do not natively support PHP 5.5 anymore, but you can get it in few steps:
1 - Clone `https://github.com/laradock/php-fpm`.
3 - Rename `Dockerfile-56` to `Dockerfile-55`.
3 - Edit the file `FROM php:5.6-fpm` to `FROM php:5.5-fpm`.
4 - Build an image from `Dockerfile-55`.
5 - Open the `docker-compose.yml` file.
6 - Point `php-fpm` to your `Dockerfile-55` file.
<br> <br>
@ -273,11 +250,23 @@ By default **PHP-CLI 7.0** is running.
>Note: it's not very essential to edit the PHP-CLI version. The PHP-CLI is only used for the Artisan Commands & Composer. It doesn't serve your Application code, this is the PHP-FPM job. >Note: it's not very essential to edit the PHP-CLI version. The PHP-CLI is only used for the Artisan Commands & Composer. It doesn't serve your Application code, this is the PHP-FPM job.
The PHP-CLI is installed in the Workspace container. To change the PHP-CLI version you need to edit the `workspace/Dockerfile`. The PHP-CLI is installed in the Workspace container. To change the PHP-CLI version you need to simply change the `PHP_VERSION` in te .env file as follow:
Right now you have to manually edit the `Dockerfile` or create a new one like it's done for the PHP-FPM. (consider contributing). 1 - Open the `.env`.
2 - Search for `PHP_VERSION`.
3 - Set the desired version number:
```dotenv
PHP_VERSION=7.2
```
4 - Finally rebuild the image
```bash
docker-compose build workspace
```
@ -320,7 +309,9 @@ It should be like this:
``` ```
xdebug.remote_autostart=1 xdebug.remote_autostart=1
xdebug.remote_enable=1 xdebug.remote_enable=1
xdebug.remote_connect_back=1 xdebug.remote_connect_back=0
; NOTE: The dockerhost is your vEthernet (DockerNAT) IP
xdebug.remote_host=dockerhost
``` ```
3 - Re-build the containers `docker-compose build workspace php-fpm` 3 - Re-build the containers `docker-compose build workspace php-fpm`
@ -431,15 +422,35 @@ To learn more about how Docker publishes ports, please read [this excellent post
<br>
<a name="Use-Jenkins"></a>
## Use Jenkins
1) Boot the container `docker-compose up -d jenkins`. To enter the container type `docker-compose exec jenkins bash`.
2) Go to `http://localhost:8090/` (if you didn't chanhed your default port mapping)
3) Authenticate from the web app.
- Default username is `admin`.
- Default password is `docker-compose exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword`.
(To enter container as root type `docker-compose exec --user root jenkins bash`).
4) Install some plugins.
5) Create your first Admin user, or continue as Admin.
Note: to add user go to `http://localhost:8090/securityRealm/addUser` and to restart it from the web app visit `http://localhost:8090/restart`.
You may wanna change the default security configuration, so go to `http://localhost:8090/configureSecurity/` under Authorization and choosing "Anyone can do anything" or "Project-based Matrix Authorization Strategy" or anything else.
<br> <br>
<a name="Laravel"></a> <a name="Laravel"></a>
<a name="Install-Laravel"></a> <a name="Install-Laravel"></a>
## Install Laravel from a Docker Container ## Install Laravel from a Docker Container
@ -458,18 +469,14 @@ composer create-project laravel/laravel my-cool-app "5.2.*"
For more about the Laravel installation click [here](https://laravel.com/docs/master#installing-laravel). For more about the Laravel installation click [here](https://laravel.com/docs/master#installing-laravel).
3 - Edit `docker-compose.yml` to Map the new application path: 3 - Edit `.env` to Map the new application path:
By default, Laradock assumes the Laravel application is living in the parent directory of the laradock folder. By default, Laradock assumes the Laravel application is living in the parent directory of the laradock folder.
Since the new Laravel application is in the `my-cool-app` folder, we need to replace `../:/var/www` with `../my-cool-app/:/var/www`, as follow: Since the new Laravel application is in the `my-cool-app` folder, we need to replace `../:/var/www` with `../my-cool-app/:/var/www`, as follow:
```yaml ```dotenv
application: APP_CODE_PATH_HOST=../my-cool-app/
image: tianon/true
volumes:
- ../my-cool-app/:/var/www
...
``` ```
4 - Go to that folder and start working.. 4 - Go to that folder and start working..
@ -542,7 +549,6 @@ b) add a new service container by simply copy-paste this section below PHP-FPM c
php-worker: php-worker:
build: build:
context: ./php-worker context: ./php-worker
dockerfile: "Dockerfile-${PHP_VERSION}" #Dockerfile-71 or #Dockerfile-70 available
args: args:
- INSTALL_PGSQL=${PHP_WORKER_INSTALL_PGSQL} #Optionally install PGSQL PHP drivers - INSTALL_PGSQL=${PHP_WORKER_INSTALL_PGSQL} #Optionally install PGSQL PHP drivers
volumes_from: volumes_from:
@ -750,6 +756,21 @@ docker-compose up -d adminer
<br>
<a name="Use-Portainer"></a>
## Use Portainer
1 - Run the Portainer Container (`portainer`) with the `docker-compose up` command. Example:
```bash
docker-compose up -d portainer
```
2 - Open your browser and visit the localhost on port **9010**: `http://localhost:9010`
<br> <br>
<a name="Use-pgAdmin"></a> <a name="Use-pgAdmin"></a>
@ -798,6 +819,8 @@ docker-compose up -d beanstalkd-console
2 - Open your browser and visit `http://localhost:2080/` 2 - Open your browser and visit `http://localhost:2080/`
_Note: You can customize the port on which beanstalkd console is listening by changing `BEANSTALKD_CONSOLE_HOST_PORT` in `.env`. The default value is *2080*._
3 - Add the server 3 - Add the server
- Host: beanstalkd - Host: beanstalkd
@ -822,7 +845,7 @@ docker-compose up -d elasticsearch
2 - Open your browser and visit the localhost on port **9200**: `http://localhost:9200` 2 - Open your browser and visit the localhost on port **9200**: `http://localhost:9200`
> The default username is `user` and the default password is `changeme`. > The default username is `elastic` and the default password is `changeme`.
### Install ElasticSearch Plugin ### Install ElasticSearch Plugin
@ -1002,7 +1025,7 @@ To install CodeIgniter 3 on Laradock all you have to do is the following simple
4 - Run `docker-compose restart` if the container was already running, before the step above. 4 - Run `docker-compose restart` if the container was already running, before the step above.
5 - Visit `symfony.dev` 5 - Visit `symfony.test`
<br> <br>
<a name="Misc"></a> <a name="Misc"></a>
@ -1052,6 +1075,8 @@ You can add your cron jobs to `workspace/crontab/root` after the `php artisan` l
Make sure you [change the timezone](#Change-the-timezone) if you don't want to use the default (UTC). Make sure you [change the timezone](#Change-the-timezone) if you don't want to use the default (UTC).
If you are on Windows, verify that the line endings for this file are LF only, otherwise the cron jobs will silently fail.
@ -1072,10 +1097,18 @@ To change the default forwarded port for ssh:
... ...
``` ```
Then login using:
```bash
ssh -o PasswordAuthentication=no \
-o StrictHostKeyChecking=no \
-o UserKnownHostsFile=/dev/null \
-p 2222 \
-i workspace/insecure_id_rsa \
laradock@localhost
```
To login as root, replace laradock@locahost with root@localhost.
<br> <br>
<a name="Change-the-MySQL-Version"></a> <a name="Change-the-MySQL-Version"></a>
@ -1167,21 +1200,21 @@ If you need <a href="#MySQL-access-from-host">MySQL access from your host</a>, d
<a name="Use-custom-Domain"></a> <a name="Use-custom-Domain"></a>
## Use custom Domain (instead of the Docker IP) ## Use custom Domain (instead of the Docker IP)
Assuming your custom domain is `laravel.dev` Assuming your custom domain is `laravel.test`
1 - Open your `/etc/hosts` file and map your localhost address `127.0.0.1` to the `laravel.dev` domain, by adding the following: 1 - Open your `/etc/hosts` file and map your localhost address `127.0.0.1` to the `laravel.test` domain, by adding the following:
```bash ```bash
127.0.0.1 laravel.dev 127.0.0.1 laravel.test
``` ```
2 - Open your browser and visit `{http://laravel.dev}` 2 - Open your browser and visit `{http://laravel.test}`
Optionally you can define the server name in the NGINX configuration file, like this: Optionally you can define the server name in the NGINX configuration file, like this:
```conf ```conf
server_name laravel.dev; server_name laravel.test;
``` ```
@ -1495,14 +1528,14 @@ Quick Setup giude, (we recommend you check their docs)
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: 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 ### 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. 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. 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` 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 #### 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` 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`
@ -1517,22 +1550,24 @@ Laradock comes with `sync.sh`, an optional bash script, that automates installin
DOCKER_SYNC_STRATEGY=native_osx DOCKER_SYNC_STRATEGY=native_osx
``` ```
2) Install the docker-sync gem on the host-machine: 3) set `APP_CODE_PATH_CONTAINER=/var/www` to `APP_CODE_PATH_CONTAINER=/var/www:nocopy` in the .env file
4) Install the docker-sync gem on the host-machine:
```bash ```bash
./sync.sh install ./sync.sh install
``` ```
3) Start docker-sync and the Laradock environment. 5) Start docker-sync and the Laradock environment.
Specify the services you want to run, as you would normally do with `docker-compose up` Specify the services you want to run, as you would normally do with `docker-compose up`
```bash ```bash
./sync.sh up nginx mysql ./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+). 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: 6) To stop the environment and docker-sync do:
```bash ```bash
./sync.sh down ./sync.sh down
``` ```
##### Setting up Aliases (optional) #### Setting up Aliases (optional)
You may create bash profile aliases to avoid having to remember and type these commands for everyday development. 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`: Add the following lines to your `~/.bash_profile`:
@ -1546,7 +1581,7 @@ 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`. Now from any location on your machine, you can simply run `devup`, `devbash` and `devdown`.
##### Additional Commands #### Additional Commands
Opening bash on the workspace container (to run artisan for example): Opening bash on the workspace container (to run artisan for example):
```bash ```bash
@ -1562,7 +1597,7 @@ Removing and cleaning up the files and the docker-sync container. Use only if yo
``` ```
##### Additional Notes #### 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 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. - You may inspect the `sync.sh` script to learn each of the commands and even add custom ones.
@ -1579,7 +1614,7 @@ Visit the [docker-sync documentation](https://github.com/EugenMayer/docker-sync/
<br> <br>
#### B.2: using the d4m-nfs tool ### B.2: using the d4m-nfs tool
[D4m-nfs](https://github.com/IFSight/d4m-nfs) automatically mount NFS volume instead of osxfs one. [D4m-nfs](https://github.com/IFSight/d4m-nfs) automatically mount NFS volume instead of osxfs one.
@ -1712,3 +1747,13 @@ This error sometimes happens because your Laravel application isn't running on t
## I get stuck when building nginx on `fetch http://mirrors.aliyun.com/alpine/v3.5/main/x86_64/APKINDEX.tar.gz` ## 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. 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.
## Custom composer repo packagist url and npm registry url
In China, the origin source of composer and npm is very slow. You can add `WORKSPACE_NPM_REGISTRY` and `WORKSPACE_COMPOSER_REPO_PACKAGIST` config in `.env` to use your custom source.
Example:
```bash
WORKSPACE_NPM_REGISTRY=https://registry.npm.taobao.org
WORKSPACE_COMPOSER_REPO_PACKAGIST=https://packagist.phpcomposer.com
```

View File

@ -7,7 +7,7 @@ weight: 2
## Requirements ## Requirements
- [Git](https://git-scm.com/downloads) - [Git](https://git-scm.com/downloads)
- [Docker](https://www.docker.com/products/docker/) `>= 1.12` - [Docker](https://www.docker.com/products/docker/) `>= 17.12`
@ -121,10 +121,11 @@ You can rename the config files, project folders and domains as you like, just m
4 - Add the domains to the **hosts** files. 4 - Add the domains to the **hosts** files.
``` ```
127.0.0.1 project-1.dev 127.0.0.1 project-1.test
127.0.0.1 project-2.dev 127.0.0.1 project-2.test
... ...
``` ```
If you use Chrome 63 or above for development, don't use `.dev`. [Why?](https://laravel-news.com/chrome-63-now-forces-dev-domains-https). Instead use `.localhost`, `.invalid`, `.test`, or `.example`.
> **Now jump to the [Usage](#Usage) section.** > **Now jump to the [Usage](#Usage) section.**
@ -160,8 +161,9 @@ We recommend using a Docker version which is newer than 1.13.
cp env-example .env cp env-example .env
``` ```
You can edit the `.env` file to chose which software's you want to be installed in your environment. You can always refer to the `docker-compose.yml` file to see how those variables are been used. You can edit the `.env` file to choose which software's you want to be installed in your environment. You can always refer to the `docker-compose.yml` file to see how those variables are been used.
Depending on the host's operating system you may need to change the value given to `COMPOSE_FILE`. When you are running Laradock on Mac OS the correct file separator to use is `:`. When running Laradock from a Windows environment multiple files must be separated with `;`.
2 - Build the enviroment and run it using `docker-compose` 2 - Build the enviroment and run it using `docker-compose`
@ -171,10 +173,10 @@ In this example we'll see how to run NGINX (web server) and MySQL (database engi
docker-compose up -d nginx mysql docker-compose up -d nginx mysql
``` ```
**Note**: The `workspace` and `php-fpm` will run automatically in most of the cases, so no need to specify them in the `up` command. If you couldn't find them running then you need specify them as follow: `docker-compose up -d nginx php-fpm mysql workspace`. **Note**: The web servers `nginx`, `apache`.. all depend on `php-fpm`, means if you just run, them they will automatically run the `php-fpm` for you, so no need to specify them in the `up` command. If you don't see them running then you may need run them as follow: `docker-compose up -d nginx php-fpm mysql...`.
You can select your own combination of containers form [this list](http://laradock.io/introduction/#supported-software-images). You can select your own combination of containers from [this list](http://laradock.io/introduction/#supported-software-images).
*(Please note that sometimes we forget to update the docs, so check the `docker-compose.yml` file to see an updated list of all available containers).* *(Please note that sometimes we forget to update the docs, so check the `docker-compose.yml` file to see an updated list of all available containers).*
@ -212,4 +214,4 @@ DB_HOST=mysql
*If you want to install Laravel as PHP project, see [How to Install Laravel in a Docker Container](#Install-Laravel).* *If you want to install Laravel as PHP project, see [How to Install Laravel in a Docker Container](#Install-Laravel).*
<br> <br>
5 - Open your browser and visit your localhost address `http://localhost/`. If you followed the multiple projects setup, you can visit `http://project-1.dev/` and `http://project-2.dev/`. 5 - Open your browser and visit your localhost address `http://localhost/`. If you followed the multiple projects setup, you can visit `http://project-1.test/` and `http://project-2.test/`.

View File

@ -358,7 +358,7 @@ Here are a few things I use to clean things up.
``` ```
dclean() { dclean() {
processes=`docker ps -q -f status=exited` processes=`docker ps -q -f status=exited`
if [ -n "$processes" ]; thend if [ -n "$processes" ]; then
docker rm $processes docker rm $processes
fi fi

View File

@ -35,7 +35,7 @@ cp env-example .env
3 - Run your containers: 3 - Run your containers:
```shell ```shell
docker-compose up -d nginx mysql redis beanstalkd docker-compose up -d nginx mysql phpmyadmin redis workspace
``` ```
4 - Open your project's `.env` file and set the following: 4 - Open your project's `.env` file and set the following:
@ -58,7 +58,7 @@ That's it! enjoy :)
<a name="features"></a> <a name="features"></a>
## Features ## Features
- Easy switch between PHP versions: 7.1, 7.0, 5.6... - Easy switch between PHP versions: 7.2, 7.1, 5.6...
- Choose your favorite database engine: MySQL, Postgres, MariaDB... - Choose your favorite database engine: MySQL, Postgres, MariaDB...
- Run your own combination of software: Memcached, HHVM, Beanstalkd... - Run your own combination of software: Memcached, HHVM, Beanstalkd...
- Every software runs on a separate container: PHP-FPM, NGINX, PHP-CLI... - Every software runs on a separate container: PHP-FPM, NGINX, PHP-CLI...
@ -97,7 +97,7 @@ Beanstalkd - RabbitMQ - PHP Worker
- **Queueing Management:** - **Queueing Management:**
Beanstalkd Console - RabbitMQ Console Beanstalkd Console - RabbitMQ Console
- **Random Tools:** - **Random Tools:**
HAProxy - Certbot - Blackfire - Selenium - Jenkins - ElasticSearch - Kibana - Grafana - Mailhog - MailDev - Minio - Varnish - Swoole - Laravel Echo... HAProxy - Certbot - Blackfire - Selenium - Jenkins - ElasticSearch - Kibana - Grafana - Mailhog - MailDev - Minio - Varnish - Swoole - Portainer - Laravel Echo...
Laradock introduces the **Workspace** Image, as a development environment. 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. 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.
@ -118,9 +118,24 @@ If you can't find your Software in the list, build it yourself and submit it. Co
## Sponsors ## Sponsors
<a target='_blank' rel='nofollow' href='https://app.codesponsor.io/link/JHiroABWV9N5QKgcFuTA2NxX/laradock/laradock'>
<img alt='Sponsor' width='888' height='68' src='https://app.codesponsor.io/embed/JHiroABWV9N5QKgcFuTA2NxX/laradock/laradock.svg' />
</a>
Support this project by becoming a sponsor.
Your logo will show up on the [github repository](https://github.com/laradock/laradock/) index page and the [documentation](http://laradock.io/) main page, with a link to your website. [[Become a sponsor](https://opencollective.com/laradock#sponsor)]
<a href="https://opencollective.com/laradock/sponsor/0/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/0/avatar.svg"></a>
<a href="https://opencollective.com/laradock/sponsor/1/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/1/avatar.svg"></a>
<a href="https://opencollective.com/laradock/sponsor/2/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/2/avatar.svg"></a>
<a href="https://opencollective.com/laradock/sponsor/3/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/3/avatar.svg"></a>
<a href="https://opencollective.com/laradock/sponsor/4/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/4/avatar.svg"></a>
<a href="https://opencollective.com/laradock/sponsor/5/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/5/avatar.svg"></a>
<a href="https://opencollective.com/laradock/sponsor/6/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/6/avatar.svg"></a>
<a href="https://opencollective.com/laradock/sponsor/7/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/7/avatar.svg"></a>
<a href="https://opencollective.com/laradock/sponsor/8/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/8/avatar.svg"></a>
<a href="https://opencollective.com/laradock/sponsor/9/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/9/avatar.svg"></a>
@ -190,6 +205,10 @@ Donate directly via [Paypal](https://www.paypal.me/mzalt)
[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.me/mzalt) [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.me/mzalt)
or become a backer on [Open Collective](https://opencollective.com/laradock#backer)
<a href="https://opencollective.com/laradock#backers" target="_blank"><img src="https://opencollective.com/laradock/backers.svg?width=890"></a>
or show your support via [Beerpay](https://beerpay.io/laradock/laradock) or show your support via [Beerpay](https://beerpay.io/laradock/laradock)
[![Beerpay](https://beerpay.io/laradock/laradock/badge.svg?style=flat)](https://beerpay.io/laradock/laradock) [![Beerpay](https://beerpay.io/laradock/laradock/badge.svg?style=flat)](https://beerpay.io/laradock/laradock)

View File

@ -14,5 +14,6 @@ These Docker Compose projects have piqued our interest:
* [MageDock](https://github.com/ojhaujjwal/magedock) by [Ujjwal Ojha](https://github.com/ojhaujjwal) * [MageDock](https://github.com/ojhaujjwal/magedock) by [Ujjwal Ojha](https://github.com/ojhaujjwal)
* [RubyDev-Dock](https://github.com/scudelletti/rubydev-dock) by [Diogo Scudelletti](https://github.com/scudelletti) * [RubyDev-Dock](https://github.com/scudelletti/rubydev-dock) by [Diogo Scudelletti](https://github.com/scudelletti)
* [NoDock](https://github.com/Osedea/nodock) by [Osedea](https://github.com/Osedea) * [NoDock](https://github.com/Osedea/nodock) by [Osedea](https://github.com/Osedea)
* [Dockery](https://github.com/taufek/dockery) by [Taufek](https://github.com/Taufek)
If you want your project listed here, please open an issue. If you want your project listed here, please open an issue.

View File

@ -21,7 +21,6 @@
<div class="button button-github" role="button" aria-label="GitHub"> <div class="button button-github" role="button" aria-label="GitHub">
<a style="padding: 0px; font-size:40px" href="https://github.com/{{ . }}" title="@{{ . }} on GitHub" target="_blank" class="toggle-button icon icon-github"></a> <a style="padding: 0px; font-size:40px" href="https://github.com/{{ . }}" title="@{{ . }} on GitHub" target="_blank" class="toggle-button icon icon-github"></a>
</div> </div>
<p style="font-size: 18px; padding: 8px">Github</p>
{{ end }} {{ end }}
<!-- TODO: disabled until Hugo supports the generation of a content index natively <!-- TODO: disabled until Hugo supports the generation of a content index natively

View File

@ -1,6 +1,6 @@
The MIT License (MIT) The MIT License (MIT)
Copyright 2016 <Mahmoud Zalt> Copyright 2018 <Mahmoud Zalt>
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal
@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE. THE SOFTWARE.

View File

@ -3,7 +3,7 @@ FROM adminer:4.3.0
# Version 4.3.1 contains PostgreSQL login errors. See docs. # Version 4.3.1 contains PostgreSQL login errors. See docs.
# See https://sourceforge.net/p/adminer/bugs-and-features/548/ # See https://sourceforge.net/p/adminer/bugs-and-features/548/
MAINTAINER Patrick Artounian <partounian@gmail.com> LABEL maintainer="Patrick Artounian <partounian@gmail.com>"
# Add volume for sessions to allow session persistence # Add volume for sessions to allow session persistence
VOLUME /sessions VOLUME /sessions

View File

@ -1,7 +1,7 @@
FROM aerospike:latest FROM aerospike:latest
MAINTAINER Luciano Jr <luciano@lucianojr.com.br> LABEL maintainer="Luciano Jr <luciano@lucianojr.com.br>"
RUN rm /etc/aerospike/aerospike.conf RUN rm /etc/aerospike/aerospike.conf
ADD aerospike.conf /etc/aerospike/aerospike.conf COPY aerospike.conf /etc/aerospike/aerospike.conf

View File

@ -1,14 +1,15 @@
FROM webdevops/apache:ubuntu-16.04 FROM webdevops/apache:ubuntu-16.04
MAINTAINER Eric Pfeiffer <computerfr33k@users.noreply.github.com> LABEL maintainer="Eric Pfeiffer <computerfr33k@users.noreply.github.com>"
ARG PHP_UPSTREAM_CONTAINER=php-fpm ARG PHP_UPSTREAM_CONTAINER=php-fpm
ARG PHP_UPSTREAM_PORT=9000 ARG PHP_UPSTREAM_PORT=9000
ARG PHP_UPSTREAM_TIMEOUT=60 ARG PHP_UPSTREAM_TIMEOUT=60
ARG DOCUMENT_ROOT=/var/www/
ENV WEB_PHP_SOCKET=${PHP_UPSTREAM_CONTAINER}:${PHP_UPSTREAM_PORT} ENV WEB_PHP_SOCKET=${PHP_UPSTREAM_CONTAINER}:${PHP_UPSTREAM_PORT}
ENV WEB_DOCUMENT_ROOT=/var/www/ ENV WEB_DOCUMENT_ROOT=${DOCUMENT_ROOT}
ENV WEB_PHP_TIMEOUT=${PHP_UPSTREAM_TIMEOUT} ENV WEB_PHP_TIMEOUT=${PHP_UPSTREAM_TIMEOUT}

View File

@ -1,5 +1,5 @@
<VirtualHost *:80> <VirtualHost *:80>
ServerName laradock.dev ServerName laradock.test
DocumentRoot /var/www/ DocumentRoot /var/www/
Options Indexes FollowSymLinks Options Indexes FollowSymLinks

View File

@ -1,5 +1,5 @@
<VirtualHost *:80> <VirtualHost *:80>
ServerName sample.dev ServerName sample.test
DocumentRoot /var/www/sample/public/ DocumentRoot /var/www/sample/public/
Options Indexes FollowSymLinks Options Indexes FollowSymLinks

View File

@ -1,6 +1,6 @@
FROM python:slim FROM python:slim
MAINTAINER melchabcede@gmail.com LABEL maintainer="melchabcede@gmail.com"
RUN pip install --upgrade --no-cache-dir awsebcli RUN pip install --upgrade --no-cache-dir awsebcli
RUN apt-get -yqq update && apt-get -yqq install git-all RUN apt-get -yqq update && apt-get -yqq install git-all

View File

@ -1,6 +1,6 @@
FROM php:latest FROM php:latest
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me> LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
RUN apt-get update && apt-get install -y curl RUN apt-get update && apt-get install -y curl

View File

@ -1,6 +1,6 @@
FROM phusion/baseimage:latest FROM phusion/baseimage:latest
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me> LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND noninteractive
ENV PATH /usr/local/rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin ENV PATH /usr/local/rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
@ -13,4 +13,4 @@ VOLUME /var/lib/beanstalkd/data
EXPOSE 11300 EXPOSE 11300
CMD ["/usr/bin/beanstalkd"] CMD ["/usr/bin/beanstalkd"]

View File

@ -25,6 +25,22 @@
# dns cloudflare # dns cloudflare
#} #}
} }
laradock.demo:80 {
laradock1.demo:80 {
root /var/www/public root /var/www/public
# Create a Webhook in git.
#git {
#repo https://github.com/xxx/xxx
# path /home/xxx
# #interval 60
# hook webhook laradock
# hook_type generic
#}
}
laradock2.demo:80 {
# Create a Proxy and cors.
#proxy domain.com
#cors
} }

View File

@ -1,20 +1,17 @@
FROM golang FROM zuohuadong/caddy:alpine
MAINTAINER Huadong Zuo <admin@zuohuadong.cn> LABEL maintainer="Huadong Zuo <admin@zuohuadong.cn>"
ARG plugins="git" ARG plugins="cors"
## If you come frome china, please ues it. ## ARG plugins="cors cgi cloudflare azure linode"
# RUN echo "172.217.6.127 golang.org" >> /etc/hosts
RUN go get github.com/abiosoft/caddyplug/caddyplug \ RUN caddyplug install ${plugins}
&& caddyplug install-caddy \
&& caddyplug install git
RUN caddy --version
EXPOSE 80 443 2015 EXPOSE 80 443 2015
WORKDIR /var/www/public WORKDIR /var/www/public
CMD ["/usr/bin/caddy", "-conf", "/etc/Caddyfile"] CMD ["/usr/bin/caddy", "-conf", "/etc/Caddyfile","-agree"]

View File

@ -1,6 +1,6 @@
FROM phusion/baseimage:latest FROM phusion/baseimage:latest
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me> LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
COPY run-certbot.sh /root/certbot/run-certbot.sh COPY run-certbot.sh /root/certbot/run-certbot.sh

View File

@ -1,16 +1,7 @@
version: '2' version: '3'
services: services:
### Applications Code Container #############################
applications:
image: tianon/true
volumes:
- applications-sync:/var/www:nocopy # nocopy is required
### Volumes Setup #############################################
volumes: volumes:
applications-sync: applications-sync:
external: external:

View File

@ -1,39 +1,78 @@
version: '2' version: '3'
networks:
frontend:
driver: ${NETWORKS_DRIVER}
backend:
driver: ${NETWORKS_DRIVER}
volumes:
mysql:
driver: ${VOLUMES_DRIVER}
percona:
driver: ${VOLUMES_DRIVER}
mssql:
driver: ${VOLUMES_DRIVER}
postgres:
driver: ${VOLUMES_DRIVER}
memcached:
driver: ${VOLUMES_DRIVER}
redis:
driver: ${VOLUMES_DRIVER}
neo4j:
driver: ${VOLUMES_DRIVER}
mariadb:
driver: ${VOLUMES_DRIVER}
mongo:
driver: ${VOLUMES_DRIVER}
minio:
driver: ${VOLUMES_DRIVER}
rethinkdb:
driver: ${VOLUMES_DRIVER}
phpmyadmin:
driver: ${VOLUMES_DRIVER}
adminer:
driver: ${VOLUMES_DRIVER}
aerospike:
driver: ${VOLUMES_DRIVER}
caddy:
driver: ${VOLUMES_DRIVER}
elasticsearch:
driver: ${VOLUMES_DRIVER}
services: services:
### Applications Code Container ############################# ### Workspace Utilities ##################################
applications:
image: tianon/true
volumes:
- ${APPLICATION}:/var/www
### Workspace Utilities Container ###########################
workspace: workspace:
build: build:
context: ./workspace context: ./workspace
args: args:
- PHP_VERSION=${PHP_VERSION}
- INSTALL_SUBVERSION=${WORKSPACE_INSTALL_SUBVERSION}
- INSTALL_XDEBUG=${WORKSPACE_INSTALL_XDEBUG} - INSTALL_XDEBUG=${WORKSPACE_INSTALL_XDEBUG}
- INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE} - INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE}
- INSTALL_SOAP=${WORKSPACE_INSTALL_SOAP} - INSTALL_SOAP=${WORKSPACE_INSTALL_SOAP}
- INSTALL_LDAP=${WORKSPACE_INSTALL_LDAP} - INSTALL_LDAP=${WORKSPACE_INSTALL_LDAP}
- INSTALL_IMAP=${WORKSPACE_INSTALL_IMAP} - INSTALL_IMAP=${WORKSPACE_INSTALL_IMAP}
- INSTALL_MONGO=${WORKSPACE_INSTALL_MONGO} - INSTALL_MONGO=${WORKSPACE_INSTALL_MONGO}
- INSTALL_AMQP=${WORKSPACE_INSTALL_AMQP}
- INSTALL_PHPREDIS=${WORKSPACE_INSTALL_PHPREDIS} - INSTALL_PHPREDIS=${WORKSPACE_INSTALL_PHPREDIS}
- INSTALL_MSSQL=${WORKSPACE_INSTALL_MSSQL} - INSTALL_MSSQL=${WORKSPACE_INSTALL_MSSQL}
- INSTALL_NODE=${WORKSPACE_INSTALL_NODE} - INSTALL_NODE=${WORKSPACE_INSTALL_NODE}
- NPM_REGISTRY=${WORKSPACE_NPM_REGISTRY}
- INSTALL_YARN=${WORKSPACE_INSTALL_YARN} - INSTALL_YARN=${WORKSPACE_INSTALL_YARN}
- INSTALL_DRUSH=${WORKSPACE_INSTALL_DRUSH} - INSTALL_DRUSH=${WORKSPACE_INSTALL_DRUSH}
- INSTALL_DRUPAL_CONSOLE=${WORKSPACE_INSTALL_DRUPAL_CONSOLE} - INSTALL_DRUPAL_CONSOLE=${WORKSPACE_INSTALL_DRUPAL_CONSOLE}
- INSTALL_AEROSPIKE=${WORKSPACE_INSTALL_AEROSPIKE} - INSTALL_AEROSPIKE=${WORKSPACE_INSTALL_AEROSPIKE}
- AEROSPIKE_PHP_REPOSITORY=${AEROSPIKE_PHP_REPOSITORY}
- INSTALL_V8JS=${WORKSPACE_INSTALL_V8JS} - INSTALL_V8JS=${WORKSPACE_INSTALL_V8JS}
- COMPOSER_GLOBAL_INSTALL=${WORKSPACE_COMPOSER_GLOBAL_INSTALL} - COMPOSER_GLOBAL_INSTALL=${WORKSPACE_COMPOSER_GLOBAL_INSTALL}
- COMPOSER_REPO_PACKAGIST=${WORKSPACE_COMPOSER_REPO_PACKAGIST}
- INSTALL_WORKSPACE_SSH=${WORKSPACE_INSTALL_WORKSPACE_SSH} - INSTALL_WORKSPACE_SSH=${WORKSPACE_INSTALL_WORKSPACE_SSH}
- INSTALL_LARAVEL_ENVOY=${WORKSPACE_INSTALL_LARAVEL_ENVOY} - INSTALL_LARAVEL_ENVOY=${WORKSPACE_INSTALL_LARAVEL_ENVOY}
- INSTALL_LARAVEL_INSTALLER=${WORKSPACE_INSTALL_LARAVEL_INSTALLER} - INSTALL_LARAVEL_INSTALLER=${WORKSPACE_INSTALL_LARAVEL_INSTALLER}
- INSTALL_DEPLOYER=${WORKSPACE_INSTALL_DEPLOYER} - INSTALL_DEPLOYER=${WORKSPACE_INSTALL_DEPLOYER}
- INSTALL_PRESTISSIMO=${WORKSPACE_INSTALL_PRESTISSIMO}
- INSTALL_LINUXBREW=${WORKSPACE_INSTALL_LINUXBREW} - INSTALL_LINUXBREW=${WORKSPACE_INSTALL_LINUXBREW}
- INSTALL_MC=${WORKSPACE_INSTALL_MC} - INSTALL_MC=${WORKSPACE_INSTALL_MC}
- INSTALL_SYMFONY=${WORKSPACE_INSTALL_SYMFONY} - INSTALL_SYMFONY=${WORKSPACE_INSTALL_SYMFONY}
@ -43,44 +82,51 @@ services:
- INSTALL_TERRAFORM=${WORKSPACE_INSTALL_TERRAFORM} - INSTALL_TERRAFORM=${WORKSPACE_INSTALL_TERRAFORM}
- INSTALL_DUSK_DEPS=${WORKSPACE_INSTALL_DUSK_DEPS} - INSTALL_DUSK_DEPS=${WORKSPACE_INSTALL_DUSK_DEPS}
- INSTALL_PG_CLIENT=${WORKSPACE_INSTALL_PG_CLIENT} - INSTALL_PG_CLIENT=${WORKSPACE_INSTALL_PG_CLIENT}
- INSTALL_SWOOLE=${WORKSPACE_INSTALL_SWOOLE}
- PUID=${WORKSPACE_PUID} - PUID=${WORKSPACE_PUID}
- PGID=${WORKSPACE_PGID} - PGID=${WORKSPACE_PGID}
- CHROME_DRIVER_VERSION=${WORKSPACE_CHROME_DRIVER_VERSION} - CHROME_DRIVER_VERSION=${WORKSPACE_CHROME_DRIVER_VERSION}
- NODE_VERSION=${WORKSPACE_NODE_VERSION} - NODE_VERSION=${WORKSPACE_NODE_VERSION}
- YARN_VERSION=${WORKSPACE_YARN_VERSION} - YARN_VERSION=${WORKSPACE_YARN_VERSION}
- DRUSH_VERSION=${WORKSPACE_DRUSH_VERSION}
- TZ=${WORKSPACE_TIMEZONE} - TZ=${WORKSPACE_TIMEZONE}
- BLACKFIRE_CLIENT_ID=${BLACKFIRE_CLIENT_ID} - BLACKFIRE_CLIENT_ID=${BLACKFIRE_CLIENT_ID}
- BLACKFIRE_CLIENT_TOKEN=${BLACKFIRE_CLIENT_TOKEN} - BLACKFIRE_CLIENT_TOKEN=${BLACKFIRE_CLIENT_TOKEN}
dockerfile: "Dockerfile-${PHP_VERSION}" volumes:
volumes_from: - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
- applications
extra_hosts: extra_hosts:
- "dockerhost:${DOCKER_HOST_IP}" - "dockerhost:${DOCKER_HOST_IP}"
ports: ports:
- "${WORKSPACE_SSH_PORT}:22" - "${WORKSPACE_SSH_PORT}:22"
tty: true tty: true
environment:
- PHP_IDE_CONFIG=${PHP_IDE_CONFIG}
networks: networks:
- frontend - frontend
- backend - backend
### PHP-FPM Container ####################################### ### PHP-FPM ##############################################
php-fpm: php-fpm:
build: build:
context: ./php-fpm context: ./php-fpm
args: args:
- PHP_VERSION=${PHP_VERSION}
- INSTALL_XDEBUG=${PHP_FPM_INSTALL_XDEBUG} - INSTALL_XDEBUG=${PHP_FPM_INSTALL_XDEBUG}
- INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE} - INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE}
- INSTALL_SOAP=${PHP_FPM_INSTALL_SOAP} - INSTALL_SOAP=${PHP_FPM_INSTALL_SOAP}
- INSTALL_IMAP=${PHP_FPM_INSTALL_IMAP}
- INSTALL_MONGO=${PHP_FPM_INSTALL_MONGO} - INSTALL_MONGO=${PHP_FPM_INSTALL_MONGO}
- INSTALL_AMQP=${PHP_FPM_INSTALL_AMQP}
- INSTALL_MSSQL=${PHP_FPM_INSTALL_MSSQL} - INSTALL_MSSQL=${PHP_FPM_INSTALL_MSSQL}
- INSTALL_ZIP_ARCHIVE=${PHP_FPM_INSTALL_ZIP_ARCHIVE} - INSTALL_ZIP_ARCHIVE=${PHP_FPM_INSTALL_ZIP_ARCHIVE}
- INSTALL_BCMATH=${PHP_FPM_INSTALL_BCMATH} - INSTALL_BCMATH=${PHP_FPM_INSTALL_BCMATH}
- INSTALL_GMP=${PHP_FPM_INSTALL_GMP}
- INSTALL_PHPREDIS=${PHP_FPM_INSTALL_PHPREDIS} - INSTALL_PHPREDIS=${PHP_FPM_INSTALL_PHPREDIS}
- INSTALL_MEMCACHED=${PHP_FPM_INSTALL_MEMCACHED} - INSTALL_MEMCACHED=${PHP_FPM_INSTALL_MEMCACHED}
- INSTALL_OPCACHE=${PHP_FPM_INSTALL_OPCACHE} - INSTALL_OPCACHE=${PHP_FPM_INSTALL_OPCACHE}
- INSTALL_EXIF=${PHP_FPM_INSTALL_EXIF} - INSTALL_EXIF=${PHP_FPM_INSTALL_EXIF}
- INSTALL_AEROSPIKE=${PHP_FPM_INSTALL_AEROSPIKE} - INSTALL_AEROSPIKE=${PHP_FPM_INSTALL_AEROSPIKE}
- AEROSPIKE_PHP_REPOSITORY=${AEROSPIKE_PHP_REPOSITORY}
- INSTALL_MYSQLI=${PHP_FPM_INSTALL_MYSQLI} - INSTALL_MYSQLI=${PHP_FPM_INSTALL_MYSQLI}
- INSTALL_PGSQL=${PHP_FPM_INSTALL_PGSQL} - INSTALL_PGSQL=${PHP_FPM_INSTALL_PGSQL}
- INSTALL_PG_CLIENT=${PHP_FPM_INSTALL_PG_CLIENT} - INSTALL_PG_CLIENT=${PHP_FPM_INSTALL_PG_CLIENT}
@ -91,32 +137,30 @@ services:
- INSTALL_SWOOLE=${PHP_FPM_INSTALL_SWOOLE} - INSTALL_SWOOLE=${PHP_FPM_INSTALL_SWOOLE}
- INSTALL_IMAGE_OPTIMIZERS=${PHP_FPM_INSTALL_IMAGE_OPTIMIZERS} - INSTALL_IMAGE_OPTIMIZERS=${PHP_FPM_INSTALL_IMAGE_OPTIMIZERS}
- INSTALL_IMAGEMAGICK=${PHP_FPM_INSTALL_IMAGEMAGICK} - INSTALL_IMAGEMAGICK=${PHP_FPM_INSTALL_IMAGEMAGICK}
dockerfile: "Dockerfile-${PHP_VERSION}"
volumes_from:
- applications
volumes: volumes:
- ./php-fpm/php${PHP_VERSION}.ini:/usr/local/etc/php/php.ini - ./php-fpm/php${PHP_VERSION}.ini:/usr/local/etc/php/php.ini
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
expose: expose:
- "9000" - "9000"
depends_on:
- workspace
extra_hosts: extra_hosts:
- "dockerhost:${DOCKER_HOST_IP}" - "dockerhost:${DOCKER_HOST_IP}"
environment: environment:
- PHP_IDE_CONFIG=${PHP_IDE_CONFIG} - PHP_IDE_CONFIG=${PHP_IDE_CONFIG}
depends_on:
- workspace
networks: networks:
- backend - backend
### PHP Worker Container ##################################### ### PHP Worker ############################################
php-worker: php-worker:
build: build:
context: ./php-worker context: ./php-worker
dockerfile: "Dockerfile-${PHP_VERSION}"
args: args:
- PHP_VERSION=${PHP_VERSION}
- INSTALL_PGSQL=${PHP_WORKER_INSTALL_PGSQL} - INSTALL_PGSQL=${PHP_WORKER_INSTALL_PGSQL}
volumes_from: volumes:
- applications - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
- ./php-worker/supervisord.d:/etc/supervisord.d
depends_on: depends_on:
- workspace - workspace
extra_hosts: extra_hosts:
@ -124,17 +168,15 @@ services:
networks: networks:
- backend - backend
### NGINX Server Container ################################## ### NGINX Server #########################################
nginx: nginx:
build: build:
context: ./nginx context: ./nginx
args: args:
- PHP_UPSTREAM_CONTAINER=${NGINX_PHP_UPSTREAM_CONTAINER} - PHP_UPSTREAM_CONTAINER=${NGINX_PHP_UPSTREAM_CONTAINER}
- PHP_UPSTREAM_PORT=${NGINX_PHP_UPSTREAM_PORT} - PHP_UPSTREAM_PORT=${NGINX_PHP_UPSTREAM_PORT}
volumes_from:
- applications
volumes: volumes:
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
- ${NGINX_HOST_LOG_PATH}:/var/log/nginx - ${NGINX_HOST_LOG_PATH}:/var/log/nginx
- ${NGINX_SITES_PATH}:/etc/nginx/sites-available - ${NGINX_SITES_PATH}:/etc/nginx/sites-available
ports: ports:
@ -146,8 +188,7 @@ services:
- frontend - frontend
- backend - backend
### Blackfire Container ################################# ### Blackfire ########################################
blackfire: blackfire:
image: blackfire/blackfire image: blackfire/blackfire
environment: environment:
@ -158,8 +199,7 @@ services:
networks: networks:
- backend - backend
### Apache Server Container ################################# ### Apache Server ########################################
apache2: apache2:
build: build:
context: ./apache2 context: ./apache2
@ -167,9 +207,9 @@ services:
- PHP_UPSTREAM_CONTAINER=${APACHE_PHP_UPSTREAM_CONTAINER} - PHP_UPSTREAM_CONTAINER=${APACHE_PHP_UPSTREAM_CONTAINER}
- PHP_UPSTREAM_PORT=${APACHE_PHP_UPSTREAM_PORT} - PHP_UPSTREAM_PORT=${APACHE_PHP_UPSTREAM_PORT}
- PHP_UPSTREAM_TIMEOUT=${APACHE_PHP_UPSTREAM_TIMEOUT} - PHP_UPSTREAM_TIMEOUT=${APACHE_PHP_UPSTREAM_TIMEOUT}
volumes_from: - DOCUMENT_ROOT=${APACHE_DOCUMENT_ROOT}
- applications
volumes: volumes:
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
- ${APACHE_HOST_LOG_PATH}:/var/log/apache2 - ${APACHE_HOST_LOG_PATH}:/var/log/apache2
- ${APACHE_SITES_PATH}:/etc/apache2/sites-available - ${APACHE_SITES_PATH}:/etc/apache2/sites-available
ports: ports:
@ -181,12 +221,11 @@ services:
- frontend - frontend
- backend - backend
### HHVM Container ########################################## ### HHVM #################################################
hhvm: hhvm:
build: ./hhvm build: ./hhvm
volumes_from: volumes:
- applications - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
expose: expose:
- "9000" - "9000"
depends_on: depends_on:
@ -195,12 +234,12 @@ services:
- frontend - frontend
- backend - backend
### Minio Container ######################################### ### Minio ################################################
minio: minio:
build: ./minio build: ./minio
volumes: volumes:
- minio:/export - ${DATA_PATH_HOST}/minio/data:/export
- ${DATA_PATH_HOST}/minio/config:/root/.minio
ports: ports:
- "${MINIO_PORT}:9000" - "${MINIO_PORT}:9000"
environment: environment:
@ -208,9 +247,9 @@ services:
- MINIO_SECRET_KEY=secretkey - MINIO_SECRET_KEY=secretkey
networks: networks:
- frontend - frontend
- backend
### MySQL Container ######################################### ### MySQL ################################################
mysql: mysql:
build: build:
context: ./mysql context: ./mysql
@ -223,15 +262,14 @@ services:
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- TZ=${WORKSPACE_TIMEZONE} - TZ=${WORKSPACE_TIMEZONE}
volumes: volumes:
- ${DATA_SAVE_PATH}/mysql:/var/lib/mysql - ${DATA_PATH_HOST}/mysql:/var/lib/mysql
- ${MYSQL_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d - ${MYSQL_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
ports: ports:
- "${MYSQL_PORT}:3306" - "${MYSQL_PORT}:3306"
networks: networks:
- backend - backend
### Percona Container ######################################### ### Percona ################################################
percona: percona:
build: build:
context: ./percona context: ./percona
@ -241,15 +279,14 @@ services:
- MYSQL_PASSWORD=${PERCONA_PASSWORD} - MYSQL_PASSWORD=${PERCONA_PASSWORD}
- MYSQL_ROOT_PASSWORD=${PERCONA_ROOT_PASSWORD} - MYSQL_ROOT_PASSWORD=${PERCONA_ROOT_PASSWORD}
volumes: volumes:
- ${DATA_SAVE_PATH}/percona:/var/lib/mysql - ${DATA_PATH_HOST}/percona:/var/lib/mysql
- ${PERCONA_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d - ${PERCONA_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
ports: ports:
- "${PERCONA_PORT}:3306" - "${PERCONA_PORT}:3306"
networks: networks:
- backend - backend
### MSSQL Container ######################################### ### MSSQL ################################################
mssql: mssql:
build: build:
context: ./mssql context: ./mssql
@ -258,18 +295,17 @@ services:
- SA_PASSWORD=${MSSQL_PASSWORD} - SA_PASSWORD=${MSSQL_PASSWORD}
- ACCEPT_EULA=Y - ACCEPT_EULA=Y
volumes: volumes:
- ${DATA_SAVE_PATH}/mssql:/var/opt/mssql - ${DATA_PATH_HOST}/mssql:/var/opt/mssql
ports: ports:
- "${MSSQL_PORT}:1433" - "${MSSQL_PORT}:1433"
networks: networks:
- backend - backend
### MariaDB Container ####################################### ### MariaDB ##############################################
mariadb: mariadb:
build: ./mariadb build: ./mariadb
volumes: volumes:
- ${DATA_SAVE_PATH}/mariadb:/var/lib/mysql - ${DATA_PATH_HOST}/mariadb:/var/lib/mysql
- ${MARIADB_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d - ${MARIADB_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
ports: ports:
- "${MARIADB_PORT}:3306" - "${MARIADB_PORT}:3306"
@ -281,12 +317,11 @@ services:
networks: networks:
- backend - backend
### PostgreSQL Container #################################### ### PostgreSQL ###########################################
postgres: postgres:
build: ./postgres build: ./postgres
volumes: volumes:
- ${DATA_SAVE_PATH}/postgres:/var/lib/postgresql/data - ${DATA_PATH_HOST}/postgres:/var/lib/postgresql/data
ports: ports:
- "${POSTGRES_PORT}:5432" - "${POSTGRES_PORT}:5432"
environment: environment:
@ -296,12 +331,11 @@ services:
networks: networks:
- backend - backend
### PostgreSQL PostGis Container ############################ ### PostgreSQL PostGis ###################################
postgres-postgis: postgres-postgis:
build: ./postgres-postgis build: ./postgres-postgis
volumes: volumes:
- ${DATA_SAVE_PATH}/postgres:/var/lib/postgresql/data - ${DATA_PATH_HOST}/postgres:/var/lib/postgresql/data
ports: ports:
- "${POSTGRES_PORT}:5432" - "${POSTGRES_PORT}:5432"
environment: environment:
@ -311,8 +345,7 @@ services:
networks: networks:
- backend - backend
### Neo4j Container ######################################### ### Neo4j ################################################
neo4j: neo4j:
build: ./neo4j build: ./neo4j
ports: ports:
@ -321,51 +354,46 @@ services:
environment: environment:
- NEO4J_AUTH=default:secret - NEO4J_AUTH=default:secret
volumes: volumes:
- ${DATA_SAVE_PATH}/neo4j:/var/lib/neo4j/data - ${DATA_PATH_HOST}/neo4j:/var/lib/neo4j/data
networks: networks:
- backend - backend
### MongoDB Container ####################################### ### MongoDB ##############################################
mongo: mongo:
build: ./mongo build: ./mongo
ports: ports:
- "${MONGODB_PORT}:27017" - "${MONGODB_PORT}:27017"
volumes: volumes:
- ${DATA_SAVE_PATH}/mongo:/data/db - ${DATA_PATH_HOST}/mongo:/data/db
networks: networks:
- backend - backend
### RethinkDB Container ####################################### ### RethinkDB ##############################################
rethinkdb: rethinkdb:
build: ./rethinkdb build: ./rethinkdb
ports: ports:
- "${RETHINKDB_PORT}:8080" - "${RETHINKDB_PORT}:8080"
volumes: volumes:
- ${DATA_SAVE_PATH}/rethinkdb:/data/rethinkdb_data - ${DATA_PATH_HOST}/rethinkdb:/data/rethinkdb_data
networks: networks:
- backend - backend
### Redis Container ######################################### ### Redis ################################################
redis: redis:
build: ./redis build: ./redis
volumes: volumes:
- ${DATA_SAVE_PATH}/redis:/data - ${DATA_PATH_HOST}/redis:/data
ports: ports:
- "${REDIS_PORT}:6379" - "${REDIS_PORT}:6379"
networks: networks:
- backend - backend
### Aerospike c Container ################################### ### Aerospike ##########################################
aerospike: aerospike:
build: ./aerospike build: ./aerospike
volumes_from:
- workspace
volumes: volumes:
- ${DATA_SAVE_PATH}/aerospike:/opt/aerospike/data - workspace
- ${DATA_PATH_HOST}/aerospike:/opt/aerospike/data
ports: ports:
- "${AEROSPIKE_SERVICE_PORT}:3000" - "${AEROSPIKE_SERVICE_PORT}:3000"
- "${AEROSPIKE_FABRIC_PORT}:3001" - "${AEROSPIKE_FABRIC_PORT}:3001"
@ -374,12 +402,11 @@ services:
networks: networks:
- backend - backend
### Memcached Container ##################################### ### Memcached ############################################
memcached: memcached:
build: ./memcached build: ./memcached
volumes: volumes:
- ${DATA_SAVE_PATH}/memcached:/var/lib/memcached - ${DATA_PATH_HOST}/memcached:/var/lib/memcached
ports: ports:
- "${MEMCACHED_HOST_PORT}:11211" - "${MEMCACHED_HOST_PORT}:11211"
depends_on: depends_on:
@ -387,8 +414,7 @@ services:
networks: networks:
- backend - backend
### Beanstalkd Container #################################### ### Beanstalkd ###########################################
beanstalkd: beanstalkd:
build: ./beanstalkd build: ./beanstalkd
ports: ports:
@ -399,8 +425,7 @@ services:
networks: networks:
- backend - backend
### RabbitMQ Container ###################################### ### RabbitMQ #############################################
rabbitmq: rabbitmq:
build: ./rabbitmq build: ./rabbitmq
ports: ports:
@ -416,27 +441,24 @@ services:
networks: networks:
- backend - backend
### Beanstalkd Console Container ############################ ### Beanstalkd Console ###################################
beanstalkd-console: beanstalkd-console:
build: ./beanstalkd-console build: ./beanstalkd-console
ports: ports:
- "2080:2080" - "${BEANSTALKD_CONSOLE_HOST_PORT}:2080"
depends_on: depends_on:
- beanstalkd - beanstalkd
networks: networks:
- backend - backend
### Caddy Server Container ################################## ### Caddy Server #########################################
caddy: caddy:
build: ./caddy build: ./caddy
volumes_from:
- applications
volumes: volumes:
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
- ${CADDY_CUSTOM_CADDYFILE}:/etc/Caddyfile - ${CADDY_CUSTOM_CADDYFILE}:/etc/Caddyfile
- ${CADDY_HOST_LOG_PATH}:/var/log/caddy - ${CADDY_HOST_LOG_PATH}:/var/log/caddy
- ${DATA_SAVE_PATH}:/root/.caddy - ${DATA_PATH_HOST}:/root/.caddy
ports: ports:
- "${CADDY_HOST_HTTP_PORT}:80" - "${CADDY_HOST_HTTP_PORT}:80"
- "${CADDY_HOST_HTTPS_PORT}:443" - "${CADDY_HOST_HTTPS_PORT}:443"
@ -446,8 +468,7 @@ services:
- frontend - frontend
- backend - backend
### phpMyAdmin Container #################################### ### phpMyAdmin ###########################################
phpmyadmin: phpmyadmin:
build: ./phpmyadmin build: ./phpmyadmin
environment: environment:
@ -463,8 +484,7 @@ services:
- frontend - frontend
- backend - backend
### Adminer Container #################################### ### Adminer ###########################################
adminer: adminer:
build: build:
context: ./adminer context: ./adminer
@ -478,14 +498,13 @@ services:
- frontend - frontend
- backend - backend
### pgAdmin Container ####################################### ### pgAdmin ##############################################
pgadmin: pgadmin:
build: ./pgadmin build: ./pgadmin
ports: ports:
- "5050:5050" - "5050:5050"
volumes: volumes:
- ${DATA_SAVE_PATH}/pgadmin-backup:/var/lib/pgadmin/storage/pgadmin4 - ${DATA_PATH_HOST}/pgadmin-backup:/var/lib/pgadmin/storage/pgadmin4
depends_on: depends_on:
- postgres - postgres
networks: networks:
@ -493,22 +512,19 @@ services:
- backend - backend
### ElasticSearch Container ################################# ### ElasticSearch ########################################
elasticsearch: elasticsearch:
build: ./elasticsearch build: ./elasticsearch
volumes: volumes:
- elasticsearch-data:/usr/share/elasticsearch/data - elasticsearch:/usr/share/elasticsearch/data
- elasticsearch-plugins:/usr/share/elasticsearch/plugins
environment: environment:
- cluster.name=laradock-cluster - cluster.name=laradock-cluster
- bootstrap.memory_lock=true - bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms256m -Xmx256m" - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits: ulimits:
memlock: memlock:
soft: -1 soft: -1
hard: -1 hard: -1
mem_limit: 512m
ports: ports:
- "${ELASTICSEARCH_HOST_HTTP_PORT}:9200" - "${ELASTICSEARCH_HOST_HTTP_PORT}:9200"
- "${ELASTICSEARCH_HOST_TRANSPORT_PORT}:9300" - "${ELASTICSEARCH_HOST_TRANSPORT_PORT}:9300"
@ -519,8 +535,7 @@ services:
- backend - backend
### Kibana Container ####################################### ### Kibana ##############################################
kibana: kibana:
build: ./kibana build: ./kibana
ports: ports:
@ -531,22 +546,20 @@ services:
- frontend - frontend
- backend - backend
### Certbot Container ################################## ### Certbot #########################################
certbot: certbot:
build: build:
context: ./certbot context: ./certbot
volumes: volumes:
- ./data/certbot/certs/:/var/certs - ./data/certbot/certs/:/var/certs
- ./certbot/letsencrypt/:/var/www/letsencrypt - ./certbot/letsencrypt/:${APP_CODE_PATH_CONTAINER}/letsencrypt
environment: environment:
- CN="fake.domain.com" - CN="fake.domain.com"
- EMAIL="fake.email@gmail.com" - EMAIL="fake.email@gmail.com"
networks: networks:
- frontend - frontend
### Mailhog Container ######################################### ### Mailhog ################################################
mailhog: mailhog:
build: ./mailhog build: ./mailhog
ports: ports:
@ -556,8 +569,7 @@ services:
- frontend - frontend
- backend - backend
### MailDev Container ####################################### ### MailDev ##############################################
maildev: maildev:
build: ./maildev build: ./maildev
ports: ports:
@ -567,8 +579,7 @@ services:
- frontend - frontend
- backend - backend
### Selenium Container ######################################## ### Selenium ###############################################
selenium: selenium:
build: ./selenium build: ./selenium
ports: ports:
@ -578,8 +589,7 @@ services:
networks: networks:
- frontend - frontend
### Varnish Proxy 1 ########################################## ### Varnish ##########################################
proxy: proxy:
build: ./varnish build: ./varnish
expose: expose:
@ -597,8 +607,6 @@ services:
networks: networks:
- frontend - frontend
### Varnish Proxy 2 ##########################################
proxy2: proxy2:
build: ./varnish build: ./varnish
expose: expose:
@ -616,9 +624,8 @@ services:
networks: networks:
- frontend - frontend
### Balancer Haproxy ########################################## ### HAProxy ####################################
haproxy:
balancer:
build: ./haproxy build: ./haproxy
ports: ports:
- "${HAPROXY_HOST_HTTP_PORT}:8085" - "${HAPROXY_HOST_HTTP_PORT}:8085"
@ -629,7 +636,6 @@ services:
- proxy2 - proxy2
### Jenkins ################################################### ### Jenkins ###################################################
jenkins: jenkins:
build: ./jenkins build: ./jenkins
environment: environment:
@ -645,13 +651,12 @@ services:
- frontend - frontend
- backend - backend
### Grafana Container ######################################### ### Grafana ################################################
grafana: grafana:
build: build:
context: ./grafana context: ./grafana
volumes: volumes:
- ${DATA_SAVE_PATH}/grafana:/var/lib/grafana - ${DATA_PATH_HOST}/grafana:/var/lib/grafana
ports: ports:
- "${GRAFANA_PORT}:3000" - "${GRAFANA_PORT}:3000"
networks: networks:
@ -670,59 +675,38 @@ services:
networks: networks:
- frontend - frontend
- backend - backend
### Solr ################################################
solr:
build:
context: ./solr
args:
- SOLR_VERSION=${SOLR_VERSION}
- SOLR_DATAIMPORTHANDLER_MYSQL=${SOLR_DATAIMPORTHANDLER_MYSQL}
volumes:
- ${DATA_PATH_HOST}/solr:/opt/solr/server/solr/mycores
ports:
- "${SOLR_PORT}:8983"
networks:
- backend
### AWS EB-CLI #### ### AWS EB-CLI ################################################
aws: aws:
build: build:
context: ./aws context: ./aws
volumes_from: volumes:
- applications - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
depends_on: depends_on:
- workspace - workspace
tty: true tty: true
### Networks Setup ############################################ ### Portainer ################################################
portainer:
networks: build:
frontend: context: ./portainer
driver: "bridge" volumes:
backend: - ${DATA_PATH_HOST}/portainer_data:/data
driver: "bridge" - /var/run/docker.sock:/var/run/docker.sock
ports:
### Volumes Setup ############################################# - 9010:9000
volumes:
mysql:
driver: "local"
percona:
driver: "local"
mssql:
driver: "local"
postgres:
driver: "local"
memcached:
driver: "local"
redis:
driver: "local"
neo4j:
driver: "local"
mariadb:
driver: "local"
mongo:
driver: "local"
minio:
driver: "local"
rethinkdb:
driver: "local"
phpmyadmin:
driver: "local"
adminer:
driver: "local"
aerospike:
driver: "local"
caddy:
driver: "local"
elasticsearch-data:
driver: "local"
elasticsearch-plugins:
driver: "local"

View File

@ -1,12 +1,12 @@
version: "2" version: "2"
options: options:
verbose: true verbose: false
syncs: syncs:
applications-docker-sync: # name of the intermediary sync volume applications-docker-sync: # name of the intermediary sync volume
compose-dev-file-path: 'docker-compose.sync.yml' # docker-compose override file compose-dev-file-path: 'docker-compose.sync.yml' # docker-compose override file
src: '${APPLICATION}' # host source directory src: '${APP_CODE_PATH_HOST}' # host source directory
sync_userid: 1000 # giving permissions to www-data user (as defined in nginx and php-fpm Dockerfiles) sync_userid: 1000 # giving permissions to www-data user (as defined in nginx and php-fpm Dockerfiles)
sync_strategy: '${DOCKER_SYNC_STRATEGY}' # for osx use 'native_osx', for windows use 'unison' sync_strategy: '${DOCKER_SYNC_STRATEGY}' # for osx use 'native_osx', for windows use 'unison'

View File

@ -1,3 +1,3 @@
FROM docker.elastic.co/elasticsearch/elasticsearch:5.4.1 FROM docker.elastic.co/elasticsearch/elasticsearch:6.2.3
EXPOSE 9200 9300 EXPOSE 9200 9300

View File

@ -1,68 +1,101 @@
########################################################### ###########################################################
# General Setup ###################### General Setup ######################
########################################################### ###########################################################
### Application Path ################################################################################################### ### Paths #################################################
# Point to your code, will be available at `/var/www`.
APPLICATION=../ # Point to the path of your applications code on your host
APP_CODE_PATH_HOST=../
### PHP Version ######################################################################################################## # Point to where the `APP_CODE_PATH_HOST` should be in the container. You may add flags to the path `:cached`, `:delegated`. When using Docker Sync add `:nocopy`
# Select a PHP version of the Workspace and PHP-FPM containers (Does not apply to HHVM). Accepted values: 71 - 70 - 56 APP_CODE_PATH_CONTAINER=/var/www:cached
PHP_VERSION=71 # Choose storage path on your machine. For all storage systems
DATA_PATH_HOST=~/.laradock/data
### Drivers ################################################
# All volumes driver
VOLUMES_DRIVER=local
# All Networks driver
NETWORKS_DRIVER=bridge
### Docker compose files ##################################
# Select which docker-compose files to include. If using docker-sync append `:docker-compose.sync.yml` at the end
COMPOSE_FILE=docker-compose.yml
# Change the separator from : to ; on Windows
COMPOSE_PATH_SEPARATOR=:
### PHP Version ###########################################
# Select a PHP version of the Workspace and PHP-FPM containers (Does not apply to HHVM). Accepted values: 7.2 - 7.1 - 7.0 - 5.6
PHP_VERSION=7.2
### PHP Interpreter #######################################
### PHP Interpreter ####################################################################################################
# Select the PHP Interpreter. Accepted values: hhvm - php-fpm # Select the PHP Interpreter. Accepted values: hhvm - php-fpm
PHP_INTERPRETER=php-fpm PHP_INTERPRETER=php-fpm
### Data Path ########################################################################################################## ### Docker Host IP ########################################
# Choose storage path on your machine. For all storage systems.
DATA_SAVE_PATH=~/.laradock/data
### Docker Host IP #####################################################################################################
# Enter your Docker Host IP (will be appended to /etc/hosts). Default is `10.0.75.1` # Enter your Docker Host IP (will be appended to /etc/hosts). Default is `10.0.75.1`
DOCKER_HOST_IP=10.0.75.1 DOCKER_HOST_IP=10.0.75.1
### Remote Interpreter ################################################################################################# ### Remote Interpreter ####################################
# Choose a Remote Interpreter entry matching name. Default is `laradock`
# Choose a Remote Interpreter entry matching name. Default is `laradock`
PHP_IDE_CONFIG=serverName=laradock PHP_IDE_CONFIG=serverName=laradock
### Windows Path ####################################################################################################### ### Windows Path ##########################################
# A fix for Windows users, to ensure the application path works.
# A fix for Windows users, to ensure the application path works
COMPOSE_CONVERT_WINDOWS_PATHS=1 COMPOSE_CONVERT_WINDOWS_PATHS=1
######################################################################################################################## ### Environment ###########################################
# If you need to change the sources (i.e. to China), set CHANGE_SOURCE to true
CHANGE_SOURCE=false
### Docker Sync ###########################################
# If you are using Docker Sync. For `osx` use 'native_osx', for `windows` use 'unison', for `linux` docker-sync is not required
DOCKER_SYNC_STRATEGY=native_osx
########################################################### ###########################################################
# Containers Customization ################ Containers Customization #################
########################################################### ###########################################################
### WORKSPACE ########################################################################################################## ### WORKSPACE #############################################
WORKSPACE_COMPOSER_GLOBAL_INSTALL=true
WORKSPACE_COMPOSER_REPO_PACKAGIST=
WORKSPACE_INSTALL_NODE=true
WORKSPACE_NODE_VERSION=stable
WORKSPACE_NPM_REGISTRY=
WORKSPACE_INSTALL_YARN=true
WORKSPACE_YARN_VERSION=latest
WORKSPACE_INSTALL_PHPREDIS=true
WORKSPACE_INSTALL_WORKSPACE_SSH=false
WORKSPACE_INSTALL_SUBVERSION=false
WORKSPACE_INSTALL_XDEBUG=false WORKSPACE_INSTALL_XDEBUG=false
WORKSPACE_INSTALL_LDAP=false WORKSPACE_INSTALL_LDAP=false
WORKSPACE_INSTALL_SOAP=false WORKSPACE_INSTALL_SOAP=false
WORKSPACE_INSTALL_IMAP=false WORKSPACE_INSTALL_IMAP=false
WORKSPACE_INSTALL_MONGO=false WORKSPACE_INSTALL_MONGO=false
WORKSPACE_INSTALL_PHPREDIS=false WORKSPACE_INSTALL_AMQP=false
WORKSPACE_INSTALL_MSSQL=false WORKSPACE_INSTALL_MSSQL=false
WORKSPACE_INSTALL_NODE=false
WORKSPACE_INSTALL_YARN=false
WORKSPACE_INSTALL_DRUSH=false WORKSPACE_INSTALL_DRUSH=false
WORKSPACE_DRUSH_VERSION=8.1.17
WORKSPACE_INSTALL_DRUPAL_CONSOLE=false WORKSPACE_INSTALL_DRUPAL_CONSOLE=false
WORKSPACE_INSTALL_AEROSPIKE=false WORKSPACE_INSTALL_AEROSPIKE=false
WORKSPACE_INSTALL_V8JS=false WORKSPACE_INSTALL_V8JS=false
WORKSPACE_COMPOSER_GLOBAL_INSTALL=false
WORKSPACE_INSTALL_WORKSPACE_SSH=false
WORKSPACE_INSTALL_LARAVEL_ENVOY=false WORKSPACE_INSTALL_LARAVEL_ENVOY=false
WORKSPACE_INSTALL_LARAVEL_INSTALLER=false WORKSPACE_INSTALL_LARAVEL_INSTALLER=false
WORKSPACE_INSTALL_DEPLOYER=false WORKSPACE_INSTALL_DEPLOYER=false
WORKSPACE_INSTALL_PRESTISSIMO=false
WORKSPACE_INSTALL_LINUXBREW=false WORKSPACE_INSTALL_LINUXBREW=false
WORKSPACE_INSTALL_MC=false WORKSPACE_INSTALL_MC=false
WORKSPACE_INSTALL_SYMFONY=false WORKSPACE_INSTALL_SYMFONY=false
@ -72,44 +105,46 @@ WORKSPACE_INSTALL_IMAGEMAGICK=false
WORKSPACE_INSTALL_TERRAFORM=false WORKSPACE_INSTALL_TERRAFORM=false
WORKSPACE_INSTALL_DUSK_DEPS=false WORKSPACE_INSTALL_DUSK_DEPS=false
WORKSPACE_INSTALL_PG_CLIENT=false WORKSPACE_INSTALL_PG_CLIENT=false
WORKSPACE_INSTALL_SWOOLE=false
WORKSPACE_PUID=1000 WORKSPACE_PUID=1000
WORKSPACE_PGID=1000 WORKSPACE_PGID=1000
WORKSPACE_CHROME_DRIVER_VERSION=2.32 WORKSPACE_CHROME_DRIVER_VERSION=2.32
WORKSPACE_NODE_VERSION=stable
WORKSPACE_YARN_VERSION=latest
WORKSPACE_TIMEZONE=UTC WORKSPACE_TIMEZONE=UTC
WORKSPACE_SSH_PORT=2222 WORKSPACE_SSH_PORT=2222
### PHP_FPM ############################################################################################################ ### PHP_FPM ###############################################
PHP_FPM_INSTALL_ZIP_ARCHIVE=true
PHP_FPM_INSTALL_BCMATH=true
PHP_FPM_INSTALL_MYSQLI=true
PHP_FPM_INSTALL_TOKENIZER=true
PHP_FPM_INSTALL_INTL=true
PHP_FPM_INSTALL_IMAGEMAGICK=true
PHP_FPM_INSTALL_OPCACHE=true
PHP_FPM_INSTALL_IMAGE_OPTIMIZERS=true
PHP_FPM_INSTALL_PHPREDIS=true
PHP_FPM_INSTALL_MEMCACHED=false
PHP_FPM_INSTALL_XDEBUG=false PHP_FPM_INSTALL_XDEBUG=false
PHP_FPM_INSTALL_IMAP=false
PHP_FPM_INSTALL_MONGO=false PHP_FPM_INSTALL_MONGO=false
PHP_FPM_INSTALL_AMQP=false
PHP_FPM_INSTALL_MSSQL=false PHP_FPM_INSTALL_MSSQL=false
PHP_FPM_INSTALL_SOAP=false PHP_FPM_INSTALL_SOAP=false
PHP_FPM_INSTALL_ZIP_ARCHIVE=false PHP_FPM_INSTALL_GMP=false
PHP_FPM_INSTALL_BCMATH=false
PHP_FPM_INSTALL_PHPREDIS=false
PHP_FPM_INSTALL_MEMCACHED=false
PHP_FPM_INSTALL_OPCACHE=false
PHP_FPM_INSTALL_EXIF=false PHP_FPM_INSTALL_EXIF=false
PHP_FPM_INSTALL_AEROSPIKE=false PHP_FPM_INSTALL_AEROSPIKE=false
PHP_FPM_INSTALL_MYSQLI=false
PHP_FPM_INSTALL_PGSQL=false PHP_FPM_INSTALL_PGSQL=false
PHP_FPM_INSTALL_POSTGRES=false
PHP_FPM_INSTALL_TOKENIZER=false
PHP_FPM_INSTALL_INTL=false
PHP_FPM_INSTALL_GHOSTSCRIPT=false PHP_FPM_INSTALL_GHOSTSCRIPT=false
PHP_FPM_INSTALL_LDAP=false PHP_FPM_INSTALL_LDAP=false
PHP_FPM_INSTALL_SWOOLE=false PHP_FPM_INSTALL_SWOOLE=false
PHP_FPM_INSTALL_IMAGE_OPTIMIZERS=false
PHP_FPM_INSTALL_IMAGEMAGICK=false
PHP_FPM_INSTALL_PG_CLIENT=false PHP_FPM_INSTALL_PG_CLIENT=false
PHP_FPM_INSTALL_PCNTL=false
### PHP_WORKER ######################################################################################################### ### PHP_WORKER ############################################
PHP_WORKER_INSTALL_PGSQL=false PHP_WORKER_INSTALL_PGSQL=false
### NGINX ############################################################################################################## ### NGINX #################################################
NGINX_HOST_HTTP_PORT=80 NGINX_HOST_HTTP_PORT=80
NGINX_HOST_HTTPS_PORT=443 NGINX_HOST_HTTPS_PORT=443
@ -118,7 +153,7 @@ NGINX_SITES_PATH=./nginx/sites/
NGINX_PHP_UPSTREAM_CONTAINER=php-fpm NGINX_PHP_UPSTREAM_CONTAINER=php-fpm
NGINX_PHP_UPSTREAM_PORT=9000 NGINX_PHP_UPSTREAM_PORT=9000
### APACHE ############################################################################################################# ### APACHE ################################################
APACHE_HOST_HTTP_PORT=80 APACHE_HOST_HTTP_PORT=80
APACHE_HOST_HTTPS_PORT=443 APACHE_HOST_HTTPS_PORT=443
@ -127,10 +162,11 @@ APACHE_SITES_PATH=./apache2/sites
APACHE_PHP_UPSTREAM_CONTAINER=php-fpm APACHE_PHP_UPSTREAM_CONTAINER=php-fpm
APACHE_PHP_UPSTREAM_PORT=9000 APACHE_PHP_UPSTREAM_PORT=9000
APACHE_PHP_UPSTREAM_TIMEOUT=60 APACHE_PHP_UPSTREAM_TIMEOUT=60
APACHE_DOCUMENT_ROOT=/var/www/
### MYSQL ############################################################################################################## ### MYSQL #################################################
MYSQL_VERSION=8.0 MYSQL_VERSION=latest
MYSQL_DATABASE=default MYSQL_DATABASE=default
MYSQL_USER=default MYSQL_USER=default
MYSQL_PASSWORD=secret MYSQL_PASSWORD=secret
@ -138,11 +174,11 @@ MYSQL_PORT=3306
MYSQL_ROOT_PASSWORD=root MYSQL_ROOT_PASSWORD=root
MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d
### REDIS ############################################################################################################## ### REDIS #################################################
REDIS_PORT=6379 REDIS_PORT=6379
### Percona ############################################################################################################ ### Percona ###############################################
PERCONA_DATABASE=homestead PERCONA_DATABASE=homestead
PERCONA_USER=homestead PERCONA_USER=homestead
@ -151,13 +187,13 @@ PERCONA_PORT=3306
PERCONA_ROOT_PASSWORD=root PERCONA_ROOT_PASSWORD=root
PERCONA_ENTRYPOINT_INITDB=./percona/docker-entrypoint-initdb.d PERCONA_ENTRYPOINT_INITDB=./percona/docker-entrypoint-initdb.d
### MSSQL ############################################################################################################## ### MSSQL #################################################
MSSQL_DATABASE=homestead MSSQL_DATABASE=homestead
MSSQL_PASSWORD=yourStrong(!)Password MSSQL_PASSWORD=yourStrong(!)Password
MSSQL_PORT=1433 MSSQL_PORT=1433
### MARIADB ############################################################################################################ ### MARIADB ###############################################
MARIADB_DATABASE=default MARIADB_DATABASE=default
MARIADB_USER=default MARIADB_USER=default
@ -166,14 +202,14 @@ MARIADB_PORT=3306
MARIADB_ROOT_PASSWORD=root MARIADB_ROOT_PASSWORD=root
MARIADB_ENTRYPOINT_INITDB=./mariadb/docker-entrypoint-initdb.d MARIADB_ENTRYPOINT_INITDB=./mariadb/docker-entrypoint-initdb.d
### POSTGRES ########################################################################################################### ### POSTGRES ##############################################
POSTGRES_DB=default POSTGRES_DB=default
POSTGRES_USER=default POSTGRES_USER=default
POSTGRES_PASSWORD=secret POSTGRES_PASSWORD=secret
POSTGRES_PORT=5432 POSTGRES_PORT=5432
### RABBITMQ ########################################################################################################### ### RABBITMQ ##############################################
RABBITMQ_NODE_HOST_PORT=5672 RABBITMQ_NODE_HOST_PORT=5672
RABBITMQ_MANAGEMENT_HTTP_HOST_PORT=15672 RABBITMQ_MANAGEMENT_HTTP_HOST_PORT=15672
@ -181,43 +217,43 @@ RABBITMQ_MANAGEMENT_HTTPS_HOST_PORT=15671
RABBITMQ_DEFAULT_USER=guest RABBITMQ_DEFAULT_USER=guest
RABBITMQ_DEFAULT_PASS=guest RABBITMQ_DEFAULT_PASS=guest
### ELASTICSEARCH ###################################################################################################### ### ELASTICSEARCH #########################################
ELASTICSEARCH_HOST_HTTP_PORT=9200 ELASTICSEARCH_HOST_HTTP_PORT=9200
ELASTICSEARCH_HOST_TRANSPORT_PORT=9300 ELASTICSEARCH_HOST_TRANSPORT_PORT=9300
### KIBANA ############################################################################################################# ### KIBANA ################################################
KIBANA_HTTP_PORT=5601 KIBANA_HTTP_PORT=5601
### MEMCACHED ########################################################################################################## ### MEMCACHED #############################################
MEMCACHED_HOST_PORT=11211 MEMCACHED_HOST_PORT=11211
### BEANSTALKD CONSOLE ################################################################################################# ### BEANSTALKD CONSOLE ####################################
BEANSTALKD_CONSOLE_BUILD_PATH=./beanstalkd-console BEANSTALKD_CONSOLE_BUILD_PATH=./beanstalkd-console
BEANSTALKD_CONSOLE_CONTAINER_NAME=beanstalkd-console BEANSTALKD_CONSOLE_CONTAINER_NAME=beanstalkd-console
BEANSTALKD_CONSOLE_HOST_PORT=2080 BEANSTALKD_CONSOLE_HOST_PORT=2080
### BEANSTALKD ######################################################################################################### ### BEANSTALKD ############################################
BEANSTALKD_HOST_PORT=11300 BEANSTALKD_HOST_PORT=11300
### SELENIUM ########################################################################################################### ### SELENIUM ##############################################
SELENIUM_PORT=4444 SELENIUM_PORT=4444
### MINIO ############################################################################################################## ### MINIO #################################################
MINIO_PORT=9000 MINIO_PORT=9000
### ADMINER ############################################################################################################ ### ADMINER ###############################################
ADM_PORT=8080 ADM_PORT=8080
ADM_INSTALL_MSSQL=false ADM_INSTALL_MSSQL=false
### PHP MY ADMIN ####################################################################################################### ### PHP MY ADMIN ##########################################
# Accepted values: mariadb - mysql # Accepted values: mariadb - mysql
@ -230,89 +266,86 @@ PMA_PASSWORD=secret
PMA_ROOT_PASSWORD=secret PMA_ROOT_PASSWORD=secret
PMA_PORT=8080 PMA_PORT=8080
### MAILDEV ############################################################################################################ ### MAILDEV ###############################################
MAILDEV_HTTP_PORT=1080 MAILDEV_HTTP_PORT=1080
MAILDEV_SMTP_PORT=25 MAILDEV_SMTP_PORT=25
### VARNISH ############################################################################################################ ### VARNISH ###############################################
VARNISH_CONFIG=/etc/varnish/default.vcl VARNISH_CONFIG=/etc/varnish/default.vcl
VARNISH_PORT=8080 VARNISH_PORT=8080
VARNISH_BACKEND_PORT=8888 VARNISH_BACKEND_PORT=8888
VARNISHD_PARAMS=-p default_ttl=3600 -p default_grace=3600 VARNISHD_PARAMS=-p default_ttl=3600 -p default_grace=3600
### Varnish ############################################################################################################ ### Varnish ###############################################
# Proxy 1 # Proxy 1
VARNISH_PROXY1_CACHE_SIZE=128m VARNISH_PROXY1_CACHE_SIZE=128m
VARNISH_PROXY1_BACKEND_HOST=workspace VARNISH_PROXY1_BACKEND_HOST=workspace
VARNISH_PROXY1_SERVER=SERVER1 VARNISH_PROXY1_SERVER=SERVER1
# Proxy 2 # Proxy 2
VARNISH_PROXY2_CACHE_SIZE=128m VARNISH_PROXY2_CACHE_SIZE=128m
VARNISH_PROXY2_BACKEND_HOST=workspace VARNISH_PROXY2_BACKEND_HOST=workspace
VARNISH_PROXY2_SERVER=SERVER2 VARNISH_PROXY2_SERVER=SERVER2
### HAPROXY ############################################################################################################ ### HAPROXY ###############################################
HAPROXY_HOST_HTTP_PORT=8085 HAPROXY_HOST_HTTP_PORT=8085
### JENKINS ############################################################################################################ ### JENKINS ###############################################
JENKINS_HOST_HTTP_PORT=8090 JENKINS_HOST_HTTP_PORT=8090
JENKINS_HOST_SLAVE_AGENT_PORT=50000 JENKINS_HOST_SLAVE_AGENT_PORT=50000
JENKINS_HOME=./jenkins/jenkins_home JENKINS_HOME=./jenkins/jenkins_home
### GRAFANA ############################################################################################################ ### GRAFANA ###############################################
GRAFANA_PORT=3000 GRAFANA_PORT=3000
### BLACKFIRE ########################################################################################################## ### BLACKFIRE #############################################
# Create an account on blackfire.io. Don't enable blackfire and xDebug at the same time.
# visit https://blackfire.io/docs/24-days/06-installation#install-probe-debian for more info.
# Create an account on blackfire.io. Don't enable blackfire and xDebug at the same time. # visit https://blackfire.io/docs/24-days/06-installation#install-probe-debian for more info.
INSTALL_BLACKFIRE=false INSTALL_BLACKFIRE=false
BLACKFIRE_CLIENT_ID=<client_id> BLACKFIRE_CLIENT_ID=<client_id>
BLACKFIRE_CLIENT_TOKEN=<client_token> BLACKFIRE_CLIENT_TOKEN=<client_token>
BLACKFIRE_SERVER_ID=<server_id> BLACKFIRE_SERVER_ID=<server_id>
BLACKFIRE_SERVER_TOKEN=<server_token> BLACKFIRE_SERVER_TOKEN=<server_token>
### AEROSPIKE ########################################################################################################## ### AEROSPIKE #############################################
AEROSPIKE_SERVICE_PORT=3000 AEROSPIKE_SERVICE_PORT=3000
AEROSPIKE_FABRIC_PORT=3001 AEROSPIKE_FABRIC_PORT=3001
AEROSPIKE_HEARTBEAT_PORT=3002 AEROSPIKE_HEARTBEAT_PORT=3002
AEROSPIKE_INFO_PORT=3003 AEROSPIKE_INFO_PORT=3003
### RETHINKDB ########################################################################################################## ## Temp solution, this should be in the dockerfile
# for all versions "https://github.com/aerospike/aerospike-client-php/archive/master.tar.gz"
# for php 7.2 (using this branch until the support for 7.2 on master) "https://github.com/aerospike/aerospike-client-php/archive/7.2.0-release-candidate.tar.gz"
AEROSPIKE_PHP_REPOSITORY=https://github.com/aerospike/aerospike-client-php/archive/7.2.0-release-candidate.tar.gz
### RETHINKDB #############################################
RETHINKDB_PORT=8090 RETHINKDB_PORT=8090
### MONGODB ############################################################################################################ ### MONGODB ###############################################
MONGODB_PORT=27017 MONGODB_PORT=27017
### CADDY ############################################################################################################## ### CADDY #################################################
CADDY_HOST_HTTP_PORT=80 CADDY_HOST_HTTP_PORT=80
CADDY_HOST_HTTPS_PORT=443 CADDY_HOST_HTTPS_PORT=443
CADDY_HOST_LOG_PATH=./logs/caddy CADDY_HOST_LOG_PATH=./logs/caddy
CADDY_CUSTOM_CADDYFILE=./caddy/Caddyfile CADDY_CUSTOM_CADDYFILE=./caddy/Caddyfile
### LARAVEL ECHO SERVER ################################################################################################ ### LARAVEL ECHO SERVER ###################################
LARAVEL_ECHO_SERVER_PORT=6001 LARAVEL_ECHO_SERVER_PORT=6001
### DOCKER-SYNC ################################################################################################ ### SOLR ##################################################
# osx: 'native_osx' (default) SOLR_VERSION=5.5
# windows: 'unison' SOLR_PORT=8983
# linux: docker-sync not required SOLR_DATAIMPORTHANDLER_MYSQL=false
DOCKER_SYNC_STRATEGY=native_osx
########################################################################################################################

View File

@ -1,5 +1,5 @@
FROM dockercloud/haproxy:latest FROM dockercloud/haproxy:latest
MAINTAINER ZeroC0D3 Team<zeroc0d3.team@gmail.com> LABEL maintainer="ZeroC0D3 Team<zeroc0d3.team@gmail.com>"
EXPOSE 80 EXPOSE 80

View File

@ -1,11 +1,12 @@
FROM ubuntu:14.04 FROM ubuntu:14.04
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me> LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
RUN apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449 RUN apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449
RUN apt-get update -y \ RUN apt-get update -y \
&& apt-get install -y software-properties-common \ && apt-get install -y software-properties-common wget \
&& wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | sudo apt-key add - \
&& add-apt-repository "deb http://dl.hhvm.com/ubuntu $(lsb_release -sc) main" \ && add-apt-repository "deb http://dl.hhvm.com/ubuntu $(lsb_release -sc) main" \
&& apt-get update -y \ && apt-get update -y \
&& apt-get install -y hhvm \ && apt-get install -y hhvm \
@ -14,7 +15,7 @@ RUN apt-get update -y \
RUN mkdir -p /var/www RUN mkdir -p /var/www
ADD server.ini /etc/hhvm/server.ini COPY server.ini /etc/hhvm/server.ini
RUN usermod -u 1000 www-data RUN usermod -u 1000 www-data

View File

@ -36,10 +36,12 @@ COPY init.groovy /usr/share/jenkins/ref/init.groovy.d/tcp-slave-agent-port.groov
# jenkins version being bundled in this docker image # jenkins version being bundled in this docker image
ARG JENKINS_VERSION ARG JENKINS_VERSION
ENV JENKINS_VERSION ${JENKINS_VERSION:-2.73.2} ENV JENKINS_VERSION ${JENKINS_VERSION:-2.89.2}
# jenkins.war checksum, download will be validated using it # jenkins.war checksum, download will be validated using it
ARG JENKINS_SHA=f6d1351beef34d980b32f8c463be505445f637e2fc62156fecd42891c53c97d3 # 2.89.2
ARG JENKINS_SHA=014f669f32bc6e925e926e260503670b32662f006799b133a031a70a794c8a14
# Can be used to customize where jenkins.war get downloaded from # 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 ARG JENKINS_URL=https://repo.jenkins-ci.org/public/org/jenkins-ci/main/jenkins-war/${JENKINS_VERSION}/jenkins-war-${JENKINS_VERSION}.war

View File

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

View File

@ -1,6 +1,6 @@
FROM mailhog/mailhog FROM mailhog/mailhog
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me> LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
CMD ["Mailhog"] CMD ["Mailhog"]

View File

@ -1,8 +1,8 @@
FROM mariadb:latest FROM mariadb:latest
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me> LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
ADD my.cnf /etc/mysql/conf.d/my.cnf COPY my.cnf /etc/mysql/conf.d/my.cnf
CMD ["mysqld"] CMD ["mysqld"]

View File

@ -8,9 +8,9 @@
# GRANT ALL ON `myshop_db`.* TO 'appuser'@'%' ; # GRANT ALL ON `myshop_db`.* TO 'appuser'@'%' ;
# #
### ###
### this sql script is auto run when mariadb container start and $DATA_SAVE_PATH/mariadb not exists. ### this sql script is auto run when mariadb container start and $DATA_PATH_HOST/mariadb not exists.
### ###
### if your $DATA_SAVE_PATH/mariadb is exists and you do not want to delete it, you can run by manual execution: ### if your $DATA_PATH_HOST/mariadb is exists and you do not want to delete it, you can run by manual execution:
### ###
### docker-compose exec mariadb bash ### docker-compose exec mariadb bash
### mysql -u root -p < /docker-entrypoint-initdb.d/createdb.sql ### mysql -u root -p < /docker-entrypoint-initdb.d/createdb.sql

View File

@ -1,6 +1,6 @@
FROM memcached:latest FROM memcached:latest
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me> LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
CMD ["memcached"] CMD ["memcached"]

View File

@ -1,5 +1,5 @@
FROM minio/minio FROM minio/minio
MAINTAINER Thor Erik Lie <thor@thorerik.com> LABEL maintainer="Thor Erik Lie <thor@thorerik.com>"
ENTRYPOINT ["minio", "server", "/export"] ENTRYPOINT ["minio", "server", "/export"]

View File

@ -1,6 +1,6 @@
FROM mongo:latest FROM mongo:latest
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me> LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
#COPY mongo.conf /usr/local/etc/mongo/mongo.conf #COPY mongo.conf /usr/local/etc/mongo/mongo.conf

View File

@ -1,6 +1,6 @@
FROM microsoft/mssql-server-linux FROM microsoft/mssql-server-linux
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me> LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
# Create config directory # Create config directory
# an set it as WORKDIR # an set it as WORKDIR

View File

@ -1,7 +1,7 @@
ARG MYSQL_VERSION=8.0 ARG MYSQL_VERSION=latest
FROM mysql:${MYSQL_VERSION} FROM mysql:${MYSQL_VERSION}
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me> LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
##################################### #####################################
# Set Timezone # Set Timezone
@ -13,7 +13,7 @@ RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN chown -R mysql:root /var/lib/mysql/ RUN chown -R mysql:root /var/lib/mysql/
ADD my.cnf /etc/mysql/conf.d/my.cnf COPY my.cnf /etc/mysql/conf.d/my.cnf
CMD ["mysqld"] CMD ["mysqld"]

View File

@ -8,9 +8,9 @@
# GRANT ALL ON `myshop_db`.* TO 'appuser'@'%' ; # GRANT ALL ON `myshop_db`.* TO 'appuser'@'%' ;
# #
# #
# this sql script will auto run when the mysql container starts and the $DATA_SAVE_PATH/mysql not found. # this sql script will auto run when the mysql container starts and the $DATA_PATH_HOST/mysql not found.
# #
# if your $DATA_SAVE_PATH/mysql exists and you do not want to delete it, you can run by manual execution: # if your $DATA_PATH_HOST/mysql exists and you do not want to delete it, you can run by manual execution:
# #
# docker-compose exec mysql bash # docker-compose exec mysql bash
# mysql -u root -p < /docker-entrypoint-initdb.d/createdb.sql # mysql -u root -p < /docker-entrypoint-initdb.d/createdb.sql

View File

@ -1,6 +1,6 @@
FROM tpires/neo4j FROM tpires/neo4j
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me> LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
VOLUME /var/lib/neo4j/data VOLUME /var/lib/neo4j/data

View File

@ -1,17 +1,25 @@
FROM nginx:alpine FROM nginx:alpine
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me> LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
ADD nginx.conf /etc/nginx/ COPY nginx.conf /etc/nginx/
ARG PHP_UPSTREAM_CONTAINER=php-fpm # If you're in China, or you need to change sources, will be set CHANGE_SOURCE to true in .env.
ARG PHP_UPSTREAM_PORT=9000
ARG CHANGE_SOURCE=false
RUN if [ ${CHANGE_SOURCE} = true ]; then \
# Change application source from dl-cdn.alpinelinux.org to aliyun source
sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/' /etc/apk/repositories \
;fi
RUN apk update \ RUN apk update \
&& apk upgrade \ && apk upgrade \
&& apk add --no-cache bash \ && apk add --no-cache bash \
&& adduser -D -H -u 1000 -s /bin/bash www-data && adduser -D -H -u 1000 -s /bin/bash www-data
ARG PHP_UPSTREAM_CONTAINER=php-fpm
ARG PHP_UPSTREAM_PORT=9000
# Set upstream conf and remove the default conf # Set upstream conf and remove the default conf
RUN echo "upstream php-upstream { server ${PHP_UPSTREAM_CONTAINER}:${PHP_UPSTREAM_PORT}; }" > /etc/nginx/conf.d/upstream.conf \ RUN echo "upstream php-upstream { server ${PHP_UPSTREAM_CONTAINER}:${PHP_UPSTREAM_PORT}; }" > /etc/nginx/conf.d/upstream.conf \
&& rm /etc/nginx/conf.d/default.conf && rm /etc/nginx/conf.d/default.conf

View File

@ -3,7 +3,7 @@ server {
listen 80; listen 80;
listen [::]:80; listen [::]:80;
server_name app.dev; server_name app.test;
root /var/www/app; root /var/www/app;
index index.php index.html index.htm; index index.php index.html index.htm;
@ -18,6 +18,8 @@ server {
fastcgi_buffers 16 16k; fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k; fastcgi_buffer_size 32k;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#fixes timeouts
fastcgi_read_timeout 600;
include fastcgi_params; include fastcgi_params;
} }

View File

@ -18,6 +18,8 @@ server {
fastcgi_buffers 16 16k; fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k; fastcgi_buffer_size 32k;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#fixes timeouts
fastcgi_read_timeout 600;
include fastcgi_params; include fastcgi_params;
} }

View File

@ -3,7 +3,7 @@ server {
listen 80; listen 80;
listen [::]:80; listen [::]:80;
server_name laravel.dev; server_name laravel.test;
root /var/www/laravel/public; root /var/www/laravel/public;
index index.php index.html index.htm; index index.php index.html index.htm;
@ -18,6 +18,8 @@ server {
fastcgi_buffers 16 16k; fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k; fastcgi_buffer_size 32k;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#fixes timeouts
fastcgi_read_timeout 600;
include fastcgi_params; include fastcgi_params;
} }

View File

@ -3,7 +3,7 @@ server {
listen 80; listen 80;
listen [::]:80; listen [::]:80;
server_name symfony.dev; server_name symfony.test;
root /var/www/projects/symfony/web; root /var/www/projects/symfony/web;
index index.php index.html index.htm; index index.php index.html index.htm;
@ -11,15 +11,23 @@ server {
try_files $uri @rewriteapp; try_files $uri @rewriteapp;
} }
# For Symfony 3
location @rewriteapp { location @rewriteapp {
rewrite ^(.*)$ /app.php/$1 last; rewrite ^(.*)$ /app.php/$1 last;
} }
# For Symfony 4 config
# location @rewriteapp {
# rewrite ^(.*)$ /index.php/$1 last;
# }
location ~ ^/(app|app_dev|config)\.php(/|$) { location ~ ^/(app|app_dev|config|index)\.php(/|$) {
fastcgi_pass php-upstream; fastcgi_pass php-upstream;
fastcgi_split_path_info ^(.+\.php)(/.*)$; fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params; include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#fixes timeouts
fastcgi_read_timeout 600;
fastcgi_param HTTPS off; fastcgi_param HTTPS off;
} }

View File

@ -1,10 +1,10 @@
FROM percona:5.7 FROM percona:5.7
MAINTAINER DTUNES <diegotdai@gmai.com> LABEL maintainer="DTUNES <diegotdai@gmai.com>"
RUN chown -R mysql:root /var/lib/mysql/ RUN chown -R mysql:root /var/lib/mysql/
ADD my.cnf /etc/mysql/conf.d/my.cnf COPY my.cnf /etc/mysql/conf.d/my.cnf
CMD ["mysqld"] CMD ["mysqld"]

View File

@ -8,9 +8,9 @@
# GRANT ALL ON `myshop_db`.* TO 'appuser'@'%' ; # GRANT ALL ON `myshop_db`.* TO 'appuser'@'%' ;
# #
### ###
### this sql script is auto run when percona container start and $DATA_SAVE_PATH/percona not exists. ### this sql script is auto run when percona container start and $DATA_PATH_HOST/percona not exists.
### ###
### if your $DATA_SAVE_PATH/percona is exists and you do not want to delete it, you can run by manual execution: ### if your $DATA_PATH_HOST/percona is exists and you do not want to delete it, you can run by manual execution:
### ###
### docker-compose exec percona bash ### docker-compose exec percona bash
### mysql -u root -p < /docker-entrypoint-initdb.d/createdb.sql ### mysql -u root -p < /docker-entrypoint-initdb.d/createdb.sql

View File

@ -1,6 +1,6 @@
FROM fenglc/pgadmin4 FROM fenglc/pgadmin4
MAINTAINER Huadong Zuo <admin@zuohuadong.cn> LABEL maintainer="Huadong Zuo <admin@zuohuadong.cn>"
# user: pgadmin4@pgadmin.org # user: pgadmin4@pgadmin.org
# password: admin # password: admin

472
php-fpm/Dockerfile Normal file
View File

@ -0,0 +1,472 @@
#
#--------------------------------------------------------------------------
# Image Setup
#--------------------------------------------------------------------------
#
# To edit the 'php-fpm' base Image, visit its repository on Github
# https://github.com/Laradock/php-fpm
#
# To change its version, see the available Tags on the Docker Hub:
# https://hub.docker.com/r/laradock/php-fpm/tags/
#
# Note: Base Image name format {image-tag}-{php-version}
#
ARG PHP_VERSION=${PHP_VERSION}
FROM laradock/php-fpm:2.2-${PHP_VERSION}
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
# always run apt update when start and after add new source list, then clean up at end.
RUN apt-get update -yqq && \
pecl channel-update pecl.php.net
#
#--------------------------------------------------------------------------
# Mandatory Software's Installation
#--------------------------------------------------------------------------
#
# Mandatory Software's such as ("mcrypt", "pdo_mysql", "libssl-dev", ....)
# are installed on the base image 'laradock/php-fpm' image. If you want
# to add more Software's or remove existing one, you need to edit the
# base image (https://github.com/Laradock/php-fpm).
#
#
#--------------------------------------------------------------------------
# Optional Software's Installation
#--------------------------------------------------------------------------
#
# Optional Software's will only be installed if you set them to `true`
# in the `docker-compose.yml` before the build.
# Example:
# - INSTALL_ZIP_ARCHIVE=true
#
###########################################################################
# SOAP:
###########################################################################
ARG INSTALL_SOAP=false
RUN if [ ${INSTALL_SOAP} = true ]; then \
# Install the soap extension
rm /etc/apt/preferences.d/no-debian-php && \
apt-get -y install libxml2-dev php-soap && \
docker-php-ext-install soap \
;fi
###########################################################################
# pgsql
###########################################################################
ARG INSTALL_PGSQL=false
RUN if [ ${INSTALL_PGSQL} = true ]; then \
# Install the pgsql extension
docker-php-ext-install pgsql \
;fi
###########################################################################
# pgsql client
###########################################################################
ARG INSTALL_PG_CLIENT=false
RUN if [ ${INSTALL_PG_CLIENT} = true ]; then \
# Create folders if not exists (https://github.com/tianon/docker-brew-debian/issues/65)
mkdir -p /usr/share/man/man1 && \
mkdir -p /usr/share/man/man7 && \
# Install the pgsql client
apt-get install -y postgresql-client \
;fi
###########################################################################
# xDebug:
###########################################################################
ARG INSTALL_XDEBUG=false
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
# Install the xdebug extension
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
pecl install xdebug-2.5.5; \
else \
pecl install xdebug; \
fi && \
docker-php-ext-enable xdebug \
;fi
# Copy xdebug configuration for remote debugging
COPY ./xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
###########################################################################
# Blackfire:
###########################################################################
ARG INSTALL_BLACKFIRE=false
RUN if [ ${INSTALL_XDEBUG} = false -a ${INSTALL_BLACKFIRE} = true ]; then \
version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \
&& curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/linux/amd64/$version \
&& tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp \
&& mv /tmp/blackfire-*.so $(php -r "echo ini_get('extension_dir');")/blackfire.so \
&& printf "extension=blackfire.so\nblackfire.agent_socket=tcp://blackfire:8707\n" > $PHP_INI_DIR/conf.d/blackfire.ini \
;fi
###########################################################################
# PHP REDIS EXTENSION
###########################################################################
ARG INSTALL_PHPREDIS=false
RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
# Install Php Redis Extension
printf "\n" | pecl install -o -f redis \
&& rm -rf /tmp/pear \
&& docker-php-ext-enable redis \
;fi
###########################################################################
# Swoole EXTENSION
###########################################################################
ARG INSTALL_SWOOLE=false
RUN if [ ${INSTALL_SWOOLE} = true ]; then \
# Install Php Swoole Extension
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
pecl install swoole-2.0.11; \
else \
pecl install swoole; \
fi && \
docker-php-ext-enable swoole \
;fi
###########################################################################
# MongoDB:
###########################################################################
ARG INSTALL_MONGO=false
RUN if [ ${INSTALL_MONGO} = true ]; then \
# Install the mongodb extension
pecl install mongodb && \
docker-php-ext-enable mongodb \
;fi
###########################################################################
# AMQP:
###########################################################################
ARG INSTALL_AMQP=false
RUN if [ ${INSTALL_AMQP} = true ]; then \
apt-get install librabbitmq-dev -y && \
# Install the amqp extension
pecl install amqp && \
docker-php-ext-enable amqp \
;fi
###########################################################################
# ZipArchive:
###########################################################################
ARG INSTALL_ZIP_ARCHIVE=false
RUN if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \
# Install the zip extension
docker-php-ext-install zip \
;fi
###########################################################################
# pcntl
###########################################################################
ARG INSTALL_PCNTL=false
RUN if [ ${INSTALL_PCNTL} = true]; then \
# Installs pcntl, helpful for running Horizon
docker-php-ext-install pcntl \
;fi
###########################################################################
# bcmath:
###########################################################################
ARG INSTALL_BCMATH=false
RUN if [ ${INSTALL_BCMATH} = true ]; then \
# Install the bcmath extension
docker-php-ext-install bcmath \
;fi
###########################################################################
# GMP (GNU Multiple Precision):
###########################################################################
ARG INSTALL_GMP=false
RUN if [ ${INSTALL_GMP} = true ]; then \
# Install the GMP extension
apt-get install -y libgmp-dev && \
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h \
;fi && \
docker-php-ext-install gmp \
;fi
###########################################################################
# PHP Memcached:
###########################################################################
ARG INSTALL_MEMCACHED=false
RUN if [ ${INSTALL_MEMCACHED} = true ]; then \
# Install the php memcached extension
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
curl -L -o /tmp/memcached.tar.gz "https://github.com/php-memcached-dev/php-memcached/archive/2.2.0.tar.gz"; \
else \
curl -L -o /tmp/memcached.tar.gz "https://github.com/php-memcached-dev/php-memcached/archive/php7.tar.gz"; \
fi \
&& mkdir -p memcached \
&& tar -C memcached -zxvf /tmp/memcached.tar.gz --strip 1 \
&& ( \
cd memcached \
&& phpize \
&& ./configure \
&& make -j$(nproc) \
&& make install \
) \
&& rm -r memcached \
&& rm /tmp/memcached.tar.gz \
&& docker-php-ext-enable memcached \
;fi
###########################################################################
# Exif:
###########################################################################
ARG INSTALL_EXIF=false
RUN if [ ${INSTALL_EXIF} = true ]; then \
# Enable Exif PHP extentions requirements
docker-php-ext-install exif \
;fi
###########################################################################
# PHP Aerospike:
###########################################################################
USER root
ARG INSTALL_AEROSPIKE=false
ARG AEROSPIKE_PHP_REPOSITORY
RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
# Fix dependencies for PHPUnit within aerospike extension
apt-get -y install sudo wget && \
# Install the php aerospike extension
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
curl -L -o /tmp/aerospike-client-php.tar.gz https://github.com/aerospike/aerospike-client-php5/archive/master.tar.gz; \
else \
curl -L -o /tmp/aerospike-client-php.tar.gz ${AEROSPIKE_PHP_REPOSITORY}; \
fi \
&& mkdir -p aerospike-client-php \
&& tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \
&& \
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
( \
cd aerospike-client-php/src/aerospike \
&& phpize \
&& ./build.sh \
&& make install \
) \
else \
( \
cd aerospike-client-php/src \
&& phpize \
&& ./build.sh \
&& make install \
) \
fi \
&& rm /tmp/aerospike-client-php.tar.gz \
&& docker-php-ext-enable aerospike \
;fi
###########################################################################
# Opcache:
###########################################################################
ARG INSTALL_OPCACHE=false
RUN if [ ${INSTALL_OPCACHE} = true ]; then \
docker-php-ext-install opcache \
;fi
# Copy opcache configration
COPY ./opcache.ini /usr/local/etc/php/conf.d/opcache.ini
###########################################################################
# Mysqli Modifications:
###########################################################################
ARG INSTALL_MYSQLI=false
RUN if [ ${INSTALL_MYSQLI} = true ]; then \
docker-php-ext-install mysqli \
;fi
###########################################################################
# Tokenizer Modifications:
###########################################################################
ARG INSTALL_TOKENIZER=false
RUN if [ ${INSTALL_TOKENIZER} = true ]; then \
docker-php-ext-install tokenizer \
;fi
###########################################################################
# Human Language and Character Encoding Support:
###########################################################################
ARG INSTALL_INTL=false
RUN if [ ${INSTALL_INTL} = true ]; then \
# Install intl and requirements
apt-get install -y zlib1g-dev libicu-dev g++ && \
docker-php-ext-configure intl && \
docker-php-ext-install intl \
;fi
###########################################################################
# GHOSTSCRIPT:
###########################################################################
ARG INSTALL_GHOSTSCRIPT=false
RUN if [ ${INSTALL_GHOSTSCRIPT} = true ]; then \
# Install the ghostscript extension
# for PDF editing
apt-get install -y \
poppler-utils \
ghostscript \
;fi
###########################################################################
# LDAP:
###########################################################################
ARG INSTALL_LDAP=false
RUN if [ ${INSTALL_LDAP} = true ]; then \
apt-get install -y libldap2-dev && \
docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \
docker-php-ext-install ldap \
;fi
###########################################################################
# SQL SERVER:
###########################################################################
ARG INSTALL_MSSQL=false
RUN set -eux; if [ ${INSTALL_MSSQL} = true ]; then \
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
apt-get -y install freetds-dev libsybdb5 \
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.so /usr/lib/libsybdb.so \
&& docker-php-ext-install mssql pdo_dblib \
&& php -m | grep -q 'mssql' \
&& php -m | grep -q 'pdo_dblib' \
;else \
###########################################################################
# Ref from https://github.com/Microsoft/msphpsql/wiki/Dockerfile-for-adding-pdo_sqlsrv-and-sqlsrv-to-official-php-image
###########################################################################
# Add Microsoft repo for Microsoft ODBC Driver 13 for Linux
apt-get install -y apt-transport-https gnupg \
&& curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
&& curl https://packages.microsoft.com/config/debian/8/prod.list > /etc/apt/sources.list.d/mssql-release.list \
&& apt-get update -yqq \
# Install Dependencies
&& ACCEPT_EULA=Y apt-get install -y unixodbc unixodbc-dev libgss3 odbcinst msodbcsql locales \
&& echo "en_US.UTF-8 UTF-8" > /etc/locale.gen \
&& locale-gen \
# Install pdo_sqlsrv and sqlsrv from PECL. Replace pdo_sqlsrv-4.1.8preview with preferred version.
&& pecl install pdo_sqlsrv-4.1.8preview sqlsrv-4.1.8preview \
&& docker-php-ext-enable pdo_sqlsrv sqlsrv \
&& php -m | grep -q 'pdo_sqlsrv' \
&& php -m | grep -q 'sqlsrv' \
;fi \
;fi
###########################################################################
# Image optimizers:
###########################################################################
USER root
ARG INSTALL_IMAGE_OPTIMIZERS=false
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
RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \
apt-get install -y libmagickwand-dev imagemagick && \
pecl install imagick && \
docker-php-ext-enable imagick \
;fi
###########################################################################
# IMAP:
###########################################################################
ARG INSTALL_IMAP=false
RUN if [ ${INSTALL_IMAP} = true ]; then \
apt-get install -y libc-client-dev libkrb5-dev && \
rm -r /var/lib/apt/lists/* && \
docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \
docker-php-ext-install imap \
;fi
###########################################################################
# Check PHP version:
###########################################################################
ARG PHP_VERSION=${PHP_VERSION}
RUN php -v | head -n 1 | grep -q "PHP ${PHP_VERSION}."
#
#--------------------------------------------------------------------------
# Final Touch
#--------------------------------------------------------------------------
#
COPY ./laravel.ini /usr/local/etc/php/conf.d
COPY ./xlaravel.pool.conf /usr/local/etc/php-fpm.d/
USER root
# Clean up
RUN apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \
rm /var/log/lastlog /var/log/faillog
RUN usermod -u 1000 www-data
WORKDIR /var/www
CMD ["php-fpm"]
EXPOSE 9000

View File

@ -1,324 +0,0 @@
#
#--------------------------------------------------------------------------
# Image Setup
#--------------------------------------------------------------------------
#
# To edit the 'php-fpm' base Image, visit its repository on Github
# https://github.com/Laradock/php-fpm
#
# To change its version, see the available Tags on the Docker Hub:
# https://hub.docker.com/r/laradock/php-fpm/tags/
#
# Note: Base Image name format {image-tag}-{php-version}
#
FROM laradock/php-fpm:1.4-56
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
#
#--------------------------------------------------------------------------
# Mandatory Software's Installation
#--------------------------------------------------------------------------
#
# Mandatory Software's such as ("mcrypt", "pdo_mysql", "libssl-dev", ....)
# are installed on the base image 'laradock/php-fpm' image. If you want
# to add more Software's or remove existing one, you need to edit the
# base image (https://github.com/Laradock/php-fpm).
#
#
#--------------------------------------------------------------------------
# Optional Software's Installation
#--------------------------------------------------------------------------
#
# Optional Software's will only be installed if you set them to `true`
# in the `docker-compose.yml` before the build.
# Example:
# - INSTALL_ZIP_ARCHIVE=true
#
#####################################
# SOAP:
#####################################
ARG INSTALL_SOAP=false
RUN if [ ${INSTALL_SOAP} = true ]; then \
# Install the soap extension
apt-get update -yqq && \
apt-get -y install libxml2-dev php-soap && \
docker-php-ext-install soap \
;fi
#####################################
# pgsql
#####################################
ARG INSTALL_PGSQL=false
RUN if [ ${INSTALL_PGSQL} = true ]; then \
# Install the pgsql extension
apt-get update -yqq && \
docker-php-ext-install pgsql \
;fi
#####################################
# pgsql client
#####################################
ARG INSTALL_PG_CLIENT=false
RUN if [ ${INSTALL_PG_CLIENT} = true ]; then \
# Install the pgsql clint
apt-get update -yqq && \
apt-get install -y postgresql-client \
;fi
#####################################
# xDebug:
#####################################
ARG INSTALL_XDEBUG=false
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
# Install the xdebug extension
# pecl install xdebug && docker-php-ext-enable xdebug \
# workaround for https://github.com/docker-library/php/issues/133
# - Xdebug breaks on access to class static property
apt-get install -y php5-xdebug && \
echo "zend_extension=/usr/lib/php5/20131226/xdebug.so" > /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
;fi
# Copy xdebug configration for remote debugging
COPY ./xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
#####################################
# Blackfire:
#####################################
ARG INSTALL_BLACKFIRE=false
RUN if [ ${INSTALL_XDEBUG} = false -a ${INSTALL_BLACKFIRE} = true ]; then \
version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \
&& curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/linux/amd64/$version \
&& tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp \
&& mv /tmp/blackfire-*.so $(php -r "echo ini_get('extension_dir');")/blackfire.so \
&& printf "extension=blackfire.so\nblackfire.agent_socket=tcp://blackfire:8707\n" > $PHP_INI_DIR/conf.d/blackfire.ini \
;fi
#####################################
# PHP REDIS EXTENSION FOR PHP 5
#####################################
ARG INSTALL_PHPREDIS=false
RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
# Install Php Redis Extension
printf "\n" | pecl install -o -f redis \
&& rm -rf /tmp/pear \
&& docker-php-ext-enable redis \
;fi
#####################################
# Swoole EXTENSION FOR PHP 5
#####################################
ARG INSTALL_SWOOLE=false
RUN if [ ${INSTALL_SWOOLE} = true ]; then \
# Install Php Swoole Extension
pecl install swoole \
&& docker-php-ext-enable swoole \
;fi
#####################################
# MongoDB:
#####################################
ARG INSTALL_MONGO=false
RUN if [ ${INSTALL_MONGO} = true ]; then \
# Install the mongodb extension
pecl install mongodb && \
docker-php-ext-enable mongodb \
;fi
#####################################
# ZipArchive:
#####################################
ARG INSTALL_ZIP_ARCHIVE=false
RUN if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \
# Install the zip extension
docker-php-ext-install zip \
;fi
#####################################
# bcmath:
#####################################
ARG INSTALL_BCMATH=false
RUN if [ ${INSTALL_BCMATH} = true ]; then \
# Install the bcmath extension
docker-php-ext-install bcmath \
;fi
#####################################
# PHP Memcached:
#####################################
ARG INSTALL_MEMCACHED=false
RUN if [ ${INSTALL_MEMCACHED} = true ]; then \
# Install the php memcached extension
pecl install memcached-2.2.0 && \
docker-php-ext-enable memcached \
;fi
#####################################
# Exif:
#####################################
ARG INSTALL_EXIF=false
RUN if [ ${INSTALL_EXIF} = true ]; then \
# Enable Exif PHP extentions requirements
docker-php-ext-install exif \
;fi
#####################################
# PHP Aerospike:
#####################################
ARG INSTALL_AEROSPIKE=false
ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE}
# Copy aerospike configration for remote debugging
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" \
&& 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 \
&& phpize \
&& ./build.sh \
&& make install \
) \
&& rm /tmp/aerospike-client-php.tar.gz \
&& docker-php-ext-enable aerospike \
;fi
#####################################
# Opcache:
#####################################
ARG INSTALL_OPCACHE=false
RUN if [ ${INSTALL_OPCACHE} = true ]; then \
docker-php-ext-install opcache \
;fi
# Copy opcache configration
COPY ./opcache.ini /usr/local/etc/php/conf.d/opcache.ini
#####################################
# Mysqli Modifications:
#####################################
ARG INSTALL_MYSQLI=false
# MySQL extenstion is available for Php5.6 and lower only
COPY ./mysql.ini /usr/local/etc/php/conf.d/mysql.ini
RUN if [ ${INSTALL_MYSQLI} = true ]; then \
docker-php-ext-install mysql && \
docker-php-ext-install mysqli \
;fi
#####################################
# Tokenizer Modifications:
#####################################
ARG INSTALL_TOKENIZER=false
RUN if [ ${INSTALL_TOKENIZER} = true ]; then \
docker-php-ext-install tokenizer \
;fi
#####################################
# Human Language and Character Encoding Support:
#####################################
ARG INSTALL_INTL=false
RUN if [ ${INSTALL_INTL} = true ]; then \
# Install intl and requirements
apt-get install -y zlib1g-dev libicu-dev g++ && \
docker-php-ext-configure intl && \
docker-php-ext-install intl \
;fi
#####################################
# GHOSTSCRIPT:
#####################################
ARG INSTALL_GHOSTSCRIPT=false
RUN if [ ${INSTALL_GHOSTSCRIPT} = true ]; then \
# Install the ghostscript extension for PDF editing
apt-get update -yqq && \
apt-get install -y poppler-utils ghostscript \
;fi
#####################################
# LDAP:
#####################################
ARG INSTALL_LDAP=false
RUN if [ ${INSTALL_LDAP} = true ]; then \
apt-get update -yqq && \
apt-get install -y libldap2-dev && \
docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \
docker-php-ext-install ldap \
;fi
#####################################
# SQL SERVER:
#####################################
ARG INSTALL_MSSQL=false
ENV INSTALL_MSSQL ${INSTALL_MSSQL}
RUN if [ ${INSTALL_MSSQL} = true ]; then \
apt-get -y install php5-sybase freetds-bin && \
cp /usr/lib/php5/20131226/*.so /usr/local/lib/php/extensions/no-debug-non-zts-20131226/ && \
docker-php-ext-enable mssql pdo pdo_dblib \
;fi
#####################################
# Image optimizers:
#####################################
USER root
ARG INSTALL_IMAGE_OPTIMIZERS=false
ENV INSTALL_IMAGE_OPTIMIZERS ${INSTALL_IMAGE_OPTIMIZERS}
RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \
apt-get update -yqq && \
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
#--------------------------------------------------------------------------
#
ADD ./laravel.ini /usr/local/etc/php/conf.d
ADD ./xlaravel.pool.conf /usr/local/etc/php-fpm.d/
#RUN rm -r /var/lib/apt/lists/*
RUN usermod -u 1000 www-data
WORKDIR /var/www
CMD ["php-fpm"]
EXPOSE 9000

View File

@ -1,348 +0,0 @@
#
#--------------------------------------------------------------------------
# Image Setup
#--------------------------------------------------------------------------
#
# To edit the 'php-fpm' base Image, visit its repository on Github
# https://github.com/Laradock/php-fpm
#
# To change its version, see the available Tags on the Docker Hub:
# https://hub.docker.com/r/laradock/php-fpm/tags/
#
# Note: Base Image name format {image-tag}-{php-version}
#
FROM laradock/php-fpm:1.4-70
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
#
#--------------------------------------------------------------------------
# Mandatory Software's Installation
#--------------------------------------------------------------------------
#
# Mandatory Software's such as ("mcrypt", "pdo_mysql", "libssl-dev", ....)
# are installed on the base image 'laradock/php-fpm' image. If you want
# to add more Software's or remove existing one, you need to edit the
# base image (https://github.com/Laradock/php-fpm).
#
#
#--------------------------------------------------------------------------
# Optional Software's Installation
#--------------------------------------------------------------------------
#
# Optional Software's will only be installed if you set them to `true`
# in the `docker-compose.yml` before the build.
# Example:
# - INSTALL_ZIP_ARCHIVE=true
#
#####################################
# SOAP:
#####################################
ARG INSTALL_SOAP=false
RUN if [ ${INSTALL_SOAP} = true ]; then \
# Install the soap extension
apt-get update -yqq && \
apt-get -y install libxml2-dev php-soap && \
docker-php-ext-install soap \
;fi
#####################################
# pgsql
#####################################
ARG INSTALL_PGSQL=false
RUN if [ ${INSTALL_PGSQL} = true ]; then \
# Install the pgsql extension
apt-get update -yqq && \
docker-php-ext-install pgsql \
;fi
#####################################
# pgsql client
#####################################
ARG INSTALL_PG_CLIENT=false
RUN if [ ${INSTALL_PG_CLIENT} = true ]; then \
# Install the pgsql client
apt-get update -yqq && \
apt-get install -y postgresql-client \
;fi
#####################################
# xDebug:
#####################################
ARG INSTALL_XDEBUG=false
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
# Install the xdebug extension
pecl install xdebug && \
docker-php-ext-enable xdebug \
;fi
# Copy xdebug configration for remote debugging
COPY ./xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
#####################################
# Blackfire:
#####################################
ARG INSTALL_BLACKFIRE=false
RUN if [ ${INSTALL_XDEBUG} = false -a ${INSTALL_BLACKFIRE} = true ]; then \
version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \
&& curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/linux/amd64/$version \
&& tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp \
&& mv /tmp/blackfire-*.so $(php -r "echo ini_get('extension_dir');")/blackfire.so \
&& printf "extension=blackfire.so\nblackfire.agent_socket=tcp://blackfire:8707\n" > $PHP_INI_DIR/conf.d/blackfire.ini \
;fi
#####################################
# PHP REDIS EXTENSION FOR PHP 7
#####################################
ARG INSTALL_PHPREDIS=false
RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
# Install Php Redis Extension
printf "\n" | pecl install -o -f redis \
&& rm -rf /tmp/pear \
&& docker-php-ext-enable redis \
;fi
#####################################
# Swoole EXTENSION FOR PHP 7
#####################################
ARG INSTALL_SWOOLE=false
RUN if [ ${INSTALL_SWOOLE} = true ]; then \
# Install Php Swoole Extension
pecl install swoole \
&& docker-php-ext-enable swoole \
;fi
#####################################
# MongoDB:
#####################################
ARG INSTALL_MONGO=false
RUN if [ ${INSTALL_MONGO} = true ]; then \
# Install the mongodb extension
pecl install mongodb && \
docker-php-ext-enable mongodb \
;fi
#####################################
# ZipArchive:
#####################################
ARG INSTALL_ZIP_ARCHIVE=false
RUN if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \
# Install the zip extension
docker-php-ext-install zip \
;fi
#####################################
# bcmath:
#####################################
ARG INSTALL_BCMATH=false
RUN if [ ${INSTALL_BCMATH} = true ]; then \
# Install the bcmath extension
docker-php-ext-install bcmath \
;fi
#####################################
# PHP Memcached:
#####################################
ARG INSTALL_MEMCACHED=false
RUN if [ ${INSTALL_MEMCACHED} = true ]; then \
# Install the php memcached extension
curl -L -o /tmp/memcached.tar.gz "https://github.com/php-memcached-dev/php-memcached/archive/php7.tar.gz" \
&& mkdir -p memcached \
&& tar -C memcached -zxvf /tmp/memcached.tar.gz --strip 1 \
&& ( \
cd memcached \
&& phpize \
&& ./configure \
&& make -j$(nproc) \
&& make install \
) \
&& rm -r memcached \
&& rm /tmp/memcached.tar.gz \
&& docker-php-ext-enable memcached \
;fi
#####################################
# Exif:
#####################################
ARG INSTALL_EXIF=false
RUN if [ ${INSTALL_EXIF} = true ]; then \
# Enable Exif PHP extentions requirements
docker-php-ext-install exif \
;fi
#####################################
# PHP Aerospike:
#####################################
ARG INSTALL_AEROSPIKE=false
ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE}
# Copy aerospike configration for remote debugging
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/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 \
&& phpize \
&& ./build.sh \
&& make install \
) \
&& rm /tmp/aerospike-client-php.tar.gz \
&& docker-php-ext-enable aerospike \
;fi
#####################################
# Opcache:
#####################################
ARG INSTALL_OPCACHE=false
RUN if [ ${INSTALL_OPCACHE} = true ]; then \
docker-php-ext-install opcache \
;fi
# Copy opcache configration
COPY ./opcache.ini /usr/local/etc/php/conf.d/opcache.ini
#####################################
# Mysqli Modifications:
#####################################
ARG INSTALL_MYSQLI=false
RUN if [ ${INSTALL_MYSQLI} = true ]; then \
docker-php-ext-install mysqli \
;fi
#####################################
# Tokenizer Modifications:
#####################################
ARG INSTALL_TOKENIZER=false
RUN if [ ${INSTALL_TOKENIZER} = true ]; then \
docker-php-ext-install tokenizer \
;fi
#####################################
# Human Language and Character Encoding Support:
#####################################
ARG INSTALL_INTL=false
RUN if [ ${INSTALL_INTL} = true ]; then \
# Install intl and requirements
apt-get update -yqq && \
apt-get install -y zlib1g-dev libicu-dev g++ && \
docker-php-ext-configure intl && \
docker-php-ext-install intl \
;fi
#####################################
# GHOSTSCRIPT:
#####################################
ARG INSTALL_GHOSTSCRIPT=false
RUN if [ ${INSTALL_GHOSTSCRIPT} = true ]; then \
# Install the ghostscript extension
# for PDF editing
apt-get update -yqq \
&& apt-get install -y \
poppler-utils \
ghostscript \
;fi
#####################################
# LDAP:
#####################################
ARG INSTALL_LDAP=false
RUN if [ ${INSTALL_LDAP} = true ]; then \
apt-get update -yqq && \
apt-get install -y libldap2-dev && \
docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \
docker-php-ext-install ldap \
;fi
#####################################
# SQL SERVER:
#####################################
ARG INSTALL_MSSQL=false
ENV INSTALL_MSSQL ${INSTALL_MSSQL}
RUN if [ ${INSTALL_MSSQL} = true ]; then \
#####################################
# Ref from https://github.com/Microsoft/msphpsql/wiki/Dockerfile-for-adding-pdo_sqlsrv-and-sqlsrv-to-official-php-image
#####################################
# Add Microsoft repo for Microsoft ODBC Driver 13 for Linux
apt-get update -yqq \
&& apt-get install -y apt-transport-https \
&& curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
&& curl https://packages.microsoft.com/config/debian/8/prod.list > /etc/apt/sources.list.d/mssql-release.list \
&& apt-get update -yqq \
# Install Dependencies
&& ACCEPT_EULA=Y apt-get install -y unixodbc unixodbc-dev libgss3 odbcinst msodbcsql locales \
&& echo "en_US.UTF-8 UTF-8" > /etc/locale.gen \
&& locale-gen \
# Install pdo_sqlsrv and sqlsrv from PECL. Replace pdo_sqlsrv-4.1.8preview with preferred version.
&& pecl install pdo_sqlsrv-4.1.8preview sqlsrv-4.1.8preview \
&& docker-php-ext-enable pdo_sqlsrv sqlsrv \
;fi
#####################################
# Image optimizers:
#####################################
USER root
ARG INSTALL_IMAGE_OPTIMIZERS=false
ENV INSTALL_IMAGE_OPTIMIZERS ${INSTALL_IMAGE_OPTIMIZERS}
RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \
apt-get update -yqq && \
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
#--------------------------------------------------------------------------
#
ADD ./laravel.ini /usr/local/etc/php/conf.d/
ADD ./xlaravel.pool.conf /usr/local/etc/php-fpm.d/
#RUN rm -r /var/lib/apt/lists/*
RUN usermod -u 1000 www-data
WORKDIR /var/www
CMD ["php-fpm"]
EXPOSE 9000

View File

@ -1,355 +0,0 @@
#
#--------------------------------------------------------------------------
# Image Setup
#--------------------------------------------------------------------------
#
# To edit the 'php-fpm' base Image, visit its repository on Github
# https://github.com/Laradock/php-fpm
#
# To change its version, see the available Tags on the Docker Hub:
# https://hub.docker.com/r/laradock/php-fpm/tags/
#
# Note: Base Image name format {image-tag}-{php-version}
#
FROM laradock/php-fpm:1.4-71
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
#
#--------------------------------------------------------------------------
# Mandatory Software's Installation
#--------------------------------------------------------------------------
#
# Mandatory Software's such as ("mcrypt", "pdo_mysql", "libssl-dev", ....)
# are installed on the base image 'laradock/php-fpm' image. If you want
# to add more Software's or remove existing one, you need to edit the
# base image (https://github.com/Laradock/php-fpm).
#
#
#--------------------------------------------------------------------------
# Optional Software's Installation
#--------------------------------------------------------------------------
#
# Optional Software's will only be installed if you set them to `true`
# in the `docker-compose.yml` before the build.
# Example:
# - INSTALL_ZIP_ARCHIVE=true
#
#####################################
# SOAP:
#####################################
ARG INSTALL_SOAP=false
RUN if [ ${INSTALL_SOAP} = true ]; then \
# Install the soap extension
apt-get update -yqq && \
apt-get -y install libxml2-dev php-soap && \
docker-php-ext-install soap \
;fi
#####################################
# pgsql
#####################################
ARG INSTALL_PGSQL=false
RUN if [ ${INSTALL_PGSQL} = true ]; then \
# Install the pgsql extension
apt-get update -yqq && \
docker-php-ext-install pgsql \
;fi
#####################################
# pgsql client
#####################################
ARG INSTALL_PG_CLIENT=false
RUN if [ ${INSTALL_PG_CLIENT} = true ]; then \
# Install the pgsql client
apt-get update -yqq && \
apt-get install -y postgresql-client \
;fi
#####################################
# xDebug:
#####################################
ARG INSTALL_XDEBUG=false
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
# Install the xdebug extension
pecl install xdebug && \
docker-php-ext-enable xdebug \
;fi
# Copy xdebug configuration for remote debugging
COPY ./xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
#####################################
# Blackfire:
#####################################
ARG INSTALL_BLACKFIRE=false
RUN if [ ${INSTALL_XDEBUG} = false -a ${INSTALL_BLACKFIRE} = true ]; then \
version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \
&& curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/linux/amd64/$version \
&& tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp \
&& mv /tmp/blackfire-*.so $(php -r "echo ini_get('extension_dir');")/blackfire.so \
&& printf "extension=blackfire.so\nblackfire.agent_socket=tcp://blackfire:8707\n" > $PHP_INI_DIR/conf.d/blackfire.ini \
;fi
#####################################
# PHP REDIS EXTENSION FOR PHP 7.0
#####################################
ARG INSTALL_PHPREDIS=false
RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
# Install Php Redis Extension
printf "\n" | pecl install -o -f redis \
&& rm -rf /tmp/pear \
&& docker-php-ext-enable redis \
;fi
#####################################
# Swoole EXTENSION FOR PHP 7
#####################################
ARG INSTALL_SWOOLE=false
RUN if [ ${INSTALL_SWOOLE} = true ]; then \
# Install Php Swoole Extension
pecl install swoole \
&& docker-php-ext-enable swoole \
;fi
#####################################
# MongoDB:
#####################################
ARG INSTALL_MONGO=false
RUN if [ ${INSTALL_MONGO} = true ]; then \
# Install the mongodb extension
pecl install mongodb && \
docker-php-ext-enable mongodb \
;fi
#####################################
# ZipArchive:
#####################################
ARG INSTALL_ZIP_ARCHIVE=false
RUN if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \
# Install the zip extension
docker-php-ext-install zip \
;fi
#####################################
# bcmath:
#####################################
ARG INSTALL_BCMATH=false
RUN if [ ${INSTALL_BCMATH} = true ]; then \
# Install the bcmath extension
docker-php-ext-install bcmath \
;fi
#####################################
# PHP Memcached:
#####################################
ARG INSTALL_MEMCACHED=false
RUN if [ ${INSTALL_MEMCACHED} = true ]; then \
# Install the php memcached extension
curl -L -o /tmp/memcached.tar.gz "https://github.com/php-memcached-dev/php-memcached/archive/php7.tar.gz" \
&& mkdir -p memcached \
&& tar -C memcached -zxvf /tmp/memcached.tar.gz --strip 1 \
&& ( \
cd memcached \
&& phpize \
&& ./configure \
&& make -j$(nproc) \
&& make install \
) \
&& rm -r memcached \
&& rm /tmp/memcached.tar.gz \
&& docker-php-ext-enable memcached \
;fi
#####################################
# Exif:
#####################################
ARG INSTALL_EXIF=false
RUN if [ ${INSTALL_EXIF} = true ]; then \
# Enable Exif PHP extentions requirements
docker-php-ext-install exif \
;fi
#####################################
# PHP Aerospike:
#####################################
ARG INSTALL_AEROSPIKE=false
ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE}
# Copy aerospike configration for remote debugging
COPY ./aerospike.ini /usr/local/etc/php/conf.d/aerospike.ini
RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
# Fix dependencies for PHPUnit within aerospike extension
apt-get update -yqq && \
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/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 \
&& phpize \
&& ./build.sh \
&& make install \
) \
&& rm /tmp/aerospike-client-php.tar.gz \
;fi
RUN if [ ${INSTALL_AEROSPIKE} = false ]; then \
rm /usr/local/etc/php/conf.d/aerospike.ini \
;fi
#####################################
# Opcache:
#####################################
ARG INSTALL_OPCACHE=false
RUN if [ ${INSTALL_OPCACHE} = true ]; then \
docker-php-ext-install opcache \
;fi
# Copy opcache configration
COPY ./opcache.ini /usr/local/etc/php/conf.d/opcache.ini
#####################################
# Mysqli Modifications:
#####################################
ARG INSTALL_MYSQLI=false
RUN if [ ${INSTALL_MYSQLI} = true ]; then \
docker-php-ext-install mysqli \
;fi
#####################################
# Tokenizer Modifications:
#####################################
ARG INSTALL_TOKENIZER=false
RUN if [ ${INSTALL_TOKENIZER} = true ]; then \
docker-php-ext-install tokenizer \
;fi
#####################################
# Human Language and Character Encoding Support:
#####################################
ARG INSTALL_INTL=false
RUN if [ ${INSTALL_INTL} = true ]; then \
# Install intl and requirements
apt-get update -yqq && \
apt-get install -y zlib1g-dev libicu-dev g++ && \
docker-php-ext-configure intl && \
docker-php-ext-install intl \
;fi
#####################################
# GHOSTSCRIPT:
#####################################
ARG INSTALL_GHOSTSCRIPT=false
RUN if [ ${INSTALL_GHOSTSCRIPT} = true ]; then \
# Install the ghostscript extension
# for PDF editing
apt-get update -yqq \
&& apt-get install -y \
poppler-utils \
ghostscript \
;fi
#####################################
# LDAP:
#####################################
ARG INSTALL_LDAP=false
RUN if [ ${INSTALL_LDAP} = true ]; then \
apt-get update -yqq && \
apt-get install -y libldap2-dev && \
docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \
docker-php-ext-install ldap \
;fi
#####################################
# SQL SERVER:
#####################################
ARG INSTALL_MSSQL=false
ENV INSTALL_MSSQL ${INSTALL_MSSQL}
RUN if [ ${INSTALL_MSSQL} = true ]; then \
#####################################
# Ref from https://github.com/Microsoft/msphpsql/wiki/Dockerfile-for-adding-pdo_sqlsrv-and-sqlsrv-to-official-php-image
#####################################
# Add Microsoft repo for Microsoft ODBC Driver 13 for Linux
apt-get update -yqq && apt-get install -y apt-transport-https \
&& curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
&& curl https://packages.microsoft.com/config/debian/8/prod.list > /etc/apt/sources.list.d/mssql-release.list \
&& apt-get update -yqq \
# Install Dependencies
&& ACCEPT_EULA=Y apt-get install -y unixodbc unixodbc-dev libgss3 odbcinst msodbcsql locales \
&& echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && locale-gen \
# Install pdo_sqlsrv and sqlsrv from PECL. Replace pdo_sqlsrv-4.1.8preview with preferred version.
&& pecl install pdo_sqlsrv-4.1.8preview sqlsrv-4.1.8preview \
&& docker-php-ext-enable pdo_sqlsrv sqlsrv \
;fi
#####################################
# Image optimizers:
#####################################
USER root
ARG INSTALL_IMAGE_OPTIMIZERS=false
ENV INSTALL_IMAGE_OPTIMIZERS ${INSTALL_IMAGE_OPTIMIZERS}
RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \
apt-get update -yqq && \
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
#--------------------------------------------------------------------------
#
ADD ./laravel.ini /usr/local/etc/php/conf.d
ADD ./xlaravel.pool.conf /usr/local/etc/php-fpm.d/
#RUN rm -r /var/lib/apt/lists/*
RUN usermod -u 1000 www-data
WORKDIR /var/www
CMD ["php-fpm"]
EXPOSE 9000

View File

@ -4,10 +4,13 @@ log_errors=On
; Maximum amount of memory a script may consume (128MB) ; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit ; http://php.net/memory-limit
memory_limit = 128M memory_limit = 256M
; Maximum allowed size for uploaded files. ; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize ; http://php.net/upload-max-filesize
upload_max_filesize = 20M upload_max_filesize = 20M
; Sets max size of post data allowed. ; Sets max size of post data allowed.
; http://php.net/post-max-size ; http://php.net/post-max-size
post_max_size = 20M post_max_size = 20M
max_execution_time=600
default_socket_timeout=3600
request_terminate_timeout=600

View File

@ -380,7 +380,7 @@ expose_php = On
; Maximum execution time of each script, in seconds ; Maximum execution time of each script, in seconds
; http://php.net/max-execution-time ; http://php.net/max-execution-time
; Note: This directive is hardcoded to 0 for the CLI SAPI ; Note: This directive is hardcoded to 0 for the CLI SAPI
max_execution_time = 30 max_execution_time = 600
; Maximum amount of time each script may spend parsing request data. It's a good ; Maximum amount of time each script may spend parsing request data. It's a good
; idea to limit this time on productions servers in order to eliminate unexpectedly ; idea to limit this time on productions servers in order to eliminate unexpectedly
@ -390,7 +390,7 @@ max_execution_time = 30
; Development Value: 60 (60 seconds) ; Development Value: 60 (60 seconds)
; Production Value: 60 (60 seconds) ; Production Value: 60 (60 seconds)
; http://php.net/max-input-time ; http://php.net/max-input-time
max_input_time = 60 max_input_time = 120
; Maximum input variable nesting level ; Maximum input variable nesting level
; http://php.net/max-input-nesting-level ; http://php.net/max-input-nesting-level
@ -401,7 +401,7 @@ max_input_time = 60
; Maximum amount of memory a script may consume (128MB) ; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit ; http://php.net/memory-limit
memory_limit = 128M memory_limit = 256M
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Error handling and logging ; ; Error handling and logging ;

View File

@ -380,7 +380,7 @@ expose_php = On
; Maximum execution time of each script, in seconds ; Maximum execution time of each script, in seconds
; http://php.net/max-execution-time ; http://php.net/max-execution-time
; Note: This directive is hardcoded to 0 for the CLI SAPI ; Note: This directive is hardcoded to 0 for the CLI SAPI
max_execution_time = 30 max_execution_time = 600
; Maximum amount of time each script may spend parsing request data. It's a good ; Maximum amount of time each script may spend parsing request data. It's a good
; idea to limit this time on productions servers in order to eliminate unexpectedly ; idea to limit this time on productions servers in order to eliminate unexpectedly
@ -390,7 +390,7 @@ max_execution_time = 30
; Development Value: 60 (60 seconds) ; Development Value: 60 (60 seconds)
; Production Value: 60 (60 seconds) ; Production Value: 60 (60 seconds)
; http://php.net/max-input-time ; http://php.net/max-input-time
max_input_time = 60 max_input_time = 120
; Maximum input variable nesting level ; Maximum input variable nesting level
; http://php.net/max-input-nesting-level ; http://php.net/max-input-nesting-level
@ -401,7 +401,7 @@ max_input_time = 60
; Maximum amount of memory a script may consume (128MB) ; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit ; http://php.net/memory-limit
memory_limit = 128M memory_limit = 256M
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Error handling and logging ; ; Error handling and logging ;

1918
php-fpm/php72.ini Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,13 +1,20 @@
; NOTE: The actual debug.so extention is NOT SET HERE but rather (/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini) ; NOTE: The actual debug.so extention is NOT SET HERE but rather (/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini)
; xdebug.remote_host=dockerhost
xdebug.remote_connect_back=1
xdebug.remote_port=9000
xdebug.idekey=PHPSTORM
xdebug.remote_autostart=0 xdebug.remote_autostart=0
xdebug.remote_enable=0 xdebug.remote_enable=0
xdebug.remote_connect_back=0
xdebug.cli_color=0 xdebug.cli_color=0
xdebug.profiler_enable=0 xdebug.profiler_enable=0
xdebug.profiler_output_dir="~/xdebug/phpstorm/tmp/profiling"
xdebug.remote_handler=dbgp xdebug.remote_handler=dbgp
xdebug.remote_mode=req xdebug.remote_mode=req
xdebug.remote_port=9000 xdebug.var_display_max_children=-1
xdebug.remote_host=dockerhost xdebug.var_display_max_data=-1
xdebug.idekey=PHPSTORM xdebug.var_display_max_depth=-1

View File

@ -4,9 +4,10 @@
#-------------------------------------------------------------------------- #--------------------------------------------------------------------------
# #
FROM php:7.1-alpine ARG PHP_VERSION=${PHP_VERSION}
FROM php:${PHP_VERSION}-alpine
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me> LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
RUN apk --update add wget \ RUN apk --update add wget \
curl \ curl \
@ -21,8 +22,8 @@ RUN apk --update add wget \
libgsasl-dev \ libgsasl-dev \
supervisor supervisor
RUN docker-php-ext-install mysqli mbstring pdo pdo_mysql mcrypt tokenizer xml RUN docker-php-ext-install mysqli mbstring pdo pdo_mysql tokenizer xml pcntl
RUN pecl channel-update pecl.php.net && pecl install memcached && docker-php-ext-enable memcached RUN pecl channel-update pecl.php.net && pecl install memcached mcrypt-1.0.1 && docker-php-ext-enable memcached
# Install PostgreSQL drivers: # Install PostgreSQL drivers:
ARG INSTALL_PGSQL=false ARG INSTALL_PGSQL=false
@ -56,6 +57,13 @@ ENTRYPOINT ["/usr/bin/supervisord", "-n", "-c", "/etc/supervisord.conf"]
# #
# -- Your awesome modifications go here -- # # -- Your awesome modifications go here -- #
#
#--------------------------------------------------------------------------
# Check PHP version
#--------------------------------------------------------------------------
#
RUN php -v | head -n 1 | grep -q "PHP ${PHP_VERSION}."
# #
#-------------------------------------------------------------------------- #--------------------------------------------------------------------------

View File

@ -1,66 +0,0 @@
#
#--------------------------------------------------------------------------
# Image Setup
#--------------------------------------------------------------------------
#
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
# Install PostgreSQL drivers:
ARG INSTALL_PGSQL=false
RUN if [ ${INSTALL_PGSQL} = true ]; then \
apk --update add postgresql-dev \
&& docker-php-ext-install pdo_pgsql \
;fi
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,9 +1,10 @@
[supervisord] [supervisord]
nodaemon=true nodaemon=true
[program:laravel-worker] [supervisorctl]
process_name=%(program_name)s_%(process_num)02d [inet_http_server]
command=php /var/www/artisan queue:work --sleep=3 --tries=3 --daemon port = 127.0.0.1:9001
autostart=true [rpcinterface:supervisor]
autorestart=true supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
numprocs=8
redirect_stderr=true [include]
files = supervisord.d/*.conf

View File

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

View File

@ -1,6 +1,6 @@
FROM phpmyadmin/phpmyadmin FROM phpmyadmin/phpmyadmin
MAINTAINER Bo-Yi Wu <appleboy.tw@gmail.com> LABEL maintainer="Bo-Yi Wu <appleboy.tw@gmail.com>"
# Add volume for sessions to allow session persistence # Add volume for sessions to allow session persistence
VOLUME /sessions VOLUME /sessions

3
portainer/Dockerfile Normal file
View File

@ -0,0 +1,3 @@
FROM portainer/portainer
LABEL maintainer="luciano@lucianojr.com.br"

View File

@ -1,6 +1,6 @@
FROM mdillon/postgis:latest FROM mdillon/postgis:latest
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me> LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
CMD ["postgres"] CMD ["postgres"]

View File

@ -1,6 +1,6 @@
FROM postgres:alpine FROM postgres:alpine
MAINTAINER Ben M <git@bmagg.com> LABEL maintainer="Ben M <git@bmagg.com>"
CMD ["postgres"] CMD ["postgres"]

View File

@ -1,6 +1,6 @@
FROM rabbitmq FROM rabbitmq
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me> LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
RUN rabbitmq-plugins enable --offline rabbitmq_management RUN rabbitmq-plugins enable --offline rabbitmq_management

View File

@ -1,6 +1,6 @@
FROM redis:latest FROM redis:latest
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me> LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
## For security settings uncomment, make the dir, copy conf, and also start with the conf, to use it ## For security settings uncomment, make the dir, copy conf, and also start with the conf, to use it
#RUN mkdir -p /usr/local/etc/redis #RUN mkdir -p /usr/local/etc/redis

View File

@ -1,6 +1,6 @@
FROM rethinkdb:latest FROM rethinkdb:latest
MAINTAINER Cristian Mello <cristianc.mello@gmail.com> LABEL maintainer="Cristian Mello <cristianc.mello@gmail.com>"
VOLUME /data/rethinkdb_data VOLUME /data/rethinkdb_data

View File

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

14
solr/Dockerfile Normal file
View File

@ -0,0 +1,14 @@
ARG SOLR_VERSION=5.5
FROM solr:${SOLR_VERSION}
ARG SOLR_DATAIMPORTHANDLER_MYSQL=false
ENV SOLR_DATAIMPORTHANDLER_MYSQL ${SOLR_DATAIMPORTHANDLER_MYSQL}
# download mysql connector for dataimporthandler
RUN if [ ${SOLR_DATAIMPORTHANDLER_MYSQL} = true ]; then \
curl -L -o /tmp/mysql_connector.tar.gz "https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.45.tar.gz" \
&& mkdir /opt/solr/contrib/dataimporthandler/lib \
&& tar -zxvf /tmp/mysql_connector.tar.gz -C /opt/solr/contrib/dataimporthandler/lib "mysql-connector-java-5.1.45/mysql-connector-java-5.1.45-bin.jar" --strip-components 1 \
&& rm /tmp/mysql_connector.tar.gz \
;fi

View File

@ -59,11 +59,11 @@ if [ "$1" == "up" ] ; then
print_style "Initializing Docker Compose\n" "info" print_style "Initializing Docker Compose\n" "info"
shift # removing first argument shift # removing first argument
docker-compose -f docker-compose.yml -f docker-compose.sync.yml up -d ${@} docker-compose up -d ${@}
elif [ "$1" == "down" ]; then elif [ "$1" == "down" ]; then
print_style "Stopping Docker Compose\n" "info" print_style "Stopping Docker Compose\n" "info"
docker-compose down docker-compose stop
print_style "Stopping Docker Sync\n" "info" print_style "Stopping Docker Sync\n" "info"
docker-sync stop docker-sync stop
@ -86,4 +86,4 @@ else
print_style "Invalid arguments.\n" "danger" print_style "Invalid arguments.\n" "danger"
display_options display_options
exit 1 exit 1
fi fi

View File

@ -1,6 +1,6 @@
FROM debian:latest FROM debian:latest
MAINTAINER ZeroC0D3 Team<zeroc0d3.team@gmail.com> LABEL maintainer="ZeroC0D3 Team<zeroc0d3.team@gmail.com>"
# Set Environment Variables # Set Environment Variables
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND noninteractive
@ -19,8 +19,8 @@ ENV VARNISH_PORT 6081
ENV BACKEND_HOST localhost ENV BACKEND_HOST localhost
ENV BACKEND_PORT 80 ENV BACKEND_PORT 80
ADD default.vcl /etc/varnish/default.vcl COPY default.vcl /etc/varnish/default.vcl
ADD start.sh /etc/varnish/start.sh COPY start.sh /etc/varnish/start.sh
RUN chmod +x /etc/varnish/start.sh RUN chmod +x /etc/varnish/start.sh

768
workspace/Dockerfile Normal file
View File

@ -0,0 +1,768 @@
#
#--------------------------------------------------------------------------
# Image Setup
#--------------------------------------------------------------------------
#
# To edit the 'workspace' base Image, visit its repository on Github
# https://github.com/Laradock/workspace
#
# To change its version, see the available Tags on the Docker Hub:
# https://hub.docker.com/r/laradock/workspace/tags/
#
# Note: Base Image name format {image-tag}-{php-version}
#
ARG PHP_VERSION=${PHP_VERSION}
FROM laradock/workspace:2.2-${PHP_VERSION}
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
# Start as root
USER root
###########################################################################
# Laradock non-root user:
###########################################################################
# Add a non-root user to prevent files being created with root permissions on host machine.
ARG PUID=1000
ENV PUID ${PUID}
ARG PGID=1000
ENV PGID ${PGID}
# always run apt update when start and after add new source list, then clean up at end.
RUN apt-get update -yqq && \
pecl channel-update pecl.php.net && \
groupadd -g ${PGID} laradock && \
useradd -u ${PUID} -g laradock -m laradock -G docker_env && \
usermod -p "*" laradock
#
#--------------------------------------------------------------------------
# Mandatory Software's Installation
#--------------------------------------------------------------------------
#
# Mandatory Software's such as ("php-cli", "git", "vim", ....) are
# installed on the base image 'laradock/workspace' image. If you want
# to add more Software's or remove existing one, you need to edit the
# base image (https://github.com/Laradock/workspace).
#
#
#--------------------------------------------------------------------------
# Optional Software's Installation
#--------------------------------------------------------------------------
#
# Optional Software's will only be installed if you set them to `true`
# in the `docker-compose.yml` before the build.
# Example:
# - INSTALL_NODE=false
# - ...
#
###########################################################################
# Set Timezone
###########################################################################
ARG TZ=UTC
ENV TZ ${TZ}
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
###########################################################################
# User Aliases
###########################################################################
USER root
COPY ./aliases.sh /root/aliases.sh
COPY ./aliases.sh /home/laradock/aliases.sh
RUN sed -i 's/\r//' /root/aliases.sh && \
sed -i 's/\r//' /home/laradock/aliases.sh && \
chown laradock:laradock /home/laradock/aliases.sh && \
echo "" >> ~/.bashrc && \
echo "# Load Custom Aliases" >> ~/.bashrc && \
echo "source ~/aliases.sh" >> ~/.bashrc && \
echo "" >> ~/.bashrc
USER laradock
RUN echo "" >> ~/.bashrc && \
echo "# Load Custom Aliases" >> ~/.bashrc && \
echo "source ~/aliases.sh" >> ~/.bashrc && \
echo "" >> ~/.bashrc
###########################################################################
# Composer:
###########################################################################
USER root
# Add the composer.json
COPY ./composer.json /home/laradock/.composer/composer.json
# Make sure that ~/.composer belongs to laradock
RUN chown -R laradock:laradock /home/laradock/.composer
USER laradock
# Check if global install need to be ran
ARG COMPOSER_GLOBAL_INSTALL=false
ENV COMPOSER_GLOBAL_INSTALL ${COMPOSER_GLOBAL_INSTALL}
RUN if [ ${COMPOSER_GLOBAL_INSTALL} = true ]; then \
# run the install
composer global install \
;fi
ARG COMPOSER_REPO_PACKAGIST
ENV COMPOSER_REPO_PACKAGIST ${COMPOSER_REPO_PACKAGIST}
RUN if [ ${COMPOSER_REPO_PACKAGIST} ]; then \
composer config -g repo.packagist composer ${COMPOSER_REPO_PACKAGIST} \
;fi
# Export composer vendor path
RUN echo "" >> ~/.bashrc && \
echo 'export PATH="~/.composer/vendor/bin:$PATH"' >> ~/.bashrc
###########################################################################
# Non-root user : PHPUnit path
###########################################################################
# add ./vendor/bin to non-root user's bashrc (needed for phpunit)
USER laradock
RUN echo "" >> ~/.bashrc && \
echo 'export PATH="/var/www/vendor/bin:$PATH"' >> ~/.bashrc
###########################################################################
# Crontab
###########################################################################
USER root
COPY ./crontab /etc/cron.d
RUN chmod -R 644 /etc/cron.d
###########################################################################
# SOAP:
###########################################################################
USER root
ARG INSTALL_SOAP=false
ARG PHP_VERSION=${PHP_VERSION}
RUN if [ ${INSTALL_SOAP} = true ]; then \
# Install the PHP SOAP extension
apt-get -y install libxml2-dev php${PHP_VERSION}-soap \
;fi
###########################################################################
# LDAP:
###########################################################################
ARG INSTALL_LDAP=false
ARG PHP_VERSION=${PHP_VERSION}
RUN if [ ${INSTALL_LDAP} = true ]; then \
apt-get install -y libldap2-dev && \
apt-get install -y php${PHP_VERSION}-ldap \
;fi
###########################################################################
# IMAP:
###########################################################################
ARG INSTALL_IMAP=false
ARG PHP_VERSION=${PHP_VERSION}
RUN if [ ${INSTALL_IMAP} = true ]; then \
apt-get install -y php${PHP_VERSION}-imap \
;fi
###########################################################################
# Subversion:
###########################################################################
USER root
ARG INSTALL_SUBVERSION=false
RUN if [ ${INSTALL_SUBVERSION} = true ]; then \
apt-get install -y subversion \
;fi
###########################################################################
# xDebug:
###########################################################################
USER root
ARG INSTALL_XDEBUG=false
ARG PHP_VERSION=${PHP_VERSION}
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
# Load the xdebug extension only with phpunit commands
apt-get install -y --force-yes php${PHP_VERSION}-xdebug && \
sed -i 's/^;//g' /etc/php/${PHP_VERSION}/cli/conf.d/20-xdebug.ini && \
echo "alias phpunit='php -dzend_extension=xdebug.so /var/www/vendor/bin/phpunit'" >> ~/.bashrc \
;fi
# ADD for REMOTE debugging
COPY ./xdebug.ini /etc/php/${PHP_VERSION}/cli/conf.d/xdebug.ini
###########################################################################
# Blackfire:
###########################################################################
ARG INSTALL_BLACKFIRE=false
ARG BLACKFIRE_CLIENT_ID
ENV BLACKFIRE_CLIENT_ID ${BLACKFIRE_CLIENT_ID}
ARG BLACKFIRE_CLIENT_TOKEN
ENV BLACKFIRE_CLIENT_TOKEN ${BLACKFIRE_CLIENT_TOKEN}
RUN if [ ${INSTALL_XDEBUG} = false -a ${INSTALL_BLACKFIRE} = true ]; then \
curl -L https://packagecloud.io/gpg.key | apt-key add - && \
echo "deb http://packages.blackfire.io/debian any main" | tee /etc/apt/sources.list.d/blackfire.list && \
apt-get update -yqq && \
apt-get install blackfire-agent \
;fi
###########################################################################
# ssh:
###########################################################################
ARG INSTALL_WORKSPACE_SSH=false
COPY insecure_id_rsa /tmp/id_rsa
COPY insecure_id_rsa.pub /tmp/id_rsa.pub
RUN if [ ${INSTALL_WORKSPACE_SSH} = true ]; then \
rm -f /etc/service/sshd/down && \
cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys \
&& cat /tmp/id_rsa.pub >> /root/.ssh/id_rsa.pub \
&& cat /tmp/id_rsa >> /root/.ssh/id_rsa \
&& rm -f /tmp/id_rsa* \
&& chmod 644 /root/.ssh/authorized_keys /root/.ssh/id_rsa.pub \
&& chmod 400 /root/.ssh/id_rsa \
&& cp -rf /root/.ssh /home/laradock \
&& chown -R laradock:laradock /home/laradock/.ssh \
;fi
###########################################################################
# MongoDB:
###########################################################################
ARG INSTALL_MONGO=false
ARG PHP_VERSION=${PHP_VERSION}
RUN if [ ${INSTALL_MONGO} = true ]; then \
# Install the mongodb extension
pecl -q install mongodb && \
echo "extension=mongodb.so" >> /etc/php/${PHP_VERSION}/mods-available/mongodb.ini && \
ln -s /etc/php/${PHP_VERSION}/mods-available/mongodb.ini /etc/php/${PHP_VERSION}/cli/conf.d/30-mongodb.ini \
;fi
###########################################################################
# AMQP:
###########################################################################
ARG INSTALL_AMQP=false
ARG PHP_VERSION=${PHP_VERSION}
RUN if [ ${INSTALL_AMQP} = true ]; then \
apt-get install librabbitmq-dev -y && \
pecl -q install amqp && \
echo "extension=amqp.so" >> /etc/php/${PHP_VERSION}/mods-available/amqp.ini && \
ln -s /etc/php/${PHP_VERSION}/mods-available/amqp.ini /etc/php/${PHP_VERSION}/cli/conf.d/30-amqp.ini \
;fi
###########################################################################
# PHP REDIS EXTENSION
###########################################################################
ARG INSTALL_PHPREDIS=false
ARG PHP_VERSION=${PHP_VERSION}
RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
# Install Php Redis extension
printf "\n" | pecl -q install -o -f redis && \
echo "extension=redis.so" >> /etc/php/${PHP_VERSION}/mods-available/redis.ini && \
phpenmod redis \
;fi
###########################################################################
# Swoole EXTENSION
###########################################################################
ARG INSTALL_SWOOLE=false
ARG PHP_VERSION=${PHP_VERSION}
RUN if [ ${INSTALL_SWOOLE} = true ]; then \
# Install Php Swoole Extension
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
pecl -q install swoole-2.0.11; \
else \
pecl -q install swoole; \
fi && \
echo "extension=swoole.so" >> /etc/php/${PHP_VERSION}/mods-available/swoole.ini && \
ln -s /etc/php/${PHP_VERSION}/mods-available/swoole.ini /etc/php/${PHP_VERSION}/cli/conf.d/20-swoole.ini \
;fi
###########################################################################
# Drush:
###########################################################################
# Deprecated install of Drush 8 and earlier versions.
# Drush 9 and up require Drush to be listed as a composer dependency of your site.
USER root
ARG INSTALL_DRUSH=false
ARG DRUSH_VERSION
ENV DRUSH_VERSION ${DRUSH_VERSION}
RUN if [ ${INSTALL_DRUSH} = true ]; then \
apt-get -y install mysql-client && \
# Install Drush with the phar file.
curl -fsSL -o /usr/local/bin/drush https://github.com/drush-ops/drush/releases/download/${DRUSH_VERSION}/drush.phar | bash && \
chmod +x /usr/local/bin/drush && \
drush core-status \
;fi
###########################################################################
# Drupal Console:
###########################################################################
USER root
ARG INSTALL_DRUPAL_CONSOLE=false
RUN if [ ${INSTALL_DRUPAL_CONSOLE} = true ]; then \
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
###########################################################################
# Node / NVM:
###########################################################################
# Check if NVM needs to be installed
ARG NODE_VERSION=stable
ENV NODE_VERSION ${NODE_VERSION}
ARG INSTALL_NODE=false
ARG NPM_REGISTRY
ENV NPM_REGISTRY ${NPM_REGISTRY}
ENV NVM_DIR /home/laradock/.nvm
RUN if [ ${INSTALL_NODE} = true ]; then \
# Install nvm (A Node Version Manager)
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash && \
. $NVM_DIR/nvm.sh && \
nvm install ${NODE_VERSION} && \
nvm use ${NODE_VERSION} && \
nvm alias ${NODE_VERSION} && \
if [ ${NPM_REGISTRY} ]; then \
npm config set registry ${NPM_REGISTRY} \
;fi && \
npm install -g gulp bower vue-cli \
;fi
# Wouldn't execute when added to the RUN statement in the above block
# Source NVM when loading bash since ~/.profile isn't loaded on non-login shell
RUN if [ ${INSTALL_NODE} = true ]; then \
echo "" >> ~/.bashrc && \
echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.bashrc && \
echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm' >> ~/.bashrc \
;fi
# Add NVM binaries to root's .bashrc
USER root
RUN if [ ${INSTALL_NODE} = true ]; then \
echo "" >> ~/.bashrc && \
echo 'export NVM_DIR="/home/laradock/.nvm"' >> ~/.bashrc && \
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
RUN if [ ${NPM_REGISTRY} ]; then \
. ~/.bashrc && npm config set registry ${NPM_REGISTRY} \
;fi
###########################################################################
# YARN:
###########################################################################
USER laradock
ARG INSTALL_YARN=false
ARG YARN_VERSION=latest
ENV YARN_VERSION ${YARN_VERSION}
RUN if [ ${INSTALL_YARN} = true ]; then \
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" && \
if [ ${YARN_VERSION} = "latest" ]; then \
curl -o- -L https://yarnpkg.com/install.sh | bash; \
else \
curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version ${YARN_VERSION}; \
fi && \
echo "" >> ~/.bashrc && \
echo 'export PATH="$HOME/.yarn/bin:$PATH"' >> ~/.bashrc \
;fi
# Add YARN binaries to root's .bashrc
USER root
RUN if [ ${INSTALL_YARN} = true ]; then \
echo "" >> ~/.bashrc && \
echo 'export YARN_DIR="/home/laradock/.yarn"' >> ~/.bashrc && \
echo 'export PATH="$YARN_DIR/bin:$PATH"' >> ~/.bashrc \
;fi
###########################################################################
# PHP Aerospike:
###########################################################################
USER root
ARG INSTALL_AEROSPIKE=false
ARG PHP_VERSION=${PHP_VERSION}
ARG AEROSPIKE_PHP_REPOSITORY
RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
# Fix dependencies for PHPUnit within aerospike extension
apt-get -y install sudo wget && \
# Install the php aerospike extension
curl -L -o /tmp/aerospike-client-php.tar.gz ${AEROSPIKE_PHP_REPOSITORY} \
&& mkdir -p aerospike-client-php \
&& tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \
&& ( \
cd aerospike-client-php/src \
&& phpize \
&& ./build.sh \
&& make install \
) \
&& rm /tmp/aerospike-client-php.tar.gz \
&& echo 'extension=aerospike.so' >> /etc/php/${PHP_VERSION}/cli/conf.d/aerospike.ini \
&& echo 'aerospike.udf.lua_system_path=/usr/local/aerospike/lua' >> /etc/php/${PHP_VERSION}/cli/conf.d/aerospike.ini \
&& echo 'aerospike.udf.lua_user_path=/usr/local/aerospike/usr-lua' >> /etc/php/${PHP_VERSION}/cli/conf.d/aerospike.ini \
;fi
###########################################################################
# PHP V8JS:
###########################################################################
USER root
ARG INSTALL_V8JS=false
ARG PHP_VERSION=${PHP_VERSION}
RUN if [ ${INSTALL_V8JS} = true ]; then \
# Install the php V8JS extension
add-apt-repository -y ppa:pinepain/libv8-archived \
&& apt-get update -yqq \
&& apt-get install -y php${PHP_VERSION}-xml php${PHP_VERSION}-dev php-pear libv8-5.4 \
&& pecl install v8js \
&& echo "extension=v8js.so" >> /etc/php/${PHP_VERSION}/cli/php.ini \
;fi
###########################################################################
# Laravel Envoy:
###########################################################################
USER laradock
ARG INSTALL_LARAVEL_ENVOY=false
RUN if [ ${INSTALL_LARAVEL_ENVOY} = true ]; then \
# Install the Laravel Envoy
composer global require "laravel/envoy=~1.0" \
;fi
###########################################################################
# Laravel Installer:
###########################################################################
USER root
ARG COMPOSER_REPO_PACKAGIST
ENV COMPOSER_REPO_PACKAGIST ${COMPOSER_REPO_PACKAGIST}
RUN if [ ${COMPOSER_REPO_PACKAGIST} ]; then \
composer config -g repo.packagist composer ${COMPOSER_REPO_PACKAGIST} \
;fi
ARG INSTALL_LARAVEL_INSTALLER=false
RUN if [ ${INSTALL_LARAVEL_INSTALLER} = true ]; then \
# Install the Laravel Installer
composer global require "laravel/installer" \
;fi
###########################################################################
# Deployer:
###########################################################################
USER root
ARG INSTALL_DEPLOYER=false
RUN if [ ${INSTALL_DEPLOYER} = true ]; then \
# Install the Deployer
# Using Phar as currently there is no support for laravel 4 from composer version
# Waiting to be resolved on https://github.com/deployphp/deployer/issues/1552
curl -LO https://deployer.org/deployer.phar && \
mv deployer.phar /usr/local/bin/dep && \
chmod +x /usr/local/bin/dep \
;fi
###########################################################################
# Prestissimo:
###########################################################################
USER laradock
ARG INSTALL_PRESTISSIMO=false
RUN if [ ${INSTALL_PRESTISSIMO} = true ]; then \
# Install Prestissimo
composer global require "hirak/prestissimo" \
;fi
###########################################################################
# Linuxbrew:
###########################################################################
USER root
ARG INSTALL_LINUXBREW=false
RUN if [ ${INSTALL_LINUXBREW} = true ]; then \
# Preparation
apt-get upgrade -y && \
apt-get install -y build-essential make cmake scons curl git \
ruby autoconf automake autoconf-archive \
gettext libtool flex bison \
libbz2-dev libcurl4-openssl-dev \
libexpat-dev libncurses-dev && \
# Install the Linuxbrew
git clone --depth=1 https://github.com/Homebrew/linuxbrew.git ~/.linuxbrew && \
echo "" >> ~/.bashrc && \
echo 'export PKG_CONFIG_PATH"=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.bashrc && \
# Setup linuxbrew
echo 'export LINUXBREWHOME="$HOME/.linuxbrew"' >> ~/.bashrc && \
echo 'export PATH="$LINUXBREWHOME/bin:$PATH"' >> ~/.bashrc && \
echo 'export MANPATH="$LINUXBREWHOME/man:$MANPATH"' >> ~/.bashrc && \
echo 'export PKG_CONFIG_PATH="$LINUXBREWHOME/lib64/pkgconfig:$LINUXBREWHOME/lib/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.bashrc && \
echo 'export LD_LIBRARY_PATH="$LINUXBREWHOME/lib64:$LINUXBREWHOME/lib:$LD_LIBRARY_PATH"' >> ~/.bashrc \
;fi
###########################################################################
# SQL SERVER:
###########################################################################
ARG INSTALL_MSSQL=false
ARG PHP_VERSION=${PHP_VERSION}
RUN set -eux; if [ ${INSTALL_MSSQL} = true ]; then \
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
apt-get -y install php5.6-sybase freetds-bin freetds-common libsybdb5 \
&& php -m | grep -q 'mssql' \
&& php -m | grep -q 'pdo_dblib' \
;else \
###########################################################################
# The following steps were taken from
# https://github.com/Microsoft/msphpsql/wiki/Install-and-configuration
###########################################################################
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - && \
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list && \
apt-get update -yqq && \
ACCEPT_EULA=Y apt-get install -yqq msodbcsql=13.0.1.0-1 mssql-tools=14.0.2.0-1 && \
apt-get install -yqq unixodbc-dev-utf16 && \
ln -sfn /opt/mssql-tools/bin/sqlcmd-13.0.1.0 /usr/bin/sqlcmd && \
ln -sfn /opt/mssql-tools/bin/bcp-13.0.1.0 /usr/bin/bcp && \
ACCEPT_EULA=Y apt-get install -yqq \
unixodbc \
unixodbc-dev \
libgss3 \
odbcinst \
msodbcsql \
locales && \
echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
locale-gen && \
pecl install sqlsrv-4.3.0 pdo_sqlsrv-4.3.0 && \
apt-get install -y locales && \
echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
locale-gen && \
echo "extension=sqlsrv.so" > /etc/php/${PHP_VERSION}/cli/conf.d/20-sqlsrv.ini && \
echo "extension=pdo_sqlsrv.so" > /etc/php/${PHP_VERSION}/cli/conf.d/20-pdo_sqlsrv.ini \
&& php -m | grep -q 'sqlsrv' \
&& php -m | grep -q 'pdo_sqlsrv' \
;fi \
;fi
###########################################################################
# Minio:
###########################################################################
USER root
COPY mc/config.json /root/.mc/config.json
ARG INSTALL_MC=false
RUN if [ ${INSTALL_MC} = true ]; then\
curl -fsSL -o /usr/local/bin/mc https://dl.minio.io/client/mc/release/linux-amd64/mc && \
chmod +x /usr/local/bin/mc \
;fi
###########################################################################
# Image optimizers:
###########################################################################
USER root
ARG INSTALL_IMAGE_OPTIMIZERS=false
RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \
apt-get install -y --force-yes jpegoptim optipng pngquant gifsicle && \
if [ ${INSTALL_NODE} = true ]; then \
. ~/.bashrc && npm install -g svgo \
;fi\
;fi
USER laradock
###########################################################################
# Symfony:
###########################################################################
USER root
ARG INSTALL_SYMFONY=false
RUN if [ ${INSTALL_SYMFONY} = true ]; then \
mkdir -p /usr/local/bin \
&& curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \
&& chmod a+x /usr/local/bin/symfony \
# Symfony 3 alias
&& echo 'alias dev="php bin/console -e=dev"' >> ~/.bashrc \
&& echo 'alias prod="php bin/console -e=prod"' >> ~/.bashrc \
# Symfony 2 alias
# && echo 'alias dev="php app/console -e=dev"' >> ~/.bashrc \
# && echo 'alias prod="php app/console -e=prod"' >> ~/.bashrc \
;fi
###########################################################################
# PYTHON:
###########################################################################
ARG INSTALL_PYTHON=false
RUN if [ ${INSTALL_PYTHON} = true ]; then \
apt-get -y install python python-pip python-dev build-essential \
&& python -m pip install --upgrade pip \
&& python -m pip install --upgrade virtualenv \
;fi
###########################################################################
# ImageMagick:
###########################################################################
USER root
ARG INSTALL_IMAGEMAGICK=false
RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \
apt-get install -y --force-yes imagemagick php-imagick \
;fi
###########################################################################
# Terraform:
###########################################################################
USER root
ARG INSTALL_TERRAFORM=false
RUN if [ ${INSTALL_TERRAFORM} = true ]; then \
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
###########################################################################
# pgsql client
###########################################################################
USER root
ARG INSTALL_PG_CLIENT=false
RUN if [ ${INSTALL_PG_CLIENT} = true ]; then \
# Install the pgsql client
apt-get -y install postgresql-client \
;fi
###########################################################################
# Dusk Dependencies:
###########################################################################
USER root
ARG CHROME_DRIVER_VERSION=stable
ENV CHROME_DRIVER_VERSION ${CHROME_DRIVER_VERSION}
ARG INSTALL_DUSK_DEPS=false
RUN if [ ${INSTALL_DUSK_DEPS} = true ]; then \
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
###########################################################################
# Check PHP version:
###########################################################################
ARG PHP_VERSION=${PHP_VERSION}
RUN php -v | head -n 1 | grep -q "PHP ${PHP_VERSION}."
#
#--------------------------------------------------------------------------
# Final Touch
#--------------------------------------------------------------------------
#
USER root
# Clean up
RUN apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \
rm /var/log/lastlog /var/log/faillog
# Set default work directory
WORKDIR /var/www

View File

@ -1,599 +0,0 @@
#
#--------------------------------------------------------------------------
# Image Setup
#--------------------------------------------------------------------------
#
# To edit the 'workspace' base Image, visit its repository on Github
# https://github.com/Laradock/workspace
#
# To change its version, see the available Tags on the Docker Hub:
# https://hub.docker.com/r/laradock/workspace/tags/
#
# Note: Base Image name format {image-tag}-{php-version}
#
FROM laradock/workspace:1.9-56
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
# Remove Faillog and Lastlog to reduce the size of the final image.
RUN rm /var/log/lastlog /var/log/faillog
#
#--------------------------------------------------------------------------
# Mandatory Software's Installation
#--------------------------------------------------------------------------
#
# Mandatory Software's such as ("php5.6-cli", "git", "vim", ....) are
# installed on the base image 'laradock/workspace' image. If you want
# to add more Software's or remove existing one, you need to edit the
# base image (https://github.com/Laradock/workspace).
#
#
#--------------------------------------------------------------------------
# Optional Software's Installation
#--------------------------------------------------------------------------
#
# Optional Software's will only be installed if you set them to `true`
# in the `docker-compose.yml` before the build.
# Example:
# - INSTALL_NODE=false
# - ...
#
#####################################
# Non-Root User:
#####################################
# Add a non-root user to prevent files being created with root permissions on host machine.
ARG PUID=1000
ARG PGID=1000
ENV PUID ${PUID}
ENV PGID ${PGID}
RUN groupadd -g ${PGID} laradock && \
useradd -u ${PUID} -g laradock -m laradock && \
apt-get update -yqq
#####################################
# SOAP:
#####################################
USER root
ARG INSTALL_SOAP=false
ENV INSTALL_SOAP ${INSTALL_SOAP}
RUN if [ ${INSTALL_SOAP} = true ]; then \
# Install the PHP SOAP extension
add-apt-repository -y ppa:ondrej/php && \
apt-get update -yqq && \
apt-get -y install libxml2-dev php5.6-soap \
;fi
#####################################
# IMAP:
#####################################
USER root
ARG INSTALL_IMAP=false
ENV INSTALL_IMAP ${INSTALL_IMAP}
RUN if [ ${INSTALL_IMAP} = true ]; then \
# Install the PHP IMAP extension
add-apt-repository -y ppa:ondrej/php && \
apt-get update -yqq && \
apt-get -y install php5.6-imap \
;fi
#####################################
# Set Timezone
#####################################
ARG TZ=UTC
ENV TZ ${TZ}
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
#####################################
# Composer:
#####################################
# Add the composer.json
COPY ./composer.json /home/laradock/.composer/composer.json
# Make sure that ~/.composer belongs to laradock
RUN chown -R laradock:laradock /home/laradock/.composer
USER laradock
# Check if global install need to be ran
ARG COMPOSER_GLOBAL_INSTALL=false
ENV COMPOSER_GLOBAL_INSTALL ${COMPOSER_GLOBAL_INSTALL}
RUN if [ ${COMPOSER_GLOBAL_INSTALL} = true ]; then \
# run the install
composer global install \
;fi
# Export composer vendor path
RUN echo "" >> ~/.bashrc && \
echo 'export PATH="~/.composer/vendor/bin:$PATH"' >> ~/.bashrc
#####################################
# Crontab
#####################################
USER root
COPY ./crontab /etc/cron.d
RUN chmod -R 644 /etc/cron.d
#####################################
# User Aliases
#####################################
USER laradock
COPY ./aliases.sh /home/laradock/aliases.sh
RUN echo "" >> ~/.bashrc && \
echo "# Load Custom Aliases" >> ~/.bashrc && \
echo "source /home/laradock/aliases.sh" >> ~/.bashrc && \
echo "" >> ~/.bashrc && \
sed -i 's/\r//' /home/laradock/aliases.sh && \
sed -i 's/^#! \/bin\/sh/#! \/bin\/bash/' /home/laradock/aliases.sh
USER root
RUN echo "" >> ~/.bashrc && \
echo "# Load Custom Aliases" >> ~/.bashrc && \
echo "source /home/laradock/aliases.sh" >> ~/.bashrc && \
echo "" >> ~/.bashrc && \
sed -i 's/\r//' /home/laradock/aliases.sh && \
sed -i 's/^#! \/bin\/sh/#! \/bin\/bash/' /home/laradock/aliases.sh
#####################################
# xDebug:
#####################################
ARG INSTALL_XDEBUG=false
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
# Load the xdebug extension only with phpunit commands
apt-get install -y --force-yes php5.6-xdebug && \
sed -i 's/^;//g' /etc/php/5.6/cli/conf.d/20-xdebug.ini && \
echo "alias phpunit='php -dzend_extension=xdebug.so /var/www/vendor/bin/phpunit'" >> ~/.bashrc \
;fi
# ADD for REMOTE debugging
COPY ./xdebug.ini /etc/php/5.6/cli/conf.d/xdebug.ini
#####################################
# Blackfire:
#####################################
ARG INSTALL_BLACKFIRE=false
ARG BLACKFIRE_CLIENT_ID
ARG BLACKFIRE_CLIENT_TOKEN
ENV BLACKFIRE_CLIENT_ID ${BLACKFIRE_CLIENT_ID}
ENV BLACKFIRE_CLIENT_TOKEN ${BLACKFIRE_CLIENT_TOKEN}
RUN if [ ${INSTALL_XDEBUG} = false -a ${INSTALL_BLACKFIRE} = true ]; then \
curl -L https://packagecloud.io/gpg.key | apt-key add - && \
echo "deb http://packages.blackfire.io/debian any main" | tee /etc/apt/sources.list.d/blackfire.list && \
apt-get update -yqq && \
apt-get install blackfire-agent \
;fi
#####################################
# ssh:
#####################################
ARG INSTALL_WORKSPACE_SSH=false
ENV INSTALL_WORKSPACE_SSH ${INSTALL_WORKSPACE_SSH}
ADD insecure_id_rsa /tmp/id_rsa
ADD insecure_id_rsa.pub /tmp/id_rsa.pub
RUN if [ ${INSTALL_WORKSPACE_SSH} = true ]; then \
rm -f /etc/service/sshd/down && \
cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys \
&& cat /tmp/id_rsa.pub >> /root/.ssh/id_rsa.pub \
&& cat /tmp/id_rsa >> /root/.ssh/id_rsa \
&& rm -f /tmp/id_rsa* \
&& chmod 644 /root/.ssh/authorized_keys /root/.ssh/id_rsa.pub \
&& chmod 400 /root/.ssh/id_rsa \
;fi
#####################################
# MongoDB:
#####################################
# Check if Mongo needs to be installed
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:
#####################################
USER root
ENV DRUSH_VERSION 8.1.2
ARG INSTALL_DRUSH=false
ENV INSTALL_DRUSH ${INSTALL_DRUSH}
RUN if [ ${INSTALL_DRUSH} = true ]; then \
apt-get update -yqq && \
apt-get -y install mysql-client && \
# Install Drush 8 with the phar file.
curl -fsSL -o /usr/local/bin/drush https://github.com/drush-ops/drush/releases/download/$DRUSH_VERSION/drush.phar | bash && \
chmod +x /usr/local/bin/drush && \
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
#####################################
# Node / NVM:
#####################################
# Check if NVM needs to be installed
ARG NODE_VERSION=stable
ENV NODE_VERSION ${NODE_VERSION}
ARG INSTALL_NODE=false
ENV INSTALL_NODE ${INSTALL_NODE}
ENV NVM_DIR /home/laradock/.nvm
RUN if [ ${INSTALL_NODE} = true ]; then \
# Install nvm (A Node Version Manager)
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash && \
. $NVM_DIR/nvm.sh && \
nvm install ${NODE_VERSION} && \
nvm use ${NODE_VERSION} && \
nvm alias ${NODE_VERSION} && \
npm install -g gulp bower vue-cli \
;fi
# Wouldn't execute when added to the RUN statement in the above block
# Source NVM when loading bash since ~/.profile isn't loaded on non-login shell
RUN if [ ${INSTALL_NODE} = true ]; then \
echo "" >> ~/.bashrc && \
echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.bashrc && \
echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm' >> ~/.bashrc \
;fi
# Add NVM binaries to root's .bashrc
USER root
RUN if [ ${INSTALL_NODE} = true ]; then \
echo "" >> ~/.bashrc && \
echo 'export NVM_DIR="/home/laradock/.nvm"' >> ~/.bashrc && \
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:
#####################################
USER laradock
ARG INSTALL_YARN=false
ENV INSTALL_YARN ${INSTALL_YARN}
ARG YARN_VERSION=latest
ENV YARN_VERSION ${YARN_VERSION}
RUN if [ ${INSTALL_YARN} = true ]; then \
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" && \
if [ ${YARN_VERSION} = "latest" ]; then \
curl -o- -L https://yarnpkg.com/install.sh | bash; \
else \
curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version ${YARN_VERSION}; \
fi && \
echo "" >> ~/.bashrc && \
echo 'export PATH="$HOME/.yarn/bin:$PATH"' >> ~/.bashrc \
;fi
# Add YARN binaries to root's .bashrc
USER root
RUN if [ ${INSTALL_YARN} = true ]; then \
echo "" >> ~/.bashrc && \
echo 'export YARN_DIR="/home/laradock/.yarn"' >> ~/.bashrc && \
echo 'export PATH="$YARN_DIR/bin:$PATH"' >> ~/.bashrc \
;fi
#####################################
# PHP Aerospike:
#####################################
USER root
ARG INSTALL_AEROSPIKE=true
ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE}
# Copy aerospike configration for remote debugging
COPY ./aerospike.ini /etc/php/5.6/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" \
&& 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 \
&& phpize \
&& ./build.sh \
&& make install \
) \
&& rm /tmp/aerospike-client-php.tar.gz \
;fi
RUN if [ ${INSTALL_AEROSPIKE} = false ]; then \
rm /etc/php/5.6/cli/conf.d/aerospike.ini \
;fi
#####################################
# Non-root user : PHPUnit path
#####################################
# add ./vendor/bin to non-root user's bashrc (needed for phpunit)
USER laradock
RUN echo "" >> ~/.bashrc && \
echo 'export PATH="/var/www/vendor/bin:$PATH"' >> ~/.bashrc
#####################################
# Laravel Envoy:
#####################################
USER laradock
ARG INSTALL_LARAVEL_ENVOY=true
ENV INSTALL_LARAVEL_ENVOY ${INSTALL_LARAVEL_ENVOY}
RUN if [ ${INSTALL_LARAVEL_ENVOY} = true ]; then \
# Install the Laravel Envoy
composer global require "laravel/envoy=~1.0" \
;fi
#####################################
# Laravel Installer:
#####################################
USER root
ARG INSTALL_LARAVEL_INSTALLER=true
ENV INSTALL_LARAVEL_INSTALLER ${INSTALL_LARAVEL_INSTALLER}
RUN if [ ${INSTALL_LARAVEL_INSTALLER} = true ]; then \
# Install the Laravel Installer
echo "" >> ~/.bashrc && \
echo 'export PATH="~/.composer/vendor/bin:$PATH"' >> ~/.bashrc \
&& composer global require "laravel/installer" \
;fi
USER laradock
#####################################
# Deployer:
#####################################
USER laradock
ARG INSTALL_DEPLOYER=false
ENV INSTALL_DEPLOYER ${INSTALL_DEPLOYER}
RUN if [ ${INSTALL_DEPLOYER} = true ]; then \
# Install the Deployer
composer global require "deployer/deployer" \
;fi
#####################################
# Linuxbrew:
#####################################
USER root
ARG INSTALL_LINUXBREW=true
ENV INSTALL_LINUXBREW ${INSTALL_LINUXBREW}
RUN if [ ${INSTALL_LINUXBREW} = true ]; then \
# Preparation
apt-get upgrade -y && \
apt-get install -y build-essential make cmake scons curl git \
ruby autoconf automake autoconf-archive \
gettext libtool flex bison \
libbz2-dev libcurl4-openssl-dev \
libexpat-dev libncurses-dev && \
# Install the Linuxbrew
git clone --depth=1 https://github.com/Homebrew/linuxbrew.git ~/.linuxbrew && \
echo "" >> ~/.bashrc && \
echo 'export PKG_CONFIG_PATH"=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.bashrc && \
# Setup linuxbrew
echo 'export LINUXBREWHOME="$HOME/.linuxbrew"' >> ~/.bashrc && \
echo 'export PATH="$LINUXBREWHOME/bin:$PATH"' >> ~/.bashrc && \
echo 'export MANPATH="$LINUXBREWHOME/man:$MANPATH"' >> ~/.bashrc && \
echo 'export PKG_CONFIG_PATH="$LINUXBREWHOME/lib64/pkgconfig:$LINUXBREWHOME/lib/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.bashrc && \
echo 'export LD_LIBRARY_PATH="$LINUXBREWHOME/lib64:$LINUXBREWHOME/lib:$LD_LIBRARY_PATH"' >> ~/.bashrc \
;fi
#####################################
# SQL SERVER:
#####################################
ARG INSTALL_MSSQL=false
ENV INSTALL_MSSQL ${INSTALL_MSSQL}
RUN if [ ${INSTALL_MSSQL} = true ]; then \
apt-get -y install php5.6-sybase freetds-bin freetds-common libsybdb5 \
&& echo "extension=pdo_dblib.so" > /etc/php/5.6/cli/conf.d/20-pdo_dblib.ini \
;fi
#####################################
# Minio:
#####################################
USER root
ARG INSTALL_MC=false
ENV INSTALL_MC ${INSTALL_MC}
COPY mc/config.json /root/.mc/config.json
RUN if [ ${INSTALL_MC} = true ]; then\
curl -fsSL -o /usr/local/bin/mc https://dl.minio.io/client/mc/release/linux-amd64/mc && \
chmod +x /usr/local/bin/mc \
;fi
#####################################
# Image optimizers:
#####################################
USER root
ARG INSTALL_IMAGE_OPTIMIZERS=false
ENV INSTALL_IMAGE_OPTIMIZERS ${INSTALL_IMAGE_OPTIMIZERS}
RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \
apt-get install -y --force-yes jpegoptim optipng pngquant gifsicle && \
if [ ${INSTALL_NODE} = true ]; then \
. ~/.bashrc && npm install -g svgo \
;fi\
;fi
USER laradock
#####################################
# Symfony:
#####################################
USER root
ARG INSTALL_SYMFONY=false
ENV INSTALL_SYMFONY ${INSTALL_SYMFONY}
RUN if [ ${INSTALL_SYMFONY} = true ]; then \
mkdir -p /usr/local/bin \
&& curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \
&& chmod a+x /usr/local/bin/symfony \
# Symfony 3 alias
&& echo 'alias dev="php bin/console -e=dev"' >> ~/.bashrc \
&& echo 'alias prod="php bin/console -e=prod"' >> ~/.bashrc \
# Symfony 2 alias
# && echo 'alias dev="php app/console -e=dev"' >> ~/.bashrc \
# && echo 'alias prod="php app/console -e=prod"' >> ~/.bashrc \
;fi
#####################################
# PYTHON:
#####################################
ARG INSTALL_PYTHON=false
ENV INSTALL_PYTHON ${INSTALL_PYTHON}
RUN if [ ${INSTALL_PYTHON} = true ]; then \
apt-get update \
&& apt-get -y install python python-pip python-dev build-essential \
&& pip install --upgrade pip \
&& 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
#####################################
# pgsql client
#####################################
USER root
ARG INSTALL_PG_CLIENT=false
ENV INSTALL_PG_CLIENT ${INSTALL_PG_CLIENT}
RUN if [ ${INSTALL_PG_CLIENT} = true ]; then \
# Install the pgsql clint
apt-get update -yqq && \
apt-get -y install postgresql-client \
;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
#--------------------------------------------------------------------------
#
# Clean up
USER root
RUN apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# Set default work directory
WORKDIR /var/www

View File

@ -1,689 +0,0 @@
#
#--------------------------------------------------------------------------
# Image Setup
#--------------------------------------------------------------------------
#
# To edit the 'workspace' base Image, visit its repository on Github
# https://github.com/Laradock/workspace
#
# To change its version, see the available Tags on the Docker Hub:
# https://hub.docker.com/r/laradock/workspace/tags/
#
# Note: Base Image name format {image-tag}-{php-version}
#
FROM laradock/workspace:1.9-70
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
# Remove Faillog and Lastlog to reduce the size of the final image.
RUN rm /var/log/lastlog /var/log/faillog
#
#--------------------------------------------------------------------------
# Mandatory Software's Installation
#--------------------------------------------------------------------------
#
# Mandatory Software's such as ("php7.0-cli", "git", "vim", ....) are
# installed on the base image 'laradock/workspace' image. If you want
# to add more Software's or remove existing one, you need to edit the
# base image (https://github.com/Laradock/workspace).
#
#
#--------------------------------------------------------------------------
# Optional Software's Installation
#--------------------------------------------------------------------------
#
# Optional Software's will only be installed if you set them to `true`
# in the `docker-compose.yml` before the build.
# Example:
# - INSTALL_NODE=false
# - ...
#
#####################################
# Non-Root User:
#####################################
# Add a non-root user to prevent files being created with root permissions on host machine.
ARG PUID=1000
ARG PGID=1000
ENV PUID ${PUID}
ENV PGID ${PGID}
RUN groupadd -g ${PGID} laradock && \
useradd -u ${PUID} -g laradock -m laradock && \
apt-get update -yqq
#####################################
# SOAP:
#####################################
USER root
ARG INSTALL_SOAP=false
ENV INSTALL_SOAP ${INSTALL_SOAP}
RUN if [ ${INSTALL_SOAP} = true ]; then \
# Install the PHP SOAP extension
add-apt-repository -y ppa:ondrej/php && \
apt-get update -yqq && \
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
#####################################
# IMAP:
#####################################
ARG INSTALL_IMAP=false
ENV INSTALL_IMAP ${INSTALL_IMAP}
RUN if [ ${INSTALL_IMAP} = true ]; then \
apt-get update -yqq && \
apt-get install -y php7.0-imap \
;fi
#####################################
# Set Timezone
#####################################
ARG TZ=UTC
ENV TZ ${TZ}
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
#####################################
# Composer:
#####################################
# Add the composer.json
COPY ./composer.json /home/laradock/.composer/composer.json
# Make sure that ~/.composer belongs to laradock
RUN chown -R laradock:laradock /home/laradock/.composer
USER laradock
# Check if global install need to be ran
ARG COMPOSER_GLOBAL_INSTALL=false
ENV COMPOSER_GLOBAL_INSTALL ${COMPOSER_GLOBAL_INSTALL}
RUN if [ ${COMPOSER_GLOBAL_INSTALL} = true ]; then \
# run the install
composer global install \
;fi
# Export composer vendor path
RUN echo "" >> ~/.bashrc && \
echo 'export PATH="~/.composer/vendor/bin:$PATH"' >> ~/.bashrc
#####################################
# Crontab
#####################################
USER root
COPY ./crontab /etc/cron.d
RUN chmod -R 644 /etc/cron.d
#####################################
# User Aliases
#####################################
USER laradock
COPY ./aliases.sh /home/laradock/aliases.sh
RUN echo "" >> ~/.bashrc && \
echo "# Load Custom Aliases" >> ~/.bashrc && \
echo "source /home/laradock/aliases.sh" >> ~/.bashrc && \
echo "" >> ~/.bashrc && \
sed -i 's/\r//' /home/laradock/aliases.sh && \
sed -i 's/^#! \/bin\/sh/#! \/bin\/bash/' /home/laradock/aliases.sh
USER root
RUN echo "" >> ~/.bashrc && \
echo "# Load Custom Aliases" >> ~/.bashrc && \
echo "source /home/laradock/aliases.sh" >> ~/.bashrc && \
echo "" >> ~/.bashrc && \
sed -i 's/\r//' /home/laradock/aliases.sh && \
sed -i 's/^#! \/bin\/sh/#! \/bin\/bash/' /home/laradock/aliases.sh
#####################################
# xDebug:
#####################################
ARG INSTALL_XDEBUG=false
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
# Load the xdebug extension only with phpunit commands
apt-get install -y --force-yes php7.0-xdebug && \
sed -i 's/^;//g' /etc/php/7.0/cli/conf.d/20-xdebug.ini && \
echo "alias phpunit='php -dzend_extension=xdebug.so /var/www/vendor/bin/phpunit'" >> ~/.bashrc \
;fi
# ADD for REMOTE debugging
COPY ./xdebug.ini /etc/php/7.0/cli/conf.d/xdebug.ini
#####################################
# Blackfire:
#####################################
ARG INSTALL_BLACKFIRE=false
ARG BLACKFIRE_CLIENT_ID
ARG BLACKFIRE_CLIENT_TOKEN
ENV BLACKFIRE_CLIENT_ID ${BLACKFIRE_CLIENT_ID}
ENV BLACKFIRE_CLIENT_TOKEN ${BLACKFIRE_CLIENT_TOKEN}
RUN if [ ${INSTALL_XDEBUG} = false -a ${INSTALL_BLACKFIRE} = true ]; then \
curl -L https://packagecloud.io/gpg.key | apt-key add - && \
echo "deb http://packages.blackfire.io/debian any main" | tee /etc/apt/sources.list.d/blackfire.list && \
apt-get update -yqq && \
apt-get install blackfire-agent \
;fi
#####################################
# ssh:
#####################################
ARG INSTALL_WORKSPACE_SSH=false
ENV INSTALL_WORKSPACE_SSH ${INSTALL_WORKSPACE_SSH}
ADD insecure_id_rsa /tmp/id_rsa
ADD insecure_id_rsa.pub /tmp/id_rsa.pub
RUN if [ ${INSTALL_WORKSPACE_SSH} = true ]; then \
rm -f /etc/service/sshd/down && \
cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys \
&& cat /tmp/id_rsa.pub >> /root/.ssh/id_rsa.pub \
&& cat /tmp/id_rsa >> /root/.ssh/id_rsa \
&& rm -f /tmp/id_rsa* \
&& chmod 644 /root/.ssh/authorized_keys /root/.ssh/id_rsa.pub \
&& chmod 400 /root/.ssh/id_rsa \
;fi
#####################################
# MongoDB:
#####################################
# Check if Mongo needs to be installed
ARG INSTALL_MONGO=false
ENV INSTALL_MONGO ${INSTALL_MONGO}
RUN if [ ${INSTALL_MONGO} = true ]; then \
# Install the mongodb extension
pecl install mongodb && \
echo "extension=mongodb.so" >> /etc/php/7.0/mods-available/mongodb.ini && \
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:
#####################################
USER root
ENV DRUSH_VERSION 8.1.2
ARG INSTALL_DRUSH=false
ENV INSTALL_DRUSH ${INSTALL_DRUSH}
RUN if [ ${INSTALL_DRUSH} = true ]; then \
apt-get update -yqq && \
apt-get -y install mysql-client && \
# Install Drush 8 with the phar file.
curl -fsSL -o /usr/local/bin/drush https://github.com/drush-ops/drush/releases/download/$DRUSH_VERSION/drush.phar | bash && \
chmod +x /usr/local/bin/drush && \
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
#####################################
# Node / NVM:
#####################################
# Check if NVM needs to be installed
ARG NODE_VERSION=stable
ENV NODE_VERSION ${NODE_VERSION}
ARG INSTALL_NODE=false
ENV INSTALL_NODE ${INSTALL_NODE}
ENV NVM_DIR /home/laradock/.nvm
RUN if [ ${INSTALL_NODE} = true ]; then \
# Install nvm (A Node Version Manager)
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash && \
. $NVM_DIR/nvm.sh && \
nvm install ${NODE_VERSION} && \
nvm use ${NODE_VERSION} && \
nvm alias ${NODE_VERSION} && \
npm install -g gulp bower vue-cli \
;fi
# Wouldn't execute when added to the RUN statement in the above block
# Source NVM when loading bash since ~/.profile isn't loaded on non-login shell
RUN if [ ${INSTALL_NODE} = true ]; then \
echo "" >> ~/.bashrc && \
echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.bashrc && \
echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm' >> ~/.bashrc \
;fi
# Add NVM binaries to root's .bashrc
USER root
RUN if [ ${INSTALL_NODE} = true ]; then \
echo "" >> ~/.bashrc && \
echo 'export NVM_DIR="/home/laradock/.nvm"' >> ~/.bashrc && \
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:
#####################################
USER laradock
ARG INSTALL_YARN=false
ENV INSTALL_YARN ${INSTALL_YARN}
ARG YARN_VERSION=latest
ENV YARN_VERSION ${YARN_VERSION}
RUN if [ ${INSTALL_YARN} = true ]; then \
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" && \
if [ ${YARN_VERSION} = "latest" ]; then \
curl -o- -L https://yarnpkg.com/install.sh | bash; \
else \
curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version ${YARN_VERSION}; \
fi && \
echo "" >> ~/.bashrc && \
echo 'export PATH="$HOME/.yarn/bin:$PATH"' >> ~/.bashrc \
;fi
# Add YARN binaries to root's .bashrc
USER root
RUN if [ ${INSTALL_YARN} = true ]; then \
echo "" >> ~/.bashrc && \
echo 'export YARN_DIR="/home/laradock/.yarn"' >> ~/.bashrc && \
echo 'export PATH="$YARN_DIR/bin:$PATH"' >> ~/.bashrc \
;fi
#####################################
# PHP Aerospike:
#####################################
USER root
ARG INSTALL_AEROSPIKE=true
ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE}
# Copy aerospike configration for remote debugging
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/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 \
&& phpize \
&& ./build.sh \
&& make install \
) \
&& rm /tmp/aerospike-client-php.tar.gz \
;fi
RUN if [ ${INSTALL_AEROSPIKE} = false ]; then \
rm /etc/php/7.0/cli/conf.d/aerospike.ini \
;fi
#####################################
# PHP V8JS:
#####################################
USER root
ARG INSTALL_V8JS=false
ENV INSTALL_V8JS ${INSTALL_V8JS}
RUN if [ ${INSTALL_V8JS} = true ]; then \
# Install the php V8JS extension
add-apt-repository -y ppa:pinepain/libv8-5.4 \
&& apt-get update -yqq \
&& apt-get install -y php7.0-xml php7.0-dev php-pear libv8-5.4 \
&& pecl install v8js \
&& echo "extension=v8js.so" >> /etc/php/7.0/cli/php.ini \
;fi
#####################################
# Non-root user : PHPUnit path
#####################################
# add ./vendor/bin to non-root user's bashrc (needed for phpunit)
USER laradock
RUN echo "" >> ~/.bashrc && \
echo 'export PATH="/var/www/vendor/bin:$PATH"' >> ~/.bashrc
#####################################
# Laravel Envoy:
#####################################
USER laradock
ARG INSTALL_LARAVEL_ENVOY=true
ENV INSTALL_LARAVEL_ENVOY ${INSTALL_LARAVEL_ENVOY}
RUN if [ ${INSTALL_LARAVEL_ENVOY} = true ]; then \
# Install the Laravel Envoy
composer global require "laravel/envoy=~1.0" \
;fi
#####################################
# Laravel Installer:
#####################################
USER root
ARG INSTALL_LARAVEL_INSTALLER=true
ENV INSTALL_LARAVEL_INSTALLER ${INSTALL_LARAVEL_INSTALLER}
RUN if [ ${INSTALL_LARAVEL_INSTALLER} = true ]; then \
# Install the Laravel Installer
echo "" >> ~/.bashrc && \
echo 'export PATH="~/.composer/vendor/bin:$PATH"' >> ~/.bashrc \
&& composer global require "laravel/installer" \
;fi
USER laradock
#####################################
# Deployer:
#####################################
USER laradock
ARG INSTALL_DEPLOYER=false
ENV INSTALL_DEPLOYER ${INSTALL_DEPLOYER}
RUN if [ ${INSTALL_DEPLOYER} = true ]; then \
# Install the Deployer
composer global require "deployer/deployer" \
;fi
#####################################
# Linuxbrew:
#####################################
USER root
ARG INSTALL_LINUXBREW=true
ENV INSTALL_LINUXBREW ${INSTALL_LINUXBREW}
RUN if [ ${INSTALL_LINUXBREW} = true ]; then \
# Preparation
apt-get upgrade -y && \
apt-get install -y build-essential make cmake scons curl git \
ruby autoconf automake autoconf-archive \
gettext libtool flex bison \
libbz2-dev libcurl4-openssl-dev \
libexpat-dev libncurses-dev && \
# Install the Linuxbrew
git clone --depth=1 https://github.com/Homebrew/linuxbrew.git ~/.linuxbrew && \
echo "" >> ~/.bashrc && \
echo 'export PKG_CONFIG_PATH"=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.bashrc && \
# Setup linuxbrew
echo 'export LINUXBREWHOME="$HOME/.linuxbrew"' >> ~/.bashrc && \
echo 'export PATH="$LINUXBREWHOME/bin:$PATH"' >> ~/.bashrc && \
echo 'export MANPATH="$LINUXBREWHOME/man:$MANPATH"' >> ~/.bashrc && \
echo 'export PKG_CONFIG_PATH="$LINUXBREWHOME/lib64/pkgconfig:$LINUXBREWHOME/lib/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.bashrc && \
echo 'export LD_LIBRARY_PATH="$LINUXBREWHOME/lib64:$LINUXBREWHOME/lib:$LD_LIBRARY_PATH"' >> ~/.bashrc \
;fi
#####################################
# SQL SERVER:
#####################################
ARG INSTALL_MSSQL=true
ENV INSTALL_MSSQL ${INSTALL_MSSQL}
RUN if [ ${INSTALL_MSSQL} = true ]; then \
#####################################
# Install Depenencies:
#####################################
cd / && \
apt-get install -y --force-yes wget apt-transport-https curl freetds-common libsybdb5 freetds-bin unixodbc unixodbc-dev && \
#####################################
# The following steps were taken from
# Microsoft's github account:
# https://github.com/Microsoft/msphpsql/wiki/Dockerfile-for-getting-pdo_sqlsrv-for-PHP-7.0-on-Debian-in-3-ways
#####################################
# Add PHP 7 repository
# for Debian jessie
# And System upgrade
cd / && \
echo "deb http://packages.dotdeb.org jessie all" \
| tee /etc/apt/sources.list.d/dotdeb.list \
&& wget -qO- https://www.dotdeb.org/dotdeb.gpg \
| apt-key add - \
&& apt-get update -yqq \
&& apt-get upgrade -qq && \
# Install UnixODBC
# Compile odbc_config as it is not part of unixodbc package
cd / && \
apt-get install -y whiptail \
unixodbc libgss3 odbcinst devscripts debhelper dh-exec dh-autoreconf libreadline-dev libltdl-dev \
&& dget -u -x http://http.debian.net/debian/pool/main/u/unixodbc/unixodbc_2.3.1-3.dsc \
&& cd unixodbc-*/ \
&& ./configure && make && make install \
&& cp -v ./exe/odbc_config /usr/local/bin/ && \
# Fake uname for install.sh
printf '#!/bin/bash\nif [ "$*" == "-p" ]; then echo "x86_64"; else /bin/uname "$@"; fi' \
| tee /usr/local/bin/uname \
&& chmod +x /usr/local/bin/uname && \
# Microsoft ODBC Driver 13 for Linux
# Note: There's a copy of this tar on my hubiC
cd / && \
wget -nv -O msodbcsql-13.0.0.0.tar.gz \
"https://meetsstorenew.blob.core.windows.net/contianerhd/Ubuntu%2013.0%20Tar/msodbcsql-13.0.0.0.tar.gz?st=2016-10-18T17%3A29%3A00Z&se=2022-10-19T17%3A29%3A00Z&sp=rl&sv=2015-04-05&sr=b&sig=cDwPfrouVeIQf0vi%2BnKt%2BzX8Z8caIYvRCmicDL5oknY%3D" \
&& tar -xf msodbcsql-13.0.0.0.tar.gz \
&& cd msodbcsql-*/ \
&& ldd lib64/libmsodbcsql-13.0.so.0.0 \
&& ./install.sh install --accept-license \
&& ls -l /opt/microsoft/msodbcsql/ \
&& odbcinst -q -d -n "ODBC Driver 13 for SQL Server" && \
#####################################
# Install sqlsrv y pdo_sqlsrv
# extensions:
#####################################
pecl install sqlsrv-4.0.8 && \
pecl install pdo_sqlsrv-4.0.8 && \
#####################################
# Set locales for the container
#####################################
apt-get install -y locales \
&& echo "en_US.UTF-8 UTF-8" > /etc/locale.gen \
&& locale-gen \
&& echo "extension=sqlsrv.so" > /etc/php/7.0/cli/conf.d/20-sqlsrv.ini \
&& echo "extension=pdo_sqlsrv.so" > /etc/php/7.0/cli/conf.d/20-pdo_sqlsrv.ini \
;fi
#####################################
# Minio:
#####################################
USER root
ARG INSTALL_MC=false
ENV INSTALL_MC ${INSTALL_MC}
COPY mc/config.json /root/.mc/config.json
RUN if [ ${INSTALL_MC} = true ]; then\
curl -fsSL -o /usr/local/bin/mc https://dl.minio.io/client/mc/release/linux-amd64/mc && \
chmod +x /usr/local/bin/mc \
;fi
#####################################
# Image optimizers:
#####################################
USER root
ARG INSTALL_IMAGE_OPTIMIZERS=false
ENV INSTALL_IMAGE_OPTIMIZERS ${INSTALL_IMAGE_OPTIMIZERS}
RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \
apt-get install -y --force-yes jpegoptim optipng pngquant gifsicle && \
if [ ${INSTALL_NODE} = true ]; then \
. ~/.bashrc && npm install -g svgo \
;fi\
;fi
#####################################
# Symfony:
#####################################
USER root
ARG INSTALL_SYMFONY=false
ENV INSTALL_SYMFONY ${INSTALL_SYMFONY}
RUN if [ ${INSTALL_SYMFONY} = true ]; then \
mkdir -p /usr/local/bin \
&& curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \
&& chmod a+x /usr/local/bin/symfony \
# Symfony 3 alias
&& echo 'alias dev="php bin/console -e=dev"' >> ~/.bashrc \
&& echo 'alias prod="php bin/console -e=prod"' >> ~/.bashrc \
# Symfony 2 alias
# && echo 'alias dev="php app/console -e=dev"' >> ~/.bashrc \
# && echo 'alias prod="php app/console -e=prod"' >> ~/.bashrc \
;fi
#####################################
# PYTHON:
#####################################
ARG INSTALL_PYTHON=false
ENV INSTALL_PYTHON ${INSTALL_PYTHON}
RUN if [ ${INSTALL_PYTHON} = true ]; then \
apt-get update \
&& apt-get -y install python python-pip python-dev build-essential \
&& pip install --upgrade pip \
&& 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
#####################################
# pgsql client
#####################################
USER root
ARG INSTALL_PG_CLIENT=false
ENV INSTALL_PG_CLIENT ${INSTALL_PG_CLIENT}
RUN if [ ${INSTALL_PG_CLIENT} = true ]; then \
# Install the pgsql client
apt-get update -yqq && \
apt-get -y install postgresql-client \
;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
#--------------------------------------------------------------------------
#
# Clean up
USER root
RUN apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# Set default work directory
WORKDIR /var/www

View File

@ -1,693 +0,0 @@
#
#--------------------------------------------------------------------------
# Image Setup
#--------------------------------------------------------------------------
#
# To edit the 'workspace' base Image, visit its repository on Github
# https://github.com/Laradock/workspace
#
# To change its version, see the available Tags on the Docker Hub:
# https://hub.docker.com/r/laradock/workspace/tags/
#
# Note: Base Image name format {image-tag}-{php-version}
#
FROM laradock/workspace:1.9-71
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
# Remove Faillog and Lastlog to reduce the size of the final image.
RUN rm /var/log/lastlog /var/log/faillog
#
#--------------------------------------------------------------------------
# Mandatory Software's Installation
#--------------------------------------------------------------------------
#
# Mandatory Software's such as ("php7.1-cli", "git", "vim", ....) are
# installed on the base image 'laradock/workspace' image. If you want
# to add more Software's or remove existing one, you need to edit the
# base image (https://github.com/Laradock/workspace).
#
#
#--------------------------------------------------------------------------
# Optional Software's Installation
#--------------------------------------------------------------------------
#
# Optional Software's will only be installed if you set them to `true`
# in the `docker-compose.yml` before the build.
# Example:
# - INSTALL_NODE=false
# - ...
#
#####################################
# Non-Root User:
#####################################
# Add a non-root user to prevent files being created with root permissions on host machine.
ARG PUID=1000
ARG PGID=1000
ENV PUID ${PUID}
ENV PGID ${PGID}
RUN groupadd -g ${PGID} laradock && \
useradd -u ${PUID} -g laradock -m laradock && \
apt-get update -yqq && \
apt-get install -y python2.7
#####################################
# SOAP:
#####################################
USER root
ARG INSTALL_SOAP=false
ENV INSTALL_SOAP ${INSTALL_SOAP}
RUN if [ ${INSTALL_SOAP} = true ]; then \
# Install the PHP SOAP extension
add-apt-repository -y ppa:ondrej/php && \
apt-get update -yqq && \
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
#####################################
# IMAP:
#####################################
ARG INSTALL_IMAP=false
ENV INSTALL_IMAP ${INSTALL_IMAP}
RUN if [ ${INSTALL_IMAP} = true ]; then \
apt-get update -yqq && \
apt-get install -y php7.1-imap \
;fi
#####################################
# Set Timezone
#####################################
ARG TZ=UTC
ENV TZ ${TZ}
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
#####################################
# Composer:
#####################################
# Add the composer.json
COPY ./composer.json /home/laradock/.composer/composer.json
# Make sure that ~/.composer belongs to laradock
RUN chown -R laradock:laradock /home/laradock/.composer
USER laradock
# Check if global install need to be ran
ARG COMPOSER_GLOBAL_INSTALL=false
ENV COMPOSER_GLOBAL_INSTALL ${COMPOSER_GLOBAL_INSTALL}
RUN if [ ${COMPOSER_GLOBAL_INSTALL} = true ]; then \
# run the install
composer global install \
;fi
#####################################
# Crontab
#####################################
USER root
COPY ./crontab /etc/cron.d
RUN chmod -R 644 /etc/cron.d
#####################################
# User Aliases
#####################################
USER laradock
COPY ./aliases.sh /home/laradock/aliases.sh
RUN echo "" >> ~/.bashrc && \
echo "# Load Custom Aliases" >> ~/.bashrc && \
echo "source /home/laradock/aliases.sh" >> ~/.bashrc && \
echo "" >> ~/.bashrc && \
sed -i 's/\r//' /home/laradock/aliases.sh && \
sed -i 's/^#! \/bin\/sh/#! \/bin\/bash/' /home/laradock/aliases.sh
USER root
RUN echo "" >> ~/.bashrc && \
echo "# Load Custom Aliases" >> ~/.bashrc && \
echo "source /home/laradock/aliases.sh" >> ~/.bashrc && \
echo "" >> ~/.bashrc && \
sed -i 's/\r//' /home/laradock/aliases.sh && \
sed -i 's/^#! \/bin\/sh/#! \/bin\/bash/' /home/laradock/aliases.sh
#####################################
# xDebug:
#####################################
ARG INSTALL_XDEBUG=false
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
# Load the xdebug extension only with phpunit commands
apt-get update && \
apt-get install -y --force-yes php7.1-xdebug && \
sed -i 's/^;//g' /etc/php/7.1/cli/conf.d/20-xdebug.ini && \
echo "alias phpunit='php -dzend_extension=xdebug.so /var/www/vendor/bin/phpunit'" >> ~/.bashrc \
;fi
# ADD for REMOTE debugging
COPY ./xdebug.ini /etc/php/7.1/cli/conf.d/xdebug.ini
#####################################
# Blackfire:
#####################################
ARG INSTALL_BLACKFIRE=false
ARG BLACKFIRE_CLIENT_ID
ARG BLACKFIRE_CLIENT_TOKEN
ENV BLACKFIRE_CLIENT_ID ${BLACKFIRE_CLIENT_ID}
ENV BLACKFIRE_CLIENT_TOKEN ${BLACKFIRE_CLIENT_TOKEN}
RUN if [ ${INSTALL_XDEBUG} = false -a ${INSTALL_BLACKFIRE} = true ]; then \
curl -L https://packagecloud.io/gpg.key | apt-key add - && \
echo "deb http://packages.blackfire.io/debian any main" | tee /etc/apt/sources.list.d/blackfire.list && \
apt-get update -yqq && \
apt-get install blackfire-agent \
;fi
#####################################
# ssh:
#####################################
ARG INSTALL_WORKSPACE_SSH=false
ENV INSTALL_WORKSPACE_SSH ${INSTALL_WORKSPACE_SSH}
ADD insecure_id_rsa /tmp/id_rsa
ADD insecure_id_rsa.pub /tmp/id_rsa.pub
RUN if [ ${INSTALL_WORKSPACE_SSH} = true ]; then \
rm -f /etc/service/sshd/down && \
cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys \
&& cat /tmp/id_rsa.pub >> /root/.ssh/id_rsa.pub \
&& cat /tmp/id_rsa >> /root/.ssh/id_rsa \
&& rm -f /tmp/id_rsa* \
&& chmod 644 /root/.ssh/authorized_keys /root/.ssh/id_rsa.pub \
&& chmod 400 /root/.ssh/id_rsa \
;fi
#####################################
# MongoDB:
#####################################
# Check if Mongo needs to be installed
ARG INSTALL_MONGO=false
ENV INSTALL_MONGO ${INSTALL_MONGO}
RUN if [ ${INSTALL_MONGO} = true ]; then \
# Install the mongodb extension
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:
#####################################
USER root
ENV DRUSH_VERSION 8.1.2
ARG INSTALL_DRUSH=false
ENV INSTALL_DRUSH ${INSTALL_DRUSH}
RUN if [ ${INSTALL_DRUSH} = true ]; then \
apt-get update -yqq && \
apt-get -y install mysql-client && \
# Install Drush 8 with the phar file.
curl -fsSL -o /usr/local/bin/drush https://github.com/drush-ops/drush/releases/download/$DRUSH_VERSION/drush.phar | bash && \
chmod +x /usr/local/bin/drush && \
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
#####################################
# Node / NVM:
#####################################
# Check if NVM needs to be installed
ARG NODE_VERSION=stable
ENV NODE_VERSION ${NODE_VERSION}
ARG INSTALL_NODE=false
ENV INSTALL_NODE ${INSTALL_NODE}
ENV NVM_DIR /home/laradock/.nvm
RUN if [ ${INSTALL_NODE} = true ]; then \
# Install nvm (A Node Version Manager)
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash && \
. $NVM_DIR/nvm.sh && \
nvm install ${NODE_VERSION} && \
nvm use ${NODE_VERSION} && \
nvm alias ${NODE_VERSION} && \
npm install -g gulp bower vue-cli \
;fi
# Wouldn't execute when added to the RUN statement in the above block
# Source NVM when loading bash since ~/.profile isn't loaded on non-login shell
RUN if [ ${INSTALL_NODE} = true ]; then \
echo "" >> ~/.bashrc && \
echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.bashrc && \
echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm' >> ~/.bashrc \
;fi
# Add NVM binaries to root's .bashrc
USER root
RUN if [ ${INSTALL_NODE} = true ]; then \
echo "" >> ~/.bashrc && \
echo 'export NVM_DIR="/home/laradock/.nvm"' >> ~/.bashrc && \
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:
#####################################
USER laradock
ARG INSTALL_YARN=false
ENV INSTALL_YARN ${INSTALL_YARN}
ARG YARN_VERSION=latest
ENV YARN_VERSION ${YARN_VERSION}
RUN if [ ${INSTALL_YARN} = true ]; then \
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" && \
if [ ${YARN_VERSION} = "latest" ]; then \
curl -o- -L https://yarnpkg.com/install.sh | bash; \
else \
curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version ${YARN_VERSION}; \
fi && \
echo "" >> ~/.bashrc && \
echo 'export PATH="$HOME/.yarn/bin:$PATH"' >> ~/.bashrc \
;fi
# Add YARN binaries to root's .bashrc
USER root
RUN if [ ${INSTALL_YARN} = true ]; then \
echo "" >> ~/.bashrc && \
echo 'export YARN_DIR="/home/laradock/.yarn"' >> ~/.bashrc && \
echo 'export PATH="$YARN_DIR/bin:$PATH"' >> ~/.bashrc \
;fi
#####################################
# PHP Aerospike:
#####################################
USER root
ARG INSTALL_AEROSPIKE=false
ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE}
# Copy aerospike configration for remote debugging
COPY ./aerospike.ini /etc/php/7.1/cli/conf.d/aerospike.ini
RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
# Fix dependencies for PHPUnit within aerospike extension
apt-get update -yqq && \
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/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 \
&& phpize \
&& ./build.sh \
&& make install \
) \
&& rm /tmp/aerospike-client-php.tar.gz \
;fi
RUN if [ ${INSTALL_AEROSPIKE} = false ]; then \
rm /etc/php/7.1/cli/conf.d/aerospike.ini \
;fi
#####################################
# PHP V8JS:
#####################################
USER root
ARG INSTALL_V8JS=false
ENV INSTALL_V8JS ${INSTALL_V8JS}
RUN if [ ${INSTALL_V8JS} = true ]; then \
# Install the php V8JS extension
add-apt-repository -y ppa:pinepain/libv8-5.4 \
&& apt-get update -yqq \
&& apt-get install -y php-xml php-dev php-pear libv8-5.4 \
&& pecl install v8js \
&& echo "extension=v8js.so" >> /etc/php/7.1/cli/php.ini \
;fi
#####################################
# Non-root user : PHPUnit path
#####################################
# add ./vendor/bin to non-root user's bashrc (needed for phpunit)
USER laradock
RUN echo "" >> ~/.bashrc && \
echo 'export PATH="/var/www/vendor/bin:$PATH"' >> ~/.bashrc
#####################################
# Laravel Envoy:
#####################################
USER laradock
ARG INSTALL_LARAVEL_ENVOY=false
ENV INSTALL_LARAVEL_ENVOY ${INSTALL_LARAVEL_ENVOY}
RUN if [ ${INSTALL_LARAVEL_ENVOY} = true ]; then \
# Install the Laravel Envoy
composer global require "laravel/envoy=~1.0" \
;fi
#####################################
# Laravel Installer:
#####################################
USER root
ARG INSTALL_LARAVEL_INSTALLER=false
ENV INSTALL_LARAVEL_INSTALLER ${INSTALL_LARAVEL_INSTALLER}
RUN if [ ${INSTALL_LARAVEL_INSTALLER} = true ]; then \
# Install the Laravel Installer
echo "" >> ~/.bashrc && \
echo 'export PATH="~/.composer/vendor/bin:$PATH"' >> ~/.bashrc \
&& composer global require "laravel/installer" \
;fi
USER laradock
#####################################
# Deployer:
#####################################
USER laradock
ARG INSTALL_DEPLOYER=false
ENV INSTALL_DEPLOYER ${INSTALL_DEPLOYER}
RUN if [ ${INSTALL_DEPLOYER} = true ]; then \
# Install the Deployer
composer global require "deployer/deployer" \
;fi
#####################################
# Linuxbrew:
#####################################
USER root
ARG INSTALL_LINUXBREW=false
ENV INSTALL_LINUXBREW ${INSTALL_LINUXBREW}
RUN if [ ${INSTALL_LINUXBREW} = true ]; then \
# Preparation
apt-get upgrade -y && \
apt-get install -y build-essential make cmake scons curl git \
ruby autoconf automake autoconf-archive \
gettext libtool flex bison \
libbz2-dev libcurl4-openssl-dev \
libexpat-dev libncurses-dev && \
# Install the Linuxbrew
git clone --depth=1 https://github.com/Homebrew/linuxbrew.git ~/.linuxbrew && \
echo "" >> ~/.bashrc && \
echo 'export PKG_CONFIG_PATH"=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.bashrc && \
# Setup linuxbrew
echo 'export LINUXBREWHOME="$HOME/.linuxbrew"' >> ~/.bashrc && \
echo 'export PATH="$LINUXBREWHOME/bin:$PATH"' >> ~/.bashrc && \
echo 'export MANPATH="$LINUXBREWHOME/man:$MANPATH"' >> ~/.bashrc && \
echo 'export PKG_CONFIG_PATH="$LINUXBREWHOME/lib64/pkgconfig:$LINUXBREWHOME/lib/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.bashrc && \
echo 'export LD_LIBRARY_PATH="$LINUXBREWHOME/lib64:$LINUXBREWHOME/lib:$LD_LIBRARY_PATH"' >> ~/.bashrc \
;fi
#####################################
# SQL SERVER:
#####################################
ARG INSTALL_MSSQL=false
ENV INSTALL_MSSQL ${INSTALL_MSSQL}
RUN if [ ${INSTALL_MSSQL} = true ]; then \
#####################################
# Install Depenencies:
#####################################
cd / && \
apt-get update -yqq && \
apt-get install -y --force-yes wget apt-transport-https curl freetds-common libsybdb5 freetds-bin unixodbc unixodbc-dev && \
#####################################
# The following steps were taken from
# Microsoft's github account:
# https://github.com/Microsoft/msphpsql/wiki/Dockerfile-for-getting-pdo_sqlsrv-for-PHP-7.0-on-Debian-in-3-ways
#####################################
# Add PHP 7 repository
# for Debian jessie
# And System upgrade
cd / && \
echo "deb http://packages.dotdeb.org jessie all" \
| tee /etc/apt/sources.list.d/dotdeb.list \
&& wget -qO- https://www.dotdeb.org/dotdeb.gpg \
| apt-key add - \
&& apt-get update -yqq \
&& apt-get upgrade -qq && \
# Install UnixODBC
# Compile odbc_config as it is not part of unixodbc package
cd / && \
apt-get update -yqq && \
apt-get install -y whiptail \
unixodbc libgss3 odbcinst devscripts debhelper dh-exec dh-autoreconf libreadline-dev libltdl-dev \
&& dget -u -x http://http.debian.net/debian/pool/main/u/unixodbc/unixodbc_2.3.1-3.dsc \
&& cd unixodbc-*/ \
&& ./configure && make && make install \
&& cp -v ./exe/odbc_config /usr/local/bin/ && \
# Fake uname for install.sh
printf '#!/bin/bash\nif [ "$*" == "-p" ]; then echo "x86_64"; else /bin/uname "$@"; fi' \
| tee /usr/local/bin/uname \
&& chmod +x /usr/local/bin/uname && \
# Microsoft ODBC Driver 13 for Linux
# Note: There's a copy of this tar on my hubiC
cd / && \
wget -nv -O msodbcsql-13.0.0.0.tar.gz \
"https://meetsstorenew.blob.core.windows.net/contianerhd/Ubuntu%2013.0%20Tar/msodbcsql-13.0.0.0.tar.gz?st=2016-10-18T17%3A29%3A00Z&se=2022-10-19T17%3A29%3A00Z&sp=rl&sv=2015-04-05&sr=b&sig=cDwPfrouVeIQf0vi%2BnKt%2BzX8Z8caIYvRCmicDL5oknY%3D" \
&& tar -xf msodbcsql-13.0.0.0.tar.gz \
&& cd msodbcsql-*/ \
&& ldd lib64/libmsodbcsql-13.0.so.0.0 \
&& ./install.sh install --accept-license \
&& ls -l /opt/microsoft/msodbcsql/ \
&& odbcinst -q -d -n "ODBC Driver 13 for SQL Server" && \
#####################################
# Install sqlsrv y pdo_sqlsrv
# extensions:
#####################################
pecl install sqlsrv-4.0.8 && \
pecl install pdo_sqlsrv-4.0.8 && \
#####################################
# Set locales for the container
#####################################
apt-get install -y locales \
&& echo "en_US.UTF-8 UTF-8" > /etc/locale.gen \
&& locale-gen \
&& echo "extension=sqlsrv.so" > /etc/php/7.1/cli/conf.d/20-sqlsrv.ini \
&& echo "extension=pdo_sqlsrv.so" > /etc/php/7.1/cli/conf.d/20-pdo_sqlsrv.ini \
;fi
#####################################
# Minio:
#####################################
USER root
ARG INSTALL_MC=false
ENV INSTALL_MC ${INSTALL_MC}
COPY mc/config.json /root/.mc/config.json
RUN if [ ${INSTALL_MC} = true ]; then\
curl -fsSL -o /usr/local/bin/mc https://dl.minio.io/client/mc/release/linux-amd64/mc && \
chmod +x /usr/local/bin/mc \
;fi
#####################################
# Image optimizers:
#####################################
USER root
ARG INSTALL_IMAGE_OPTIMIZERS=false
ENV INSTALL_IMAGE_OPTIMIZERS ${INSTALL_IMAGE_OPTIMIZERS}
RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \
apt-get install -y --force-yes jpegoptim optipng pngquant gifsicle && \
if [ ${INSTALL_NODE} = true ]; then \
. ~/.bashrc && npm install -g svgo \
;fi\
;fi
USER laradock
#####################################
# Symfony:
#####################################
USER root
ARG INSTALL_SYMFONY=false
ENV INSTALL_SYMFONY ${INSTALL_SYMFONY}
RUN if [ ${INSTALL_SYMFONY} = true ]; then \
mkdir -p /usr/local/bin \
&& curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \
&& chmod a+x /usr/local/bin/symfony \
# Symfony 3 alias
&& echo 'alias dev="php bin/console -e=dev"' >> ~/.bashrc \
&& echo 'alias prod="php bin/console -e=prod"' >> ~/.bashrc \
# Symfony 2 alias
# && echo 'alias dev="php app/console -e=dev"' >> ~/.bashrc \
# && echo 'alias prod="php app/console -e=prod"' >> ~/.bashrc \
;fi
#####################################
# PYTHON:
#####################################
ARG INSTALL_PYTHON=false
ENV INSTALL_PYTHON ${INSTALL_PYTHON}
RUN if [ ${INSTALL_PYTHON} = true ]; then \
apt-get update \
&& apt-get -y install python python-pip python-dev build-essential \
&& pip install --upgrade pip \
&& 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
#####################################
# pgsql client
#####################################
USER root
ARG INSTALL_PG_CLIENT=false
ENV INSTALL_PG_CLIENT ${INSTALL_PG_CLIENT}
RUN if [ ${INSTALL_PG_CLIENT} = true ]; then \
# Install the pgsql clint
apt-get update -yqq && \
apt-get -y install postgresql-client \
;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
#
#--------------------------------------------------------------------------
# Final Touch
#--------------------------------------------------------------------------
#
# Clean up
USER root
RUN apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \
npm config set python /usr/bin/python2.7
# Set default work directory
WORKDIR /var/www

View File

@ -1,13 +1,20 @@
; NOTE: The actual debug.so extention is NOT SET HERE but rather (/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini) ; NOTE: The actual debug.so extention is NOT SET HERE but rather (/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini)
; xdebug.remote_host=dockerhost
xdebug.remote_connect_back=1
xdebug.remote_port=9000
xdebug.idekey=PHPSTORM
xdebug.remote_autostart=0 xdebug.remote_autostart=0
xdebug.remote_enable=0 xdebug.remote_enable=0
xdebug.remote_connect_back=0
xdebug.cli_color=0 xdebug.cli_color=0
xdebug.profiler_enable=0 xdebug.profiler_enable=0
xdebug.profiler_output_dir="~/xdebug/phpstorm/tmp/profiling"
xdebug.remote_handler=dbgp xdebug.remote_handler=dbgp
xdebug.remote_mode=req xdebug.remote_mode=req
xdebug.remote_port=9000 xdebug.var_display_max_children=-1
xdebug.remote_host=dockerhost xdebug.var_display_max_data=-1
xdebug.idekey=PHPSTORM xdebug.var_display_max_depth=-1