Compare commits

...

239 Commits

Author SHA1 Message Date
329462a637 update base image (#2034) 2019-03-03 20:57:07 +08:00
e105ec9569 Update index.md (#1531)
Docker-compose is installed on a Digital Ocean Docker Image already
2019-03-02 12:50:52 +08:00
76218808fd Support PHP 7.3 (#2028)
* Support PHP 7.3
* travics-ci build test by pass:
  * SSH2 extension does not yet support PHP 7.3
  * V8JS extension does not yet support PHP 7.3.
  * xdebug extension does not yet support PHP 7.3.
  * memcached extension does not yet support PHP 7.3.
2019-03-01 18:24:14 +08:00
f18eb9728b add an official redis stable config file (#1911)
for more convenience start with default settings.
ref. from http://download.redis.io/redis-stable/redis.conf
2019-03-01 15:48:23 +08:00
d404555cf5 fix ipython-controller build fail (#2027) 2019-03-01 12:16:08 +08:00
d964e2898c fix Dockerfile parse error line
#2022
2019-03-01 12:04:32 +08:00
2d7b780e56 Auth file for magento 2 installation (#2022) 2019-03-01 11:04:03 +08:00
cf6a9ba2c9 php-fpm and workspace replace base image (#2025)
* php-fpm and workspace replace base image
* Aerospike PHP 5.6.40 Debian 9.6 is not supported, travis-ci build by pass.
2019-03-01 11:02:13 +08:00
8f6923531f added variable for xsl (#2016) 2019-02-26 21:14:32 +08:00
61d7b18922 Optimize php-fpm and workspace Dockerfile. (#2015) 2019-02-23 16:46:46 +08:00
cde20c3ced Fix workspace php56 install V8JS build fail (#2013)
* Add check swoole extenstion after install.
* Fix php 5.6 install swoole-2.0.11 get segmentation fault.
* Fix php 5.6 install v8js build fail.
2019-02-23 12:24:58 +08:00
f7dff0f72f update version of elastic and kibana (#1996) 2019-02-23 12:19:34 +08:00
1ec9244f7f Fix workspace php56 build fail (#2012)
* check swoole extenstion after install.
* php 5.6 install swoole-2.0.11 downgrade version to 2.0.10 avoid segmentation fault.
2019-02-23 00:52:14 +08:00
176d4e8033 php 7.0 php-fpm and workspace PECL install sqlsrv pdo_sqlsrv specify 5.3.0 version. (#2010) 2019-02-22 23:45:21 +08:00
2deb9bf1cb php-fpm install mysql-client (#2005) 2019-02-22 18:30:05 +08:00
b0edaf93a1 reorganizaion aerospike extension install (#2008) 2019-02-22 17:46:25 +08:00
27af2bca8c fix install zip fail (#1998) 2019-02-17 01:19:20 +08:00
61ac73e806 Added WORKSPACE_INSTALL_NPM_ANGULAR_CLI option to install Angular CLI to Workspace (#1857) 2019-02-17 00:08:33 +08:00
14ee775e39 add: redis-cluster (#1981) 2019-02-16 23:38:18 +08:00
1282c413fd added zip to php-fpm workspace container (so there is no composer warning) (#1903) 2019-02-16 23:32:03 +08:00
ee2db98c61 xsl support added (feature for magento 2) (#1995)
* Update php-fpm Dockerfile
* Update workspace Dockerfile
* Update env-example
2019-02-16 23:03:42 +08:00
739e8d3448 Fixed docker command permission denied error while building (#1822) 2019-02-14 21:56:59 +08:00
1286b7ef06 Support for additional locales in PHP-FPM (#1976) 2019-02-14 21:52:40 +08:00
e0d7229e95 fix adminer INSTALL_MSSQL build fail. (#1991)
1. adminer:4 now use php 7.3, but extension sqlsrv and pdo_sqlsrv not support.
2. add pdo_dblib to support mssql.
2019-02-12 21:24:06 +08:00
931f99ed0f workspace redis extension use apt install. (#1990) 2019-02-12 18:37:38 +08:00
fc3355a9cc Add CouchDB (#1974)
* Add CouchDB
2019-02-09 20:07:37 +08:00
53ca88714c Map cll And cla Aliases To Correct Commands (#1696) 2019-02-09 19:58:12 +08:00
1d420a2507 Separate variable flag container path out from APP_CODE_PATH_CONTAINER (#1591)
Because Container cannot volume when use APP_CODE_PATH_CONTAINER (with flag) concat with path name, e.g. /var/www:nocache/letencrypt
This will fix 1540.
2019-02-09 19:57:11 +08:00
c7aa535598 Added WP-CLI support to workspace (#1748)
* Added WP-CLI support
* Updated documentation for WP-CLI
2019-02-09 19:48:28 +08:00
5edf3f398b Update document and fix some container bug (#1785) 2019-02-09 19:37:11 +08:00
f6c5aa1801 fix build Solr, failed in https://travis-ci.org/laradock/laradock/jobs/479960032 (#1957) 2019-02-09 19:29:51 +08:00
a09144f02b persistent RabbitMQ (#1956) 2019-02-09 19:29:25 +08:00
9e4dfa2a0c fix caddy failed download (#1977)
* fix caddy  failed download
* RUN command inline
2019-02-09 19:28:29 +08:00
99f7e65c99 Backup Rethikdb (#1937)
- You requiere run python-pip for backing up your data
2019-02-09 19:26:50 +08:00
e0dc683d3f Add gloga alias (#1970)
This add `git log --oneline --decorate --graph --all` command alias.
2019-02-09 19:25:50 +08:00
eb0c941313 Add traefik (#1916)
* Add mosquitto broker
* Add documetation to mosquitto
* Add traefik
2019-02-09 19:25:21 +08:00
d27f4368ee Run bash when login by laradock via ssh (#1541) 2019-02-09 17:06:26 +08:00
7430a34dd5 Add logstash support (#1852)
* add logstash support
2019-02-09 16:40:14 +08:00
d5647295ca add MYSQL_CLIENT and AMQP for php-worker (#1949) 2019-02-09 16:34:34 +08:00
b1e346383b fix php-fpm AMQP build for 5.6, 7.0 and 7.1 (#1965) 2019-02-09 16:33:06 +08:00
913abc54f9 chore(pgadmin) use alpine (#1936) 2019-01-13 23:03:24 +08:00
53e8229313 using Alpine for Beanstalkd and RabbitMQ, list all ports exposed for RabbitMQ (#1950) 2019-01-11 18:52:12 +08:00
36c78369d5 fix aerospike build fail (#1948) 2019-01-10 23:23:51 +08:00
acac6eb229 fix PHP Warning: PHP Startup: Unable to load dynamic library 'phalcon.so' (#1947)
when install APCu and no install Phalcon.
2019-01-10 21:50:59 +08:00
04f071555c fixed php-fpm install phalcon ext bug (#1811)
* add phalcon ext
* fixed phalcon install
* update index.md
* php-worker install phalcon ext
2019-01-10 10:56:30 +08:00
03ff791e17 php-worker: add laradock user (#1928) 2019-01-09 23:54:32 +08:00
7c4f6dd7a9 add gitignore for nginx/ssl folder, prevent keeping cert files in git (#1929) 2019-01-09 23:53:48 +08:00
f44a8e0ca0 Update to fresh version Adminer 4.x (#1900) 2019-01-09 21:31:18 +08:00
ce7a29c662 modify syntax error (#1942)
Syntax error in shell when installing APCU.
Because Fixed shell syntax.
fix #1943, #1940.
2019-01-09 21:22:42 +08:00
bbff18c631 [ Fixing Permission Error ] (#1842)
- Inside container, we can't change /etc files without root permissions
2019-01-08 15:36:20 +08:00
e07c128063 Install socket extension for php-fpm (#1923)
In some case for pushing into queue you need use constant from sockets extension
2019-01-08 15:35:22 +08:00
163eb1f73a add more git aliases (#1922) 2019-01-08 15:34:18 +08:00
30c8afafa2 Add mosquitto broker (#1914)
* Add mosquitto broker
* Add documetation to mosquitto
2019-01-08 15:33:40 +08:00
3e771dbcfc Typo in PHP_VERSION for PHP gmp extension (#1933) 2019-01-08 15:31:21 +08:00
a1bda23cd9 add new conf example file to run laravel scheduler in php-worker (#1930) 2019-01-08 15:30:53 +08:00
e6d866b8a6 Added APCU installation option (#1831) 2019-01-08 15:30:12 +08:00
35ffd02b44 Add ZooKeeper Component (#1899) 2019-01-08 15:29:04 +08:00
d03ead34a2 Nginx for Windows (#1879)
* feature(nginx): add OpenSSL
* feature(nginx): add volume to store the certificates
* feature(nginx): add option installation OpenSSL
* feature(nginx): autogenerate certificates
* chore(nginx): add new line at end of file
* fix(nginx): fix run nginx on Windows
* fix(gitignore): end of file
2019-01-08 15:24:32 +08:00
d8c36ab860 add zip extension support for PHP in php-worker (#1894) 2018-11-27 17:00:03 +08:00
2689638d7d MySQL Client in Workspace (#1892) 2018-11-27 16:59:14 +08:00
fa7d3c239c Fix Permission denied (#1893)
* Revert "default user for workspace is laradock, so that owner of log file when running php artisan command doesn't change (#1875)"

This reverts commit 156d124db0.

* update document to inform user should add --user=laradock when exec into workspace, update sync.sh bash to exec into workspace with user laradock
2018-11-27 16:57:36 +08:00
22032974c9 laravel-horizon (#1854) 2018-11-23 20:47:26 +08:00
4480962922 Updated Chrome Driver to latest stable version (2.32 to 2.42) in env-example (#1813) 2018-11-22 22:25:39 +08:00
cc81e57206 FIX PHP YAML extension #1798 (#1888)
* FIX PHP YAML extension #1798
* changed parameter name
2018-11-22 22:24:50 +08:00
5c41a4f3e9 Update Install YAML PHP extension title (#1887)
miss change title
2018-11-22 11:44:28 +08:00
796b46cf5a PHP YAML extension (#1798) 2018-11-22 08:12:52 +08:00
d7765a7b10 Update docker-compose.yml to add 'dind' to 'Workspace' (#1869)
Add 'docker-in-docker' links end 'DOCKER_HOST' environment to 'workspace'.
2018-11-22 08:10:33 +08:00
156d124db0 default user for workspace is laradock, so that owner of log file when running php artisan command doesn't change (#1875) 2018-11-22 08:10:09 +08:00
afdf2661bd fix certbot (#1666) 2018-11-22 08:09:48 +08:00
a1af01b137 update workspace dockerfile (#1759)
fix workspace user laradock laravel command not found
2018-11-22 08:07:54 +08:00
1519c80036 Enable calling node commands (npm, bower, etc) from the host with 'docker-compose exec' (#1481) 2018-11-22 08:05:44 +08:00
441146b325 Change text error (#1882)
Change text error
2018-11-21 12:37:17 +08:00
0ed5487ed7 fix typo in env-example (#1834) 2018-11-13 21:35:19 +08:00
Jon
ca9d244396 Add default pgadmin credentials to docsls allow log in (#1864) 2018-11-13 21:31:05 +08:00
cf46b87a01 add mssql support for solr (#1829) 2018-11-13 20:58:00 +08:00
0af2115658 added SOAP ext to php-worker (#1817) 2018-11-13 20:55:15 +08:00
c1e8e955a1 Fix typo in seed alias (#1843) 2018-11-13 20:54:02 +08:00
0ffea858d6 Remove duplicate key (#1808) 2018-11-13 20:51:26 +08:00
549094d7d2 Update Doc '.php-fpm' to './php-fpm' (#1848) 2018-11-13 20:47:52 +08:00
7219b3543a Nginx: added OpenSSL for local development (#1527)
* feature(nginx): add OpenSSL
2018-11-13 20:44:51 +08:00
1dac382827 Drop the useless PHP tokenizer extension install step (#1650)
It is bundled and enabled by default in the PHP language already, and adding this step raises a warning:
warning: tokenizer (tokenizer.so) is already loaded!

Also if this option disabled, it's still installed as part of the language anyway!
2018-11-13 20:30:41 +08:00
876336bc1a Fixed typo (#1358) 2018-11-13 19:44:43 +08:00
538b6aa0cd fix home page logo link 2018-10-27 16:04:16 +02:00
c886831613 integrate seedanddew 2018-10-27 15:38:40 +02:00
9cfe5c6156 add phalcon ext (#1806)
* add phalcon ext
2018-09-22 15:45:41 +08:00
db02fe7570 Fix Travis CI build failed (#1803)
php-fpm: Unable to locate package libfaketime
2018-09-18 21:44:36 +08:00
436df887c9 Add docker registry (#1770)
* add docker registry and docker registry web ui
2018-09-18 11:15:59 +08:00
919cde3a76 update thumbor volume var name. (#1801) 2018-09-17 22:28:12 +08:00
784aab2043 Update NVM installer (#1794) 2018-09-17 22:11:30 +08:00
d5d9073863 Fix CHANGE_SOURCE argument always false for nginx's Dockerfile (#1786) 2018-09-17 22:07:07 +08:00
6a3b3fac2d Added support for Thumbor (#1373) 2018-09-16 20:21:13 +08:00
61576c0b1b Change to stable CLI interface (#1793)
workspace apt command
2018-09-16 18:00:46 +08:00
70c1be4168 Point ea Alias To Correct File (#1698) 2018-09-16 17:58:26 +08:00
e101e4d5b2 Add mail services(mailu) (#1775)
* add mail service
2018-09-16 17:44:18 +08:00
4658820437 Update baseurl to https (#1791)
Closes #1751
2018-09-15 21:40:13 +08:00
0bbfb2d228 Update caddy Dockerfile (#1788)
* Change base image
2018-09-15 21:22:44 +08:00
86a4108ef4 fix comment (#1790)
GMP
2018-09-15 21:20:22 +08:00
20c85904c5 Package has been deprecated (#1796)
workspace npm bower
2018-09-15 21:19:24 +08:00
aaef73c84d fix typo (#1797) 2018-09-15 21:16:37 +08:00
876935452e Add .gitignore to php-worker (#1780)
* Add .gitignore
* Change file to example.
2018-09-08 21:31:58 +08:00
00df369e96 Add IonCube Loader (zend_extension) (#1763) 2018-09-08 21:31:05 +08:00
902198ab05 fix application path (#1781)
* fix application path

In the "env.sample" , "APP_CODE_PATH_HOST"  was written. I fixed Documentation.
2018-09-08 19:42:58 +08:00
2e2cb6df22 Enable docker-compose exec workspace npm (and yarn, etc.) (#1743)
* fix node PATH to enable docker-compose exec workspace npm
* add PATH for yarn to enable docker-compose exec workspace yarn
2018-08-31 20:19:52 +08:00
39469e1404 added ssh2 to workspace and php-fpm (#1756) 2018-08-28 14:16:25 +08:00
947a791ad2 Auto reload caddy and add basicauth example (#1706)
* add live reload and basicauth
2018-08-26 16:02:55 +08:00
aa84dd8616 added ext-gmp to workspace container (#1762) 2018-08-21 19:01:12 +08:00
b788a8bbfd Add Web Based IDEs (#1705)
Add Web Based IDEs: Theia, WebIDE, Codaid, IceCoder.
2018-08-21 13:49:56 +08:00
89051de67d This developer needed to turn back the clock in the PHP-FPM container, you will not believe what he did next! (#1675)
* Added documentation for installing libfaketime in the php-fpm container
* Enabled installing and using libfaketime system-wide inside the php-fpm container
2018-08-21 13:41:34 +08:00
1b865dd153 fix php5.6 workspace aerospike travis-ci build failed. (#1738) 2018-07-31 22:38:02 +08:00
8180804ae0 Add Metabase for analytics and Business Intelligence (#1711)
* Include metabase service
* Removing unecessary environment variables
* Update documentation
2018-07-29 13:07:15 +08:00
303dadf33d fix ln: failed to create symbolic link: file exists. (#1735)
#1707
2018-07-29 12:42:13 +08:00
764e484599 Env variable conflict (#1734)
* php-fpm and workspace arg var rename: PHP_VERSION to  LARADOCK_PHP_VERSION.
* travis-ci skip phpbdg
2018-07-29 12:00:13 +08:00
e92f08e323 -u no longer supported (#1733)
* -u no longer supported

https://varnish-cache.org/docs/4.1/reference/varnishd.html
https://support.jpgottech.com/knowledgebase.php?article=90
issue #1732
2018-07-28 15:11:24 +08:00
1acbebc2a3 Update MSSQL Drivers To Newest Version (#1707)
Remove version lock from pecl install
Update to Debian 9 repos since our image is Debian 9
Remove duplicate locales-gen line
Closes #1622
2018-07-28 15:08:01 +08:00
b2ab970d04 Upgrade PostgreSQL client to version 10. (#1508) 2018-07-20 15:48:09 +08:00
679d2b0aba Link fixes and changes in Documentation (#1539)
* Fix guide links
* Changed absolute link to relative
2018-07-20 15:45:12 +08:00
fbc2afee71 implemented option to add bcmath to laradock php-worker (#1716)
* implemented option to add bcmath to laradock php-worker
* updated docs
2018-07-20 15:44:07 +08:00
1962327de1 Corrects folder locations in which to run docker-compose commands for caddy (#1721) 2018-07-20 10:05:31 +08:00
d8b2b8c233 Add gitlab (#1683)
* Add gitlab
2018-07-18 21:20:43 +08:00
0f65c60a89 DockerFile update for improvement (#1568)
Docker file changes for image size improvements.
2018-07-18 21:17:49 +08:00
8624335f61 Update crontab to reference full PHP path (#1517)
Otherwise it doesn't work
2018-07-13 22:36:43 +08:00
7ef36daaba Fix run mongo-webui service get exit 1 (#1702) 2018-07-13 22:32:40 +08:00
4ce25e95b4 Added option to install the php calendar extension in php-fpm (#1672)
* Added option to install the php calendar extension in php-fpm
* Added section about installing php calendar extension in php-fpm
2018-07-13 18:31:13 +08:00
20b0181b6d Make PR Template Checkboxes Render Correctly (#1697) 2018-07-13 18:29:18 +08:00
dc234b9b28 Add Jupyterhub (#1686) 2018-07-13 11:35:46 +08:00
29483bab8c Add Ipython (#1685) 2018-07-13 11:33:41 +08:00
85c57a0b6f update postgresql init db example file (#1689) 2018-07-06 20:59:57 +08:00
2f996450e5 Add Redis webui (#1688)
* add redis webui
* Update env-example
* depends on redis
2018-07-06 20:57:29 +08:00
1823060c4b Add Mongo webui (#1687)
* add mongo webui
* update
* Update env-example
2018-07-06 20:54:44 +08:00
6fa2b75bb7 Getting Started documentation typo (#1590) 2018-07-01 20:22:25 +08:00
2ec23122e7 Update version pointer node (#1598) 2018-06-30 17:08:02 +08:00
a1e01ac19b Install phpdbg (#1612)
* Install phpdbg
* Change documentstion
2018-06-30 16:54:46 +08:00
eccc149f45 Fix current shell on root when installing svgo (#1644)
This fix the following errors:
/bin/sh: 13: /root/.bashrc: shopt: not found
/bin/sh: 21: /root/.bashrc: shopt: not found
/bin/sh: 103: /root/.bashrc: source: not found
2018-06-30 16:50:37 +08:00
9cb7624da7 bugfix: add 'networks' to 'docker-in-docker' (#1660)
I do not know why but the pull request https://github.com/laradock/laradock/pull/1655 has lost the 'networks' code. I'll try to insert it Insert again ;-)
2018-06-30 16:49:29 +08:00
cd1c56c1e2 Fix Laradock-Toolbox url (#1610) 2018-06-28 13:29:30 +08:00
9d42ea6b9d Update docker-compose.yml to add 'dind' (#1655)
Add 'dind' image to run docker-in-docker: issue https://github.com/laradock/laradock/issues/1653
2018-06-28 13:25:33 +08:00
b0bfa5f1d3 Add netdata for monitoring server (#1613)
* add netdata container
* update document
* update document each part separate with 6 * \n
* remove unuse file
2018-06-28 13:24:08 +08:00
dcf6b6d9ac Install of libpng16 library for fix react and react with material-ui application (#1625)
* Added commands in Workspace Dockerfile for installation of libpng with configurable env argument switch

* Updated documentation
2018-06-28 13:14:06 +08:00
1d9cbd7c75 fix: MySQL 8.0 removed NO_AUTO_CREATE_USER SQL mode, fixed #1492 (#1548) 2018-06-27 18:49:53 +08:00
fd56c4dcda Update VUE CLI to v3 (#1654) 2018-06-27 18:48:32 +08:00
0351cf531b Fix minor syntax issue that solves "[/bin/sh: 1: [: missing ]" error (#1649) 2018-06-27 18:47:42 +08:00
09e998b723 Fix missing apt-utils package (#1652) 2018-06-27 18:47:05 +08:00
06d0105514 Fix PHP zip extension installation warnings (#1648)
This fixes the following warnings when installing "zip" php extension:
configure: WARNING: ========================================================
configure: WARNING: Use of bundled libzip is deprecated and will be removed.
configure: WARNING: Some features such as encryption and bzip2 are not available.
configure: WARNING: Use system library and --with-libzip is recommended.
configure: WARNING: ========================================================
2018-06-27 18:46:27 +08:00
0cbc51bf72 php-fpm ini file rename to match volume config format. (#1646)
volumes:
  - ./php-fpm/php${PHP_VERSION}.ini:/usr/local/etc/php/php.ini
2018-06-25 23:03:23 +08:00
08dfc9f816 php-fpm, workspace when php5 support old mongo ext. (#1642) 2018-06-25 20:16:25 +08:00
b71f50bf83 Fix apt-get deprecated --force-yes flag & noninteractive if needed (#1640) 2018-06-24 23:19:49 +08:00
7d1dc66f77 Conditionally install npm tools (#1641) 2018-06-24 23:19:09 +08:00
f3c934222f Fix #1627, The POSTGRES_ENTRYPOINT_INITDB variable is not set. Defaulting to a blank string. (#1639) 2018-06-24 14:38:04 +08:00
a90865d67c Update nvm install instructions (#1638) 2018-06-24 10:02:21 +08:00
a0a5c85a54 Update deployer install instructions (#1637) 2018-06-24 10:01:58 +08:00
a807caa30a Update laravel envoy install instructions (#1636) 2018-06-24 10:01:30 +08:00
bc27e96337 Update aerospike installation instructions (#1635) 2018-06-24 10:00:52 +08:00
11912055ec Update global composer install instructions (#1634) 2018-06-24 10:00:19 +08:00
3509473b89 Update node & yarn install instructions (#1633) 2018-06-24 09:59:15 +08:00
5521f71428 Update mongo install instructions (#1632) 2018-06-24 09:48:20 +08:00
339d47f303 Update linuxbrew install instructions (#1631) 2018-06-24 09:47:13 +08:00
600a6154b4 Automate xdebug installation and simplify instructions (#1630) 2018-06-24 09:46:12 +08:00
4673ba7b31 Fix minor typos and clarify few documentation phrases (#1629) 2018-06-24 09:43:54 +08:00
154249a08f Merge pull request #1614 from ahkui/postgresql_init_db
add postgres init db
2018-06-22 19:41:58 +08:00
5bffd43b55 Merge pull request #1505 from Crease29/patch-1
Add COMPOSE_PROJECT_NAME to env-example
2018-06-22 19:34:33 +08:00
0e9d044c6f Merge pull request #1606 from ahkui/fix_workspace_no_nasm
fix #1607  workspace no nasm
2018-06-22 18:30:49 +08:00
21d203da73 Merge pull request #1617 from bestlong/php70-swoole-build-failed
Fix php7.0 swoole build failed.
2018-06-18 22:24:14 +08:00
a3cbfd71f5 Fix php7.0 swoole build failed. 2018-06-18 21:27:23 +08:00
33234fd3b5 Merge pull request #1615 from bestlong/php5-drush-segmentation-fault
Fix php5.6 workspace DRUSH "Segmentation fault (core dumped)" error.
2018-06-17 23:29:16 +08:00
f47e40b262 fix php5.6 DRUSH "Segmentation fault (core dumped)" error. 2018-06-17 23:20:18 +08:00
7199ae5a34 fix wrong example 2018-06-15 23:37:27 +08:00
6caa4c5fb9 fix wrong sql 2018-06-15 23:27:28 +08:00
3fceba0709 Merge pull request #1608 from elliotleelewis/master
Updated `Kibana` version to match `Elasticsearch` version
2018-06-15 22:22:21 +08:00
75b3fa499e no message 2018-06-15 15:30:45 +08:00
999118b674 update example 2018-06-15 15:27:37 +08:00
4b2c440146 add init database 2018-06-15 04:39:19 +08:00
a4d3f9bd77 Updated Kibana version to match Elasticsearch version 2018-06-12 15:20:14 +01:00
65444d39b6 fix workspace no nasm 2018-06-12 20:15:30 +08:00
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
ad1509dd62 Update docuumentation for COMPOSE_PROJECT_NAME 2018-04-25 08:38:43 +02:00
9ab84c5174 Add COMPOSE_PROJECT_NAME to env-example 2018-04-25 08:30:33 +02: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
545d50105c Update min. docker version 2018-02-16 10:36:22 +02:00
2a74f1433c fix Documentation error for install xDebug 2018-01-17 11:52:30 +08:00
117 changed files with 8782 additions and 5232 deletions

View File

@ -2,6 +2,6 @@
##### I completed the 3 steps below:
- [] I've read the [Contribution Guide](http://laradock.io/contributing).
- [] I've updated the **documentation**. (refer to [this](http://laradock.io/contributing/#update-the-documentation-site) for how to do so).
- [] I enjoyed my time contributing and making developer's life easier :)
- [ ] I've read the [Contribution Guide](http://laradock.io/contributing).
- [ ] I've updated the **documentation**. (refer to [this](http://laradock.io/contributing/#update-the-documentation-site) for how to do so).
- [ ] I enjoyed my time contributing and making developer's life easier :)

2
.github/README.md vendored
View File

@ -1,5 +1,5 @@
<p align="center">
<img src="https://s19.postimg.org/jblfytw9f/laradock-logo.jpg" alt="Laradock Logo"/>
<img src="/.github/home-page-images/laradock-logo.jpg?raw=true" alt="Laradock Logo"/>
</p>
<p align="center">A Docker PHP development environment that facilitates running PHP Apps on Docker</p>

Binary file not shown.

After

Width:  |  Height:  |  Size: 287 KiB

7
.gitignore vendored
View File

@ -5,3 +5,10 @@
/.project
.docker-sync
/jenkins/jenkins_home
/logstash/pipeline/*.conf
/logstash/config/pipelines.yml
/nginx/ssl/*.crt
/nginx/ssl/*.key
/nginx/ssl/*.csr

View File

@ -13,50 +13,50 @@ before_script:
- cat .env
- env | sort
build:56:php-fpm:
build:5.6:php-fpm:
variables:
PHP_VERSION: "56"
PHP_VERSION: "5.6"
script:
- docker-compose build php-fpm
build:70:php-fpm:
build:7.0:php-fpm:
variables:
PHP_VERSION: "70"
PHP_VERSION: "7.0"
script:
- docker-compose build php-fpm
build:71:php-fpm:
build:7.1:php-fpm:
variables:
PHP_VERSION: "71"
PHP_VERSION: "7.1"
script:
- docker-compose build php-fpm
build:72:php-fpm:
build:7.2:php-fpm:
variables:
PHP_VERSION: "72"
PHP_VERSION: "7.2"
script:
- docker-compose build php-fpm
build:56:workspace:
build:5.6:workspace:
variables:
PHP_VERSION: "56"
PHP_VERSION: "5.6"
script:
- docker-compose build workspace
build:70:workspace:
build:7.0:workspace:
variables:
PHP_VERSION: "70"
PHP_VERSION: "7.0"
script:
- docker-compose build workspace
build:71:workspace:
build:7.1:workspace:
variables:
PHP_VERSION: "71"
PHP_VERSION: "7.1"
script:
- docker-compose build workspace
build:72:workspace:
build:7.2:workspace:
variables:
PHP_VERSION: "72"
PHP_VERSION: "7.2"
script:
- docker-compose build workspace

View File

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

View File

@ -1,4 +1,4 @@
baseurl = "http://laradock.io/"
baseurl = "https://laradock.io/"
languageCode = "en-us"
publishDir = "../docs"
title = "Laradock"

View File

@ -73,7 +73,7 @@ To update the sidebar or add a new section to it, you can edit this `DOCUMENTATI
* Add the environment variables to the `env-example` if you have any.
* **MOST IMPORTANTLY** updated the `Documentation`, add as much information.
* **MOST IMPORTANTLY** update the `Documentation`, add as much information.
* Submit a Pull Request, to the `master` branch.
@ -100,7 +100,7 @@ To update the sidebar or add a new section to it, you can edit this `DOCUMENTATI
* Search for the image in the [Docker Hub](https://hub.docker.com/search/) and find the source..
*Most of the image in Laradock are offical images, these projects live in other repositories and maintainer by other orgnizations.*
*Most of the image in Laradock are offical images, these projects live in other repositories and maintainer by other organizations.*
**Note:** Laradock has two base images for (`Workspace` and `php-fpm`, mainly made to speed up the build time on your machine.

File diff suppressed because it is too large Load Diff

View File

@ -7,7 +7,7 @@ weight: 2
## Requirements
- [Git](https://git-scm.com/downloads)
- [Docker](https://www.docker.com/products/docker/) `>= 1.12`
- [Docker](https://www.docker.com/products/docker/) `>= 17.12`
@ -81,10 +81,10 @@ We'll need to do step 1 of the [Usage](#Usage) section now to make this happen.
cp env-example .env
```
At the top, change the `APPLICATION` variable to your project path.
At the top, change the `APP_CODE_PATH_HOST` variable to your project path.
```
APPLICATION=../project-z/
APP_CODE_PATH_HOST=../project-z/
```
Make sure to replace `project-z` with your project folder name.
@ -94,7 +94,7 @@ Make sure to replace `project-z` with your project folder name.
<a name="B"></a>
### B) Setup for Multiple Projects:
> (Follow these steps if you want a single Docker environment for all your project)
> (Follow these steps if you want a single Docker environment for all your projects)
1 - Clone this repository anywhere on your machine (similar to [Steps A.2. from above](#A2)):
@ -143,7 +143,7 @@ If you use Chrome 63 or above for development, don't use `.dev`. [Why?](https://
If you are using **Docker Toolbox** (VM), do one of the following:
- Upgrade to Docker [Native](https://www.docker.com/products/docker) for Mac/Windows (Recommended). Check out [Upgrading Laradock](/documentation/#upgrading-laradock)
- Use Laradock v3.\*. Visit the [Laradock-ToolBox](https://github.com/laradock/laradock/tree/Laradock-ToolBox) branch. *(outdated)*
- Use Laradock v3.\*. Visit the [Laradock-ToolBox](https://github.com/laradock/laradock/tree/LaraDock-ToolBox) branch. *(outdated)*
<br>
@ -161,11 +161,13 @@ We recommend using a Docker version which is newer than 1.13.
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 being 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`
By default the containers that will be created have the current directory name as suffix (e.g. `laradock_workspace_1`). This can cause mixture of data inside the container volumes if you use laradock in multiple projects. In this case, either read the guide for [multiple projects](#B) or change the variable `COMPOSE_PROJECT_NAME` to something unique like your project name.
2 - Build the environment and run it using `docker-compose`
In this example we'll see how to run NGINX (web server) and MySQL (database engine) to host a PHP Web Scripts:
@ -173,7 +175,7 @@ In this example we'll see how to run NGINX (web server) and MySQL (database engi
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**: All the web server containers `nginx`, `apache` ..etc depends on `php-fpm`, which means if you run any of them, they will automatically launch the `php-fpm` container for you, so no need to explicitly specify it in the `up` command. If you have to do so, you may need to run them as follows: `docker-compose up -d nginx php-fpm mysql`.
You can select your own combination of containers from [this list](http://laradock.io/introduction/#supported-software-images).
@ -203,7 +205,7 @@ docker-compose exec --user=laradock workspace bash
*You can change the PUID (User id) and PGID (group id) variables from the `.env` file)*
<br>
4 - Update your project configurations to use the database host
4 - Update your project configuration to use the database host
Open your PHP project's `.env` file or whichever configuration file you are reading from, and set the database host `DB_HOST` to `mysql`:

View File

@ -50,12 +50,6 @@ $root@server:~/laravel/ git submodule add https://github.com/Laradock/laradock.g
$root@server:~/laravel/ cd laradock
```
## Install docker-compose command
```
$root@server:~/laravel/laradock# curl -L https://github.com/docker/compose/releases/download/1.8.0/run.sh > /usr/local/bin/docker-compose
$root@server:~/chmod +x /usr/local/bin/docker-compose
```
## Enter the laradock folder and rename env-example to .env.
```
$root@server:~/laravel/laradock# cp env-example .env
@ -197,7 +191,7 @@ This is needed Prior to Creating Let's Encypt
## Run Your Caddy Container without the -d flag and Generate SSL with Let's Encrypt
```
$root@server:~/laravel/laradock/caddy# docker-compose up caddy
$root@server:~/laravel/laradock# docker-compose up caddy
```
You'll be prompt here to enter your email... you may enter it or not
@ -218,8 +212,8 @@ After it finishes, press `Ctrl` + `C` to exit.
## Stop All Containers and ReRun Caddy and Other Containers on Background
```
$root@server:~/laravel/laradock/caddy# docker-compose down
$root@server:~/laravel/laradock/caddy# docker-compose up -d mysql caddy
$root@server:~/laravel/laradock# docker-compose down
$root@server:~/laravel/laradock# docker-compose up -d mysql caddy
```
View your Site in the Browser Securely Using HTTPS (https://yourdomain.com)
@ -418,7 +412,7 @@ laradock_workspace_1 /sbin/my_init Up 0.0.0.0:2222-
<a name="enablePhpXdebug"></a>
## Enable xDebug on php-fpm
In a host terminal sitting in the laradock folder, run: `.php-fpm/xdebug status`
In a host terminal sitting in the laradock folder, run: `./php-fpm/xdebug status`
You should see something like the following:
```
@ -430,7 +424,7 @@ Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
with Xdebug v2.4.1, Copyright (c) 2002-2016, by Derick Rethans
```
Other commands include `.php-fpm/xdebug start | stop`.
Other commands include `./php-fpm/xdebug start | stop`.
If you have enabled `xdebug=true` in `docker-compose.yml/php-fpm`, `xdebug` will already be running when
`php-fpm` is started and listening for debug info on port 9000.
@ -516,9 +510,9 @@ If you have enabled `xdebug=true` in `docker-compose.yml/php-fpm`, `xdebug` will
<a name="UsagePHPStormDebugSite"></a>
### Debug WebSite
- In case xDebug is disabled, from the `laradock` folder run:
`.php-fpm/xdebug start`.
`./php-fpm/xdebug start`.
- To switch xdebug off, run:
`.php-fpm/xdebug stop`
`./php-fpm/xdebug stop`
- Start Remote Debugging
- ![DebugRemoteOn](/images/photos/PHPStorm/DebugRemoteOn.png)

View File

@ -35,7 +35,7 @@ cp env-example .env
3 - Run your containers:
```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:
@ -58,7 +58,7 @@ That's it! enjoy :)
<a name="features"></a>
## Features
- Easy switch between PHP versions: 7.1, 7.0, 5.6...
- Easy switch between PHP versions: 7.3, 7.2, 7.1, 5.6...
- Choose your favorite database engine: MySQL, Postgres, MariaDB...
- Run your own combination of software: Memcached, HHVM, Beanstalkd...
- Every software runs on a separate container: PHP-FPM, NGINX, PHP-CLI...
@ -97,13 +97,13 @@ Beanstalkd - RabbitMQ - PHP Worker
- **Queueing Management:**
Beanstalkd Console - RabbitMQ Console
- **Random Tools:**
HAProxy - Certbot - Blackfire - Selenium - Jenkins - ElasticSearch - Kibana - Grafana - Mailhog - MailDev - Minio - Varnish - Swoole - Laravel Echo...
Mailu - HAProxy - Certbot - Blackfire - Selenium - Jenkins - ElasticSearch - Kibana - Grafana - Gitlab - Mailhog - MailDev - Minio - Varnish - Swoole - NetData - Portainer - Laravel Echo - Phalcon...
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.
**Workspace Image Tools**
PHP CLI - Composer - Git - Linuxbrew - Node - V8JS - Gulp - SQLite - xDebug - Envoy - Deployer - Vim - Yarn - SOAP - Drush...
PHP CLI - Composer - Git - Linuxbrew - Node - V8JS - Gulp - SQLite - xDebug - Envoy - Deployer - Vim - Yarn - SOAP - Drush - WP-CLI...
You can choose, which tools to install in your workspace container and other containers, from the `.env` file.

View File

@ -25,18 +25,21 @@
<article class="article">
<div class="wrapper">
<!-- ------------------------------------------------------------------------- -->
<!-- Google Ads -->
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- Laradock Horizontal -->
<ins class="adsbygoogle"
style="display:inline-block;width:890px;height:100px"
data-ad-client="ca-pub-9826129398689742"
data-ad-slot="2340256024"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
<!-- ------------------------------------------------------------------------- -->
<!-- Wrapper arround google ads for seedanddew -->
<div class='snd-ad'>
<!-- ------------------------------------------------------------------------- -->
<!-- Google Ads -->
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- Laradock Horizontal -->
<ins class="adsbygoogle"
style="display:inline-block;width:890px;height:100px"
data-ad-client="ca-pub-9826129398689742"
data-ad-slot="2340256024"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
<!-- ------------------------------------------------------------------------- -->
</div>
{{ range where .Site.Pages "Type" "index" }}
<h1>{{ .Title }} {{ if .IsDraft }} (Draft){{ end }}</h1>

View File

@ -70,6 +70,27 @@
{{ end }}
<script src="{{ "javascripts/modernizr.js" | absURL }}"></script>
<script>
// ------------------------------------------------------------
// seedanddew.com integration
var SeedAndDewConfig = {};
(function() {
SeedAndDewConfig['adClass'] = "snd-ad";
/* * * DON'T EDIT BELOW THIS LINE * * */
SeedAndDewConfig['projectId'] = 'd69f3ea2-1e30-44c7-bd2a-87686c0136e6';
SeedAndDewConfig['loadStartTime'] = performance.now();
SeedAndDewConfig['apiVersion'] = '2018-05-28'
SeedAndDewConfig['sessionId'] = Math.random().toString(36).substring(2, 15);
var snd = document.createElement('script');
snd.type = 'text/javascript';
snd.async = true;
snd.src = 'https://www.seedanddew.com/static/embed.min.js';
(document.getElementsByTagName('head')[0] ||
document.getElementsByTagName('body')[0]).appendChild(snd);
})();
// ------------------------------------------------------------
</script>
{{ with .RSSLink }}
<link href="{{ . }}" rel="alternate" type="application/rss+xml" title="{{ $.Site.Title }}" />
<link href="{{ . }}" rel="feed" type="application/rss+xml" title="{{ $.Site.Title }}" />

View File

@ -1,7 +1,4 @@
FROM adminer:4.3.0
# Version 4.3.1 contains PostgreSQL login errors. See docs.
# See https://sourceforge.net/p/adminer/bugs-and-features/548/
FROM adminer:4
LABEL maintainer="Patrick Artounian <partounian@gmail.com>"
@ -16,11 +13,15 @@ ARG INSTALL_MSSQL=false
ENV INSTALL_MSSQL ${INSTALL_MSSQL}
RUN if [ ${INSTALL_MSSQL} = true ]; then \
set -xe \
&& apk --update add --no-cache --virtual .phpize-deps $PHPIZE_DEPS unixodbc unixodbc-dev \
&& pecl channel-update pecl.php.net \
&& pecl install pdo_sqlsrv-4.1.8preview sqlsrv-4.1.8preview \
&& echo "extension=sqlsrv.so" > /usr/local/etc/php/conf.d/20-sqlsrv.ini \
&& echo "extension=pdo_sqlsrv.so" > /usr/local/etc/php/conf.d/20-pdo_sqlsrv.ini \
# && apk --update add --no-cache --virtual .phpize-deps $PHPIZE_DEPS unixodbc unixodbc-dev \
# && pecl channel-update pecl.php.net \
# && pecl install pdo_sqlsrv-4.1.8preview sqlsrv-4.1.8preview \
# && echo "extension=sqlsrv.so" > /usr/local/etc/php/conf.d/20-sqlsrv.ini \
# && echo "extension=pdo_sqlsrv.so" > /usr/local/etc/php/conf.d/20-pdo_sqlsrv.ini \
&& apk --update add --no-cache freetds unixodbc \
&& apk --update add --no-cache --virtual .build-deps $PHPIZE_DEPS freetds-dev unixodbc-dev \
&& docker-php-ext-install pdo_dblib \
&& apk del .build-deps \
;fi
USER adminer

View File

@ -1,16 +1,7 @@
FROM phusion/baseimage:latest
FROM alpine
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
ENV DEBIAN_FRONTEND noninteractive
ENV PATH /usr/local/rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
RUN apt-get update
RUN apt-get install -y beanstalkd
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
VOLUME /var/lib/beanstalkd/data
RUN apk add --no-cache beanstalkd
EXPOSE 11300
CMD ["/usr/bin/beanstalkd"]
ENTRYPOINT ["/usr/bin/beanstalkd"]

View File

@ -1,17 +1,30 @@
FROM zuohuadong/caddy:alpine
FROM golang:alpine
LABEL maintainer="Huadong Zuo <admin@zuohuadong.cn>"
RUN apk add --no-cache \
openssh \
git \
build-base \
&& mkdir -p $GOPATH/src/golang.org/x/ \
&& cd $GOPATH/src/golang.org/x/ \
&& git clone https://github.com/golang/sys.git sys \
&& go get github.com/abiosoft/caddyplug/caddyplug \
&& caddyplug install-caddy \
apk del build-base
ARG plugins="cors"
## ARG plugins="cors cgi cloudflare azure linode"
RUN caddyplug install ${plugins}
EXPOSE 80 443 2015
RUN apk add --no-cache inotify-tools \
&& echo -e "#!/bin/sh\nwhile inotifywait -e modify /etc/caddy; do\n\tpkill caddy\ndone " >> /start.sh \
&& chmod +x /start.sh
EXPOSE 80 443
WORKDIR /var/www/public
CMD ["/usr/bin/caddy", "-conf", "/etc/Caddyfile"]
CMD ["sh","-c","/start.sh & /usr/bin/caddy -conf /etc/caddy/Caddyfile -agree"]

View File

@ -44,3 +44,8 @@ laradock2.demo:80 {
#proxy domain.com
#cors
}
laradock3.demo:80 {
import authlist.conf
root /var/www/public
}

View File

@ -0,0 +1 @@
basicauth / laradock laradock

3
couchdb/Dockerfile Normal file
View File

@ -0,0 +1,3 @@
FROM couchdb
EXPOSE 5984

View File

@ -1,9 +0,0 @@
version: "2"
services:
### Applications Code Container #############################
applications:
volumes:
- ${APPLICATION}:/var/www:cached

View File

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

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,3 @@
FROM registry:2
LABEL maintainer="ahkui <ahkui@outlook.com>"

View File

@ -6,7 +6,7 @@ syncs:
applications-docker-sync: # name of the intermediary sync volume
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_strategy: '${DOCKER_SYNC_STRATEGY}' # for osx use 'native_osx', for windows use 'unison'

3
docker-web-ui/Dockerfile Normal file
View File

@ -0,0 +1,3 @@
FROM konradkleine/docker-registry-frontend:v2
LABEL maintainer="ahkui <ahkui@outlook.com>"

View File

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

View File

@ -1,81 +1,118 @@
###########################################################
# General Setup
###################### General Setup ######################
###########################################################
### Application Path ###################################################################################################
# Point to your code, will be available at `/var/www`.
### Paths #################################################
APPLICATION=../
# Point to the path of your applications code on your host
APP_CODE_PATH_HOST=../
### PHP Version ########################################################################################################
# Select a PHP version of the Workspace and PHP-FPM containers (Does not apply to HHVM). Accepted values: 72 - 71 - 70 - 56
# Point to where the `APP_CODE_PATH_HOST` should be in the container
APP_CODE_PATH_CONTAINER=/var/www
PHP_VERSION=72
# You may add flags to the path `:cached`, `:delegated`. When using Docker Sync add `:nocopy`
APP_CODE_CONTAINER_FLAG=:cached
# 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=:
# Define the prefix of container names. This is useful if you have multiple projects that use laradock to have seperate containers per project.
COMPOSE_PROJECT_NAME=laradock
### PHP Version ###########################################
# Select a PHP version of the Workspace and PHP-FPM containers (Does not apply to HHVM). Accepted values: 7.3 - 7.2 - 7.1 - 7.0 - 5.6
PHP_VERSION=7.2
### Phalcon Version ###########################################
# Select a Phalcon version of the Workspace and PHP-FPM containers (Does not apply to HHVM). Accepted values: 3.4.0+
PHALCON_VERSION=3.4.1
### PHP Interpreter #######################################
### PHP Interpreter ####################################################################################################
# Select the PHP Interpreter. Accepted values: hhvm - php-fpm
PHP_INTERPRETER=php-fpm
### Data Path ##########################################################################################################
# Choose storage path on your machine. For all storage systems.
### Docker Host IP ########################################
DATA_SAVE_PATH=~/.laradock/data
### Docker compose files ###############################################################################################
# Select which docker-compose files to include.
# If using docker-sync. Set the value to: docker-compose.yml:docker-compose.dev.yml:docker-compose.sync.yml
# Change the separator from : to ; on Windows
COMPOSE_PATH_SEPARATOR=:
COMPOSE_FILE=docker-compose.yml:docker-compose.dev.yml
### Docker Host IP #####################################################################################################
# Enter your Docker Host IP (will be appended to /etc/hosts). Default is `10.0.75.1`
DOCKER_HOST_IP=10.0.75.1
### Remote Interpreter #################################################################################################
# Choose a Remote Interpreter entry matching name. Default is `laradock`
### Remote Interpreter ####################################
# Choose a Remote Interpreter entry matching name. Default is `laradock`
PHP_IDE_CONFIG=serverName=laradock
### Windows Path #######################################################################################################
# A fix for Windows users, to ensure the application path works.
### Windows Path ##########################################
# A fix for Windows users, to ensure the application path works
COMPOSE_CONVERT_WINDOWS_PATHS=1
### Environment ########################################################################################################
# If you're in China, or you need to change sources, will be set CHANGE_SOURCE to true in .env.
### 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_AUTH=false
WORKSPACE_COMPOSER_REPO_PACKAGIST=
WORKSPACE_INSTALL_NODE=true
WORKSPACE_NODE_VERSION=node
WORKSPACE_NPM_REGISTRY=
WORKSPACE_INSTALL_YARN=true
WORKSPACE_YARN_VERSION=latest
WORKSPACE_INSTALL_NPM_GULP=true
WORKSPACE_INSTALL_NPM_BOWER=false
WORKSPACE_INSTALL_NPM_VUE_CLI=true
WORKSPACE_INSTALL_NPM_ANGULAR_CLI=false
WORKSPACE_INSTALL_PHPREDIS=true
WORKSPACE_INSTALL_WORKSPACE_SSH=false
WORKSPACE_INSTALL_SUBVERSION=false
WORKSPACE_INSTALL_XDEBUG=false
WORKSPACE_INSTALL_PHPDBG=false
WORKSPACE_INSTALL_SSH2=false
WORKSPACE_INSTALL_LDAP=false
WORKSPACE_INSTALL_GMP=false
WORKSPACE_INSTALL_SOAP=false
WORKSPACE_INSTALL_XSL=false
WORKSPACE_INSTALL_IMAP=false
WORKSPACE_INSTALL_MONGO=false
WORKSPACE_INSTALL_AMQP=false
WORKSPACE_INSTALL_PHPREDIS=false
WORKSPACE_INSTALL_MSSQL=false
WORKSPACE_INSTALL_NODE=false
WORKSPACE_NPM_REGISTRY=
WORKSPACE_INSTALL_YARN=false
WORKSPACE_INSTALL_DRUSH=false
WORKSPACE_DRUSH_VERSION=8.1.17
WORKSPACE_INSTALL_DRUPAL_CONSOLE=false
WORKSPACE_INSTALL_WP_CLI=false
WORKSPACE_INSTALL_AEROSPIKE=false
WORKSPACE_INSTALL_V8JS=false
WORKSPACE_COMPOSER_GLOBAL_INSTALL=false
WORKSPACE_COMPOSER_REPO_PACKAGIST=
WORKSPACE_INSTALL_WORKSPACE_SSH=false
WORKSPACE_INSTALL_LARAVEL_ENVOY=false
WORKSPACE_INSTALL_LARAVEL_INSTALLER=false
WORKSPACE_INSTALL_DEPLOYER=false
@ -89,47 +126,69 @@ WORKSPACE_INSTALL_IMAGEMAGICK=false
WORKSPACE_INSTALL_TERRAFORM=false
WORKSPACE_INSTALL_DUSK_DEPS=false
WORKSPACE_INSTALL_PG_CLIENT=false
WORKSPACE_INSTALL_PHALCON=false
WORKSPACE_INSTALL_SWOOLE=false
WORKSPACE_INSTALL_LIBPNG=false
WORKSPACE_INSTALL_IONCUBE=false
WORKSPACE_INSTALL_MYSQL_CLIENT=false
WORKSPACE_PUID=1000
WORKSPACE_PGID=1000
WORKSPACE_CHROME_DRIVER_VERSION=2.32
WORKSPACE_NODE_VERSION=stable
WORKSPACE_YARN_VERSION=latest
WORKSPACE_CHROME_DRIVER_VERSION=2.42
WORKSPACE_TIMEZONE=UTC
WORKSPACE_SSH_PORT=2222
### PHP_FPM ############################################################################################################
### PHP_FPM ###############################################
PHP_FPM_INSTALL_BCMATH=true
PHP_FPM_INSTALL_MYSQLI=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_PHPDBG=false
PHP_FPM_INSTALL_IMAP=false
PHP_FPM_INSTALL_MONGO=false
PHP_FPM_INSTALL_AMQP=false
PHP_FPM_INSTALL_MSSQL=false
PHP_FPM_INSTALL_SSH2=false
PHP_FPM_INSTALL_SOAP=false
PHP_FPM_INSTALL_ZIP_ARCHIVE=false
PHP_FPM_INSTALL_BCMATH=false
PHP_FPM_INSTALL_XSL=false
PHP_FPM_INSTALL_GMP=false
PHP_FPM_INSTALL_PHPREDIS=false
PHP_FPM_INSTALL_MEMCACHED=false
PHP_FPM_INSTALL_OPCACHE=false
PHP_FPM_INSTALL_EXIF=false
PHP_FPM_INSTALL_AEROSPIKE=false
PHP_FPM_INSTALL_MYSQLI=false
PHP_FPM_INSTALL_PGSQL=false
PHP_FPM_INSTALL_TOKENIZER=false
PHP_FPM_INSTALL_INTL=false
PHP_FPM_INSTALL_GHOSTSCRIPT=false
PHP_FPM_INSTALL_LDAP=false
PHP_FPM_INSTALL_PHALCON=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_PCNTL=false
PHP_FPM_INSTALL_CALENDAR=false
PHP_FPM_INSTALL_FAKETIME=false
PHP_FPM_INSTALL_IONCUBE=false
PHP_FPM_FAKETIME=-0
PHP_FPM_INSTALL_APCU=false
PHP_FPM_INSTALL_YAML=false
PHP_FPM_INSTALL_ADDITIONAL_LOCALES=false
PHP_FPM_INSTALL_MYSQL_CLIENT=false
PHP_FPM_ADDITIONAL_LOCALES="es_ES.UTF-8 fr_FR.UTF-8"
### PHP_WORKER #########################################################################################################
### PHP_WORKER ############################################
PHP_WORKER_INSTALL_PGSQL=false
PHP_WORKER_INSTALL_BCMATH=false
PHP_WORKER_INSTALL_PHALCON=false
PHP_WORKER_INSTALL_SOAP=false
PHP_WORKER_INSTALL_ZIP_ARCHIVE=false
PHP_WORKER_INSTALL_MYSQL_CLIENT=false
PHP_WORKER_INSTALL_AMQP=false
PHP_WORKER_PUID=1000
PHP_WORKER_PGID=1000
### NGINX ##############################################################################################################
### NGINX #################################################
NGINX_HOST_HTTP_PORT=80
NGINX_HOST_HTTPS_PORT=443
@ -137,8 +196,9 @@ NGINX_HOST_LOG_PATH=./logs/nginx/
NGINX_SITES_PATH=./nginx/sites/
NGINX_PHP_UPSTREAM_CONTAINER=php-fpm
NGINX_PHP_UPSTREAM_PORT=9000
NGINX_SSL_PATH=./nginx/ssl/
### APACHE #############################################################################################################
### APACHE ################################################
APACHE_HOST_HTTP_PORT=80
APACHE_HOST_HTTPS_PORT=443
@ -149,7 +209,7 @@ APACHE_PHP_UPSTREAM_PORT=9000
APACHE_PHP_UPSTREAM_TIMEOUT=60
APACHE_DOCUMENT_ROOT=/var/www/
### MYSQL ##############################################################################################################
### MYSQL #################################################
MYSQL_VERSION=latest
MYSQL_DATABASE=default
@ -159,11 +219,19 @@ MYSQL_PORT=3306
MYSQL_ROOT_PASSWORD=root
MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d
### REDIS ##############################################################################################################
### REDIS #################################################
REDIS_PORT=6379
### Percona ############################################################################################################
### REDIS CLUSTER #########################################
REDIS_CLUSTER_PORT_RANGE=7000-7005
### ZooKeeper #############################################
ZOOKEEPER_PORT=2181
### Percona ###############################################
PERCONA_DATABASE=homestead
PERCONA_USER=homestead
@ -172,13 +240,13 @@ PERCONA_PORT=3306
PERCONA_ROOT_PASSWORD=root
PERCONA_ENTRYPOINT_INITDB=./percona/docker-entrypoint-initdb.d
### MSSQL ##############################################################################################################
### MSSQL #################################################
MSSQL_DATABASE=homestead
MSSQL_PASSWORD=yourStrong(!)Password
MSSQL_PORT=1433
### MARIADB ############################################################################################################
### MARIADB ###############################################
MARIADB_DATABASE=default
MARIADB_USER=default
@ -187,14 +255,15 @@ MARIADB_PORT=3306
MARIADB_ROOT_PASSWORD=root
MARIADB_ENTRYPOINT_INITDB=./mariadb/docker-entrypoint-initdb.d
### POSTGRES ###########################################################################################################
### POSTGRES ##############################################
POSTGRES_DB=default
POSTGRES_USER=default
POSTGRES_PASSWORD=secret
POSTGRES_PORT=5432
POSTGRES_ENTRYPOINT_INITDB=./postgres/docker-entrypoint-initdb.d
### RABBITMQ ###########################################################################################################
### RABBITMQ ##############################################
RABBITMQ_NODE_HOST_PORT=5672
RABBITMQ_MANAGEMENT_HTTP_HOST_PORT=15672
@ -202,43 +271,43 @@ RABBITMQ_MANAGEMENT_HTTPS_HOST_PORT=15671
RABBITMQ_DEFAULT_USER=guest
RABBITMQ_DEFAULT_PASS=guest
### ELASTICSEARCH ######################################################################################################
### ELASTICSEARCH #########################################
ELASTICSEARCH_HOST_HTTP_PORT=9200
ELASTICSEARCH_HOST_TRANSPORT_PORT=9300
### KIBANA #############################################################################################################
### KIBANA ################################################
KIBANA_HTTP_PORT=5601
### MEMCACHED ##########################################################################################################
### MEMCACHED #############################################
MEMCACHED_HOST_PORT=11211
### BEANSTALKD CONSOLE #################################################################################################
### BEANSTALKD CONSOLE ####################################
BEANSTALKD_CONSOLE_BUILD_PATH=./beanstalkd-console
BEANSTALKD_CONSOLE_CONTAINER_NAME=beanstalkd-console
BEANSTALKD_CONSOLE_HOST_PORT=2080
### BEANSTALKD #########################################################################################################
### BEANSTALKD ############################################
BEANSTALKD_HOST_PORT=11300
### SELENIUM ###########################################################################################################
### SELENIUM ##############################################
SELENIUM_PORT=4444
### MINIO ##############################################################################################################
### MINIO #################################################
MINIO_PORT=9000
### ADMINER ############################################################################################################
### ADMINER ###############################################
ADM_PORT=8080
ADM_INSTALL_MSSQL=false
### PHP MY ADMIN #######################################################################################################
### PHP MY ADMIN ##########################################
# Accepted values: mariadb - mysql
@ -251,95 +320,340 @@ PMA_PASSWORD=secret
PMA_ROOT_PASSWORD=secret
PMA_PORT=8080
### MAILDEV ############################################################################################################
### MAILDEV ###############################################
MAILDEV_HTTP_PORT=1080
MAILDEV_SMTP_PORT=25
### VARNISH ############################################################################################################
### VARNISH ###############################################
VARNISH_CONFIG=/etc/varnish/default.vcl
VARNISH_PORT=8080
VARNISH_BACKEND_PORT=8888
VARNISHD_PARAMS=-p default_ttl=3600 -p default_grace=3600
### Varnish ############################################################################################################
### Varnish ###############################################
# Proxy 1
VARNISH_PROXY1_CACHE_SIZE=128m
VARNISH_PROXY1_BACKEND_HOST=workspace
VARNISH_PROXY1_SERVER=SERVER1
# Proxy 2
VARNISH_PROXY2_CACHE_SIZE=128m
VARNISH_PROXY2_BACKEND_HOST=workspace
VARNISH_PROXY2_SERVER=SERVER2
### HAPROXY ############################################################################################################
### HAPROXY ###############################################
HAPROXY_HOST_HTTP_PORT=8085
### JENKINS ############################################################################################################
### JENKINS ###############################################
JENKINS_HOST_HTTP_PORT=8090
JENKINS_HOST_SLAVE_AGENT_PORT=50000
JENKINS_HOME=./jenkins/jenkins_home
### GRAFANA ############################################################################################################
### GRAFANA ###############################################
GRAFANA_PORT=3000
### 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.
### 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.
INSTALL_BLACKFIRE=false
BLACKFIRE_CLIENT_ID=<client_id>
BLACKFIRE_CLIENT_TOKEN=<client_token>
BLACKFIRE_SERVER_ID=<server_id>
BLACKFIRE_SERVER_TOKEN=<server_token>
### AEROSPIKE ##########################################################################################################
### AEROSPIKE #############################################
AEROSPIKE_SERVICE_PORT=3000
AEROSPIKE_FABRIC_PORT=3001
AEROSPIKE_HEARTBEAT_PORT=3002
AEROSPIKE_INFO_PORT=3003
### RETHINKDB ##########################################################################################################
### RETHINKDB #############################################
RETHINKDB_PORT=8090
### MONGODB ############################################################################################################
### MONGODB ###############################################
MONGODB_PORT=27017
### CADDY ##############################################################################################################
### CADDY #################################################
CADDY_HOST_HTTP_PORT=80
CADDY_HOST_HTTPS_PORT=443
CADDY_HOST_LOG_PATH=./logs/caddy
CADDY_CUSTOM_CADDYFILE=./caddy/Caddyfile
CADDY_CONFIG_PATH=./caddy/caddy
### LARAVEL ECHO SERVER ################################################################################################
### LARAVEL ECHO SERVER ###################################
LARAVEL_ECHO_SERVER_PORT=6001
### SOLR ###############################################################################################################
### THUMBOR ############################################################################################################
THUMBOR_PORT=8000
THUMBOR_LOG_FORMAT="%(asctime)s %(name)s:%(levelname)s %(message)s"
THUMBOR_LOG_DATE_FORMAT="%Y-%m-%d %H:%M:%S"
MAX_WIDTH=0
MAX_HEIGHT=0
MIN_WIDTH=1
MIN_HEIGHT=1
ALLOWED_SOURCES=[]
QUALITY=80
WEBP_QUALITY=None
PNG_COMPRESSION_LEVEL=6
AUTO_WEBP=False
MAX_AGE=86400
MAX_AGE_TEMP_IMAGE=0
RESPECT_ORIENTATION=False
IGNORE_SMART_ERRORS=False
PRESERVE_EXIF_INFO=False
ALLOW_ANIMATED_GIFS=True
USE_GIFSICLE_ENGINE=False
USE_BLACKLIST=False
LOADER=thumbor.loaders.http_loader
STORAGE=thumbor.storages.file_storage
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
RESULT_STORAGE=thumbor.result_storages.file_storage
ENGINE=thumbor.engines.pil
SECURITY_KEY="MY_SECURE_KEY"
ALLOW_UNSAFE_URL=True
ALLOW_OLD_URLS=True
FILE_LOADER_ROOT_PATH=/data/loader
HTTP_LOADER_CONNECT_TIMEOUT=5
HTTP_LOADER_REQUEST_TIMEOUT=20
HTTP_LOADER_FOLLOW_REDIRECTS=True
HTTP_LOADER_MAX_REDIRECTS=5
HTTP_LOADER_FORWARD_USER_AGENT=False
HTTP_LOADER_DEFAULT_USER_AGENT="Thumbor/5.2.1"
HTTP_LOADER_PROXY_HOST=None
HTTP_LOADER_PROXY_PORT=None
HTTP_LOADER_PROXY_USERNAME=None
HTTP_LOADER_PROXY_PASSWORD=None
HTTP_LOADER_CA_CERTS=None
HTTP_LOADER_VALIDATE_CERTS=True
HTTP_LOADER_CLIENT_KEY=None
HTTP_LOADER_CLIENT_CERT=None
HTTP_LOADER_CURL_ASYNC_HTTP_CLIENT=False
STORAGE_EXPIRATION_SECONDS=2592000
STORES_CRYPTO_KEY_FOR_EACH_IMAGE=False
FILE_STORAGE_ROOT_PATH=/data/storage
UPLOAD_MAX_SIZE=0
UPLOAD_ENABLED=False
UPLOAD_PHOTO_STORAGE=thumbor.storages.file_storage
UPLOAD_DELETE_ALLOWED=False
UPLOAD_PUT_ALLOWED=False
UPLOAD_DEFAULT_FILENAME=image
MONGO_STORAGE_SERVER_HOST=mongo
MONGO_STORAGE_SERVER_PORT=27017
MONGO_STORAGE_SERVER_DB=thumbor
MONGO_STORAGE_SERVER_COLLECTION=images
REDIS_STORAGE_SERVER_HOST=redis
REDIS_STORAGE_SERVER_PORT=6379
REDIS_STORAGE_SERVER_DB=0
REDIS_STORAGE_SERVER_PASSWORD=None
REDIS_RESULT_STORAGE_SERVER_HOST=redis
REDIS_RESULT_STORAGE_SERVER_PORT=6379
REDIS_RESULT_STORAGE_SERVER_DB=0
REDIS_RESULT_STORAGE_SERVER_PASSWORD=None
MEMCACHE_STORAGE_SERVERS=["localhost:11211",]
MIXED_STORAGE_FILE_STORAGE=thumbor.storages.no_storage
MIXED_STORAGE_CRYPTO_STORAGE=thumbor.storages.no_storage
MIXED_STORAGE_DETECTOR_STORAGE=thumbor.storages.no_storage
META_CALLBACK_NAME=None
DETECTORS=[]
FACE_DETECTOR_CASCADE_FILE=haarcascade_frontalface_alt.xml
OPTIMIZERS=[]
JPEGTRAN_PATH=/usr/bin/jpegtran
PROGRESSIVE_JPEG=True
FILTERS=["thumbor.filters.brightness", "thumbor.filters.contrast", "thumbor.filters.rgb", "thumbor.filters.round_corner", "thumbor.filters.quality", "thumbor.filters.noise", "thumbor.filters.watermark", "thumbor.filters.equalize", "thumbor.filters.fill", "thumbor.filters.sharpen", "thumbor.filters.strip_icc", "thumbor.filters.frame", "thumbor.filters.grayscale", "thumbor.filters.rotate", "thumbor.filters.format", "thumbor.filters.max_bytes", "thumbor.filters.convolution", "thumbor.filters.blur", "thumbor.filters.extract_focal", "thumbor.filters.no_upscale"]
RESULT_STORAGE_EXPIRATION_SECONDS=0
RESULT_STORAGE_FILE_STORAGE_ROOT_PATH=/data/result_storage
RESULT_STORAGE_STORES_UNSAFE=False
REDIS_QUEUE_SERVER_HOST=redis
REDIS_QUEUE_SERVER_PORT=6379
REDIS_QUEUE_SERVER_DB="0"
REDIS_QUEUE_SERVER_PASSWORD=None
SQS_QUEUE_KEY_ID=None
SQS_QUEUE_KEY_SECRET=None
SQS_QUEUE_REGION=us-east-1
USE_CUSTOM_ERROR_HANDLING=False
ERROR_HANDLER_MODULE=thumbor.error_handlers.sentry
ERROR_FILE_LOGGER=None
ERROR_FILE_NAME_USE_CONTEXT="False"
SENTRY_DSN_URL=
TC_AWS_REGION=eu-west-1
TC_AWS_ENDPOINT=None
TC_AWS_STORAGE_BUCKET=
TC_AWS_STORAGE_ROOT_PATH=
TC_AWS_LOADER_BUCKET=
TC_AWS_LOADER_ROOT_PATH=
TC_AWS_RESULT_STORAGE_BUCKET=
TC_AWS_RESULT_STORAGE_ROOT_PATH=
TC_AWS_STORAGE_SSE=False
TC_AWS_STORAGE_RRS=False
TC_AWS_ENABLE_HTTP_LOADER=False
TC_AWS_ALLOWED_BUCKETS=False
TC_AWS_STORE_METADATA=False
### SOLR ##################################################
SOLR_VERSION=5.5
SOLR_PORT=8983
SOLR_DATAIMPORTHANDLER_MYSQL=false
SOLR_DATAIMPORTHANDLER_MSSQL=false
### DOCKER-SYNC ################################################################################################
### GITLAB ###############################################
GITLAB_POSTGRES_INIT=true
GITLAB_HOST_HTTP_PORT=8989
GITLAB_HOST_HTTPS_PORT=9898
GITLAB_HOST_SSH_PORT=2289
GITLAB_DOMAIN_NAME=http://localhost
GITLAB_ROOT_PASSWORD=laradock
GITLAB_HOST_LOG_PATH=./logs/gitlab
GITLAB_POSTGRES_HOST=postgres
GITLAB_POSTGRES_USER=laradock_gitlab
GITLAB_POSTGRES_PASSWORD=laradock_gitlab
GITLAB_POSTGRES_DB=laradock_gitlab
# osx: 'native_osx' (default)
# windows: 'unison'
# linux: docker-sync not required
### GITLAB-RUNNER ###############################################
GITLAB_CI_SERVER_URL=http://localhost:8989
GITLAB_RUNNER_REGISTRATION_TOKEN=<my-registration-token>
GITLAB_REGISTER_NON_INTERACTIVE=true
DOCKER_SYNC_STRATEGY=native_osx
### JUPYTERHUB ###############################################
JUPYTERHUB_POSTGRES_INIT=true
JUPYTERHUB_POSTGRES_HOST=postgres
JUPYTERHUB_POSTGRES_USER=laradock_jupyterhub
JUPYTERHUB_POSTGRES_PASSWORD=laradock_jupyterhub
JUPYTERHUB_POSTGRES_DB=laradock_jupyterhub
JUPYTERHUB_PORT=9991
JUPYTERHUB_OAUTH_CALLBACK_URL=http://laradock:9991/hub/oauth_callback
JUPYTERHUB_OAUTH_CLIENT_ID={GITHUB_CLIENT_ID}
JUPYTERHUB_OAUTH_CLIENT_SECRET={GITHUB_CLIENT_SECRET}
JUPYTERHUB_CUSTOM_CONFIG=./jupyterhub/jupyterhub_config.py
JUPYTERHUB_USER_DATA=/jupyterhub
JUPYTERHUB_USER_LIST=./jupyterhub/userlist
JUPYTERHUB_ENABLE_NVIDIA=false
########################################################################################################################
### IPYTHON ##################################################
LARADOCK_IPYTHON_CONTROLLER_IP=127.0.0.1
### NETDATA ###############################################
NETDATA_PORT=19999
### REDISWEBUI #########################################
REDIS_WEBUI_USERNAME=laradock
REDIS_WEBUI_PASSWORD=laradock
REDIS_WEBUI_CONNECT_HOST=redis
REDIS_WEBUI_CONNECT_PORT=6379
REDIS_WEBUI_PORT=9987
### MONGOWEBUI ###############################################
MONGO_WEBUI_PORT=3000
MONGO_WEBUI_ROOT_URL=http://localhost
MONGO_WEBUI_MONGO_URL=mongodb://mongo:27017/
MONGO_WEBUI_INSTALL_MONGO=false
### METABASE ###############################################
METABASE_PORT=3030
METABASE_DB_FILE=metabase.db
METABASE_JAVA_TIMEZONE=US/Pacific
### IDE ###############################################
IDE_THEIA_PORT=987
IDE_WEBIDE_PORT=984
IDE_CODIAD_PORT=985
IDE_ICECODER_PORT=986
### DOCKERREGISTRY ###############################################
DOCKER_REGISTRY_PORT=5000
### DOCKERWEBUI ###############################################
DOCKER_WEBUI_REGISTRY_HOST=docker-registry
DOCKER_WEBUI_REGISTRY_PORT=5000
# if have use https proxy please set to 1
DOCKER_REGISTRY_USE_SSL=0
DOCKER_REGISTRY_BROWSE_ONLY=false
DOCKER_WEBUI_PORT=8754
### MAILU ###############################################
MAILU_VERSION=latest
MAILU_RECAPTCHA_PUBLIC_KEY=<YOUR_RECAPTCHA_PUBLIC_KEY>
MAILU_RECAPTCHA_PRIVATE_KEY=<YOUR_RECAPTCHA_PRIVATE_KEY>
# Main mail domain
MAILU_HTTP_PORT=6080
MAILU_HTTPS_PORT=60443
MAILU_DOMAIN=example.com
MAILU_INIT_ADMIN_USERNAME=laradock
MAILU_INIT_ADMIN_PASSWORD=laradock
# Hostnames for this server, separated with comas
MAILU_HOSTNAMES=mail.example.com,alternative.example.com,yetanother.example.com
# Postmaster local part (will append the main mail domain)
MAILU_POSTMASTER=admin
# Set to a randomly generated 16 bytes string
MAILU_SECRET_KEY=ChangeMeChangeMe
# Choose how secure connections will behave (value: letsencrypt, cert, notls, mail)
MAILU_TLS_FLAVOR=cert
# Authentication rate limit (per source IP address)
MAILU_AUTH_RATELIMIT=10/minute;1000/hour
# Opt-out of statistics, replace with "True" to opt out
MAILU_DISABLE_STATISTICS=False
# Message size limit in bytes
# Default: accept messages up to 50MB
MAILU_MESSAGE_SIZE_LIMIT=50000000
# Will relay all outgoing mails if configured
MAILU_RELAYHOST=
# Networks granted relay permissions, make sure that you include your Docker
# internal network (default to 172.17.0.0/16)
MAILU_RELAYNETS=172.16.0.0/12
# Fetchmail delay
MAILU_FETCHMAIL_DELAY=600
# Recipient delimiter, character used to delimiter localpart from custom address part
# e.g. localpart+custom@domain;tld
MAILU_RECIPIENT_DELIMITER=+
# DMARC rua and ruf email
MAILU_DMARC_RUA=admin
MAILU_DMARC_RUF=admin
# Welcome email, enable and set a topic and body if you wish to send welcome
# emails to all users.
MAILU_WELCOME=True
MAILU_WELCOME_SUBJECT=Welcome to your new email account
MAILU_WELCOME_BODY=Welcome to your new email account, if you can read this, then it is configured properly!
# Path to the admin interface if enabled
MAILU_WEB_ADMIN=/admin
# Path to the webmail if enabled
MAILU_WEB_WEBMAIL=/webmail
# Website name
MAILU_SITENAME=Example Mail
# Linked Website URL
MAILU_WEBSITE=http://mail.example.com
# Default password scheme used for newly created accounts and changed passwords
# (value: SHA512-CRYPT, SHA256-CRYPT, MD5-CRYPT, CRYPT)
MAILU_PASSWORD_SCHEME=SHA512-CRYPT
# Expose the admin interface (value: true, false)
MAILU_ADMIN=true
# Choose which webmail to run if any (values: roundcube, rainloop, none)
MAILU_WEBMAIL=rainloop
# Dav server implementation (value: radicale, none)
MAILU_WEBDAV=radicale
### TRAEFIK #################################################
TRAEFIK_HOST_HTTP_PORT=80
TRAEFIK_HOST_HTTPS_PORT=443
### MOSQUITTO #################################################
MOSQUITTO_PORT=9001
### COUCHDB ###################################################
COUCHDB_PORT=5984

3
gitlab/Dockerfile Normal file
View File

@ -0,0 +1,3 @@
FROM gitlab/gitlab-ce:latest
LABEL maintainer="ahkui <ahkui@outlook.com>"

5
ide-codiad/Dockerfile Normal file
View File

@ -0,0 +1,5 @@
FROM linuxserver/codiad
LABEL maintainer="ahkui <ahkui@outlook.com>"
COPY config.php /defaults/config.php

43
ide-codiad/config.php Normal file
View File

@ -0,0 +1,43 @@
<?php
/*
* Copyright (c) Codiad & Kent Safranski (codiad.com), distributed
* as-is and without warranty under the MIT License. See
* [root]/license.txt for more. This information must remain intact.
*/
//////////////////////////////////////////////////////////////////
// CONFIG
//////////////////////////////////////////////////////////////////
// PATH TO CODIAD
define("BASE_PATH", "/config/www/");
// BASE URL TO CODIAD (without trailing slash)
define("BASE_URL", "localhost");
// THEME : default, modern or clear (look at /themes)
define("THEME", "default");
// ABSOLUTE PATH, this is used as whitelist for absolute path projects
define("WHITEPATHS", BASE_PATH . ",/home,/");
// SESSIONS (e.g. 7200)
$cookie_lifetime = "0";
// TIMEZONE
date_default_timezone_set(getenv('TZ','UTC'));
// Allows to overwrite the default language
//define("LANGUAGE", "en");
// External Authentification
//define("AUTH_PATH", "/path/to/customauth.php");
//////////////////////////////////////////////////////////////////
// ** DO NOT EDIT CONFIG BELOW **
//////////////////////////////////////////////////////////////////
// PATHS
define("COMPONENTS", BASE_PATH . "/components");
define("PLUGINS", BASE_PATH . "/plugins");
define("THEMES", BASE_PATH . "/themes");
define("DATA", BASE_PATH . "/data");
define("WORKSPACE", getenv('APP_CODE_PATH_CONTAINER',BASE_PATH . "workspace"));
// URLS
define("WSURL", getenv('APP_CODE_PATH_CONTAINER',BASE_PATH . "workspace"));
// Marketplace
define("MARKETURL", "http://market.codiad.com/json");
// Update Check
//define("UPDATEURL", "http://update.codiad.com/?v={VER}&o={OS}&p={PHP}&w={WEB}&a={ACT}");
define("ARCHIVEURL", "https://github.com/Codiad/Codiad/archive/master.zip");
define("COMMITURL", "https://api.github.com/repos/Codiad/Codiad/commits");
?>

21
ide-icecoder/Dockerfile Normal file
View File

@ -0,0 +1,21 @@
FROM php:alpine
LABEL maintainer="ahkui <ahkui@outlook.com>"
ARG PUID=1000
ENV PUID ${PUID}
ARG PGID=1000
ENV PGID ${PGID}
RUN apk add --no-cache git
RUN addgroup -g $PGID -S laradock && \
adduser -u $PUID -S laradock -G laradock
USER laradock
RUN cd /home/laradock && git clone https://github.com/mattpass/ICEcoder.git
WORKDIR /home/laradock/ICEcoder
CMD ["php","-S","0.0.0.0:8080"]

9
ide-theia/Dockerfile Normal file
View File

@ -0,0 +1,9 @@
FROM theiaide/theia
LABEL maintainer="ahkui <ahkui@outlook.com>"
USER root
RUN echo 'fs.inotify.max_user_watches=524288' >> /etc/sysctl.conf
USER theia

3
ide-webide/Dockerfile Normal file
View File

@ -0,0 +1,3 @@
FROM webide/webide
LABEL maintainer="ahkui <ahkui@outlook.com>"

View File

@ -0,0 +1,17 @@
FROM python:3.5-alpine
LABEL maintainer="ahkui <ahkui@outlook.com>"
USER root
RUN apk add --no-cache build-base zeromq-dev
RUN python -m pip --quiet --no-cache-dir install \
ipyparallel
RUN ipython profile create --parallel --profile=default
COPY ipcontroller-client.json /root/.ipython/profile_default/security/ipcontroller-client.json
COPY ipcontroller-engine.json /root/.ipython/profile_default/security/ipcontroller-engine.json
CMD ["sh","-c","ipcontroller --ip=* --reuse"]

23
ipython/Dockerfile.engine Normal file
View File

@ -0,0 +1,23 @@
FROM python:3.5-alpine
LABEL maintainer="ahkui <ahkui@outlook.com>"
USER root
RUN apk add --no-cache build-base zeromq-dev
RUN python -m pip --quiet --no-cache-dir install \
ipyparallel \
numpy \
pandas \
pymongo \
redis \
requests \
bs4
RUN ipython profile create --parallel --profile=default
COPY ipcontroller-client.json /root/.ipython/profile_default/security/ipcontroller-client.json
COPY ipcontroller-engine.json /root/.ipython/profile_default/security/ipcontroller-engine.json
CMD ["sh","-c","ipcluster engines"]

View File

@ -0,0 +1,16 @@
{
"key": "868074dd-060311910ab3d6991611bccf",
"signature_scheme": "hmac-sha256",
"unpack": "json",
"pack": "json",
"ssh": "",
"task_scheme": "leastload",
"interface": "tcp://*",
"location": "laradock-ipython",
"notification": 33338,
"iopub": 33337,
"control": 33336,
"mux": 33335,
"task": 33334,
"registration": 33333
}

View File

@ -0,0 +1,16 @@
{
"key": "868074dd-060311910ab3d6991611bccf",
"signature_scheme": "hmac-sha256",
"unpack": "json",
"pack": "json",
"ssh": "",
"interface": "tcp://*",
"location": "laradock-ipython",
"iopub": 33327,
"hb_ping": 33328,
"hb_pong": 33329,
"control": 33330,
"mux": 33331,
"task": 33332,
"registration": 33333
}

View File

@ -108,3 +108,7 @@ COPY install-plugins.sh /usr/local/bin/install-plugins.sh
#RUN chmod 644 /var/jenkins_home/.ssh/id_rsa.pub
## ssh-keyscan -H github.com >> ~/.ssh/known_hosts
## ssh-keyscan -H bitbucket.org >> ~/.ssh/known_hosts
# Fix docker permission denied error
USER root
RUN usermod -aG docker jenkins

View File

@ -93,7 +93,7 @@ docker run --name myjenkins -p 8080:8080 -p 50000:50000 --env JAVA_OPTS="-Djava.
```
# Configuring reverse proxy
If you want to install Jenkins behind a reverse proxy with prefix, example: mysite.com/jenkins, you need to add environnement variable `JENKINS_OPTS="--prefix=/jenkins"` and then follow the below procedures to configure your reverse proxy, which will depend if you have Apache ou Nginx:
If you want to install Jenkins behind a reverse proxy with prefix, example: mysite.com/jenkins, you need to add environment variable `JENKINS_OPTS="--prefix=/jenkins"` and then follow the below procedures to configure your reverse proxy, which will depend if you have Apache ou Nginx:
- [Apache](https://wiki.jenkins-ci.org/display/JENKINS/Running+Jenkins+behind+Apache)
- [Nginx](https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+behind+an+NGinX+reverse+proxy)
@ -154,7 +154,7 @@ COPY custom.groovy /usr/share/jenkins/ref/init.groovy.d/custom.groovy
## Preinstalling plugins
You can rely on the `install-plugins.sh` script to pass a set of plugins to download with their dependencies.
Use plugin artifact ID, whithout `-plugin` extension, and append the version if needed separated by `:`.
Use plugin artifact ID, without `-plugin` extension, and append the version if needed separated by `:`.
Dependencies that are already included in the Jenkins war will only be downloaded if their required version is newer than the one included.
```

27
jupyterhub/Dockerfile Normal file
View File

@ -0,0 +1,27 @@
FROM python
LABEL maintainer="ahkui <ahkui@outlook.com>"
ENV JUPYTERHUB_USER_DATA ${JUPYTERHUB_USER_DATA}
ENV JUPYTERHUB_POSTGRES_DB ${JUPYTERHUB_POSTGRES_DB}
ENV JUPYTERHUB_POSTGRES_USER ${JUPYTERHUB_POSTGRES_USER}
ENV JUPYTERHUB_POSTGRES_HOST ${JUPYTERHUB_POSTGRES_HOST}
ENV JUPYTERHUB_POSTGRES_PASSWORD ${JUPYTERHUB_POSTGRES_PASSWORD}
ENV JUPYTERHUB_OAUTH_CALLBACK_URL ${JUPYTERHUB_OAUTH_CALLBACK_URL}
ENV JUPYTERHUB_OAUTH_CLIENT_ID ${JUPYTERHUB_OAUTH_CLIENT_ID}
ENV JUPYTERHUB_OAUTH_CLIENT_SECRET ${JUPYTERHUB_OAUTH_CLIENT_SECRET}
ENV JUPYTERHUB_LOCAL_NOTEBOOK_IMAGE ${JUPYTERHUB_LOCAL_NOTEBOOK_IMAGE}
ENV JUPYTERHUB_ENABLE_NVIDIA ${JUPYTERHUB_ENABLE_NVIDIA}
RUN curl -sL https://deb.nodesource.com/setup_10.x | bash -
RUN apt update -yqq && \
apt-get install -y nodejs
RUN npm install -g configurable-http-proxy
RUN pip install jupyterhub
RUN pip install oauthenticator
RUN pip install dockerspawner
RUN pip install psycopg2 psycopg2-binary
CMD ["sh", "-c", "jupyterhub upgrade-db && jupyterhub -f /jupyterhub_config.py"]

View File

@ -0,0 +1,72 @@
FROM tensorflow/tensorflow:latest-gpu
MAINTAINER ahkui <ahkui@outlook.com>
RUN apt-get update && apt-get install -y --no-install-recommends \
python \
python-dev \
&& \
apt-get autoremove -y && \
apt-get autoclean && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
RUN apt-get update && apt-get install -y --no-install-recommends \
wget \
git \
&& \
apt-get autoremove -y && \
apt-get autoclean && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
RUN curl -O https://bootstrap.pypa.io/get-pip.py && \
python3 get-pip.py && \
rm get-pip.py
RUN python3 -m pip --quiet --no-cache-dir install \
Pillow \
h5py \
ipykernel \
jupyter \
notebook \
jupyterhub \
matplotlib \
numpy \
pandas \
scipy \
sklearn \
Flask \
gunicorn \
pymongo \
redis \
requests \
ipyparallel \
bs4 \
&& \
python3 -m ipykernel.kernelspec
RUN pip --no-cache-dir install \
https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.8.0-cp35-cp35m-linux_x86_64.whl
RUN ln -s -f /usr/bin/python3 /usr/bin/python
COPY start.sh /usr/local/bin/
COPY start-notebook.sh /usr/local/bin/
COPY start-singleuser.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/start.sh
RUN chmod +x /usr/local/bin/start-notebook.sh
RUN chmod +x /usr/local/bin/start-singleuser.sh
RUN wget --quiet https://github.com/krallin/tini/releases/download/v0.10.0/tini && \
mv tini /usr/local/bin/tini && \
chmod +x /usr/local/bin/tini
# cleanup
RUN rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
ENTRYPOINT ["tini", "--"]
CMD ["start-notebook.sh"]

View File

@ -0,0 +1,128 @@
# Copyright (c) Jupyter Development Team.
# Distributed under the terms of the Modified BSD License.
# Configuration file for JupyterHub
import os
c = get_config()
# create system users that don't exist yet
c.LocalAuthenticator.create_system_users = True
def create_dir_hook(spawner):
username = spawner.user.name # get the username
volume_path = os.path.join('/user-data', username)
if not os.path.exists(volume_path):
# create a directory with umask 0755
# hub and container user must have the same UID to be writeable
# still readable by other users on the system
os.mkdir(volume_path, 0o755)
os.chown(volume_path, 1000,100)
# now do whatever you think your user needs
# ...
pass
# attach the hook function to the spawner
c.Spawner.pre_spawn_hook = create_dir_hook
# We rely on environment variables to configure JupyterHub so that we
# avoid having to rebuild the JupyterHub container every time we change a
# configuration parameter.
# Spawn single-user servers as Docker containers
c.JupyterHub.spawner_class = 'dockerspawner.DockerSpawner'
# Spawn containers from this image
c.DockerSpawner.image = os.environ['JUPYTERHUB_LOCAL_NOTEBOOK_IMAGE']
# JupyterHub requires a single-user instance of the Notebook server, so we
# default to using the `start-singleuser.sh` script included in the
# jupyter/docker-stacks *-notebook images as the Docker run command when
# spawning containers. Optionally, you can override the Docker run command
# using the DOCKER_SPAWN_CMD environment variable.
spawn_cmd = os.environ.get('JUPYTERHUB_DOCKER_SPAWN_CMD', "start-singleuser.sh")
c.DockerSpawner.extra_create_kwargs.update({ 'command': spawn_cmd })
# Connect containers to this Docker network
network_name = os.environ.get('JUPYTERHUB_NETWORK_NAME','laradock_backend')
c.DockerSpawner.use_internal_ip = True
c.DockerSpawner.network_name = network_name
enable_nvidia = os.environ.get('JUPYTERHUB_ENABLE_NVIDIA','false')
# Pass the network name as argument to spawned containers
c.DockerSpawner.extra_host_config = { 'network_mode': network_name }
if 'true' == enable_nvidia:
c.DockerSpawner.extra_host_config = { 'network_mode': network_name, 'runtime': 'nvidia' }
pass
# c.DockerSpawner.extra_host_config = { 'network_mode': network_name, "devices":["/dev/nvidiactl","/dev/nvidia-uvm","/dev/nvidia0"] }
# Explicitly set notebook directory because we'll be mounting a host volume to
# it. Most jupyter/docker-stacks *-notebook images run the Notebook server as
# user `jovyan`, and set the notebook directory to `/home/jovyan/work`.
# We follow the same convention.
# notebook_dir = os.environ.get('JUPYTERHUB_DOCKER_NOTEBOOK_DIR') or '/home/jovyan/work'
notebook_dir = '/notebooks'
c.DockerSpawner.notebook_dir = notebook_dir
# Mount the real user's Docker volume on the host to the notebook user's
# notebook directory in the container
user_data = os.environ.get('JUPYTERHUB_USER_DATA','/jupyterhub')
c.DockerSpawner.volumes = {
user_data+'/{username}': notebook_dir
}
c.DockerSpawner.extra_create_kwargs.update({ 'user': 'root'})
# volume_driver is no longer a keyword argument to create_container()
# c.DockerSpawner.extra_create_kwargs.update({ 'volume_driver': 'local' })
# Remove containers once they are stopped
c.DockerSpawner.remove_containers = True
# For debugging arguments passed to spawned containers
c.DockerSpawner.debug = True
# User containers will access hub by container name on the Docker network
c.JupyterHub.hub_ip = 'jupyterhub'
c.JupyterHub.hub_port = 8000
# TLS config
c.JupyterHub.port = 80
# c.JupyterHub.ssl_key = os.environ['SSL_KEY']
# c.JupyterHub.ssl_cert = os.environ['SSL_CERT']
# Authenticate users with GitHub OAuth
c.JupyterHub.authenticator_class = 'oauthenticator.GitHubOAuthenticator'
c.GitHubOAuthenticator.oauth_callback_url = os.environ['JUPYTERHUB_OAUTH_CALLBACK_URL']
c.GitHubOAuthenticator.client_id = os.environ['JUPYTERHUB_OAUTH_CLIENT_ID']
c.GitHubOAuthenticator.client_secret = os.environ['JUPYTERHUB_OAUTH_CLIENT_SECRET']
# Persist hub data on volume mounted inside container
data_dir = '/data'
c.JupyterHub.cookie_secret_file = os.path.join(data_dir,
'jupyterhub_cookie_secret')
print(os.environ)
c.JupyterHub.db_url = 'postgresql://{user}:{password}@{host}/{db}'.format(
user=os.environ['JUPYTERHUB_POSTGRES_USER'],
host=os.environ['JUPYTERHUB_POSTGRES_HOST'],
password=os.environ['JUPYTERHUB_POSTGRES_PASSWORD'],
db=os.environ['JUPYTERHUB_POSTGRES_DB'],
)
# Whitlelist users and admins
c.Authenticator.whitelist = whitelist = set()
c.Authenticator.admin_users = admin = set()
c.JupyterHub.admin_access = True
pwd = os.path.dirname(__file__)
with open(os.path.join(pwd, 'userlist')) as f:
for line in f:
if not line:
continue
parts = line.split()
name = parts[0]
print(name)
whitelist.add(name)
if len(parts) > 1 and parts[1] == 'admin':
admin.add(name)
admin.add('laradock')

View File

@ -0,0 +1,12 @@
#!/bin/bash
# Copyright (c) Jupyter Development Team.
# Distributed under the terms of the Modified BSD License.
set -e
if [[ ! -z "${JUPYTERHUB_API_TOKEN}" ]]; then
# launched by JupyterHub, use single-user entrypoint
exec /usr/local/bin/start-singleuser.sh $*
else
. /usr/local/bin/start.sh jupyter notebook $*
fi

View File

@ -0,0 +1,40 @@
#!/bin/bash
# Copyright (c) Jupyter Development Team.
# Distributed under the terms of the Modified BSD License.
set -e
# set default ip to 0.0.0.0
if [[ "$NOTEBOOK_ARGS $@" != *"--ip="* ]]; then
NOTEBOOK_ARGS="--ip=0.0.0.0 $NOTEBOOK_ARGS"
fi
# handle some deprecated environment variables
# from DockerSpawner < 0.8.
# These won't be passed from DockerSpawner 0.9,
# so avoid specifying --arg=empty-string
# if [ ! -z "$NOTEBOOK_DIR" ]; then
# NOTEBOOK_ARGS="--notebook-dir='$NOTEBOOK_DIR' $NOTEBOOK_ARGS"
# fi
if [ ! -z "$JPY_PORT" ]; then
NOTEBOOK_ARGS="--port=$JPY_PORT $NOTEBOOK_ARGS"
fi
if [ ! -z "$JPY_USER" ]; then
NOTEBOOK_ARGS="--user=$JPY_USER $NOTEBOOK_ARGS"
fi
if [ ! -z "$JPY_COOKIE_NAME" ]; then
NOTEBOOK_ARGS="--cookie-name=$JPY_COOKIE_NAME $NOTEBOOK_ARGS"
fi
if [ ! -z "$JPY_BASE_URL" ]; then
NOTEBOOK_ARGS="--base-url=$JPY_BASE_URL $NOTEBOOK_ARGS"
fi
if [ ! -z "$JPY_HUB_PREFIX" ]; then
NOTEBOOK_ARGS="--hub-prefix=$JPY_HUB_PREFIX $NOTEBOOK_ARGS"
fi
if [ ! -z "$JPY_HUB_API_URL" ]; then
NOTEBOOK_ARGS="--hub-api-url=$JPY_HUB_API_URL $NOTEBOOK_ARGS"
fi
NOTEBOOK_ARGS=" --allow-root --notebook-dir='/notebooks' $NOTEBOOK_ARGS"
. /usr/local/bin/start.sh jupyterhub-singleuser $NOTEBOOK_ARGS $@

7
jupyterhub/start.sh Normal file
View File

@ -0,0 +1,7 @@
#!/bin/bash
# Copyright (c) Jupyter Development Team.
# Distributed under the terms of the Modified BSD License.
set -e
exec sh -c "env PATH=$PATH $*"

1
jupyterhub/userlist Normal file
View File

@ -0,0 +1 @@
laradock

View File

@ -1,3 +1,3 @@
FROM docker.elastic.co/kibana/kibana:5.4.1
FROM docker.elastic.co/kibana/kibana:6.6.0
EXPOSE 5601

View File

@ -4,7 +4,8 @@
#--------------------------------------------------------------------------
#
FROM php:7.2-alpine
ARG PHP_VERSION=${PHP_VERSION}
FROM php:${PHP_VERSION}-alpine
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
@ -21,18 +22,51 @@ RUN apk --update add wget \
libgsasl-dev \
supervisor
RUN docker-php-ext-install mysqli mbstring pdo pdo_mysql 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 mcrypt-1.0.1 && docker-php-ext-enable memcached
#Install BCMath package:
ARG INSTALL_BCMATH=false
RUN if [ ${INSTALL_BCMATH} = true ]; then \
docker-php-ext-install bcmath \
;fi
# 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
apk --update add postgresql-dev \
&& docker-php-ext-install pdo_pgsql \
;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
RUN rm /var/cache/apk/* \
&& mkdir -p /var/www
&& mkdir -p /var/www
#
#--------------------------------------------------------------------------
@ -54,7 +88,7 @@ ENTRYPOINT ["/usr/bin/supervisord", "-n", "-c", "/etc/supervisord.conf"]
#
# If you need to modify this image, feel free to do it right here.
#
# -- Your awesome modifications go here -- #
# -- Your awesome modifications go here -- #
#
#--------------------------------------------------------------------------
@ -62,7 +96,7 @@ ENTRYPOINT ["/usr/bin/supervisord", "-n", "-c", "/etc/supervisord.conf"]
#--------------------------------------------------------------------------
#
RUN php -v | head -n 1 | grep -q "PHP 7.2."
RUN php -v | head -n 1 | grep -q "PHP ${PHP_VERSION}."
#
#--------------------------------------------------------------------------

View File

@ -0,0 +1,10 @@
[supervisord]
nodaemon=true
[supervisorctl]
[inet_http_server]
port = 127.0.0.1:9001
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[include]
files = supervisord.d/*.conf

View File

@ -0,0 +1 @@
*.conf

View File

@ -0,0 +1,6 @@
[program:laravel-horizon]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/artisan horizon
autostart=true
autorestart=true
redirect_stderr=true

10
logstash/Dockerfile Normal file
View File

@ -0,0 +1,10 @@
FROM docker.elastic.co/logstash/logstash:6.4.2
USER root
RUN rm -f /usr/share/logstash/pipeline/logstash.conf
RUN curl -L -o /usr/share/logstash/lib/mysql-connector-java-5.1.47.jar https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.47/mysql-connector-java-5.1.47.jar
ADD ./pipeline/ /usr/share/logstash/pipeline/
ADD ./config/ /usr/share/logstash/config/
RUN logstash-plugin install logstash-input-jdbc

View File

@ -0,0 +1,5 @@
http.host: "0.0.0.0"
xpack.monitoring.enabled: false
config.reload.automatic: true
path.config: "/usr/share/logstash/pipeline"

View File

View File

@ -8,9 +8,9 @@
# 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
### mysql -u root -p < /docker-entrypoint-initdb.d/createdb.sql

3
mongo-webui/Dockerfile Normal file
View File

@ -0,0 +1,3 @@
FROM mongoclient/mongoclient
LABEL maintainer="ahkui <ahkui@outlook.com>"

5
mosquitto/Dockerfile Normal file
View File

@ -0,0 +1,5 @@
FROM eclipse-mosquitto:latest
LABEL maintainer="Luis Coutinho <luis@luiscoutinho.pt>"
COPY mosquitto.conf /mosquitto/config/

838
mosquitto/mosquitto.conf Normal file
View File

@ -0,0 +1,838 @@
# Config file for mosquitto
#
# See mosquitto.conf(5) for more information.
#
# Default values are shown, uncomment to change.
#
# Use the # character to indicate a comment, but only if it is the
# very first character on the line.
# =================================================================
# General configuration
# =================================================================
# Time in seconds to wait before resending an outgoing QoS=1 or
# QoS=2 message.
#retry_interval 20
# Time in seconds between updates of the $SYS tree.
# Set to 0 to disable the publishing of the $SYS tree.
#sys_interval 10
# Time in seconds between cleaning the internal message store of
# unreferenced messages. Lower values will result in lower memory
# usage but more processor time, higher values will have the
# opposite effect.
# Setting a value of 0 means the unreferenced messages will be
# disposed of as quickly as possible.
#store_clean_interval 10
# Write process id to a file. Default is a blank string which means
# a pid file shouldn't be written.
# This should be set to /var/run/mosquitto.pid if mosquitto is
# being run automatically on boot with an init script and
# start-stop-daemon or similar.
#pid_file
# When run as root, drop privileges to this user and its primary
# group.
# Leave blank to stay as root, but this is not recommended.
# If run as a non-root user, this setting has no effect.
# Note that on Windows this has no effect and so mosquitto should
# be started by the user you wish it to run as.
#user mosquitto
# The maximum number of QoS 1 and 2 messages currently inflight per
# client.
# This includes messages that are partway through handshakes and
# those that are being retried. Defaults to 20. Set to 0 for no
# maximum. Setting to 1 will guarantee in-order delivery of QoS 1
# and 2 messages.
#max_inflight_messages 20
# The maximum number of QoS 1 and 2 messages to hold in a queue
# above those that are currently in-flight. Defaults to 100. Set
# to 0 for no maximum (not recommended).
# See also queue_qos0_messages.
#max_queued_messages 100
# Set to true to queue messages with QoS 0 when a persistent client is
# disconnected. These messages are included in the limit imposed by
# max_queued_messages.
# Defaults to false.
# This is a non-standard option for the MQTT v3.1 spec but is allowed in
# v3.1.1.
#queue_qos0_messages false
# This option sets the maximum publish payload size that the broker will allow.
# Received messages that exceed this size will not be accepted by the broker.
# The default value is 0, which means that all valid MQTT messages are
# accepted. MQTT imposes a maximum payload size of 268435455 bytes.
#message_size_limit 0
# This option controls whether a client is allowed to connect with a zero
# length client id or not. This option only affects clients using MQTT v3.1.1
# and later. If set to false, clients connecting with a zero length client id
# are disconnected. If set to true, clients will be allocated a client id by
# the broker. This means it is only useful for clients with clean session set
# to true.
#allow_zero_length_clientid true
# If allow_zero_length_clientid is true, this option allows you to set a prefix
# to automatically generated client ids to aid visibility in logs.
#auto_id_prefix
# This option allows persistent clients (those with clean session set to false)
# to be removed if they do not reconnect within a certain time frame.
#
# This is a non-standard option in MQTT V3.1 but allowed in MQTT v3.1.1.
#
# Badly designed clients may set clean session to false whilst using a randomly
# generated client id. This leads to persistent clients that will never
# reconnect. This option allows these clients to be removed.
#
# The expiration period should be an integer followed by one of h d w m y for
# hour, day, week, month and year respectively. For example
#
# persistent_client_expiration 2m
# persistent_client_expiration 14d
# persistent_client_expiration 1y
#
# The default if not set is to never expire persistent clients.
#persistent_client_expiration
# If a client is subscribed to multiple subscriptions that overlap, e.g. foo/#
# and foo/+/baz , then MQTT expects that when the broker receives a message on
# a topic that matches both subscriptions, such as foo/bar/baz, then the client
# should only receive the message once.
# Mosquitto keeps track of which clients a message has been sent to in order to
# meet this requirement. The allow_duplicate_messages option allows this
# behaviour to be disabled, which may be useful if you have a large number of
# clients subscribed to the same set of topics and are very concerned about
# minimising memory usage.
# It can be safely set to true if you know in advance that your clients will
# never have overlapping subscriptions, otherwise your clients must be able to
# correctly deal with duplicate messages even when then have QoS=2.
#allow_duplicate_messages false
# The MQTT specification requires that the QoS of a message delivered to a
# subscriber is never upgraded to match the QoS of the subscription. Enabling
# this option changes this behaviour. If upgrade_outgoing_qos is set true,
# messages sent to a subscriber will always match the QoS of its subscription.
# This is a non-standard option explicitly disallowed by the spec.
#upgrade_outgoing_qos false
# =================================================================
# Default listener
# =================================================================
# IP address/hostname to bind the default listener to. If not
# given, the default listener will not be bound to a specific
# address and so will be accessible to all network interfaces.
# bind_address ip-address/host name
#bind_address
# Port to use for the default listener.
port 9001
# The maximum number of client connections to allow. This is
# a per listener setting.
# Default is -1, which means unlimited connections.
# Note that other process limits mean that unlimited connections
# are not really possible. Typically the default maximum number of
# connections possible is around 1024.
#max_connections -1
# Choose the protocol to use when listening.
# This can be either mqtt or websockets.
# Websockets support is currently disabled by default at compile time.
# Certificate based TLS may be used with websockets, except that
# only the cafile, certfile, keyfile and ciphers options are supported.
protocol websockets
# When a listener is using the websockets protocol, it is possible to serve
# http data as well. Set http_dir to a directory which contains the files you
# wish to serve. If this option is not specified, then no normal http
# connections will be possible.
#http_dir
# Set use_username_as_clientid to true to replace the clientid that a client
# connected with with its username. This allows authentication to be tied to
# the clientid, which means that it is possible to prevent one client
# disconnecting another by using the same clientid.
# If a client connects with no username it will be disconnected as not
# authorised when this option is set to true.
# Do not use in conjunction with clientid_prefixes.
# See also use_identity_as_username.
#use_username_as_clientid
# -----------------------------------------------------------------
# Certificate based SSL/TLS support
# -----------------------------------------------------------------
# The following options can be used to enable SSL/TLS support for
# this listener. Note that the recommended port for MQTT over TLS
# is 8883, but this must be set manually.
#
# See also the mosquitto-tls man page.
# At least one of cafile or capath must be defined. They both
# define methods of accessing the PEM encoded Certificate
# Authority certificates that have signed your server certificate
# and that you wish to trust.
# cafile defines the path to a file containing the CA certificates.
# capath defines a directory that will be searched for files
# containing the CA certificates. For capath to work correctly, the
# certificate files must have ".crt" as the file ending and you must run
# "c_rehash <path to capath>" each time you add/remove a certificate.
#cafile
#capath
# Path to the PEM encoded server certificate.
#certfile
# Path to the PEM encoded keyfile.
#keyfile
# This option defines the version of the TLS protocol to use for this listener.
# The default value allows v1.2, v1.1 and v1.0, if they are all supported by
# the version of openssl that the broker was compiled against. For openssl >=
# 1.0.1 the valid values are tlsv1.2 tlsv1.1 and tlsv1. For openssl < 1.0.1 the
# valid values are tlsv1.
#tls_version
# By default a TLS enabled listener will operate in a similar fashion to a
# https enabled web server, in that the server has a certificate signed by a CA
# and the client will verify that it is a trusted certificate. The overall aim
# is encryption of the network traffic. By setting require_certificate to true,
# the client must provide a valid certificate in order for the network
# connection to proceed. This allows access to the broker to be controlled
# outside of the mechanisms provided by MQTT.
#require_certificate false
# If require_certificate is true, you may set use_identity_as_username to true
# to use the CN value from the client certificate as a username. If this is
# true, the password_file option will not be used for this listener.
#use_identity_as_username false
# If you have require_certificate set to true, you can create a certificate
# revocation list file to revoke access to particular client certificates. If
# you have done this, use crlfile to point to the PEM encoded revocation file.
#crlfile
# If you wish to control which encryption ciphers are used, use the ciphers
# option. The list of available ciphers can be optained using the "openssl
# ciphers" command and should be provided in the same format as the output of
# that command.
# If unset defaults to DEFAULT:!aNULL:!eNULL:!LOW:!EXPORT:!SSLv2:@STRENGTH
#ciphers DEFAULT:!aNULL:!eNULL:!LOW:!EXPORT:!SSLv2:@STRENGTH
# -----------------------------------------------------------------
# Pre-shared-key based SSL/TLS support
# -----------------------------------------------------------------
# The following options can be used to enable PSK based SSL/TLS support for
# this listener. Note that the recommended port for MQTT over TLS is 8883, but
# this must be set manually.
#
# See also the mosquitto-tls man page and the "Certificate based SSL/TLS
# support" section. Only one of certificate or PSK encryption support can be
# enabled for any listener.
# The psk_hint option enables pre-shared-key support for this listener and also
# acts as an identifier for this listener. The hint is sent to clients and may
# be used locally to aid authentication. The hint is a free form string that
# doesn't have much meaning in itself, so feel free to be creative.
# If this option is provided, see psk_file to define the pre-shared keys to be
# used or create a security plugin to handle them.
#psk_hint
# Set use_identity_as_username to have the psk identity sent by the client used
# as its username. Authentication will be carried out using the PSK rather than
# the MQTT username/password and so password_file will not be used for this
# listener.
#use_identity_as_username false
# When using PSK, the encryption ciphers used will be chosen from the list of
# available PSK ciphers. If you want to control which ciphers are available,
# use the "ciphers" option. The list of available ciphers can be optained
# using the "openssl ciphers" command and should be provided in the same format
# as the output of that command.
#ciphers
# =================================================================
# Extra listeners
# =================================================================
# Listen on a port/ip address combination. By using this variable
# multiple times, mosquitto can listen on more than one port. If
# this variable is used and neither bind_address nor port given,
# then the default listener will not be started.
# The port number to listen on must be given. Optionally, an ip
# address or host name may be supplied as a second argument. In
# this case, mosquitto will attempt to bind the listener to that
# address and so restrict access to the associated network and
# interface. By default, mosquitto will listen on all interfaces.
# Note that for a websockets listener it is not possible to bind to a host
# name.
# listener port-number [ip address/host name]
#listener
# The maximum number of client connections to allow. This is
# a per listener setting.
# Default is -1, which means unlimited connections.
# Note that other process limits mean that unlimited connections
# are not really possible. Typically the default maximum number of
# connections possible is around 1024.
#max_connections -1
# The listener can be restricted to operating within a topic hierarchy using
# the mount_point option. This is achieved be prefixing the mount_point string
# to all topics for any clients connected to this listener. This prefixing only
# happens internally to the broker; the client will not see the prefix.
#mount_point
# Choose the protocol to use when listening.
# This can be either mqtt or websockets.
# Certificate based TLS may be used with websockets, except that only the
# cafile, certfile, keyfile and ciphers options are supported.
#protocol mqtt
# When a listener is using the websockets protocol, it is possible to serve
# http data as well. Set http_dir to a directory which contains the files you
# wish to serve. If this option is not specified, then no normal http
# connections will be possible.
#http_dir
# Set use_username_as_clientid to true to replace the clientid that a client
# connected with with its username. This allows authentication to be tied to
# the clientid, which means that it is possible to prevent one client
# disconnecting another by using the same clientid.
# If a client connects with no username it will be disconnected as not
# authorised when this option is set to true.
# Do not use in conjunction with clientid_prefixes.
# See also use_identity_as_username.
#use_username_as_clientid
# -----------------------------------------------------------------
# Certificate based SSL/TLS support
# -----------------------------------------------------------------
# The following options can be used to enable certificate based SSL/TLS support
# for this listener. Note that the recommended port for MQTT over TLS is 8883,
# but this must be set manually.
#
# See also the mosquitto-tls man page and the "Pre-shared-key based SSL/TLS
# support" section. Only one of certificate or PSK encryption support can be
# enabled for any listener.
# At least one of cafile or capath must be defined to enable certificate based
# TLS encryption. They both define methods of accessing the PEM encoded
# Certificate Authority certificates that have signed your server certificate
# and that you wish to trust.
# cafile defines the path to a file containing the CA certificates.
# capath defines a directory that will be searched for files
# containing the CA certificates. For capath to work correctly, the
# certificate files must have ".crt" as the file ending and you must run
# "c_rehash <path to capath>" each time you add/remove a certificate.
#cafile
#capath
# Path to the PEM encoded server certificate.
#certfile
# Path to the PEM encoded keyfile.
#keyfile
# By default an TLS enabled listener will operate in a similar fashion to a
# https enabled web server, in that the server has a certificate signed by a CA
# and the client will verify that it is a trusted certificate. The overall aim
# is encryption of the network traffic. By setting require_certificate to true,
# the client must provide a valid certificate in order for the network
# connection to proceed. This allows access to the broker to be controlled
# outside of the mechanisms provided by MQTT.
#require_certificate false
# If require_certificate is true, you may set use_identity_as_username to true
# to use the CN value from the client certificate as a username. If this is
# true, the password_file option will not be used for this listener.
#use_identity_as_username false
# If you have require_certificate set to true, you can create a certificate
# revocation list file to revoke access to particular client certificates. If
# you have done this, use crlfile to point to the PEM encoded revocation file.
#crlfile
# If you wish to control which encryption ciphers are used, use the ciphers
# option. The list of available ciphers can be optained using the "openssl
# ciphers" command and should be provided in the same format as the output of
# that command.
#ciphers
# -----------------------------------------------------------------
# Pre-shared-key based SSL/TLS support
# -----------------------------------------------------------------
# The following options can be used to enable PSK based SSL/TLS support for
# this listener. Note that the recommended port for MQTT over TLS is 8883, but
# this must be set manually.
#
# See also the mosquitto-tls man page and the "Certificate based SSL/TLS
# support" section. Only one of certificate or PSK encryption support can be
# enabled for any listener.
# The psk_hint option enables pre-shared-key support for this listener and also
# acts as an identifier for this listener. The hint is sent to clients and may
# be used locally to aid authentication. The hint is a free form string that
# doesn't have much meaning in itself, so feel free to be creative.
# If this option is provided, see psk_file to define the pre-shared keys to be
# used or create a security plugin to handle them.
#psk_hint
# Set use_identity_as_username to have the psk identity sent by the client used
# as its username. Authentication will be carried out using the PSK rather than
# the MQTT username/password and so password_file will not be used for this
# listener.
#use_identity_as_username false
# When using PSK, the encryption ciphers used will be chosen from the list of
# available PSK ciphers. If you want to control which ciphers are available,
# use the "ciphers" option. The list of available ciphers can be optained
# using the "openssl ciphers" command and should be provided in the same format
# as the output of that command.
#ciphers
# =================================================================
# Persistence
# =================================================================
# If persistence is enabled, save the in-memory database to disk
# every autosave_interval seconds. If set to 0, the persistence
# database will only be written when mosquitto exits. See also
# autosave_on_changes.
# Note that writing of the persistence database can be forced by
# sending mosquitto a SIGUSR1 signal.
#autosave_interval 1800
# If true, mosquitto will count the number of subscription changes, retained
# messages received and queued messages and if the total exceeds
# autosave_interval then the in-memory database will be saved to disk.
# If false, mosquitto will save the in-memory database to disk by treating
# autosave_interval as a time in seconds.
#autosave_on_changes false
# Save persistent message data to disk (true/false).
# This saves information about all messages, including
# subscriptions, currently in-flight messages and retained
# messages.
# retained_persistence is a synonym for this option.
persistence true
# The filename to use for the persistent database, not including
# the path.
#persistence_file mosquitto.db
# Location for persistent database. Must include trailing /
# Default is an empty string (current directory).
# Set to e.g. /var/lib/mosquitto/ if running as a proper service on Linux or
# similar.
persistence_location /mosquitto/data/
# =================================================================
# Logging
# =================================================================
# Places to log to. Use multiple log_dest lines for multiple
# logging destinations.
# Possible destinations are: stdout stderr syslog topic file
#
# stdout and stderr log to the console on the named output.
#
# syslog uses the userspace syslog facility which usually ends up
# in /var/log/messages or similar.
#
# topic logs to the broker topic '$SYS/broker/log/<severity>',
# where severity is one of D, E, W, N, I, M which are debug, error,
# warning, notice, information and message. Message type severity is used by
# the subscribe/unsubscribe log_types and publishes log messages to
# $SYS/broker/log/M/susbcribe or $SYS/broker/log/M/unsubscribe.
#
# The file destination requires an additional parameter which is the file to be
# logged to, e.g. "log_dest file /var/log/mosquitto.log". The file will be
# closed and reopened when the broker receives a HUP signal. Only a single file
# destination may be configured.
#
# Note that if the broker is running as a Windows service it will default to
# "log_dest none" and neither stdout nor stderr logging is available.
# Use "log_dest none" if you wish to disable logging.
log_dest file /mosquitto/log/mosquitto.log
# If using syslog logging (not on Windows), messages will be logged to the
# "daemon" facility by default. Use the log_facility option to choose which of
# local0 to local7 to log to instead. The option value should be an integer
# value, e.g. "log_facility 5" to use local5.
#log_facility
# Types of messages to log. Use multiple log_type lines for logging
# multiple types of messages.
# Possible types are: debug, error, warning, notice, information,
# none, subscribe, unsubscribe, websockets, all.
# Note that debug type messages are for decoding the incoming/outgoing
# network packets. They are not logged in "topics".
log_type error
log_type warning
log_type notice
log_type information
log_type all
# Change the websockets logging level. This is a global option, it is not
# possible to set per listener. This is an integer that is interpreted by
# libwebsockets as a bit mask for its lws_log_levels enum. See the
# libwebsockets documentation for more details. "log_type websockets" must also
# be enabled.
#websockets_log_level 0
# If set to true, client connection and disconnection messages will be included
# in the log.
#connection_messages true
# If set to true, add a timestamp value to each log message.
#log_timestamp true
# =================================================================
# Security
# =================================================================
# If set, only clients that have a matching prefix on their
# clientid will be allowed to connect to the broker. By default,
# all clients may connect.
# For example, setting "secure-" here would mean a client "secure-
# client" could connect but another with clientid "mqtt" couldn't.
#clientid_prefixes
# Boolean value that determines whether clients that connect
# without providing a username are allowed to connect. If set to
# false then a password file should be created (see the
# password_file option) to control authenticated client access.
# Defaults to true.
#allow_anonymous true
# In addition to the clientid_prefixes, allow_anonymous and TLS
# authentication options, username based authentication is also
# possible. The default support is described in "Default
# authentication and topic access control" below. The auth_plugin
# allows another authentication method to be used.
# Specify the path to the loadable plugin and see the
# "Authentication and topic access plugin options" section below.
#auth_plugin
# If auth_plugin_deny_special_chars is true, the default, then before an ACL
# check is made, the username/client id of the client needing the check is
# searched for the presence of either a '+' or '#' character. If either of
# these characters is found in either the username or client id, then the ACL
# check is denied before it is sent to the plugin.o
#
# This check prevents the case where a malicious user could circumvent an ACL
# check by using one of these characters as their username or client id. This
# is the same issue as was reported with mosquitto itself as CVE-2017-7650.
#
# If you are entirely sure that the plugin you are using is not vulnerable to
# this attack (i.e. if you never use usernames or client ids in topics) then
# you can disable this extra check and have all ACL checks delivered to your
# plugin by setting auth_plugin_deny_special_chars to false.
#auth_plugin_deny_special_chars true
# -----------------------------------------------------------------
# Default authentication and topic access control
# -----------------------------------------------------------------
# Control access to the broker using a password file. This file can be
# generated using the mosquitto_passwd utility. If TLS support is not compiled
# into mosquitto (it is recommended that TLS support should be included) then
# plain text passwords are used, in which case the file should be a text file
# with lines in the format:
# username:password
# The password (and colon) may be omitted if desired, although this
# offers very little in the way of security.
#
# See the TLS client require_certificate and use_identity_as_username options
# for alternative authentication options.
#password_file
# Access may also be controlled using a pre-shared-key file. This requires
# TLS-PSK support and a listener configured to use it. The file should be text
# lines in the format:
# identity:key
# The key should be in hexadecimal format without a leading "0x".
#psk_file
# Control access to topics on the broker using an access control list
# file. If this parameter is defined then only the topics listed will
# have access.
# If the first character of a line of the ACL file is a # it is treated as a
# comment.
# Topic access is added with lines of the format:
#
# topic [read|write|readwrite] <topic>
#
# The access type is controlled using "read", "write" or "readwrite". This
# parameter is optional (unless <topic> contains a space character) - if not
# given then the access is read/write. <topic> can contain the + or #
# wildcards as in subscriptions.
#
# The first set of topics are applied to anonymous clients, assuming
# allow_anonymous is true. User specific topic ACLs are added after a
# user line as follows:
#
# user <username>
#
# The username referred to here is the same as in password_file. It is
# not the clientid.
#
#
# If is also possible to define ACLs based on pattern substitution within the
# topic. The patterns available for substition are:
#
# %c to match the client id of the client
# %u to match the username of the client
#
# The substitution pattern must be the only text for that level of hierarchy.
#
# The form is the same as for the topic keyword, but using pattern as the
# keyword.
# Pattern ACLs apply to all users even if the "user" keyword has previously
# been given.
#
# If using bridges with usernames and ACLs, connection messages can be allowed
# with the following pattern:
# pattern write $SYS/broker/connection/%c/state
#
# pattern [read|write|readwrite] <topic>
#
# Example:
#
# pattern write sensor/%u/data
#
#acl_file
# -----------------------------------------------------------------
# Authentication and topic access plugin options
# -----------------------------------------------------------------
# If the auth_plugin option above is used, define options to pass to the
# plugin here as described by the plugin instructions. All options named
# using the format auth_opt_* will be passed to the plugin, for example:
#
# auth_opt_db_host
# auth_opt_db_port
# auth_opt_db_username
# auth_opt_db_password
# =================================================================
# Bridges
# =================================================================
# A bridge is a way of connecting multiple MQTT brokers together.
# Create a new bridge using the "connection" option as described below. Set
# options for the bridges using the remaining parameters. You must specify the
# address and at least one topic to subscribe to.
# Each connection must have a unique name.
# The address line may have multiple host address and ports specified. See
# below in the round_robin description for more details on bridge behaviour if
# multiple addresses are used.
# The direction that the topic will be shared can be chosen by
# specifying out, in or both, where the default value is out.
# The QoS level of the bridged communication can be specified with the next
# topic option. The default QoS level is 0, to change the QoS the topic
# direction must also be given.
# The local and remote prefix options allow a topic to be remapped when it is
# bridged to/from the remote broker. This provides the ability to place a topic
# tree in an appropriate location.
# For more details see the mosquitto.conf man page.
# Multiple topics can be specified per connection, but be careful
# not to create any loops.
# If you are using bridges with cleansession set to false (the default), then
# you may get unexpected behaviour from incoming topics if you change what
# topics you are subscribing to. This is because the remote broker keeps the
# subscription for the old topic. If you have this problem, connect your bridge
# with cleansession set to true, then reconnect with cleansession set to false
# as normal.
#connection <name>
#address <host>[:<port>] [<host>[:<port>]]
#topic <topic> [[[out | in | both] qos-level] local-prefix remote-prefix]
# Set the version of the MQTT protocol to use with for this bridge. Can be one
# of mqttv31 or mqttv311. Defaults to mqttv31.
#bridge_protocol_version mqttv31
# If a bridge has topics that have "out" direction, the default behaviour is to
# send an unsubscribe request to the remote broker on that topic. This means
# that changing a topic direction from "in" to "out" will not keep receiving
# incoming messages. Sending these unsubscribe requests is not always
# desirable, setting bridge_attempt_unsubscribe to false will disable sending
# the unsubscribe request.
#bridge_attempt_unsubscribe true
# If the bridge has more than one address given in the address/addresses
# configuration, the round_robin option defines the behaviour of the bridge on
# a failure of the bridge connection. If round_robin is false, the default
# value, then the first address is treated as the main bridge connection. If
# the connection fails, the other secondary addresses will be attempted in
# turn. Whilst connected to a secondary bridge, the bridge will periodically
# attempt to reconnect to the main bridge until successful.
# If round_robin is true, then all addresses are treated as equals. If a
# connection fails, the next address will be tried and if successful will
# remain connected until it fails
#round_robin false
# Set the client id to use on the remote end of this bridge connection. If not
# defined, this defaults to 'name.hostname' where name is the connection name
# and hostname is the hostname of this computer.
# This replaces the old "clientid" option to avoid confusion. "clientid"
# remains valid for the time being.
#remote_clientid
# Set the clientid to use on the local broker. If not defined, this defaults to
# 'local.<clientid>'. If you are bridging a broker to itself, it is important
# that local_clientid and clientid do not match.
#local_clientid
# Set the clean session variable for this bridge.
# When set to true, when the bridge disconnects for any reason, all
# messages and subscriptions will be cleaned up on the remote
# broker. Note that with cleansession set to true, there may be a
# significant amount of retained messages sent when the bridge
# reconnects after losing its connection.
# When set to false, the subscriptions and messages are kept on the
# remote broker, and delivered when the bridge reconnects.
#cleansession false
# If set to true, publish notification messages to the local and remote brokers
# giving information about the state of the bridge connection. Retained
# messages are published to the topic $SYS/broker/connection/<clientid>/state
# unless the notification_topic option is used.
# If the message is 1 then the connection is active, or 0 if the connection has
# failed.
#notifications true
# Choose the topic on which notification messages for this bridge are
# published. If not set, messages are published on the topic
# $SYS/broker/connection/<clientid>/state
#notification_topic
# Set the keepalive interval for this bridge connection, in
# seconds.
#keepalive_interval 60
# Set the start type of the bridge. This controls how the bridge starts and
# can be one of three types: automatic, lazy and once. Note that RSMB provides
# a fourth start type "manual" which isn't currently supported by mosquitto.
#
# "automatic" is the default start type and means that the bridge connection
# will be started automatically when the broker starts and also restarted
# after a short delay (30 seconds) if the connection fails.
#
# Bridges using the "lazy" start type will be started automatically when the
# number of queued messages exceeds the number set with the "threshold"
# parameter. It will be stopped automatically after the time set by the
# "idle_timeout" parameter. Use this start type if you wish the connection to
# only be active when it is needed.
#
# A bridge using the "once" start type will be started automatically when the
# broker starts but will not be restarted if the connection fails.
#start_type automatic
# Set the amount of time a bridge using the automatic start type will wait
# until attempting to reconnect. Defaults to 30 seconds.
#restart_timeout 30
# Set the amount of time a bridge using the lazy start type must be idle before
# it will be stopped. Defaults to 60 seconds.
#idle_timeout 60
# Set the number of messages that need to be queued for a bridge with lazy
# start type to be restarted. Defaults to 10 messages.
# Must be less than max_queued_messages.
#threshold 10
# If try_private is set to true, the bridge will attempt to indicate to the
# remote broker that it is a bridge not an ordinary client. If successful, this
# means that loop detection will be more effective and that retained messages
# will be propagated correctly. Not all brokers support this feature so it may
# be necessary to set try_private to false if your bridge does not connect
# properly.
#try_private true
# Set the username to use when connecting to a broker that requires
# authentication.
# This replaces the old "username" option to avoid confusion. "username"
# remains valid for the time being.
#remote_username
# Set the password to use when connecting to a broker that requires
# authentication. This option is only used if remote_username is also set.
# This replaces the old "password" option to avoid confusion. "password"
# remains valid for the time being.
#remote_password
# -----------------------------------------------------------------
# Certificate based SSL/TLS support
# -----------------------------------------------------------------
# Either bridge_cafile or bridge_capath must be defined to enable TLS support
# for this bridge.
# bridge_cafile defines the path to a file containing the
# Certificate Authority certificates that have signed the remote broker
# certificate.
# bridge_capath defines a directory that will be searched for files containing
# the CA certificates. For bridge_capath to work correctly, the certificate
# files must have ".crt" as the file ending and you must run "c_rehash <path to
# capath>" each time you add/remove a certificate.
#bridge_cafile
#bridge_capath
# Path to the PEM encoded client certificate, if required by the remote broker.
#bridge_certfile
# Path to the PEM encoded client private key, if required by the remote broker.
#bridge_keyfile
# When using certificate based encryption, bridge_insecure disables
# verification of the server hostname in the server certificate. This can be
# useful when testing initial server configurations, but makes it possible for
# a malicious third party to impersonate your server through DNS spoofing, for
# example. Use this option in testing only. If you need to resort to using this
# option in a production environment, your setup is at fault and there is no
# point using encryption.
#bridge_insecure false
# -----------------------------------------------------------------
# PSK based SSL/TLS support
# -----------------------------------------------------------------
# Pre-shared-key encryption provides an alternative to certificate based
# encryption. A bridge can be configured to use PSK with the bridge_identity
# and bridge_psk options. These are the client PSK identity, and pre-shared-key
# in hexadecimal format with no "0x". Only one of certificate and PSK based
# encryption can be used on one
# bridge at once.
#bridge_identity
#bridge_psk
# =================================================================
# External config files
# =================================================================
# External configuration files may be included by using the
# include_dir option. This defines a directory that will be searched
# for config files. All files that end in '.conf' will be loaded as
# a configuration file. It is best to have this as the last option
# in the main file. This option will only be processed from the main
# configuration file. The directory specified must not contain the
# main configuration file.
#include_dir
# =================================================================
# rsmb options - unlikely to ever be supported
# =================================================================
#ffdc_output
#max_log_entries
#trace_level
#trace_output

View File

@ -9,9 +9,7 @@ LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
ARG TZ=UTC
ENV TZ ${TZ}
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN chown -R mysql:root /var/lib/mysql/
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone && chown -R mysql:root /var/lib/mysql/
COPY my.cnf /etc/mysql/conf.d/my.cnf

View File

@ -2,15 +2,15 @@
# Copy createdb.sql.example to createdb.sql
# then uncomment then set database name and username to create you need databases
#
# example: .env MYSQL_USER=appuser and need db name is myshop_db
# example: .env MYSQL_USER=appuser and needed db name is myshop_db
#
# CREATE DATABASE IF NOT EXISTS `myshop_db` ;
# 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
# mysql -u root -p < /docker-entrypoint-initdb.d/createdb.sql

View File

@ -6,5 +6,5 @@
[mysql]
[mysqld]
sql-mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
sql-mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
character-set-server=utf8

View File

@ -14,6 +14,7 @@ RUN if [ ${CHANGE_SOURCE} = true ]; then \
RUN apk update \
&& apk upgrade \
&& apk add --no-cache openssl \
&& apk add --no-cache bash \
&& adduser -D -H -u 1000 -s /bin/bash www-data
@ -24,6 +25,8 @@ ARG PHP_UPSTREAM_PORT=9000
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
CMD ["nginx"]
ADD ./startup.sh /opt/startup.sh
RUN sed -i 's/\r//g' /opt/startup.sh
CMD ["/bin/bash", "/opt/startup.sh"]
EXPOSE 80 443

View File

@ -3,6 +3,12 @@ server {
listen 80;
listen [::]:80;
# For https
# listen 443 ssl;
# listen [::]:443 ssl ipv6only=on;
# ssl_certificate /etc/nginx/ssl/default.crt;
# ssl_certificate_key /etc/nginx/ssl/default.key;
server_name app.test;
root /var/www/app;
index index.php index.html index.htm;

View File

@ -3,6 +3,12 @@ server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
# For https
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server ipv6only=on;
# ssl_certificate /etc/nginx/ssl/default.crt;
# ssl_certificate_key /etc/nginx/ssl/default.key;
server_name localhost;
root /var/www/public;
index index.php index.html index.htm;

View File

@ -3,6 +3,12 @@ server {
listen 80;
listen [::]:80;
# For https
# listen 443 ssl;
# listen [::]:443 ssl ipv6only=on;
# ssl_certificate /etc/nginx/ssl/default.crt;
# ssl_certificate_key /etc/nginx/ssl/default.key;
server_name laravel.test;
root /var/www/laravel/public;
index index.php index.html index.htm;

View File

@ -3,6 +3,12 @@ server {
listen 80;
listen [::]:80;
# For https
# listen 443 ssl;
# listen [::]:443 ssl ipv6only=on;
# ssl_certificate /etc/nginx/ssl/default.crt;
# ssl_certificate_key /etc/nginx/ssl/default.key;
server_name symfony.test;
root /var/www/projects/symfony/web;
index index.php index.html index.htm;

3
nginx/ssl/.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
*.crt
*.csr
*.key

0
nginx/ssl/.gitkeep Normal file
View File

9
nginx/startup.sh Normal file
View File

@ -0,0 +1,9 @@
#!/bin/bash
if [ ! -f /etc/nginx/ssl/default.crt ]; then
openssl genrsa -out "/etc/nginx/ssl/default.key" 2048
openssl req -new -key "/etc/nginx/ssl/default.key" -out "/etc/nginx/ssl/default.csr" -subj "/CN=default/O=default/C=UK"
openssl x509 -req -days 365 -in "/etc/nginx/ssl/default.csr" -signkey "/etc/nginx/ssl/default.key" -out "/etc/nginx/ssl/default.crt"
fi
nginx

View File

@ -8,9 +8,9 @@
# 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
### mysql -u root -p < /docker-entrypoint-initdb.d/createdb.sql

View File

@ -1,4 +1,4 @@
FROM fenglc/pgadmin4
FROM fenglc/pgadmin4:alpine
LABEL maintainer="Huadong Zuo <admin@zuohuadong.cn>"

664
php-fpm/Dockerfile Normal file
View File

@ -0,0 +1,664 @@
#
#--------------------------------------------------------------------------
# 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 LARADOCK_PHP_VERSION
# FROM laradock/php-fpm:2.2-${LARADOCK_PHP_VERSION}
FROM letsdockerize/laradock-php-fpm:2.4-${LARADOCK_PHP_VERSION}
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
ARG LARADOCK_PHP_VERSION
# Set Environment Variables
ENV DEBIAN_FRONTEND noninteractive
# always run apt update when start and after add new source list, then clean up at end.
RUN set -xe; \
apt-get update -yqq && \
pecl channel-update pecl.php.net && \
apt-get install -yqq \
apt-utils \
#
#--------------------------------------------------------------------------
# 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).
#
# next lines are here becase there is no auto build on dockerhub see https://github.com/laradock/laradock/pull/1903#issuecomment-463142846
libzip-dev zip unzip && \
docker-php-ext-configure zip --with-libzip && \
# Install the zip extension
docker-php-ext-install zip && \
php -m | grep -q 'zip'
#
#--------------------------------------------------------------------------
# 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_SOAP=true
#
###########################################################################
# SSH2:
###########################################################################
ARG INSTALL_SSH2=false
RUN if [ ${INSTALL_SSH2} = true ]; then \
# Install the ssh2 extension
apt-get -y install libssh2-1-dev && \
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
pecl install -a ssh2-0.13; \
else \
pecl install -a ssh2-1.1.2; \
fi && \
docker-php-ext-enable ssh2 \
;fi
###########################################################################
# libfaketime:
###########################################################################
USER root
ARG INSTALL_FAKETIME=false
RUN if [ ${INSTALL_FAKETIME} = true ]; then \
apt-get install -y libfaketime \
;fi
###########################################################################
# 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
###########################################################################
# XSL:
###########################################################################
ARG INSTALL_XSL=false
RUN if [ ${INSTALL_XSL} = true ]; then \
# Install the xsl extension
apt-get -y install libxslt-dev && \
docker-php-ext-install xsl \
;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
RUN sed -i "s/xdebug.remote_autostart=0/xdebug.remote_autostart=1/" /usr/local/etc/php/conf.d/xdebug.ini && \
sed -i "s/xdebug.remote_enable=0/xdebug.remote_enable=1/" /usr/local/etc/php/conf.d/xdebug.ini && \
sed -i "s/xdebug.cli_color=0/xdebug.cli_color=1/" /usr/local/etc/php/conf.d/xdebug.ini
###########################################################################
# Phpdbg:
###########################################################################
ARG INSTALL_PHPDBG=false
RUN if [ ${INSTALL_PHPDBG} = true ]; then \
# Load the xdebug extension only with phpunit commands
apt-get install -y --force-yes php${LARADOCK_PHP_VERSION}-phpdbg \
;fi
###########################################################################
# 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.10; \
else \
if [ $(php -r "echo PHP_MINOR_VERSION;") = "0" ]; then \
pecl install swoole-2.2.0; \
else \
pecl install swoole; \
fi \
fi && \
docker-php-ext-enable swoole \
&& php -m | grep -q 'swoole' \
;fi
###########################################################################
# MongoDB:
###########################################################################
ARG INSTALL_MONGO=false
RUN if [ ${INSTALL_MONGO} = true ]; then \
# Install the mongodb extension
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
pecl install mongo && \
docker-php-ext-enable mongo \
;fi && \
pecl install mongodb && \
docker-php-ext-enable mongodb \
;fi
###########################################################################
# AMQP:
###########################################################################
ARG INSTALL_AMQP=false
RUN if [ ${INSTALL_AMQP} = true ]; then \
# download and install manually, to make sure it's compatible with ampq installed by pecl later
# install cmake first
apt-get update && apt-get -y install cmake && \
curl -L -o /tmp/rabbitmq-c.tar.gz https://github.com/alanxz/rabbitmq-c/archive/master.tar.gz && \
mkdir -p rabbitmq-c && \
tar -C rabbitmq-c -zxvf /tmp/rabbitmq-c.tar.gz --strip 1 && \
cd rabbitmq-c/ && \
mkdir _build && cd _build/ && \
cmake .. && \
cmake --build . --target install && \
# Install the amqp extension
pecl install amqp && \
docker-php-ext-enable amqp && \
# Install the sockets extension
docker-php-ext-install sockets \
;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
RUN set -xe; \
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 https://github.com/aerospike/aerospike-client-php/archive/master.tar.gz; \
fi \
&& mkdir -p /tmp/aerospike-client-php \
&& tar -C /tmp/aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \
&& \
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
( \
cd /tmp/aerospike-client-php/src/aerospike \
&& phpize \
&& ./build.sh \
&& make install \
) \
else \
( \
cd /tmp/aerospike-client-php/src \
&& phpize \
&& ./build.sh \
&& make install \
) \
fi \
&& rm /tmp/aerospike-client-php.tar.gz \
&& docker-php-ext-enable aerospike \
;fi
###########################################################################
# IonCube Loader:
###########################################################################
ARG INSTALL_IONCUBE=false
RUN if [ ${INSTALL_IONCUBE} = true ]; then \
# Install the php ioncube loader
curl -L -o /tmp/ioncube_loaders_lin_x86-64.tar.gz https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz \
&& tar zxpf /tmp/ioncube_loaders_lin_x86-64.tar.gz -C /tmp \
&& mv /tmp/ioncube/ioncube_loader_lin_${LARADOCK_PHP_VERSION}.so $(php -r "echo ini_get('extension_dir');")/ioncube_loader.so \
&& printf "zend_extension=ioncube_loader.so\n" > $PHP_INI_DIR/conf.d/0ioncube.ini \
&& rm -rf /tmp/ioncube* \
;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
###########################################################################
# 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/9/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 msodbcsql17 locales \
&& echo "en_US.UTF-8 UTF-8" > /etc/locale.gen \
# link local aliases
&& ln -sfn /etc/locale.alias /usr/share/locale/locale.alias \
&& locale-gen \
# Install pdo_sqlsrv and sqlsrv from PECL. Replace pdo_sqlsrv-4.1.8preview with preferred version.
&& if [ $(php -r "echo PHP_MINOR_VERSION;") = "0" ]; then \
pecl install pdo_sqlsrv-5.3.0 sqlsrv-5.3.0 \
;else \
pecl install pdo_sqlsrv sqlsrv \
;fi \
&& 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 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
###########################################################################
# Calendar:
###########################################################################
USER root
ARG INSTALL_CALENDAR=false
RUN if [ ${INSTALL_CALENDAR} = true ]; then \
docker-php-ext-configure calendar && \
docker-php-ext-install calendar \
;fi
###########################################################################
# Phalcon:
###########################################################################
ARG INSTALL_PHALCON=false
ARG LARADOCK_PHALCON_VERSION
ENV LARADOCK_PHALCON_VERSION ${LARADOCK_PHALCON_VERSION}
# Copy phalcon configration
COPY ./phalcon.ini /usr/local/etc/php/conf.d/phalcon.ini.disable
RUN if [ $INSTALL_PHALCON = true ]; then \
apt-get update && apt-get install -y unzip libpcre3-dev gcc make re2c \
&& curl -L -o /tmp/cphalcon.zip https://github.com/phalcon/cphalcon/archive/v${LARADOCK_PHALCON_VERSION}.zip \
&& unzip -d /tmp/ /tmp/cphalcon.zip \
&& cd /tmp/cphalcon-${LARADOCK_PHALCON_VERSION}/build \
&& ./install \
&& mv /usr/local/etc/php/conf.d/phalcon.ini.disable /usr/local/etc/php/conf.d/phalcon.ini \
&& rm -rf /tmp/cphalcon* \
;fi
###########################################################################
# APCU:
###########################################################################
ARG INSTALL_APCU=false
RUN if [ ${INSTALL_APCU} = true ]; then \
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
pecl install -a apcu-4.0.11; \
else \
pecl install apcu; \
fi && \
docker-php-ext-enable apcu \
;fi
###########################################################################
# YAML:
###########################################################################
USER root
ARG INSTALL_YAML=false
RUN if [ ${INSTALL_YAML} = true ]; then \
apt-get install libyaml-dev -y ; \
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
pecl install -a yaml-1.3.2; \
else \
pecl install yaml; \
fi && \
docker-php-ext-enable yaml \
;fi
###########################################################################
# Install additional locales:
###########################################################################
ARG INSTALL_ADDITIONAL_LOCALES=false
ARG ADDITIONAL_LOCALES
RUN if [ ${INSTALL_ADDITIONAL_LOCALES} = true ]; then \
apt-get install -y locales \
&& echo '' >> /usr/share/locale/locale.alias \
&& temp="${ADDITIONAL_LOCALES%\"}" \
&& temp="${temp#\"}" \
&& for i in ${temp}; do sed -i "/$i/s/^#//g" /etc/locale.gen; done \
&& locale-gen \
;fi
###########################################################################
# MySQL Client:
###########################################################################
USER root
ARG INSTALL_MYSQL_CLIENT=false
RUN if [ ${INSTALL_MYSQL_CLIENT} = true ]; then \
apt-get update -yqq && \
apt-get -y install mysql-client \
;fi
###########################################################################
# Check PHP version:
###########################################################################
RUN set -xe; php -v | head -n 1 | grep -q "PHP ${LARADOCK_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
# Adding the faketime library to the preload file needs to be done last
# otherwise it will preload it for all commands that follow in this file
RUN if [ ${INSTALL_FAKETIME} = true ]; then \
echo "/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1" > /etc/ld.so.preload \
;fi
WORKDIR /var/www
CMD ["php-fpm"]
EXPOSE 9000

View File

@ -1,372 +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:2.0-56
LABEL 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-2.0.11 \
&& 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 update && \
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
#####################################
# 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 update -yqq && \
apt-get install -y libgmp-dev && \
ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \
docker-php-ext-install gmp \
;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:
#####################################
USER root
ARG INSTALL_AEROSPIKE=false
ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE}
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-php5/archive/master.tar.gz" \
&& mkdir -p aerospike-client-php \
&& tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \
&& ( \
cd aerospike-client-php/src/aerospike \
&& 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 set -eux; 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 pdo_dblib mssql \
&& php -m | grep -q 'mssql' \
;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
#####################################
# IMAP:
#####################################
ARG INSTALL_IMAP=false
ENV INSTALL_IMAP ${INSTALL_IMAP}
RUN if [ ${INSTALL_IMAP} = true ]; then \
apt-get update && \
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:
#####################################
RUN php -v | head -n 1 | grep -q "PHP 5.6."
#
#--------------------------------------------------------------------------
# Final Touch
#--------------------------------------------------------------------------
#
COPY ./laravel.ini /usr/local/etc/php/conf.d
COPY ./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,394 +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:2.0-70
LABEL 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
#####################################
# AMQP:
#####################################
ARG INSTALL_AMQP=false
RUN if [ ${INSTALL_AMQP} = true ]; then \
apt-get update && \
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
#####################################
# 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 update -yqq && \
apt-get install -y libgmp-dev && \
docker-php-ext-install gmp \
;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:
#####################################
USER root
ARG INSTALL_AEROSPIKE=false
ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE}
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 \
&& 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 set -eux; 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 \
&& php -m | grep -q 'pdo_sqlsrv' \
&& php -m | grep -q '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
#####################################
# IMAP:
#####################################
ARG INSTALL_IMAP=false
ENV INSTALL_IMAP ${INSTALL_IMAP}
RUN if [ ${INSTALL_IMAP} = true ]; then \
apt-get update && \
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:
#####################################
RUN php -v | head -n 1 | grep -q "PHP 7.0."
#
#--------------------------------------------------------------------------
# Final Touch
#--------------------------------------------------------------------------
#
COPY ./laravel.ini /usr/local/etc/php/conf.d/
COPY ./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,394 +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:2.0-71
LABEL 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
#####################################
# AMQP:
#####################################
ARG INSTALL_AMQP=false
RUN if [ ${INSTALL_AMQP} = true ]; then \
apt-get update && \
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
#####################################
# 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 update -yqq && \
apt-get install -y libgmp-dev && \
docker-php-ext-install gmp \
;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:
#####################################
USER root
ARG INSTALL_AEROSPIKE=false
ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE}
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 \
&& 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 set -eux; 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 \
&& php -m | grep -q 'pdo_sqlsrv' \
&& php -m | grep -q '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
#####################################
# IMAP:
#####################################
ARG INSTALL_IMAP=false
ENV INSTALL_IMAP ${INSTALL_IMAP}
RUN if [ ${INSTALL_IMAP} = true ]; then \
apt-get update && \
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:
#####################################
RUN php -v | head -n 1 | grep -q "PHP 7.1."
#
#--------------------------------------------------------------------------
# Final Touch
#--------------------------------------------------------------------------
#
COPY ./laravel.ini /usr/local/etc/php/conf.d
COPY ./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,397 +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:2.0-72
LABEL 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 \
# 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 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
#####################################
# AMQP:
#####################################
ARG INSTALL_AMQP=false
RUN if [ ${INSTALL_AMQP} = true ]; then \
apt-get update && \
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
#####################################
# 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 update -yqq && \
apt-get install -y libgmp-dev && \
docker-php-ext-install gmp \
;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:
#####################################
USER root
ARG INSTALL_AEROSPIKE=false
ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE}
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 (using 7.2.0-in-progress branch until support for 7.2 on master)
curl -L -o /tmp/aerospike-client-php.tar.gz "https://github.com/aerospike/aerospike-client-php/archive/7.2.0-in-progress.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 set -eux; 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 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
#####################################
# 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
#####################################
# IMAP:
#####################################
ARG INSTALL_IMAP=false
ENV INSTALL_IMAP ${INSTALL_IMAP}
RUN if [ ${INSTALL_IMAP} = true ]; then \
apt-get update && \
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:
#####################################
RUN php -v | head -n 1 | grep -q "PHP 7.2."
#
#--------------------------------------------------------------------------
# Final Touch
#--------------------------------------------------------------------------
#
COPY ./laravel.ini /usr/local/etc/php/conf.d
COPY ./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

1
php-fpm/phalcon.ini Normal file
View File

@ -0,0 +1 @@
extension=phalcon.so

1918
php-fpm/php7.3.ini Normal file

File diff suppressed because it is too large Load Diff

135
php-worker/Dockerfile Normal file
View File

@ -0,0 +1,135 @@
#
#--------------------------------------------------------------------------
# Image Setup
#--------------------------------------------------------------------------
#
ARG PHP_VERSION=${PHP_VERSION}
FROM php:${PHP_VERSION}-alpine
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
RUN apk --update add wget \
curl \
git \
build-base \
libmemcached-dev \
libmcrypt-dev \
libxml2-dev \
pcre-dev \
zlib-dev \
autoconf \
cyrus-sasl-dev \
libgsasl-dev \
supervisor
RUN docker-php-ext-install mysqli mbstring pdo pdo_mysql tokenizer xml pcntl
RUN pecl channel-update pecl.php.net && pecl install memcached mcrypt-1.0.1 && docker-php-ext-enable memcached
# Add a non-root user:
ARG PUID=1000
ENV PUID ${PUID}
ARG PGID=1000
ENV PGID ${PGID}
RUN addgroup -g ${PGID} laradock && \
adduser -D -G laradock -u ${PUID} laradock
#Install SOAP package:
ARG INSTALL_SOAP=false
RUN if [ ${INSTALL_SOAP} = true ]; then \
docker-php-ext-install soap \
;fi
#Install BCMath package:
ARG INSTALL_BCMATH=false
RUN if [ ${INSTALL_BCMATH} = true ]; then \
docker-php-ext-install bcmath \
;fi
# 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
# Install ZipArchive:
ARG INSTALL_ZIP_ARCHIVE=false
RUN if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \
apk --update add libzip-dev && \
docker-php-ext-configure zip --with-libzip && \
# Install the zip extension
docker-php-ext-install zip \
;fi
# Install MySQL Client:
ARG INSTALL_MYSQL_CLIENT=false
RUN if [ ${INSTALL_MYSQL_CLIENT} = true ]; then \
apk --update add mysql-client \
;fi
# Install AMQP:
ARG INSTALL_AMQP=false
RUN if [ ${INSTALL_AMQP} = true ]; then \
apk --update add rabbitmq-c rabbitmq-c-dev && \
pecl install amqp && \
docker-php-ext-enable amqp && \
docker-php-ext-install sockets \
;fi
# Install Phalcon ext
ARG INSTALL_PHALCON=false
ARG PHALCON_VERSION
ENV PHALCON_VERSION ${PHALCON_VERSION}
RUN if [ $INSTALL_PHALCON = true ]; then \
apk --update add unzip gcc make re2c bash\
&& curl -L -o /tmp/cphalcon.zip https://github.com/phalcon/cphalcon/archive/v${PHALCON_VERSION}.zip \
&& unzip -d /tmp/ /tmp/cphalcon.zip \
&& cd /tmp/cphalcon-${PHALCON_VERSION}/build \
&& ./install \
&& rm -rf /tmp/cphalcon* \
;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 -- #
#
#--------------------------------------------------------------------------
# Check PHP version
#--------------------------------------------------------------------------
#
RUN php -v | head -n 1 | grep -q "PHP ${PHP_VERSION}."
#
#--------------------------------------------------------------------------
# Final Touch
#--------------------------------------------------------------------------
#
WORKDIR /etc/supervisor/conf.d/

View File

@ -1,73 +0,0 @@
#
#--------------------------------------------------------------------------
# Image Setup
#--------------------------------------------------------------------------
#
FROM php:7.0-alpine
LABEL 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 -- #
#
#--------------------------------------------------------------------------
# Check PHP version
#--------------------------------------------------------------------------
#
RUN php -v | head -n 1 | grep -q "PHP 7.0."
#
#--------------------------------------------------------------------------
# Final Touch
#--------------------------------------------------------------------------
#
WORKDIR /etc/supervisor/conf.d/

View File

@ -1,73 +0,0 @@
#
#--------------------------------------------------------------------------
# Image Setup
#--------------------------------------------------------------------------
#
FROM php:7.1-alpine
LABEL 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 -- #
#
#--------------------------------------------------------------------------
# Check PHP version
#--------------------------------------------------------------------------
#
RUN php -v | head -n 1 | grep -q "PHP 7.1."
#
#--------------------------------------------------------------------------
# Final Touch
#--------------------------------------------------------------------------
#
WORKDIR /etc/supervisor/conf.d/

1
php-worker/supervisord.d/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
*.conf

View File

@ -0,0 +1,8 @@
[program:laravel-scheduler]
process_name=%(program_name)s_%(process_num)02d
command=/bin/sh -c "while [ true ]; do (php /var/www/artisan schedule:run --verbose --no-interaction &); sleep 60; done"
autostart=true
autorestart=true
numprocs=1
user=laradock
redirect_stderr=true

View File

@ -4,4 +4,5 @@ command=php /var/www/artisan queue:work --sleep=3 --tries=3 --daemon
autostart=true
autorestart=true
numprocs=8
redirect_stderr=true
user=laradock
redirect_stderr=true

3
portainer/Dockerfile Normal file
View File

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

View File

@ -0,0 +1,3 @@
*.sh
!init_gitlab_db.sh
!init_jupyterhub_db.sh

View File

@ -0,0 +1,33 @@
#!/bin/bash
#
# Copy createdb.sh.example to createdb.sh
# then uncomment then set database name and username to create you need databases
#
# example: .env POSTGRES_USER=appuser and need db name is myshop_db
#
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
# CREATE USER myuser WITH PASSWORD 'mypassword';
# CREATE DATABASE myshop_db;
# GRANT ALL PRIVILEGES ON DATABASE myshop_db TO myuser;
# EOSQL
#
# this sh script will auto run when the postgres container starts and the $DATA_PATH_HOST/postgres not found.
#
#
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
# CREATE USER db1 WITH PASSWORD 'db1';
# CREATE DATABASE db1;
# GRANT ALL PRIVILEGES ON DATABASE db1 TO db1;
# EOSQL
#
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
# CREATE USER db2 WITH PASSWORD 'db2';
# CREATE DATABASE db2;
# GRANT ALL PRIVILEGES ON DATABASE db2 TO db2;
# EOSQL
#
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
# CREATE USER db3 WITH PASSWORD 'db3';
# CREATE DATABASE db3;
# GRANT ALL PRIVILEGES ON DATABASE db3 TO db3;
# EOSQL

View File

@ -0,0 +1,44 @@
#!/bin/bash
#
# Copy createdb.sh.example to createdb.sh
# then uncomment then set database name and username to create you need databases
#
# example: .env POSTGRES_USER=appuser and need db name is myshop_db
#
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
# CREATE USER myuser WITH PASSWORD 'mypassword';
# CREATE DATABASE myshop_db;
# GRANT ALL PRIVILEGES ON DATABASE myshop_db TO myuser;
# EOSQL
#
# this sh script will auto run when the postgres container starts and the $DATA_PATH_HOST/postgres not found.
#
#
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
# CREATE USER db1 WITH PASSWORD 'db1';
# CREATE DATABASE db1;
# GRANT ALL PRIVILEGES ON DATABASE db1 TO db1;
# EOSQL
#
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
# CREATE USER db2 WITH PASSWORD 'db2';
# CREATE DATABASE db2;
# GRANT ALL PRIVILEGES ON DATABASE db2 TO db2;
# EOSQL
#
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
# CREATE USER db3 WITH PASSWORD 'db3';
# CREATE DATABASE db3;
# GRANT ALL PRIVILEGES ON DATABASE db3 TO db3;
# EOSQL
#
### default database and user for gitlab ##############################################
if [ "$GITLAB_POSTGRES_INIT" == 'true' ]; then
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
CREATE USER $GITLAB_POSTGRES_USER WITH PASSWORD '$GITLAB_POSTGRES_PASSWORD';
CREATE DATABASE $GITLAB_POSTGRES_DB;
GRANT ALL PRIVILEGES ON DATABASE $GITLAB_POSTGRES_DB TO $GITLAB_POSTGRES_USER;
ALTER ROLE $GITLAB_POSTGRES_USER CREATEROLE SUPERUSER;
EOSQL
echo
fi

View File

@ -0,0 +1,44 @@
#!/bin/bash
#
# Copy createdb.sh.example to createdb.sh
# then uncomment then set database name and username to create you need databases
#
# example: .env POSTGRES_USER=appuser and need db name is myshop_db
#
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
# CREATE USER myuser WITH PASSWORD 'mypassword';
# CREATE DATABASE myshop_db;
# GRANT ALL PRIVILEGES ON DATABASE myshop_db TO myuser;
# EOSQL
#
# this sh script will auto run when the postgres container starts and the $DATA_PATH_HOST/postgres not found.
#
#
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
# CREATE USER db1 WITH PASSWORD 'db1';
# CREATE DATABASE db1;
# GRANT ALL PRIVILEGES ON DATABASE db1 TO db1;
# EOSQL
#
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
# CREATE USER db2 WITH PASSWORD 'db2';
# CREATE DATABASE db2;
# GRANT ALL PRIVILEGES ON DATABASE db2 TO db2;
# EOSQL
#
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
# CREATE USER db3 WITH PASSWORD 'db3';
# CREATE DATABASE db3;
# GRANT ALL PRIVILEGES ON DATABASE db3 TO db3;
# EOSQL
#
### default database and user for jupyterhub ##############################################
if [ $JUPYTERHUB_POSTGRES_INIT == 'true' ]; then
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
CREATE USER $JUPYTERHUB_POSTGRES_USER WITH PASSWORD '$JUPYTERHUB_POSTGRES_PASSWORD';
CREATE DATABASE $JUPYTERHUB_POSTGRES_DB;
GRANT ALL PRIVILEGES ON DATABASE $JUPYTERHUB_POSTGRES_DB TO $JUPYTERHUB_POSTGRES_USER;
ALTER ROLE $JUPYTERHUB_POSTGRES_USER CREATEROLE SUPERUSER;
EOSQL
echo
fi

View File

@ -1,7 +1,7 @@
FROM rabbitmq
FROM rabbitmq:alpine
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
RUN rabbitmq-plugins enable --offline rabbitmq_management
EXPOSE 15671 15672
EXPOSE 4369 5671 5672 15671 15672 25672

3
redis-cluster/Dockerfile Normal file
View File

@ -0,0 +1,3 @@
FROM grokzen/redis-cluster:latest
LABEL maintainer="hareku <hareku908@gmail.com>"

3
redis-webui/Dockerfile Normal file
View File

@ -0,0 +1,3 @@
FROM erikdubbelboer/phpredisadmin
LABEL maintainer="ahkui <ahkui@outlook.com>"

1377
redis/redis.conf Normal file

File diff suppressed because it is too large Load Diff

View File

@ -4,6 +4,13 @@ LABEL maintainer="Cristian Mello <cristianc.mello@gmail.com>"
VOLUME /data/rethinkdb_data
#Necessary for the backup rethinkdb
RUN apt-get -y update \
&& apt-get -y upgrade \
&& apt-get -y install python-pip \
&& pip install rethinkdb \
&& rm -rf /var/lib/apt/lists/*
RUN cp /etc/rethinkdb/default.conf.sample /etc/rethinkdb/instances.d/instance1.conf
CMD ["rethinkdb", "--bind", "all"]

View File

@ -12,3 +12,13 @@ RUN if [ ${SOLR_DATAIMPORTHANDLER_MYSQL} = true ]; then \
&& rm /tmp/mysql_connector.tar.gz \
;fi
ARG SOLR_DATAIMPORTHANDLER_MSSQL=false
ENV SOLR_DATAIMPORTHANDLER_MSSQL ${SOLR_DATAIMPORTHANDLER_MSSQL}
# download mssql connector for dataimporthandler
RUN if [ ${SOLR_DATAIMPORTHANDLER_MSSQL} = true ]; then \
curl -L -o /tmp/mssql-jdbc-7.0.0.jre8.jar "https://github.com/Microsoft/mssql-jdbc/releases/download/v7.0.0/mssql-jdbc-7.0.0.jre8.jar" \
&& mkdir -p /opt/solr/contrib/dataimporthandler/lib \
&& mv /tmp/mssql-jdbc-7.0.0.jre8.jar "/opt/solr/contrib/dataimporthandler/lib/mssql-jdbc-7.0.0.jre8.jar" \
;fi

Some files were not shown because too many files have changed in this diff Show More