Compare commits

...

132 Commits

Author SHA1 Message Date
871a9d032a Merge pull request #1438 from pangminfu/apache-docroot-path
Apache document root path configurable with env file
2018-03-25 19:15:16 +03:00
805d7f94e8 Merge pull request #1399 from mariano-dagostino/1372-ssh
Make possible to login via ssh using the laradock user.
2018-03-25 19:14:10 +03:00
c84a57cd13 Merge pull request #1450 from bestlong/increase-install-check
Increase install check
2018-03-24 15:28:29 +08:00
e6817288f8 workspace sql server section: increase install check 2018-03-24 14:23:01 +08:00
cd849dda21 php-fpm sql server section: increase install check 2018-03-24 13:56:06 +08:00
21a5d5bf98 Merge pull request #1421 from spyridonas/patch-1
Save PostgresSQL data to hard drive.
2018-03-23 16:54:41 +08:00
2ab11bf1af Merge pull request #1447 from bestlong/fix-users-aliases
fix mistake #1427 about user aliases.
2018-03-23 16:51:41 +08:00
141d2dbe7f fix file owner. 2018-03-23 16:09:10 +08:00
4d384c0a67 fix mistake #1427 about user aliases. 2018-03-23 15:17:35 +08:00
9a9d30f173 Merge pull request #1444 from bestlong/clean-up-workspace-laravel
update default install arg and remove extra run command
2018-03-20 13:59:27 +08:00
99c7758799 update default install arg and remove extra run command 2018-03-20 10:59:59 +08:00
164069c256 Merge pull request #1443 from bestlong/clean-up-aerospike
clean up aerospike and empty line
2018-03-19 22:46:13 +08:00
5773d270ca clean up aerospike and empty line 2018-03-19 22:15:24 +08:00
f810962d84 add APACHE_DOCUMENT_ROOT in env-example file 2018-03-18 17:38:49 +08:00
f5f23bed1b apache2 accept APACHE_DOCUMENT_ROOT argument from .env file 2018-03-18 17:37:21 +08:00
e694254fb0 WEB_DOCUMENT_ROOT accept argument DOCUMENT_ROOT with original default value /var/www/ 2018-03-18 17:34:15 +08:00
c34d2d12b3 Merge pull request #1435 from bestlong/sort-up
MAINTAINER is deprecated
2018-03-16 21:47:58 +08:00
349be8b30e MAINTAINER is deprecated 2018-03-16 21:09:15 +08:00
436e9e5a66 Merge pull request #1434 from bestlong/sort-up
Sort up
2018-03-16 18:34:53 +08:00
b445479c99 add gitlab-ci config file. 2018-03-16 17:34:57 +08:00
70e10a4953 MAINTAINER is deprecated 2018-03-16 17:34:47 +08:00
1ab5b405a9 remove wrong comment info. 2018-03-16 16:24:20 +08:00
91784cbf8a Merge pull request #1431 from bestlong/workspace-mssql-build-fail
fix workspace mssql build fail
2018-03-16 15:56:14 +08:00
415a6159f6 fix workspace mssql build fail 2018-03-16 15:22:21 +08:00
2cf368e2cc Arg not consumed (#1430)
* fix arg CHROME_DRIVER_VERSION not consumed
* fix arg INSTALL_V8JS not consumed
2018-03-16 11:39:32 +08:00
f08c3bda4d workspace in gitlab build fail (#1429)
fix "sed: couldn't open temporary file /home/laradock/sed6KGnMb: Permission denied"
2018-03-16 10:41:54 +08:00
c5c4d19476 Merge pull request #1427 from bestlong/workspace-user-aliase-remove-duplicate-command
workspace Dockerfile remove duplicate command in User Aliases section.
2018-03-15 11:32:47 +08:00
40796651f6 workspace Dockerfile remove duplicate command in User Aliases section. 2018-03-15 11:22:43 +08:00
188a7d7624 Merge pull request #1425 from suheb/fix/imagemagick
Run apt-get update before installing imagemagick in workspace
2018-03-15 09:26:00 +08:00
3f1f60da91 Merge pull request #1412 from CantonBolo/optimize
Custom composer repo and npm registry url in php72
2018-03-15 09:24:07 +08:00
21e3ef8c47 Merge pull request #1426 from suheb/fix/mysql
Update mysql version to latest
2018-03-14 20:38:01 +08:00
7876aa2360 Update default mysql version
Signed-off-by: Suhaib Khan <suheb.work@gmail.com>
2018-03-14 15:43:14 +05:30
dee66c2495 Merge pull request #1420 from gentcys/my-fix-branch
PPA 'pinepain/libv8-5.4' has been deprecated, use 'pinepain/libv8-archived' instead
2018-03-14 12:53:36 +08:00
ce8bdb91cf Run apt-get update before installing imagemagick in workspace
Signed-off-by: Suhaib Khan <suheb.work@gmail.com>
2018-03-13 12:18:08 +05:30
f90a81ef8b Update mysql version to latest
Signed-off-by: Suhaib Khan <suheb.work@gmail.com>
2018-03-13 11:52:20 +05:30
23b8239cfa Save PostgresSQL data to hard drive.
PostgresSQL data don't get saved to hard drive. This tweak should fix that
2018-03-09 10:47:43 +02:00
b7b7690bbe The PPA of 'pinepain/libv8-5.4' has been deprecated, use 'pinepain/libv8-archived' instead 2018-03-09 11:43:40 +08:00
e054b622f3 Custom composer repo and npm registry url in php72 2018-03-05 02:08:11 +08:00
c4aef8e901 Merge pull request #1406 from vjrngn/patch-1
Reference beanstalkd-console host port environment variable in docker-compose.yml
2018-03-02 08:22:36 +08:00
47dc7c1eb9 update documentation 2018-03-01 22:10:08 +05:30
8fc33f5bb9 Reference beanstalkd-console host port
This pull request references the of `BEANSTALKD_CONSOLE_HOST_PORT` from the `.env` file in the `docker-compose.yml`. Prior to this PR, the environment variable was defined in the `.env` file but was not used.
2018-03-01 22:00:15 +05:30
8607f670c1 Update .travis.yml
Add Apache Solr  Test
2018-02-27 17:21:48 +08:00
04105b912d Merge pull request #1375 from wvdongen/master
Added support for Apache Solr
2018-02-27 17:19:20 +08:00
a797d67f14 Merge pull request #1402 from bestlong/workspace-php72-prestissimo
Support Prestissimo
2018-02-27 09:12:01 +08:00
4169a9b357 Support Prestissimo 2018-02-27 08:12:16 +08:00
8d0bd8505c Merge pull request #1354 from taufek/tj-install-prestissimo
Install Prestissimo in Workspace
2018-02-27 00:00:25 +08:00
dc5474d31b Merge pull request #1401 from bestlong/php-fpm-install-imap
Update php-fpm/Dockerfile-72 add IMAP support
2018-02-26 21:32:54 +08:00
ab9f5aba6e Update Dockerfile-72 2018-02-26 21:27:56 +08:00
cbd0f1de79 Update documentation to explain how to login via ssh using the laradock user 2018-02-26 10:25:15 -03:00
2a2d78e249 Merge pull request #1377 from SvenSlijkoord/php-fpm-install-imap
Added IMAP installation to PHP-FPM container
2018-02-26 21:19:02 +08:00
9b328cce1f Make possible to log in via ssh using the laradock user 2018-02-26 09:52:50 -03:00
43ba898df3 Merge branch 'master' into php-fpm-install-imap 2018-02-26 20:33:35 +08:00
3b0f271782 Merge pull request #1368 from Alexanderwmc/my-fix-branch
update nvm to 0.33.8
2018-02-26 20:26:38 +08:00
327e79f902 Merge pull request #1398 from bestlong/optimize-travis-ci
Optimize travis ci job
2018-02-26 18:48:39 +08:00
e546c9c190 Update php72.ini (#1397) 2018-02-26 18:44:02 +08:00
880c3684d7 optimize travis ci job 2018-02-26 17:20:10 +08:00
27ec06bbf0 Merge pull request #1371 from oysterprotocol/change-php-settings
Change php settings
2018-02-26 16:46:21 +08:00
6fe3dc75b3 Update symfony.conf.example 2018-02-26 15:48:06 +08:00
dd751c56b7 Update app.conf.example 2018-02-26 15:47:45 +08:00
91d202dff4 Update laravel.conf.example 2018-02-26 15:47:23 +08:00
ca376935e1 Merge pull request #1382 from desaroger/php-72-pr
Add PHP 7.2 support and fix issues on 5.6-7.0-7.1 versions
2018-02-26 10:43:16 +08:00
227bc37376 Fix MSSQL issue with a non-installed dependency 2018-02-23 22:26:13 +01:00
74ca3b82a1 Fix issue installing Aerospike in php-fpm with php 7.2 2018-02-23 22:02:57 +01:00
d23c553313 Fix installing PG client 2018-02-23 21:27:04 +01:00
16f88029e0 Fix install deployer fail
Install deployer from phar
2018-02-22 17:20:28 +08:00
74217478e0 Update .travis.yml
Add PHP72 Test
2018-02-22 11:39:10 +08:00
13f55ef796 Merge pull request #1387 from CantonBolo/optimize
Support custom composer repo url and npm registry url
2018-02-22 10:08:15 +08:00
715c2176b8 Merge pull request #1347 from zgoo/zgoo-laradock
Remove blank lines in php-fpm/Dockerfile70&71
2018-02-22 10:06:22 +08:00
43bf67b77e update document 2018-02-21 13:28:34 +08:00
4b5a1ef628 support custom composer repo url and npm registry url 2018-02-21 13:13:19 +08:00
198c3906b2 Fix libgmp not locating gmp.h file 2018-02-17 09:50:16 +01:00
9bd34ed665 Fix typo on grep when checking php-version 2018-02-17 09:35:59 +01:00
76da02e779 Add PHP version checkers on all php-related dockerfiles 2018-02-17 09:26:46 +01:00
a52a944003 Install deployer from phar to be compatible with laravel 4 2018-02-17 08:54:02 +01:00
4cffb2fc99 Avoid to install PHP latest on a PHP 7.1 dockerfile 2018-02-17 08:37:25 +01:00
92dda4695c Changes to make travis work, copied from spyridonas PR 2018-02-16 21:12:14 +01:00
c42e039945 Downgrade swoole to pass travis 5.6 test 2018-02-16 21:07:45 +01:00
72d550e6e5 Set php default version to 72 2018-02-16 19:10:03 +01:00
e1c3524f43 Move php-worker mcrypt installation to pecl 2018-02-16 18:51:24 +01:00
91131f0963 Add PHP 7.2 support 2018-02-16 18:40:13 +01:00
61d3874736 Update docker-compose.yml 2018-02-13 19:19:07 +01:00
03c7611010 Update Dockerfile-56 2018-02-13 19:18:22 +01:00
48de39b1a1 Update Dockerfile-70 2018-02-13 19:18:07 +01:00
2ca9d3c5c6 Update Dockerfile-71 2018-02-13 19:17:31 +01:00
3b219d2974 Added env entry PHP_FPM_INSTALL_IMAP 2018-02-13 19:15:49 +01:00
e77480b69f Merge pull request #1 from laradock/master
Merge origin laradock
2018-02-13 19:10:36 +01:00
b7f89e6b00 Add Solr 2018-02-11 11:36:57 +01:00
acbe7160d9 Merge pull request #1374 from bestlong/fix-php56-swoole-build-fail
Fix PHP56, workspace build fail: pecl/swoole requires PHP (version >= 7.0.0)
2018-02-11 13:29:08 +08:00
f53565f2a6 Fix workspace, PHP56 build fail
pecl/swoole requires PHP (version >= 7.0.0)
2018-02-11 13:04:20 +08:00
dfff0b2fa0 Fix pecl/swoole requires PHP (version >= 7.0.0) 2018-02-11 12:44:24 +08:00
82a2681eed Update php70.ini 2018-02-08 12:59:34 -05:00
e792aa654e Update php71.ini 2018-02-08 12:58:37 -05:00
87e1bdeb92 update nvm to 0.33.8 2018-02-06 14:29:41 +08:00
f05fdc71d5 doubling memory limit for php on brokers 2018-01-31 16:46:45 -08:00
6e96b1c6f9 Update default.conf 2018-01-29 16:38:09 -08:00
fad7c11d53 laravel timeouts 2018-01-29 16:32:18 -08:00
639b14445f Update default.conf 2018-01-29 16:31:48 -08:00
0b902e3e96 Install Prestissimo in Workspace
**Why we need this change?**

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

**Source**

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

supervisorctl stop laravel-worker
2018-01-04 23:57:33 +01:00
ee205d1198 [F] fix syntax error. 2018-01-04 13:57:46 +08:00
0fcb8b43cc Update license year 2017-12-31 22:12:59 +01:00
7bd22f015e updates path for postgres 2017-12-30 16:14:02 -05:00
07acf291fa remove line 2.73.2 2017-12-30 13:41:54 +08:00
cfe6e254a7 update jenkins from 2.73.2 to 2.89.2 2017-12-30 13:38:07 +08:00
5efda6714b Update apt packages to install librabbitmq for php 7.0 and php 5.6 2017-12-29 16:02:46 +02:00
a83477b439 Added packages update to install librabbit-mq. 2017-12-29 14:25:43 +02:00
00f8c3407e add memory to process up elastiseach 2017-12-28 10:54:45 -06:00
0aaa2c742e Added support for AMQP extension in workspace and php-fpm containers. 2017-12-28 14:25:32 +02:00
4ada536d68 Added laradock user ssh supports for php5.6 and php7.0. 2017-12-28 12:56:11 +02:00
222febadb5 Allowed laradock user use ssh settings (copied from root). 2017-12-28 12:53:33 +02:00
0445d76d11 feat: add GMP extension to PHP-fpm 2017-12-27 18:56:26 +08:00
7fc3a9cb7a add Dockery to a list of related projects
closes #1319
2017-12-27 02:51:50 +01:00
b738253a26 update simple text in the docs 2017-12-20 18:10:20 +01:00
6e6a658a79 fix broken test 2017-12-20 18:07:37 +01:00
4bc6526c3c add missing doc about jenkins 2017-12-20 18:03:10 +01:00
d4f9b04467 ignore /jenkins/jenkins_home/ generated files 2017-12-20 01:09:47 +01:00
b9e982c112 rename balancer to haproxy 2017-12-20 01:09:19 +01:00
63 changed files with 3936 additions and 384 deletions

5
.github/README.md vendored
View File

@ -35,11 +35,6 @@ Support this project by becoming a sponsor.
Your logo will show up on the [github repository](https://github.com/laradock/laradock/) index page and the [documentation](http://laradock.io/) main page, with a link to your website. [[Become a sponsor](https://opencollective.com/laradock#sponsor)] Your logo will show up on the [github repository](https://github.com/laradock/laradock/) index page and the [documentation](http://laradock.io/) main page, with a link to your website. [[Become a sponsor](https://opencollective.com/laradock#sponsor)]
<a target='_blank' rel='nofollow' href='https://app.codesponsor.io/link/JHiroABWV9N5QKgcFuTA2NxX/laradock/laradock'>
<img alt='Sponsor' width='888' height='68' src='https://app.codesponsor.io/embed/JHiroABWV9N5QKgcFuTA2NxX/laradock/laradock.svg' />
</a>
<a href="https://opencollective.com/laradock/sponsor/0/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/0/avatar.svg"></a> <a href="https://opencollective.com/laradock/sponsor/0/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/0/avatar.svg"></a>
<a href="https://opencollective.com/laradock/sponsor/1/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/1/avatar.svg"></a> <a href="https://opencollective.com/laradock/sponsor/1/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/1/avatar.svg"></a>
<a href="https://opencollective.com/laradock/sponsor/2/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/2/avatar.svg"></a> <a href="https://opencollective.com/laradock/sponsor/2/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/2/avatar.svg"></a>

1
.gitignore vendored
View File

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

62
.gitlab-ci.yml Normal file
View File

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

View File

@ -10,32 +10,25 @@ env:
- PHP_VERSION=56 BUILD_SERVICE=workspace - PHP_VERSION=56 BUILD_SERVICE=workspace
- PHP_VERSION=70 BUILD_SERVICE=workspace - PHP_VERSION=70 BUILD_SERVICE=workspace
- PHP_VERSION=71 BUILD_SERVICE=workspace - PHP_VERSION=71 BUILD_SERVICE=workspace
- PHP_VERSION=72 BUILD_SERVICE=workspace
- PHP_VERSION=56 BUILD_SERVICE=php-fpm - PHP_VERSION=56 BUILD_SERVICE=php-fpm
- PHP_VERSION=70 BUILD_SERVICE=php-fpm - PHP_VERSION=70 BUILD_SERVICE=php-fpm
- PHP_VERSION=71 BUILD_SERVICE=php-fpm - PHP_VERSION=71 BUILD_SERVICE=php-fpm
- PHP_VERSION=72 BUILD_SERVICE=php-fpm
- PHP_VERSION=hhvm BUILD_SERVICE=hhvm - PHP_VERSION=hhvm BUILD_SERVICE=hhvm
# - PHP_VERSION=56 BUILD_SERVICE=php-worker # - PHP_VERSION=56 BUILD_SERVICE=php-worker
- PHP_VERSION=70 BUILD_SERVICE=php-worker - PHP_VERSION=70 BUILD_SERVICE=php-worker
- PHP_VERSION=71 BUILD_SERVICE=php-worker - PHP_VERSION=71 BUILD_SERVICE=php-worker
- PHP_VERSION=72 BUILD_SERVICE=php-worker
- PHP_VERSION=56 BUILD_SERVICE=mssql - PHP_VERSION=NA BUILD_SERVICE=solr
- PHP_VERSION=70 BUILD_SERVICE=mssql - PHP_VERSION=NA BUILD_SERVICE="mssql rethinkdb aerospike"
- PHP_VERSION=71 BUILD_SERVICE=mssql
- PHP_VERSION=56 BUILD_SERVICE=rethinkdb
- PHP_VERSION=70 BUILD_SERVICE=rethinkdb
- PHP_VERSION=71 BUILD_SERVICE=rethinkdb
- PHP_VERSION=56 BUILD_SERVICE=aerospike
- PHP_VERSION=70 BUILD_SERVICE=aerospike
- PHP_VERSION=71 BUILD_SERVICE=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="applications 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="adminer phpmyadmin pgadmin"
- PHP_VERSION=NA BUILD_SERVICE="memcached beanstalkd beanstalkd-console rabbitmq elasticsearch certbot mailhog maildev selenium jenkins proxy proxy2 balancer" - 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="kibana grafana laravel-echo-server"
# - PHP_VERSION=NA BUILD_SERVICE="aws" # - PHP_VERSION=NA BUILD_SERVICE="aws"

View File

@ -431,15 +431,35 @@ To learn more about how Docker publishes ports, please read [this excellent post
<br>
<a name="Use-Jenkins"></a>
## Use Jenkins
1) Boot the container `docker-compose up -d jenkins`. To enter the container type `docker-compose exec jenkins bash`.
2) Go to `http://localhost:8090/` (if you didn't chanhed your default port mapping)
3) Authenticate from the web app.
- Default username is `admin`.
- Default password is `docker-compose exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword`.
(To enter container as root type `docker-compose exec --user root jenkins bash`).
4) Install some plugins.
5) Create your first Admin user, or continue as Admin.
Note: to add user go to `http://localhost:8090/securityRealm/addUser` and to restart it from the web app visit `http://localhost:8090/restart`.
You may wanna change the default security configuration, so go to `http://localhost:8090/configureSecurity/` under Authorization and choosing "Anyone can do anything" or "Project-based Matrix Authorization Strategy" or anything else.
<br> <br>
<a name="Laravel"></a> <a name="Laravel"></a>
<a name="Install-Laravel"></a> <a name="Install-Laravel"></a>
## Install Laravel from a Docker Container ## Install Laravel from a Docker Container
@ -798,6 +818,8 @@ docker-compose up -d beanstalkd-console
2 - Open your browser and visit `http://localhost:2080/` 2 - Open your browser and visit `http://localhost:2080/`
_Note: You can customize the port on which beanstalkd console is listening by changing `BEANSTALKD_CONSOLE_HOST_PORT` in `.env`. The default value is *2080*._
3 - Add the server 3 - Add the server
- Host: beanstalkd - Host: beanstalkd
@ -1072,10 +1094,18 @@ To change the default forwarded port for ssh:
... ...
``` ```
Then login using:
```bash
ssh -o PasswordAuthentication=no \
-o StrictHostKeyChecking=no \
-o UserKnownHostsFile=/dev/null \
-p 2222 \
-i workspace/insecure_id_rsa \
laradock@localhost
```
To login as root, replace laradock@locahost with root@localhost.
<br> <br>
<a name="Change-the-MySQL-Version"></a> <a name="Change-the-MySQL-Version"></a>
@ -1712,3 +1742,13 @@ This error sometimes happens because your Laravel application isn't running on t
## I get stuck when building nginx on `fetch http://mirrors.aliyun.com/alpine/v3.5/main/x86_64/APKINDEX.tar.gz` ## I get stuck when building nginx on `fetch http://mirrors.aliyun.com/alpine/v3.5/main/x86_64/APKINDEX.tar.gz`
As stated on [#749](https://github.com/laradock/laradock/issues/749#issuecomment-293296687), removing the line `RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/' /etc/apk/repositories` from `nginx/Dockerfile` solves the problem. As stated on [#749](https://github.com/laradock/laradock/issues/749#issuecomment-293296687), removing the line `RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/' /etc/apk/repositories` from `nginx/Dockerfile` solves the problem.
## Custom composer repo packagist url and npm registry url
In China, the origin source of composer and npm is very slow. You can add `WORKSPACE_NPM_REGISTRY` and `WORKSPACE_COMPOSER_REPO_PACKAGIST` config in `.env` to use your custom source.
Example:
```bash
WORKSPACE_NPM_REGISTRY=https://registry.npm.taobao.org
WORKSPACE_COMPOSER_REPO_PACKAGIST=https://packagist.phpcomposer.com
```

View File

@ -137,11 +137,6 @@ Your logo will show up on the [github repository](https://github.com/laradock/la
<a href="https://opencollective.com/laradock/sponsor/8/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/8/avatar.svg"></a> <a href="https://opencollective.com/laradock/sponsor/8/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/8/avatar.svg"></a>
<a href="https://opencollective.com/laradock/sponsor/9/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/9/avatar.svg"></a> <a href="https://opencollective.com/laradock/sponsor/9/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/9/avatar.svg"></a>
<a target='_blank' rel='nofollow' href='https://app.codesponsor.io/link/JHiroABWV9N5QKgcFuTA2NxX/laradock/laradock'>
<img alt='Sponsor' width='888' height='68' src='https://app.codesponsor.io/embed/JHiroABWV9N5QKgcFuTA2NxX/laradock/laradock.svg' />
</a>
<a name="what-is-docker"></a> <a name="what-is-docker"></a>

View File

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

View File

@ -1,6 +1,6 @@
The MIT License (MIT) The MIT License (MIT)
Copyright 2016 <Mahmoud Zalt> Copyright 2018 <Mahmoud Zalt>
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,6 +1,6 @@
FROM phusion/baseimage:latest FROM phusion/baseimage:latest
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me> LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND noninteractive
ENV PATH /usr/local/rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin ENV PATH /usr/local/rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

View File

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

View File

@ -1,7 +1,6 @@
FROM zuohuadong/caddy:alpine FROM zuohuadong/caddy:alpine
LABEL maintainer="Huadong Zuo <admin@zuohuadong.cn>"
MAINTAINER Huadong Zuo <admin@zuohuadong.cn>
ARG plugins="cors" ARG plugins="cors"

View File

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

View File

@ -19,19 +19,23 @@ services:
- INSTALL_LDAP=${WORKSPACE_INSTALL_LDAP} - INSTALL_LDAP=${WORKSPACE_INSTALL_LDAP}
- INSTALL_IMAP=${WORKSPACE_INSTALL_IMAP} - INSTALL_IMAP=${WORKSPACE_INSTALL_IMAP}
- INSTALL_MONGO=${WORKSPACE_INSTALL_MONGO} - INSTALL_MONGO=${WORKSPACE_INSTALL_MONGO}
- INSTALL_AMQP=${WORKSPACE_INSTALL_AMQP}
- INSTALL_PHPREDIS=${WORKSPACE_INSTALL_PHPREDIS} - INSTALL_PHPREDIS=${WORKSPACE_INSTALL_PHPREDIS}
- INSTALL_MSSQL=${WORKSPACE_INSTALL_MSSQL} - INSTALL_MSSQL=${WORKSPACE_INSTALL_MSSQL}
- INSTALL_NODE=${WORKSPACE_INSTALL_NODE} - INSTALL_NODE=${WORKSPACE_INSTALL_NODE}
- NPM_REGISTRY=${WORKSPACE_NPM_REGISTRY}
- INSTALL_YARN=${WORKSPACE_INSTALL_YARN} - INSTALL_YARN=${WORKSPACE_INSTALL_YARN}
- INSTALL_DRUSH=${WORKSPACE_INSTALL_DRUSH} - INSTALL_DRUSH=${WORKSPACE_INSTALL_DRUSH}
- INSTALL_DRUPAL_CONSOLE=${WORKSPACE_INSTALL_DRUPAL_CONSOLE} - INSTALL_DRUPAL_CONSOLE=${WORKSPACE_INSTALL_DRUPAL_CONSOLE}
- INSTALL_AEROSPIKE=${WORKSPACE_INSTALL_AEROSPIKE} - INSTALL_AEROSPIKE=${WORKSPACE_INSTALL_AEROSPIKE}
- INSTALL_V8JS=${WORKSPACE_INSTALL_V8JS} - INSTALL_V8JS=${WORKSPACE_INSTALL_V8JS}
- COMPOSER_GLOBAL_INSTALL=${WORKSPACE_COMPOSER_GLOBAL_INSTALL} - COMPOSER_GLOBAL_INSTALL=${WORKSPACE_COMPOSER_GLOBAL_INSTALL}
- COMPOSER_REPO_PACKAGIST=${WORKSPACE_COMPOSER_REPO_PACKAGIST}
- INSTALL_WORKSPACE_SSH=${WORKSPACE_INSTALL_WORKSPACE_SSH} - INSTALL_WORKSPACE_SSH=${WORKSPACE_INSTALL_WORKSPACE_SSH}
- INSTALL_LARAVEL_ENVOY=${WORKSPACE_INSTALL_LARAVEL_ENVOY} - INSTALL_LARAVEL_ENVOY=${WORKSPACE_INSTALL_LARAVEL_ENVOY}
- INSTALL_LARAVEL_INSTALLER=${WORKSPACE_INSTALL_LARAVEL_INSTALLER} - INSTALL_LARAVEL_INSTALLER=${WORKSPACE_INSTALL_LARAVEL_INSTALLER}
- INSTALL_DEPLOYER=${WORKSPACE_INSTALL_DEPLOYER} - INSTALL_DEPLOYER=${WORKSPACE_INSTALL_DEPLOYER}
- INSTALL_PRESTISSIMO=${WORKSPACE_INSTALL_PRESTISSIMO}
- INSTALL_LINUXBREW=${WORKSPACE_INSTALL_LINUXBREW} - INSTALL_LINUXBREW=${WORKSPACE_INSTALL_LINUXBREW}
- INSTALL_MC=${WORKSPACE_INSTALL_MC} - INSTALL_MC=${WORKSPACE_INSTALL_MC}
- INSTALL_SYMFONY=${WORKSPACE_INSTALL_SYMFONY} - INSTALL_SYMFONY=${WORKSPACE_INSTALL_SYMFONY}
@ -41,6 +45,7 @@ services:
- INSTALL_TERRAFORM=${WORKSPACE_INSTALL_TERRAFORM} - INSTALL_TERRAFORM=${WORKSPACE_INSTALL_TERRAFORM}
- INSTALL_DUSK_DEPS=${WORKSPACE_INSTALL_DUSK_DEPS} - INSTALL_DUSK_DEPS=${WORKSPACE_INSTALL_DUSK_DEPS}
- INSTALL_PG_CLIENT=${WORKSPACE_INSTALL_PG_CLIENT} - INSTALL_PG_CLIENT=${WORKSPACE_INSTALL_PG_CLIENT}
- INSTALL_SWOOLE=${WORKSPACE_INSTALL_SWOOLE}
- PUID=${WORKSPACE_PUID} - PUID=${WORKSPACE_PUID}
- PGID=${WORKSPACE_PGID} - PGID=${WORKSPACE_PGID}
- CHROME_DRIVER_VERSION=${WORKSPACE_CHROME_DRIVER_VERSION} - CHROME_DRIVER_VERSION=${WORKSPACE_CHROME_DRIVER_VERSION}
@ -70,10 +75,13 @@ services:
- INSTALL_XDEBUG=${PHP_FPM_INSTALL_XDEBUG} - INSTALL_XDEBUG=${PHP_FPM_INSTALL_XDEBUG}
- INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE} - INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE}
- INSTALL_SOAP=${PHP_FPM_INSTALL_SOAP} - INSTALL_SOAP=${PHP_FPM_INSTALL_SOAP}
- INSTALL_IMAP=${PHP_FPM_INSTALL_IMAP}
- INSTALL_MONGO=${PHP_FPM_INSTALL_MONGO} - INSTALL_MONGO=${PHP_FPM_INSTALL_MONGO}
- INSTALL_AMQP=${PHP_FPM_INSTALL_AMQP}
- INSTALL_MSSQL=${PHP_FPM_INSTALL_MSSQL} - INSTALL_MSSQL=${PHP_FPM_INSTALL_MSSQL}
- INSTALL_ZIP_ARCHIVE=${PHP_FPM_INSTALL_ZIP_ARCHIVE} - INSTALL_ZIP_ARCHIVE=${PHP_FPM_INSTALL_ZIP_ARCHIVE}
- INSTALL_BCMATH=${PHP_FPM_INSTALL_BCMATH} - INSTALL_BCMATH=${PHP_FPM_INSTALL_BCMATH}
- INSTALL_GMP=${PHP_FPM_INSTALL_GMP}
- INSTALL_PHPREDIS=${PHP_FPM_INSTALL_PHPREDIS} - INSTALL_PHPREDIS=${PHP_FPM_INSTALL_PHPREDIS}
- INSTALL_MEMCACHED=${PHP_FPM_INSTALL_MEMCACHED} - INSTALL_MEMCACHED=${PHP_FPM_INSTALL_MEMCACHED}
- INSTALL_OPCACHE=${PHP_FPM_INSTALL_OPCACHE} - INSTALL_OPCACHE=${PHP_FPM_INSTALL_OPCACHE}
@ -165,6 +173,7 @@ services:
- PHP_UPSTREAM_CONTAINER=${APACHE_PHP_UPSTREAM_CONTAINER} - PHP_UPSTREAM_CONTAINER=${APACHE_PHP_UPSTREAM_CONTAINER}
- PHP_UPSTREAM_PORT=${APACHE_PHP_UPSTREAM_PORT} - PHP_UPSTREAM_PORT=${APACHE_PHP_UPSTREAM_PORT}
- PHP_UPSTREAM_TIMEOUT=${APACHE_PHP_UPSTREAM_TIMEOUT} - PHP_UPSTREAM_TIMEOUT=${APACHE_PHP_UPSTREAM_TIMEOUT}
- DOCUMENT_ROOT=${APACHE_DOCUMENT_ROOT}
volumes_from: volumes_from:
- applications - applications
volumes: volumes:
@ -421,7 +430,7 @@ services:
beanstalkd-console: beanstalkd-console:
build: ./beanstalkd-console build: ./beanstalkd-console
ports: ports:
- "2080:2080" - "${BEANSTALKD_CONSOLE_HOST_PORT}:2080"
depends_on: depends_on:
- beanstalkd - beanstalkd
networks: networks:
@ -503,12 +512,12 @@ services:
environment: environment:
- cluster.name=laradock-cluster - cluster.name=laradock-cluster
- bootstrap.memory_lock=true - bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms256m -Xmx256m" - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits: ulimits:
memlock: memlock:
soft: -1 soft: -1
hard: -1 hard: -1
mem_limit: 512m mem_limit: 1024m
ports: ports:
- "${ELASTICSEARCH_HOST_HTTP_PORT}:9200" - "${ELASTICSEARCH_HOST_HTTP_PORT}:9200"
- "${ELASTICSEARCH_HOST_TRANSPORT_PORT}:9300" - "${ELASTICSEARCH_HOST_TRANSPORT_PORT}:9300"
@ -616,9 +625,9 @@ services:
networks: networks:
- frontend - frontend
### Balancer Haproxy ########################################## ### HAProxy Load Balancer ####################################
balancer: haproxy:
build: ./haproxy build: ./haproxy
ports: ports:
- "${HAPROXY_HOST_HTTP_PORT}:8085" - "${HAPROXY_HOST_HTTP_PORT}:8085"
@ -671,6 +680,21 @@ services:
- frontend - frontend
- backend - backend
### Solr Container #########################################
solr:
build:
context: ./solr
args:
- SOLR_VERSION=${SOLR_VERSION}
- SOLR_DATAIMPORTHANDLER_MYSQL=${SOLR_DATAIMPORTHANDLER_MYSQL}
volumes:
- ${DATA_SAVE_PATH}/solr:/opt/solr/server/solr/mycores
ports:
- "${SOLR_PORT}:8983"
networks:
- backend
### AWS EB-CLI #### ### AWS EB-CLI ####
aws: aws:
build: build:

View File

@ -8,9 +8,9 @@
APPLICATION=../ APPLICATION=../
### PHP Version ######################################################################################################## ### PHP Version ########################################################################################################
# Select a PHP version of the Workspace and PHP-FPM containers (Does not apply to HHVM). Accepted values: 71 - 70 - 56 # Select a PHP version of the Workspace and PHP-FPM containers (Does not apply to HHVM). Accepted values: 72 - 71 - 70 - 56
PHP_VERSION=71 PHP_VERSION=72
### PHP Interpreter #################################################################################################### ### PHP Interpreter ####################################################################################################
# Select the PHP Interpreter. Accepted values: hhvm - php-fpm # Select the PHP Interpreter. Accepted values: hhvm - php-fpm
@ -63,19 +63,23 @@ WORKSPACE_INSTALL_LDAP=false
WORKSPACE_INSTALL_SOAP=false WORKSPACE_INSTALL_SOAP=false
WORKSPACE_INSTALL_IMAP=false WORKSPACE_INSTALL_IMAP=false
WORKSPACE_INSTALL_MONGO=false WORKSPACE_INSTALL_MONGO=false
WORKSPACE_INSTALL_AMQP=false
WORKSPACE_INSTALL_PHPREDIS=false WORKSPACE_INSTALL_PHPREDIS=false
WORKSPACE_INSTALL_MSSQL=false WORKSPACE_INSTALL_MSSQL=false
WORKSPACE_INSTALL_NODE=false WORKSPACE_INSTALL_NODE=false
WORKSPACE_NPM_REGISTRY=
WORKSPACE_INSTALL_YARN=false WORKSPACE_INSTALL_YARN=false
WORKSPACE_INSTALL_DRUSH=false WORKSPACE_INSTALL_DRUSH=false
WORKSPACE_INSTALL_DRUPAL_CONSOLE=false WORKSPACE_INSTALL_DRUPAL_CONSOLE=false
WORKSPACE_INSTALL_AEROSPIKE=false WORKSPACE_INSTALL_AEROSPIKE=false
WORKSPACE_INSTALL_V8JS=false WORKSPACE_INSTALL_V8JS=false
WORKSPACE_COMPOSER_GLOBAL_INSTALL=false WORKSPACE_COMPOSER_GLOBAL_INSTALL=false
WORKSPACE_COMPOSER_REPO_PACKAGIST=
WORKSPACE_INSTALL_WORKSPACE_SSH=false WORKSPACE_INSTALL_WORKSPACE_SSH=false
WORKSPACE_INSTALL_LARAVEL_ENVOY=false WORKSPACE_INSTALL_LARAVEL_ENVOY=false
WORKSPACE_INSTALL_LARAVEL_INSTALLER=false WORKSPACE_INSTALL_LARAVEL_INSTALLER=false
WORKSPACE_INSTALL_DEPLOYER=false WORKSPACE_INSTALL_DEPLOYER=false
WORKSPACE_INSTALL_PRESTISSIMO=false
WORKSPACE_INSTALL_LINUXBREW=false WORKSPACE_INSTALL_LINUXBREW=false
WORKSPACE_INSTALL_MC=false WORKSPACE_INSTALL_MC=false
WORKSPACE_INSTALL_SYMFONY=false WORKSPACE_INSTALL_SYMFONY=false
@ -85,6 +89,7 @@ WORKSPACE_INSTALL_IMAGEMAGICK=false
WORKSPACE_INSTALL_TERRAFORM=false WORKSPACE_INSTALL_TERRAFORM=false
WORKSPACE_INSTALL_DUSK_DEPS=false WORKSPACE_INSTALL_DUSK_DEPS=false
WORKSPACE_INSTALL_PG_CLIENT=false WORKSPACE_INSTALL_PG_CLIENT=false
WORKSPACE_INSTALL_SWOOLE=false
WORKSPACE_PUID=1000 WORKSPACE_PUID=1000
WORKSPACE_PGID=1000 WORKSPACE_PGID=1000
WORKSPACE_CHROME_DRIVER_VERSION=2.32 WORKSPACE_CHROME_DRIVER_VERSION=2.32
@ -96,11 +101,14 @@ WORKSPACE_SSH_PORT=2222
### PHP_FPM ############################################################################################################ ### PHP_FPM ############################################################################################################
PHP_FPM_INSTALL_XDEBUG=false PHP_FPM_INSTALL_XDEBUG=false
PHP_FPM_INSTALL_IMAP=false
PHP_FPM_INSTALL_MONGO=false PHP_FPM_INSTALL_MONGO=false
PHP_FPM_INSTALL_AMQP=false
PHP_FPM_INSTALL_MSSQL=false PHP_FPM_INSTALL_MSSQL=false
PHP_FPM_INSTALL_SOAP=false PHP_FPM_INSTALL_SOAP=false
PHP_FPM_INSTALL_ZIP_ARCHIVE=false PHP_FPM_INSTALL_ZIP_ARCHIVE=false
PHP_FPM_INSTALL_BCMATH=false PHP_FPM_INSTALL_BCMATH=false
PHP_FPM_INSTALL_GMP=false
PHP_FPM_INSTALL_PHPREDIS=false PHP_FPM_INSTALL_PHPREDIS=false
PHP_FPM_INSTALL_MEMCACHED=false PHP_FPM_INSTALL_MEMCACHED=false
PHP_FPM_INSTALL_OPCACHE=false PHP_FPM_INSTALL_OPCACHE=false
@ -139,10 +147,11 @@ APACHE_SITES_PATH=./apache2/sites
APACHE_PHP_UPSTREAM_CONTAINER=php-fpm APACHE_PHP_UPSTREAM_CONTAINER=php-fpm
APACHE_PHP_UPSTREAM_PORT=9000 APACHE_PHP_UPSTREAM_PORT=9000
APACHE_PHP_UPSTREAM_TIMEOUT=60 APACHE_PHP_UPSTREAM_TIMEOUT=60
APACHE_DOCUMENT_ROOT=/var/www/
### MYSQL ############################################################################################################## ### MYSQL ##############################################################################################################
MYSQL_VERSION=8.0 MYSQL_VERSION=latest
MYSQL_DATABASE=default MYSQL_DATABASE=default
MYSQL_USER=default MYSQL_USER=default
MYSQL_PASSWORD=secret MYSQL_PASSWORD=secret
@ -319,6 +328,12 @@ CADDY_CUSTOM_CADDYFILE=./caddy/Caddyfile
LARAVEL_ECHO_SERVER_PORT=6001 LARAVEL_ECHO_SERVER_PORT=6001
### SOLR ###############################################################################################################
SOLR_VERSION=5.5
SOLR_PORT=8983
SOLR_DATAIMPORTHANDLER_MYSQL=false
### DOCKER-SYNC ################################################################################################ ### DOCKER-SYNC ################################################################################################
# osx: 'native_osx' (default) # osx: 'native_osx' (default)

View File

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

View File

@ -1,6 +1,6 @@
FROM ubuntu:14.04 FROM ubuntu:14.04
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me> LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
RUN apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449 RUN apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,7 +1,7 @@
ARG MYSQL_VERSION=8.0 ARG MYSQL_VERSION=latest
FROM mysql:${MYSQL_VERSION} FROM mysql:${MYSQL_VERSION}
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me> LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
##################################### #####################################
# Set Timezone # Set Timezone

View File

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

View File

@ -1,6 +1,6 @@
FROM nginx:alpine FROM nginx:alpine
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me> LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
ADD nginx.conf /etc/nginx/ ADD nginx.conf /etc/nginx/
@ -9,7 +9,7 @@ ADD nginx.conf /etc/nginx/
ARG CHANGE_SOURCE=false ARG CHANGE_SOURCE=false
RUN if [ ${CHANGE_SOURCE} = true ]; then \ RUN if [ ${CHANGE_SOURCE} = true ]; then \
# Change application source from dl-cdn.alpinelinux.org to aliyun source # Change application source from dl-cdn.alpinelinux.org to aliyun source
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/' /etc/apk/repositories \ sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/' /etc/apk/repositories \
;fi ;fi
RUN apk update \ RUN apk update \

View File

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

View File

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

View File

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

View File

@ -20,6 +20,8 @@ server {
fastcgi_split_path_info ^(.+\.php)(/.*)$; fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params; include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#fixes timeouts
fastcgi_read_timeout 600;
fastcgi_param HTTPS off; fastcgi_param HTTPS off;
} }

View File

@ -1,6 +1,6 @@
FROM percona:5.7 FROM percona:5.7
MAINTAINER DTUNES <diegotdai@gmai.com> LABEL maintainer="DTUNES <diegotdai@gmai.com>"
RUN chown -R mysql:root /var/lib/mysql/ RUN chown -R mysql:root /var/lib/mysql/

View File

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

View File

@ -14,7 +14,7 @@
FROM laradock/php-fpm:2.0-56 FROM laradock/php-fpm:2.0-56
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me> LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
# #
#-------------------------------------------------------------------------- #--------------------------------------------------------------------------
@ -121,7 +121,7 @@ RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
ARG INSTALL_SWOOLE=false ARG INSTALL_SWOOLE=false
RUN if [ ${INSTALL_SWOOLE} = true ]; then \ RUN if [ ${INSTALL_SWOOLE} = true ]; then \
# Install Php Swoole Extension # Install Php Swoole Extension
pecl install swoole \ pecl install swoole-2.0.11 \
&& docker-php-ext-enable swoole \ && docker-php-ext-enable swoole \
;fi ;fi
@ -136,6 +136,19 @@ RUN if [ ${INSTALL_MONGO} = true ]; then \
docker-php-ext-enable mongodb \ docker-php-ext-enable mongodb \
;fi ;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: # ZipArchive:
##################################### #####################################
@ -156,6 +169,19 @@ RUN if [ ${INSTALL_BCMATH} = true ]; then \
docker-php-ext-install bcmath \ docker-php-ext-install bcmath \
;fi ;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: # PHP Memcached:
##################################### #####################################
@ -180,14 +206,17 @@ RUN if [ ${INSTALL_EXIF} = true ]; then \
##################################### #####################################
# PHP Aerospike: # PHP Aerospike:
##################################### #####################################
USER root
ARG INSTALL_AEROSPIKE=false ARG INSTALL_AEROSPIKE=false
ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE} ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE}
# Copy aerospike configration for remote debugging
COPY ./aerospike.ini /usr/local/etc/php/conf.d/aerospike.ini
RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \ 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 # Install the php aerospike extension
curl -L -o /tmp/aerospike-client-php.tar.gz "https://github.com/aerospike/aerospike-client-php5/archive/3.4.15.tar.gz" \ 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 \ && mkdir -p aerospike-client-php \
&& tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \ && tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \
&& ( \ && ( \
@ -273,11 +302,11 @@ RUN if [ ${INSTALL_LDAP} = true ]; then \
##################################### #####################################
ARG INSTALL_MSSQL=false ARG INSTALL_MSSQL=false
ENV INSTALL_MSSQL ${INSTALL_MSSQL} ENV INSTALL_MSSQL ${INSTALL_MSSQL}
RUN set -eux; if [ ${INSTALL_MSSQL} = true ]; then \
RUN if [ ${INSTALL_MSSQL} = true ]; then \ apt-get -y install php5-sybase freetds-bin \
apt-get -y install php5-sybase freetds-bin && \ && cp /usr/lib/php5/20131226/*.so /usr/local/lib/php/extensions/no-debug-non-zts-20131226/ \
cp /usr/lib/php5/20131226/*.so /usr/local/lib/php/extensions/no-debug-non-zts-20131226/ && \ && docker-php-ext-enable pdo_dblib mssql \
docker-php-ext-enable mssql pdo pdo_dblib \ && php -m | grep -q 'mssql' \
;fi ;fi
##################################### #####################################
@ -304,6 +333,25 @@ RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \
docker-php-ext-enable imagick \ docker-php-ext-enable imagick \
;fi ;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 # Final Touch

View File

@ -14,7 +14,7 @@
FROM laradock/php-fpm:2.0-70 FROM laradock/php-fpm:2.0-70
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me> LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
# #
#-------------------------------------------------------------------------- #--------------------------------------------------------------------------
@ -133,6 +133,19 @@ RUN if [ ${INSTALL_MONGO} = true ]; then \
docker-php-ext-enable mongodb \ docker-php-ext-enable mongodb \
;fi ;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: # ZipArchive:
##################################### #####################################
@ -153,6 +166,18 @@ RUN if [ ${INSTALL_BCMATH} = true ]; then \
docker-php-ext-install bcmath \ docker-php-ext-install bcmath \
;fi ;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: # PHP Memcached:
##################################### #####################################
@ -188,12 +213,15 @@ RUN if [ ${INSTALL_EXIF} = true ]; then \
##################################### #####################################
# PHP Aerospike: # PHP Aerospike:
##################################### #####################################
USER root
ARG INSTALL_AEROSPIKE=false ARG INSTALL_AEROSPIKE=false
ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE} ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE}
# Copy aerospike configration for remote debugging
COPY ./aerospike.ini /usr/local/etc/php/conf.d/aerospike.ini
RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \ 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 # 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" \ 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 \ && mkdir -p aerospike-client-php \
@ -280,10 +308,9 @@ RUN if [ ${INSTALL_LDAP} = true ]; then \
##################################### #####################################
# SQL SERVER: # SQL SERVER:
##################################### #####################################
ARG INSTALL_MSSQL=false ARG INSTALL_MSSQL=false
ENV INSTALL_MSSQL ${INSTALL_MSSQL} ENV INSTALL_MSSQL ${INSTALL_MSSQL}
RUN if [ ${INSTALL_MSSQL} = true ]; then \ 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 # Ref from https://github.com/Microsoft/msphpsql/wiki/Dockerfile-for-adding-pdo_sqlsrv-and-sqlsrv-to-official-php-image
##################################### #####################################
@ -293,15 +320,15 @@ RUN if [ ${INSTALL_MSSQL} = true ]; then \
&& curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \ && 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 \ && curl https://packages.microsoft.com/config/debian/8/prod.list > /etc/apt/sources.list.d/mssql-release.list \
&& apt-get update -yqq \ && apt-get update -yqq \
# Install Dependencies # Install Dependencies
&& ACCEPT_EULA=Y apt-get install -y unixodbc unixodbc-dev libgss3 odbcinst msodbcsql locales \ && ACCEPT_EULA=Y apt-get install -y unixodbc unixodbc-dev libgss3 odbcinst msodbcsql locales \
&& echo "en_US.UTF-8 UTF-8" > /etc/locale.gen \ && echo "en_US.UTF-8 UTF-8" > /etc/locale.gen \
&& locale-gen \ && locale-gen \
# Install pdo_sqlsrv and sqlsrv from PECL. Replace pdo_sqlsrv-4.1.8preview with preferred version. # 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 \ && pecl install pdo_sqlsrv-4.1.8preview sqlsrv-4.1.8preview \
&& docker-php-ext-enable pdo_sqlsrv sqlsrv \ && docker-php-ext-enable pdo_sqlsrv sqlsrv \
&& php -m | grep -q 'pdo_sqlsrv' \
&& php -m | grep -q 'sqlsrv' \
;fi ;fi
##################################### #####################################
@ -328,6 +355,25 @@ RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \
docker-php-ext-enable imagick \ docker-php-ext-enable imagick \
;fi ;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 # Final Touch

View File

@ -14,7 +14,7 @@
FROM laradock/php-fpm:2.0-71 FROM laradock/php-fpm:2.0-71
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me> LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
# #
#-------------------------------------------------------------------------- #--------------------------------------------------------------------------
@ -133,6 +133,19 @@ RUN if [ ${INSTALL_MONGO} = true ]; then \
docker-php-ext-enable mongodb \ docker-php-ext-enable mongodb \
;fi ;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: # ZipArchive:
##################################### #####################################
@ -153,6 +166,18 @@ RUN if [ ${INSTALL_BCMATH} = true ]; then \
docker-php-ext-install bcmath \ docker-php-ext-install bcmath \
;fi ;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: # PHP Memcached:
##################################### #####################################
@ -188,18 +213,15 @@ RUN if [ ${INSTALL_EXIF} = true ]; then \
##################################### #####################################
# PHP Aerospike: # PHP Aerospike:
##################################### #####################################
USER root
ARG INSTALL_AEROSPIKE=false ARG INSTALL_AEROSPIKE=false
ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE} ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE}
# Copy aerospike configration for remote debugging
COPY ./aerospike.ini /usr/local/etc/php/conf.d/aerospike.ini
RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \ RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
# Fix dependencies for PHPUnit within aerospike extension # Fix dependencies for PHPUnit within aerospike extension
apt-get update -yqq && \ apt-get update -yqq && \
apt-get -y install sudo wget && \ apt-get -y install sudo wget && \
# Install the php aerospike extension # 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" \ 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 \ && mkdir -p aerospike-client-php \
@ -211,10 +233,7 @@ RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
&& make install \ && make install \
) \ ) \
&& rm /tmp/aerospike-client-php.tar.gz \ && rm /tmp/aerospike-client-php.tar.gz \
;fi && docker-php-ext-enable aerospike \
RUN if [ ${INSTALL_AEROSPIKE} = false ]; then \
rm /usr/local/etc/php/conf.d/aerospike.ini \
;fi ;fi
##################################### #####################################
@ -289,26 +308,27 @@ RUN if [ ${INSTALL_LDAP} = true ]; then \
##################################### #####################################
# SQL SERVER: # SQL SERVER:
##################################### #####################################
ARG INSTALL_MSSQL=false ARG INSTALL_MSSQL=false
ENV INSTALL_MSSQL ${INSTALL_MSSQL} ENV INSTALL_MSSQL ${INSTALL_MSSQL}
RUN if [ ${INSTALL_MSSQL} = true ]; then \ 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 # 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 # Add Microsoft repo for Microsoft ODBC Driver 13 for Linux
apt-get update -yqq && apt-get install -y apt-transport-https \ 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/keys/microsoft.asc | apt-key add - \
&& curl https://packages.microsoft.com/config/debian/8/prod.list > /etc/apt/sources.list.d/mssql-release.list \ && curl https://packages.microsoft.com/config/debian/8/prod.list > /etc/apt/sources.list.d/mssql-release.list \
&& apt-get update -yqq \ && apt-get update -yqq \
# Install Dependencies # Install Dependencies
&& ACCEPT_EULA=Y apt-get install -y unixodbc unixodbc-dev libgss3 odbcinst msodbcsql locales \ && 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 \ && 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. # 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 \ && pecl install pdo_sqlsrv-4.1.8preview sqlsrv-4.1.8preview \
&& docker-php-ext-enable pdo_sqlsrv sqlsrv \ && docker-php-ext-enable pdo_sqlsrv sqlsrv \
&& php -m | grep -q 'pdo_sqlsrv' \
&& php -m | grep -q 'sqlsrv' \
;fi ;fi
##################################### #####################################
@ -335,6 +355,25 @@ RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \
docker-php-ext-enable imagick \ docker-php-ext-enable imagick \
;fi ;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 # Final Touch

397
php-fpm/Dockerfile-72 Normal file
View File

@ -0,0 +1,397 @@
#
#--------------------------------------------------------------------------
# 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
#--------------------------------------------------------------------------
#
ADD ./laravel.ini /usr/local/etc/php/conf.d
ADD ./xlaravel.pool.conf /usr/local/etc/php-fpm.d/
#RUN rm -r /var/lib/apt/lists/*
RUN usermod -u 1000 www-data
WORKDIR /var/www
CMD ["php-fpm"]
EXPOSE 9000

View File

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

View File

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

View File

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

1918
php-fpm/php72.ini Normal file

File diff suppressed because it is too large Load Diff

View File

@ -6,7 +6,7 @@
FROM php:7.0-alpine FROM php:7.0-alpine
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me> LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
RUN apk --update add wget \ RUN apk --update add wget \
curl \ curl \
@ -56,6 +56,13 @@ ENTRYPOINT ["/usr/bin/supervisord", "-n", "-c", "/etc/supervisord.conf"]
# #
# -- Your awesome modifications go here -- # # -- Your awesome modifications go here -- #
#
#--------------------------------------------------------------------------
# Check PHP version
#--------------------------------------------------------------------------
#
RUN php -v | head -n 1 | grep -q "PHP 7.0."
# #
#-------------------------------------------------------------------------- #--------------------------------------------------------------------------

View File

@ -6,7 +6,7 @@
FROM php:7.1-alpine FROM php:7.1-alpine
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me> LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
RUN apk --update add wget \ RUN apk --update add wget \
curl \ curl \
@ -56,6 +56,13 @@ ENTRYPOINT ["/usr/bin/supervisord", "-n", "-c", "/etc/supervisord.conf"]
# #
# -- Your awesome modifications go here -- # # -- Your awesome modifications go here -- #
#
#--------------------------------------------------------------------------
# Check PHP version
#--------------------------------------------------------------------------
#
RUN php -v | head -n 1 | grep -q "PHP 7.1."
# #
#-------------------------------------------------------------------------- #--------------------------------------------------------------------------

73
php-worker/Dockerfile-72 Normal file
View File

@ -0,0 +1,73 @@
#
#--------------------------------------------------------------------------
# Image Setup
#--------------------------------------------------------------------------
#
FROM php:7.2-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 tokenizer xml
RUN pecl channel-update pecl.php.net && pecl install memcached mcrypt-1.0.1 && 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.2."
#
#--------------------------------------------------------------------------
# Final Touch
#--------------------------------------------------------------------------
#
WORKDIR /etc/supervisor/conf.d/

View File

@ -1,5 +1,11 @@
[supervisord] [supervisord]
nodaemon=true nodaemon=true
[supervisorctl]
[inet_http_server]
port = 127.0.0.1:9001
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[program:laravel-worker] [program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d process_name=%(program_name)s_%(process_num)02d
command=php /var/www/artisan queue:work --sleep=3 --tries=3 --daemon command=php /var/www/artisan queue:work --sleep=3 --tries=3 --daemon

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

14
solr/Dockerfile Normal file
View File

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

View File

@ -1,6 +1,6 @@
FROM debian:latest FROM debian:latest
MAINTAINER ZeroC0D3 Team<zeroc0d3.team@gmail.com> LABEL maintainer="ZeroC0D3 Team<zeroc0d3.team@gmail.com>"
# Set Environment Variables # Set Environment Variables
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND noninteractive

View File

@ -14,7 +14,7 @@
FROM laradock/workspace:2.0-56 FROM laradock/workspace:2.0-56
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me> LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
# Remove Faillog and Lastlog to reduce the size of the final image. # Remove Faillog and Lastlog to reduce the size of the final image.
RUN rm /var/log/lastlog /var/log/faillog RUN rm /var/log/lastlog /var/log/faillog
@ -55,6 +55,7 @@ ENV PGID ${PGID}
RUN groupadd -g ${PGID} laradock && \ RUN groupadd -g ${PGID} laradock && \
useradd -u ${PUID} -g laradock -m laradock && \ useradd -u ${PUID} -g laradock -m laradock && \
usermod -p "*" laradock && \
apt-get update -yqq apt-get update -yqq
##################################### #####################################
@ -127,6 +128,13 @@ RUN if [ ${COMPOSER_GLOBAL_INSTALL} = true ]; then \
composer global install \ composer global install \
;fi ;fi
ARG COMPOSER_REPO_PACKAGIST
ENV COMPOSER_REPO_PACKAGIST ${COMPOSER_REPO_PACKAGIST}
RUN if [ ${COMPOSER_REPO_PACKAGIST} ]; then \
composer config -g repo.packagist composer ${COMPOSER_REPO_PACKAGIST} \
;fi
# Export composer vendor path # Export composer vendor path
RUN echo "" >> ~/.bashrc && \ RUN echo "" >> ~/.bashrc && \
echo 'export PATH="~/.composer/vendor/bin:$PATH"' >> ~/.bashrc echo 'export PATH="~/.composer/vendor/bin:$PATH"' >> ~/.bashrc
@ -142,27 +150,30 @@ RUN chmod -R 644 /etc/cron.d
##################################### #####################################
# User Aliases # User Aliases
##################################### #####################################
USER root
COPY ./aliases.sh /root/aliases.sh
COPY ./aliases.sh /home/laradock/aliases.sh
RUN sed -i 's/\r//' /root/aliases.sh && \
sed -i 's/\r//' /home/laradock/aliases.sh && \
chown laradock:laradock /home/laradock/aliases.sh && \
echo "" >> ~/.bashrc && \
echo "# Load Custom Aliases" >> ~/.bashrc && \
echo "source ~/aliases.sh" >> ~/.bashrc && \
echo "" >> ~/.bashrc
USER laradock USER laradock
COPY ./aliases.sh /home/laradock/aliases.sh
RUN echo "" >> ~/.bashrc && \
echo "# Load Custom Aliases" >> ~/.bashrc && \
echo "source /home/laradock/aliases.sh" >> ~/.bashrc && \
echo "" >> ~/.bashrc && \
sed -i 's/\r//' /home/laradock/aliases.sh && \
sed -i 's/^#! \/bin\/sh/#! \/bin\/bash/' /home/laradock/aliases.sh
USER root
RUN echo "" >> ~/.bashrc && \ RUN echo "" >> ~/.bashrc && \
echo "# Load Custom Aliases" >> ~/.bashrc && \ echo "# Load Custom Aliases" >> ~/.bashrc && \
echo "source /home/laradock/aliases.sh" >> ~/.bashrc && \ echo "source ~/aliases.sh" >> ~/.bashrc && \
echo "" >> ~/.bashrc && \ echo "" >> ~/.bashrc
sed -i 's/\r//' /home/laradock/aliases.sh && \
sed -i 's/^#! \/bin\/sh/#! \/bin\/bash/' /home/laradock/aliases.sh
##################################### #####################################
# xDebug: # xDebug:
##################################### #####################################
USER root
ARG INSTALL_XDEBUG=false ARG INSTALL_XDEBUG=false
RUN if [ ${INSTALL_XDEBUG} = true ]; then \ RUN if [ ${INSTALL_XDEBUG} = true ]; then \
@ -209,6 +220,8 @@ RUN if [ ${INSTALL_WORKSPACE_SSH} = true ]; then \
&& rm -f /tmp/id_rsa* \ && rm -f /tmp/id_rsa* \
&& chmod 644 /root/.ssh/authorized_keys /root/.ssh/id_rsa.pub \ && chmod 644 /root/.ssh/authorized_keys /root/.ssh/id_rsa.pub \
&& chmod 400 /root/.ssh/id_rsa \ && chmod 400 /root/.ssh/id_rsa \
&& cp -rf /root/.ssh /home/laradock \
&& chown -R laradock:laradock /home/laradock/.ssh \
;fi ;fi
##################################### #####################################
@ -226,6 +239,19 @@ RUN if [ ${INSTALL_MONGO} = true ]; then \
ln -s /etc/php/5.6/mods-available/mongodb.ini /etc/php/5.6/cli/conf.d/30-mongodb.ini \ ln -s /etc/php/5.6/mods-available/mongodb.ini /etc/php/5.6/cli/conf.d/30-mongodb.ini \
;fi ;fi
#####################################
# AMQP:
#####################################
ARG INSTALL_AMQP=false
ENV INSTALL_AMQP ${INSTALL_AMQP}
RUN if [ ${INSTALL_AMQP} = true ]; then \
apt-get install librabbitmq-dev -y && \
pecl -q install amqp && \
echo "extension=amqp.so" >> /etc/php/5.6/mods-available/amqp.ini && \
ln -s /etc/php/5.6/mods-available/amqp.ini /etc/php/5.6/cli/conf.d/30-amqp.ini \
;fi
##################################### #####################################
# PHP REDIS EXTENSION FOR PHP 5.6 # PHP REDIS EXTENSION FOR PHP 5.6
##################################### #####################################
@ -239,6 +265,18 @@ RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
phpenmod redis \ phpenmod redis \
;fi ;fi
#####################################
# Swoole EXTENSION FOR PHP 5.6
#####################################
ARG INSTALL_SWOOLE=false
RUN if [ ${INSTALL_SWOOLE} = true ]; then \
# Install Php Swoole Extension
pecl -q install -f swoole-1.10.1 && \
echo "extension=swoole.so" >> /etc/php/5.6/mods-available/swoole.ini && \
ln -s /etc/php/5.6/mods-available/swoole.ini /etc/php/5.6/cli/conf.d/20-swoole.ini \
;fi
##################################### #####################################
# Drush: # Drush:
##################################### #####################################
@ -280,14 +318,19 @@ ARG NODE_VERSION=stable
ENV NODE_VERSION ${NODE_VERSION} ENV NODE_VERSION ${NODE_VERSION}
ARG INSTALL_NODE=false ARG INSTALL_NODE=false
ENV INSTALL_NODE ${INSTALL_NODE} ENV INSTALL_NODE ${INSTALL_NODE}
ARG NPM_REGISTRY
ENV NPM_REGISTRY ${NPM_REGISTRY}
ENV NVM_DIR /home/laradock/.nvm ENV NVM_DIR /home/laradock/.nvm
RUN if [ ${INSTALL_NODE} = true ]; then \ RUN if [ ${INSTALL_NODE} = true ]; then \
# Install nvm (A Node Version Manager) # Install nvm (A Node Version Manager)
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash && \ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash && \
. $NVM_DIR/nvm.sh && \ . $NVM_DIR/nvm.sh && \
nvm install ${NODE_VERSION} && \ nvm install ${NODE_VERSION} && \
nvm use ${NODE_VERSION} && \ nvm use ${NODE_VERSION} && \
nvm alias ${NODE_VERSION} && \ nvm alias ${NODE_VERSION} && \
if [ ${NPM_REGISTRY} ]; then \
npm config set registry ${NPM_REGISTRY} \
;fi && \
npm install -g gulp bower vue-cli \ npm install -g gulp bower vue-cli \
;fi ;fi
@ -311,6 +354,10 @@ RUN if [ ${INSTALL_NODE} = true ]; then \
# Add PATH for node # Add PATH for node
ENV PATH $PATH:$NVM_DIR/versions/node/v${NODE_VERSION}/bin ENV PATH $PATH:$NVM_DIR/versions/node/v${NODE_VERSION}/bin
RUN if [ ${NPM_REGISTRY} ]; then \
. ~/.bashrc && npm config set registry ${NPM_REGISTRY} \
;fi
##################################### #####################################
# YARN: # YARN:
##################################### #####################################
@ -347,15 +394,15 @@ RUN if [ ${INSTALL_YARN} = true ]; then \
##################################### #####################################
USER root USER root
ARG INSTALL_AEROSPIKE=true ARG INSTALL_AEROSPIKE=false
ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE} ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE}
# Copy aerospike configration for remote debugging
COPY ./aerospike.ini /etc/php/5.6/cli/conf.d/aerospike.ini
RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \ 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 # Install the php aerospike extension
curl -L -o /tmp/aerospike-client-php.tar.gz "https://github.com/aerospike/aerospike-client-php5/archive/3.4.15.tar.gz" \ 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 \ && mkdir -p aerospike-client-php \
&& tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \ && tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \
&& ( \ && ( \
@ -365,10 +412,26 @@ RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
&& make install \ && make install \
) \ ) \
&& rm /tmp/aerospike-client-php.tar.gz \ && rm /tmp/aerospike-client-php.tar.gz \
&& echo 'extension=aerospike.so' >> /etc/php/5.6/cli/conf.d/aerospike.ini \
&& echo 'aerospike.udf.lua_system_path=/usr/local/aerospike/lua' >> /etc/php/5.6/cli/conf.d/aerospike.ini \
&& echo 'aerospike.udf.lua_user_path=/usr/local/aerospike/usr-lua' >> /etc/php/5.6/cli/conf.d/aerospike.ini \
;fi ;fi
RUN if [ ${INSTALL_AEROSPIKE} = false ]; then \ #####################################
rm /etc/php/5.6/cli/conf.d/aerospike.ini \ # PHP V8JS:
#####################################
USER root
ARG INSTALL_V8JS=false
ENV INSTALL_V8JS ${INSTALL_V8JS}
RUN if [ ${INSTALL_V8JS} = true ]; then \
# Install the php V8JS extension
add-apt-repository -y ppa:pinepain/libv8-archived \
&& apt-get update -yqq \
&& apt-get install -y php5.6-xml php5.6-dev php-pear libv8-dev \
&& pecl install v8js-0.6.4 \
&& echo "extension=v8js.so" >> /etc/php/5.6/cli/php.ini \
;fi ;fi
##################################### #####################################
@ -386,7 +449,7 @@ RUN echo "" >> ~/.bashrc && \
##################################### #####################################
USER laradock USER laradock
ARG INSTALL_LARAVEL_ENVOY=true ARG INSTALL_LARAVEL_ENVOY=false
ENV INSTALL_LARAVEL_ENVOY ${INSTALL_LARAVEL_ENVOY} ENV INSTALL_LARAVEL_ENVOY ${INSTALL_LARAVEL_ENVOY}
RUN if [ ${INSTALL_LARAVEL_ENVOY} = true ]; then \ RUN if [ ${INSTALL_LARAVEL_ENVOY} = true ]; then \
@ -399,7 +462,14 @@ RUN if [ ${INSTALL_LARAVEL_ENVOY} = true ]; then \
##################################### #####################################
USER root USER root
ARG INSTALL_LARAVEL_INSTALLER=true ARG COMPOSER_REPO_PACKAGIST
ENV COMPOSER_REPO_PACKAGIST ${COMPOSER_REPO_PACKAGIST}
RUN if [ ${COMPOSER_REPO_PACKAGIST} ]; then \
composer config -g repo.packagist composer ${COMPOSER_REPO_PACKAGIST} \
;fi
ARG INSTALL_LARAVEL_INSTALLER=false
ENV INSTALL_LARAVEL_INSTALLER ${INSTALL_LARAVEL_INSTALLER} ENV INSTALL_LARAVEL_INSTALLER ${INSTALL_LARAVEL_INSTALLER}
RUN if [ ${INSTALL_LARAVEL_INSTALLER} = true ]; then \ RUN if [ ${INSTALL_LARAVEL_INSTALLER} = true ]; then \
@ -424,6 +494,19 @@ RUN if [ ${INSTALL_DEPLOYER} = true ]; then \
composer global require "deployer/deployer" \ composer global require "deployer/deployer" \
;fi ;fi
#####################################
# Prestissimo:
#####################################
USER laradock
ARG INSTALL_PRESTISSIMO=false
ENV INSTALL_PRESTISSIMO ${INSTALL_PRESTISSIMO}
RUN if [ ${INSTALL_PRESTISSIMO} = true ]; then \
# Install Prestissimo
composer global require "hirak/prestissimo" \
;fi
##################################### #####################################
# Linuxbrew: # Linuxbrew:
##################################### #####################################
@ -433,7 +516,6 @@ ARG INSTALL_LINUXBREW=true
ENV INSTALL_LINUXBREW ${INSTALL_LINUXBREW} ENV INSTALL_LINUXBREW ${INSTALL_LINUXBREW}
RUN if [ ${INSTALL_LINUXBREW} = true ]; then \ RUN if [ ${INSTALL_LINUXBREW} = true ]; then \
# Preparation # Preparation
apt-get upgrade -y && \ apt-get upgrade -y && \
apt-get install -y build-essential make cmake scons curl git \ apt-get install -y build-essential make cmake scons curl git \
@ -441,13 +523,10 @@ RUN if [ ${INSTALL_LINUXBREW} = true ]; then \
gettext libtool flex bison \ gettext libtool flex bison \
libbz2-dev libcurl4-openssl-dev \ libbz2-dev libcurl4-openssl-dev \
libexpat-dev libncurses-dev && \ libexpat-dev libncurses-dev && \
# Install the Linuxbrew # Install the Linuxbrew
git clone --depth=1 https://github.com/Homebrew/linuxbrew.git ~/.linuxbrew && \ git clone --depth=1 https://github.com/Homebrew/linuxbrew.git ~/.linuxbrew && \
echo "" >> ~/.bashrc && \ echo "" >> ~/.bashrc && \
echo 'export PKG_CONFIG_PATH"=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.bashrc && \ echo 'export PKG_CONFIG_PATH"=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.bashrc && \
# Setup linuxbrew # Setup linuxbrew
echo 'export LINUXBREWHOME="$HOME/.linuxbrew"' >> ~/.bashrc && \ echo 'export LINUXBREWHOME="$HOME/.linuxbrew"' >> ~/.bashrc && \
echo 'export PATH="$LINUXBREWHOME/bin:$PATH"' >> ~/.bashrc && \ echo 'export PATH="$LINUXBREWHOME/bin:$PATH"' >> ~/.bashrc && \
@ -462,9 +541,12 @@ RUN if [ ${INSTALL_LINUXBREW} = true ]; then \
ARG INSTALL_MSSQL=false ARG INSTALL_MSSQL=false
ENV INSTALL_MSSQL ${INSTALL_MSSQL} ENV INSTALL_MSSQL ${INSTALL_MSSQL}
RUN if [ ${INSTALL_MSSQL} = true ]; then \ RUN set -eux; if [ ${INSTALL_MSSQL} = true ]; then \
apt-get -y install php5.6-sybase freetds-bin freetds-common libsybdb5 \ apt-get -y install php5.6-sybase freetds-bin freetds-common libsybdb5 \
&& echo "extension=mssql.so" > /etc/php/5.6/cli/conf.d/20-mssql.ini \
&& echo "extension=pdo_dblib.so" > /etc/php/5.6/cli/conf.d/20-pdo_dblib.ini \ && echo "extension=pdo_dblib.so" > /etc/php/5.6/cli/conf.d/20-pdo_dblib.ini \
&& php -m | grep -q 'mssql' \
&& php -m | grep -q 'pdo_dblib' \
;fi ;fi
##################################### #####################################
@ -503,19 +585,15 @@ USER root
ARG INSTALL_SYMFONY=false ARG INSTALL_SYMFONY=false
ENV INSTALL_SYMFONY ${INSTALL_SYMFONY} ENV INSTALL_SYMFONY ${INSTALL_SYMFONY}
RUN if [ ${INSTALL_SYMFONY} = true ]; then \ RUN if [ ${INSTALL_SYMFONY} = true ]; then \
mkdir -p /usr/local/bin \ mkdir -p /usr/local/bin \
&& curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \ && curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \
&& chmod a+x /usr/local/bin/symfony \ && chmod a+x /usr/local/bin/symfony \
# Symfony 3 alias # Symfony 3 alias
&& echo 'alias dev="php bin/console -e=dev"' >> ~/.bashrc \ && echo 'alias dev="php bin/console -e=dev"' >> ~/.bashrc \
&& echo 'alias prod="php bin/console -e=prod"' >> ~/.bashrc \ && echo 'alias prod="php bin/console -e=prod"' >> ~/.bashrc \
# Symfony 2 alias # Symfony 2 alias
# && echo 'alias dev="php app/console -e=dev"' >> ~/.bashrc \ # && echo 'alias dev="php app/console -e=dev"' >> ~/.bashrc \
# && echo 'alias prod="php app/console -e=prod"' >> ~/.bashrc \ # && echo 'alias prod="php app/console -e=prod"' >> ~/.bashrc \
;fi ;fi
##################################### #####################################
@ -538,7 +616,8 @@ USER root
ARG INSTALL_IMAGEMAGICK=false ARG INSTALL_IMAGEMAGICK=false
ENV INSTALL_IMAGEMAGICK ${INSTALL_IMAGEMAGICK} ENV INSTALL_IMAGEMAGICK ${INSTALL_IMAGEMAGICK}
RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \ RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \
apt-get install -y --force-yes imagemagick php-imagick \ apt-get update -yqq \
&& apt-get install -y --force-yes imagemagick php-imagick \
;fi ;fi
##################################### #####################################
@ -572,6 +651,8 @@ RUN if [ ${INSTALL_PG_CLIENT} = true ]; then \
# Dusk Dependencies: # Dusk Dependencies:
##################################### #####################################
USER root USER root
ARG CHROME_DRIVER_VERSION=stable
ENV CHROME_DRIVER_VERSION ${CHROME_DRIVER_VERSION}
ARG INSTALL_DUSK_DEPS=false ARG INSTALL_DUSK_DEPS=false
ENV INSTALL_DUSK_DEPS ${INSTALL_DUSK_DEPS} ENV INSTALL_DUSK_DEPS ${INSTALL_DUSK_DEPS}
RUN if [ ${INSTALL_DUSK_DEPS} = true ]; then \ RUN if [ ${INSTALL_DUSK_DEPS} = true ]; then \
@ -582,21 +663,25 @@ RUN if [ ${INSTALL_DUSK_DEPS} = true ]; then \
libxpm4 libxrender1 libgtk2.0-0 libnss3 libgconf-2-4 xvfb \ libxpm4 libxrender1 libgtk2.0-0 libnss3 libgconf-2-4 xvfb \
gtk2-engines-pixbuf xfonts-cyrillic xfonts-100dpi xfonts-75dpi \ gtk2-engines-pixbuf xfonts-cyrillic xfonts-100dpi xfonts-75dpi \
xfonts-base xfonts-scalable x11-apps \ xfonts-base xfonts-scalable x11-apps \
# Install Google Chrome # Install Google Chrome
&& wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ && wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \
&& dpkg -i --force-depends google-chrome-stable_current_amd64.deb \ && dpkg -i --force-depends google-chrome-stable_current_amd64.deb \
&& apt-get -y -f install \ && apt-get -y -f install \
&& dpkg -i --force-depends google-chrome-stable_current_amd64.deb \ && dpkg -i --force-depends google-chrome-stable_current_amd64.deb \
&& rm google-chrome-stable_current_amd64.deb \ && rm google-chrome-stable_current_amd64.deb \
# Install Chrome Driver # Install Chrome Driver
&& wget https://chromedriver.storage.googleapis.com/2.31/chromedriver_linux64.zip \ && wget https://chromedriver.storage.googleapis.com/${CHROME_DRIVER_VERSION}/chromedriver_linux64.zip \
&& unzip chromedriver_linux64.zip \ && unzip chromedriver_linux64.zip \
&& mv chromedriver /usr/local/bin/ \ && mv chromedriver /usr/local/bin/ \
&& rm chromedriver_linux64.zip \ && rm chromedriver_linux64.zip \
;fi ;fi
#####################################
# Check PHP version:
#####################################
RUN php -v | head -n 1 | grep -q "PHP 5.6."
# #
#-------------------------------------------------------------------------- #--------------------------------------------------------------------------
# Final Touch # Final Touch

View File

@ -14,7 +14,7 @@
FROM laradock/workspace:2.0-70 FROM laradock/workspace:2.0-70
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me> LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
# Remove Faillog and Lastlog to reduce the size of the final image. # Remove Faillog and Lastlog to reduce the size of the final image.
RUN rm /var/log/lastlog /var/log/faillog RUN rm /var/log/lastlog /var/log/faillog
@ -55,6 +55,7 @@ ENV PGID ${PGID}
RUN groupadd -g ${PGID} laradock && \ RUN groupadd -g ${PGID} laradock && \
useradd -u ${PUID} -g laradock -m laradock && \ useradd -u ${PUID} -g laradock -m laradock && \
usermod -p "*" laradock && \
apt-get update -yqq apt-get update -yqq
##################################### #####################################
@ -124,6 +125,13 @@ RUN if [ ${COMPOSER_GLOBAL_INSTALL} = true ]; then \
composer global install \ composer global install \
;fi ;fi
ARG COMPOSER_REPO_PACKAGIST
ENV COMPOSER_REPO_PACKAGIST ${COMPOSER_REPO_PACKAGIST}
RUN if [ ${COMPOSER_REPO_PACKAGIST} ]; then \
composer config -g repo.packagist composer ${COMPOSER_REPO_PACKAGIST} \
;fi
# Export composer vendor path # Export composer vendor path
RUN echo "" >> ~/.bashrc && \ RUN echo "" >> ~/.bashrc && \
echo 'export PATH="~/.composer/vendor/bin:$PATH"' >> ~/.bashrc echo 'export PATH="~/.composer/vendor/bin:$PATH"' >> ~/.bashrc
@ -139,27 +147,30 @@ RUN chmod -R 644 /etc/cron.d
##################################### #####################################
# User Aliases # User Aliases
##################################### #####################################
USER root
COPY ./aliases.sh /root/aliases.sh
COPY ./aliases.sh /home/laradock/aliases.sh
RUN sed -i 's/\r//' /root/aliases.sh && \
sed -i 's/\r//' /home/laradock/aliases.sh && \
chown laradock:laradock /home/laradock/aliases.sh && \
echo "" >> ~/.bashrc && \
echo "# Load Custom Aliases" >> ~/.bashrc && \
echo "source ~/aliases.sh" >> ~/.bashrc && \
echo "" >> ~/.bashrc
USER laradock USER laradock
COPY ./aliases.sh /home/laradock/aliases.sh
RUN echo "" >> ~/.bashrc && \
echo "# Load Custom Aliases" >> ~/.bashrc && \
echo "source /home/laradock/aliases.sh" >> ~/.bashrc && \
echo "" >> ~/.bashrc && \
sed -i 's/\r//' /home/laradock/aliases.sh && \
sed -i 's/^#! \/bin\/sh/#! \/bin\/bash/' /home/laradock/aliases.sh
USER root
RUN echo "" >> ~/.bashrc && \ RUN echo "" >> ~/.bashrc && \
echo "# Load Custom Aliases" >> ~/.bashrc && \ echo "# Load Custom Aliases" >> ~/.bashrc && \
echo "source /home/laradock/aliases.sh" >> ~/.bashrc && \ echo "source ~/aliases.sh" >> ~/.bashrc && \
echo "" >> ~/.bashrc && \ echo "" >> ~/.bashrc
sed -i 's/\r//' /home/laradock/aliases.sh && \
sed -i 's/^#! \/bin\/sh/#! \/bin\/bash/' /home/laradock/aliases.sh
##################################### #####################################
# xDebug: # xDebug:
##################################### #####################################
USER root
ARG INSTALL_XDEBUG=false ARG INSTALL_XDEBUG=false
RUN if [ ${INSTALL_XDEBUG} = true ]; then \ RUN if [ ${INSTALL_XDEBUG} = true ]; then \
@ -206,6 +217,8 @@ RUN if [ ${INSTALL_WORKSPACE_SSH} = true ]; then \
&& rm -f /tmp/id_rsa* \ && rm -f /tmp/id_rsa* \
&& chmod 644 /root/.ssh/authorized_keys /root/.ssh/id_rsa.pub \ && chmod 644 /root/.ssh/authorized_keys /root/.ssh/id_rsa.pub \
&& chmod 400 /root/.ssh/id_rsa \ && chmod 400 /root/.ssh/id_rsa \
&& cp -rf /root/.ssh /home/laradock \
&& chown -R laradock:laradock /home/laradock/.ssh \
;fi ;fi
##################################### #####################################
@ -222,6 +235,19 @@ RUN if [ ${INSTALL_MONGO} = true ]; then \
ln -s /etc/php/7.0/mods-available/mongodb.ini /etc/php/7.0/cli/conf.d/30-mongodb.ini \ ln -s /etc/php/7.0/mods-available/mongodb.ini /etc/php/7.0/cli/conf.d/30-mongodb.ini \
;fi ;fi
#####################################
# AMQP:
#####################################
ARG INSTALL_AMQP=false
ENV INSTALL_AMQP ${INSTALL_AMQP}
RUN if [ ${INSTALL_AMQP} = true ]; then \
apt-get install librabbitmq-dev -y && \
pecl -q install amqp && \
echo "extension=amqp.so" >> /etc/php/7.0/mods-available/amqp.ini && \
ln -s /etc/php/7.0/mods-available/amqp.ini /etc/php/7.0/cli/conf.d/30-amqp.ini \
;fi
##################################### #####################################
# PHP REDIS EXTENSION FOR PHP 7 # PHP REDIS EXTENSION FOR PHP 7
##################################### #####################################
@ -235,6 +261,18 @@ RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
phpenmod redis \ phpenmod redis \
;fi ;fi
#####################################
# Swoole EXTENSION FOR PHP 7
#####################################
ARG INSTALL_SWOOLE=false
RUN if [ ${INSTALL_SWOOLE} = true ]; then \
# Install Php Swoole Extension
pecl -q install swoole && \
echo "extension=swoole.so" >> /etc/php/7.0/mods-available/swoole.ini && \
ln -s /etc/php/7.0/mods-available/swoole.ini /etc/php/7.0/cli/conf.d/20-swoole.ini \
;fi
##################################### #####################################
# Drush: # Drush:
##################################### #####################################
@ -276,14 +314,19 @@ ARG NODE_VERSION=stable
ENV NODE_VERSION ${NODE_VERSION} ENV NODE_VERSION ${NODE_VERSION}
ARG INSTALL_NODE=false ARG INSTALL_NODE=false
ENV INSTALL_NODE ${INSTALL_NODE} ENV INSTALL_NODE ${INSTALL_NODE}
ARG NPM_REGISTRY
ENV NPM_REGISTRY ${NPM_REGISTRY}
ENV NVM_DIR /home/laradock/.nvm ENV NVM_DIR /home/laradock/.nvm
RUN if [ ${INSTALL_NODE} = true ]; then \ RUN if [ ${INSTALL_NODE} = true ]; then \
# Install nvm (A Node Version Manager) # Install nvm (A Node Version Manager)
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash && \ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash && \
. $NVM_DIR/nvm.sh && \ . $NVM_DIR/nvm.sh && \
nvm install ${NODE_VERSION} && \ nvm install ${NODE_VERSION} && \
nvm use ${NODE_VERSION} && \ nvm use ${NODE_VERSION} && \
nvm alias ${NODE_VERSION} && \ nvm alias ${NODE_VERSION} && \
if [ ${NPM_REGISTRY} ]; then \
npm config set registry ${NPM_REGISTRY} \
;fi && \
npm install -g gulp bower vue-cli \ npm install -g gulp bower vue-cli \
;fi ;fi
@ -307,6 +350,10 @@ RUN if [ ${INSTALL_NODE} = true ]; then \
# Add PATH for node # Add PATH for node
ENV PATH $PATH:$NVM_DIR/versions/node/v${NODE_VERSION}/bin ENV PATH $PATH:$NVM_DIR/versions/node/v${NODE_VERSION}/bin
RUN if [ ${NPM_REGISTRY} ]; then \
. ~/.bashrc && npm config set registry ${NPM_REGISTRY} \
;fi
##################################### #####################################
# YARN: # YARN:
##################################### #####################################
@ -343,13 +390,13 @@ RUN if [ ${INSTALL_YARN} = true ]; then \
##################################### #####################################
USER root USER root
ARG INSTALL_AEROSPIKE=true ARG INSTALL_AEROSPIKE=false
ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE} ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE}
# Copy aerospike configration for remote debugging
COPY ./aerospike.ini /etc/php/7.0/cli/conf.d/aerospike.ini
RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \ 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 # 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" \ 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 \ && mkdir -p aerospike-client-php \
@ -361,10 +408,9 @@ RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
&& make install \ && make install \
) \ ) \
&& rm /tmp/aerospike-client-php.tar.gz \ && rm /tmp/aerospike-client-php.tar.gz \
;fi && echo 'extension=aerospike.so' >> /etc/php/7.0/cli/conf.d/aerospike.ini \
&& echo 'aerospike.udf.lua_system_path=/usr/local/aerospike/lua' >> /etc/php/7.0/cli/conf.d/aerospike.ini \
RUN if [ ${INSTALL_AEROSPIKE} = false ]; then \ && echo 'aerospike.udf.lua_user_path=/usr/local/aerospike/usr-lua' >> /etc/php/7.0/cli/conf.d/aerospike.ini \
rm /etc/php/7.0/cli/conf.d/aerospike.ini \
;fi ;fi
##################################### #####################################
@ -377,7 +423,7 @@ ENV INSTALL_V8JS ${INSTALL_V8JS}
RUN if [ ${INSTALL_V8JS} = true ]; then \ RUN if [ ${INSTALL_V8JS} = true ]; then \
# Install the php V8JS extension # Install the php V8JS extension
add-apt-repository -y ppa:pinepain/libv8-5.4 \ add-apt-repository -y ppa:pinepain/libv8-archived \
&& apt-get update -yqq \ && apt-get update -yqq \
&& apt-get install -y php7.0-xml php7.0-dev php-pear libv8-5.4 \ && apt-get install -y php7.0-xml php7.0-dev php-pear libv8-5.4 \
&& pecl install v8js \ && pecl install v8js \
@ -399,7 +445,7 @@ RUN echo "" >> ~/.bashrc && \
##################################### #####################################
USER laradock USER laradock
ARG INSTALL_LARAVEL_ENVOY=true ARG INSTALL_LARAVEL_ENVOY=false
ENV INSTALL_LARAVEL_ENVOY ${INSTALL_LARAVEL_ENVOY} ENV INSTALL_LARAVEL_ENVOY ${INSTALL_LARAVEL_ENVOY}
RUN if [ ${INSTALL_LARAVEL_ENVOY} = true ]; then \ RUN if [ ${INSTALL_LARAVEL_ENVOY} = true ]; then \
@ -412,7 +458,14 @@ RUN if [ ${INSTALL_LARAVEL_ENVOY} = true ]; then \
##################################### #####################################
USER root USER root
ARG INSTALL_LARAVEL_INSTALLER=true ARG COMPOSER_REPO_PACKAGIST
ENV COMPOSER_REPO_PACKAGIST ${COMPOSER_REPO_PACKAGIST}
RUN if [ ${COMPOSER_REPO_PACKAGIST} ]; then \
composer config -g repo.packagist composer ${COMPOSER_REPO_PACKAGIST} \
;fi
ARG INSTALL_LARAVEL_INSTALLER=false
ENV INSTALL_LARAVEL_INSTALLER ${INSTALL_LARAVEL_INSTALLER} ENV INSTALL_LARAVEL_INSTALLER ${INSTALL_LARAVEL_INSTALLER}
RUN if [ ${INSTALL_LARAVEL_INSTALLER} = true ]; then \ RUN if [ ${INSTALL_LARAVEL_INSTALLER} = true ]; then \
@ -437,6 +490,19 @@ RUN if [ ${INSTALL_DEPLOYER} = true ]; then \
composer global require "deployer/deployer" \ composer global require "deployer/deployer" \
;fi ;fi
#####################################
# Prestissimo:
#####################################
USER laradock
ARG INSTALL_PRESTISSIMO=false
ENV INSTALL_PRESTISSIMO ${INSTALL_PRESTISSIMO}
RUN if [ ${INSTALL_PRESTISSIMO} = true ]; then \
# Install Prestissimo
composer global require "hirak/prestissimo" \
;fi
##################################### #####################################
# Linuxbrew: # Linuxbrew:
##################################### #####################################
@ -446,7 +512,6 @@ ARG INSTALL_LINUXBREW=true
ENV INSTALL_LINUXBREW ${INSTALL_LINUXBREW} ENV INSTALL_LINUXBREW ${INSTALL_LINUXBREW}
RUN if [ ${INSTALL_LINUXBREW} = true ]; then \ RUN if [ ${INSTALL_LINUXBREW} = true ]; then \
# Preparation # Preparation
apt-get upgrade -y && \ apt-get upgrade -y && \
apt-get install -y build-essential make cmake scons curl git \ apt-get install -y build-essential make cmake scons curl git \
@ -454,13 +519,10 @@ RUN if [ ${INSTALL_LINUXBREW} = true ]; then \
gettext libtool flex bison \ gettext libtool flex bison \
libbz2-dev libcurl4-openssl-dev \ libbz2-dev libcurl4-openssl-dev \
libexpat-dev libncurses-dev && \ libexpat-dev libncurses-dev && \
# Install the Linuxbrew # Install the Linuxbrew
git clone --depth=1 https://github.com/Homebrew/linuxbrew.git ~/.linuxbrew && \ git clone --depth=1 https://github.com/Homebrew/linuxbrew.git ~/.linuxbrew && \
echo "" >> ~/.bashrc && \ echo "" >> ~/.bashrc && \
echo 'export PKG_CONFIG_PATH"=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.bashrc && \ echo 'export PKG_CONFIG_PATH"=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.bashrc && \
# Setup linuxbrew # Setup linuxbrew
echo 'export LINUXBREWHOME="$HOME/.linuxbrew"' >> ~/.bashrc && \ echo 'export LINUXBREWHOME="$HOME/.linuxbrew"' >> ~/.bashrc && \
echo 'export PATH="$LINUXBREWHOME/bin:$PATH"' >> ~/.bashrc && \ echo 'export PATH="$LINUXBREWHOME/bin:$PATH"' >> ~/.bashrc && \
@ -475,75 +537,35 @@ RUN if [ ${INSTALL_LINUXBREW} = true ]; then \
ARG INSTALL_MSSQL=true ARG INSTALL_MSSQL=true
ENV INSTALL_MSSQL ${INSTALL_MSSQL} ENV INSTALL_MSSQL ${INSTALL_MSSQL}
RUN if [ ${INSTALL_MSSQL} = true ]; then \ RUN set -eux; if [ ${INSTALL_MSSQL} = true ]; then \
#####################################
# Install Depenencies:
#####################################
cd / && \
apt-get install -y --force-yes wget apt-transport-https curl freetds-common libsybdb5 freetds-bin unixodbc unixodbc-dev && \
##################################### #####################################
# The following steps were taken from # The following steps were taken from
# Microsoft's github account: # https://github.com/Microsoft/msphpsql/wiki/Install-and-configuration
# https://github.com/Microsoft/msphpsql/wiki/Dockerfile-for-getting-pdo_sqlsrv-for-PHP-7.0-on-Debian-in-3-ways
##################################### #####################################
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - && \
# Add PHP 7 repository curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list && \
# for Debian jessie apt-get update && \
# And System upgrade ACCEPT_EULA=Y apt-get install -yqq msodbcsql=13.0.1.0-1 mssql-tools=14.0.2.0-1 && \
cd / && \ apt-get install -yqq unixodbc-dev-utf16 && \
echo "deb http://packages.dotdeb.org jessie all" \ ln -sfn /opt/mssql-tools/bin/sqlcmd-13.0.1.0 /usr/bin/sqlcmd && \
| tee /etc/apt/sources.list.d/dotdeb.list \ ln -sfn /opt/mssql-tools/bin/bcp-13.0.1.0 /usr/bin/bcp && \
&& wget -qO- https://www.dotdeb.org/dotdeb.gpg \ ACCEPT_EULA=Y apt-get install -yqq \
| apt-key add - \ unixodbc \
&& apt-get update -yqq \ unixodbc-dev \
&& apt-get upgrade -qq && \ libgss3 \
odbcinst \
# Install UnixODBC msodbcsql \
# Compile odbc_config as it is not part of unixodbc package locales && \
cd / && \ echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
apt-get install -y whiptail \ locale-gen && \
unixodbc libgss3 odbcinst devscripts debhelper dh-exec dh-autoreconf libreadline-dev libltdl-dev \ pecl install sqlsrv-4.3.0 pdo_sqlsrv-4.3.0 && \
&& dget -u -x http://http.debian.net/debian/pool/main/u/unixodbc/unixodbc_2.3.1-3.dsc \ apt-get install -y locales && \
&& cd unixodbc-*/ \ echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
&& ./configure && make && make install \ locale-gen && \
&& cp -v ./exe/odbc_config /usr/local/bin/ && \ echo "extension=sqlsrv.so" > /etc/php/7.0/cli/conf.d/20-sqlsrv.ini && \
echo "extension=pdo_sqlsrv.so" > /etc/php/7.0/cli/conf.d/20-pdo_sqlsrv.ini \
# Fake uname for install.sh && php -m | grep -q 'sqlsrv' \
printf '#!/bin/bash\nif [ "$*" == "-p" ]; then echo "x86_64"; else /bin/uname "$@"; fi' \ && php -m | grep -q 'pdo_sqlsrv' \
| tee /usr/local/bin/uname \
&& chmod +x /usr/local/bin/uname && \
# Microsoft ODBC Driver 13 for Linux
# Note: There's a copy of this tar on my hubiC
cd / && \
wget -nv -O msodbcsql-13.0.0.0.tar.gz \
"https://meetsstorenew.blob.core.windows.net/contianerhd/Ubuntu%2013.0%20Tar/msodbcsql-13.0.0.0.tar.gz?st=2016-10-18T17%3A29%3A00Z&se=2022-10-19T17%3A29%3A00Z&sp=rl&sv=2015-04-05&sr=b&sig=cDwPfrouVeIQf0vi%2BnKt%2BzX8Z8caIYvRCmicDL5oknY%3D" \
&& tar -xf msodbcsql-13.0.0.0.tar.gz \
&& cd msodbcsql-*/ \
&& ldd lib64/libmsodbcsql-13.0.so.0.0 \
&& ./install.sh install --accept-license \
&& ls -l /opt/microsoft/msodbcsql/ \
&& odbcinst -q -d -n "ODBC Driver 13 for SQL Server" && \
#####################################
# Install sqlsrv y pdo_sqlsrv
# extensions:
#####################################
pecl install sqlsrv-4.0.8 && \
pecl install pdo_sqlsrv-4.0.8 && \
#####################################
# Set locales for the container
#####################################
apt-get install -y locales \
&& echo "en_US.UTF-8 UTF-8" > /etc/locale.gen \
&& locale-gen \
&& echo "extension=sqlsrv.so" > /etc/php/7.0/cli/conf.d/20-sqlsrv.ini \
&& echo "extension=pdo_sqlsrv.so" > /etc/php/7.0/cli/conf.d/20-pdo_sqlsrv.ini \
;fi ;fi
##################################### #####################################
@ -580,19 +602,15 @@ USER root
ARG INSTALL_SYMFONY=false ARG INSTALL_SYMFONY=false
ENV INSTALL_SYMFONY ${INSTALL_SYMFONY} ENV INSTALL_SYMFONY ${INSTALL_SYMFONY}
RUN if [ ${INSTALL_SYMFONY} = true ]; then \ RUN if [ ${INSTALL_SYMFONY} = true ]; then \
mkdir -p /usr/local/bin \ mkdir -p /usr/local/bin \
&& curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \ && curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \
&& chmod a+x /usr/local/bin/symfony \ && chmod a+x /usr/local/bin/symfony \
# Symfony 3 alias # Symfony 3 alias
&& echo 'alias dev="php bin/console -e=dev"' >> ~/.bashrc \ && echo 'alias dev="php bin/console -e=dev"' >> ~/.bashrc \
&& echo 'alias prod="php bin/console -e=prod"' >> ~/.bashrc \ && echo 'alias prod="php bin/console -e=prod"' >> ~/.bashrc \
# Symfony 2 alias # Symfony 2 alias
# && echo 'alias dev="php app/console -e=dev"' >> ~/.bashrc \ # && echo 'alias dev="php app/console -e=dev"' >> ~/.bashrc \
# && echo 'alias prod="php app/console -e=prod"' >> ~/.bashrc \ # && echo 'alias prod="php app/console -e=prod"' >> ~/.bashrc \
;fi ;fi
##################################### #####################################
@ -615,7 +633,8 @@ USER root
ARG INSTALL_IMAGEMAGICK=false ARG INSTALL_IMAGEMAGICK=false
ENV INSTALL_IMAGEMAGICK ${INSTALL_IMAGEMAGICK} ENV INSTALL_IMAGEMAGICK ${INSTALL_IMAGEMAGICK}
RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \ RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \
apt-get install -y --force-yes imagemagick php-imagick \ apt-get update -yqq \
&& apt-get install -y --force-yes imagemagick php-imagick \
;fi ;fi
##################################### #####################################
@ -649,31 +668,34 @@ RUN if [ ${INSTALL_PG_CLIENT} = true ]; then \
# Dusk Dependencies: # Dusk Dependencies:
##################################### #####################################
USER root USER root
ARG CHROME_DRIVER_VERSION=stable
ENV CHROME_DRIVER_VERSION ${CHROME_DRIVER_VERSION}
ARG INSTALL_DUSK_DEPS=false ARG INSTALL_DUSK_DEPS=false
ENV INSTALL_DUSK_DEPS ${INSTALL_DUSK_DEPS} ENV INSTALL_DUSK_DEPS ${INSTALL_DUSK_DEPS}
RUN if [ ${INSTALL_DUSK_DEPS} = true ]; then \ RUN if [ ${INSTALL_DUSK_DEPS} = true ]; then \
# Install required packages
add-apt-repository ppa:ondrej/php \ add-apt-repository ppa:ondrej/php \
&& apt-get update \ && apt-get update \
&& apt-get -y install zip wget unzip xdg-utils \ && apt-get -y install zip wget unzip xdg-utils \
libxpm4 libxrender1 libgtk2.0-0 libnss3 libgconf-2-4 xvfb \ libxpm4 libxrender1 libgtk2.0-0 libnss3 libgconf-2-4 xvfb \
gtk2-engines-pixbuf xfonts-cyrillic xfonts-100dpi xfonts-75dpi \ gtk2-engines-pixbuf xfonts-cyrillic xfonts-100dpi xfonts-75dpi \
xfonts-base xfonts-scalable x11-apps \ xfonts-base xfonts-scalable x11-apps \
# Install Google Chrome
&& wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ && wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \
&& dpkg -i --force-depends google-chrome-stable_current_amd64.deb \ && dpkg -i --force-depends google-chrome-stable_current_amd64.deb \
&& apt-get -y -f install \ && apt-get -y -f install \
&& dpkg -i --force-depends google-chrome-stable_current_amd64.deb \ && dpkg -i --force-depends google-chrome-stable_current_amd64.deb \
&& rm google-chrome-stable_current_amd64.deb \ && rm google-chrome-stable_current_amd64.deb \
&& wget https://chromedriver.storage.googleapis.com/${CHROME_DRIVER_VERSION}/chromedriver_linux64.zip \
# Install Chrome Driver
&& wget https://chromedriver.storage.googleapis.com/2.31/chromedriver_linux64.zip \
&& unzip chromedriver_linux64.zip \ && unzip chromedriver_linux64.zip \
&& mv chromedriver /usr/local/bin/ \ && mv chromedriver /usr/local/bin/ \
&& rm chromedriver_linux64.zip \ && rm chromedriver_linux64.zip \
;fi ;fi
#####################################
# Check PHP version:
#####################################
RUN php -v | head -n 1 | grep -q "PHP 7.0."
# #
#-------------------------------------------------------------------------- #--------------------------------------------------------------------------
# Final Touch # Final Touch

View File

@ -14,7 +14,7 @@
FROM laradock/workspace:2.0-71 FROM laradock/workspace:2.0-71
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me> LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
# Remove Faillog and Lastlog to reduce the size of the final image. # Remove Faillog and Lastlog to reduce the size of the final image.
RUN rm /var/log/lastlog /var/log/faillog RUN rm /var/log/lastlog /var/log/faillog
@ -54,7 +54,8 @@ ENV PUID ${PUID}
ENV PGID ${PGID} ENV PGID ${PGID}
RUN groupadd -g ${PGID} laradock && \ RUN groupadd -g ${PGID} laradock && \
useradd -u ${PUID} -g laradock -m laradock useradd -u ${PUID} -g laradock -m laradock && \
usermod -p "*" laradock
##################################### #####################################
# SOAP: # SOAP:
@ -123,6 +124,13 @@ RUN if [ ${COMPOSER_GLOBAL_INSTALL} = true ]; then \
composer global install \ composer global install \
;fi ;fi
ARG COMPOSER_REPO_PACKAGIST
ENV COMPOSER_REPO_PACKAGIST ${COMPOSER_REPO_PACKAGIST}
RUN if [ ${COMPOSER_REPO_PACKAGIST} ]; then \
composer config -g repo.packagist composer ${COMPOSER_REPO_PACKAGIST} \
;fi
##################################### #####################################
# Crontab # Crontab
##################################### #####################################
@ -134,27 +142,30 @@ RUN chmod -R 644 /etc/cron.d
##################################### #####################################
# User Aliases # User Aliases
##################################### #####################################
USER root
COPY ./aliases.sh /root/aliases.sh
COPY ./aliases.sh /home/laradock/aliases.sh
RUN sed -i 's/\r//' /root/aliases.sh && \
sed -i 's/\r//' /home/laradock/aliases.sh && \
chown laradock:laradock /home/laradock/aliases.sh && \
echo "" >> ~/.bashrc && \
echo "# Load Custom Aliases" >> ~/.bashrc && \
echo "source ~/aliases.sh" >> ~/.bashrc && \
echo "" >> ~/.bashrc
USER laradock USER laradock
COPY ./aliases.sh /home/laradock/aliases.sh
RUN echo "" >> ~/.bashrc && \
echo "# Load Custom Aliases" >> ~/.bashrc && \
echo "source /home/laradock/aliases.sh" >> ~/.bashrc && \
echo "" >> ~/.bashrc && \
sed -i 's/\r//' /home/laradock/aliases.sh && \
sed -i 's/^#! \/bin\/sh/#! \/bin\/bash/' /home/laradock/aliases.sh
USER root
RUN echo "" >> ~/.bashrc && \ RUN echo "" >> ~/.bashrc && \
echo "# Load Custom Aliases" >> ~/.bashrc && \ echo "# Load Custom Aliases" >> ~/.bashrc && \
echo "source /home/laradock/aliases.sh" >> ~/.bashrc && \ echo "source ~/aliases.sh" >> ~/.bashrc && \
echo "" >> ~/.bashrc && \ echo "" >> ~/.bashrc
sed -i 's/\r//' /home/laradock/aliases.sh && \
sed -i 's/^#! \/bin\/sh/#! \/bin\/bash/' /home/laradock/aliases.sh
##################################### #####################################
# xDebug: # xDebug:
##################################### #####################################
USER root
ARG INSTALL_XDEBUG=false ARG INSTALL_XDEBUG=false
RUN if [ ${INSTALL_XDEBUG} = true ]; then \ RUN if [ ${INSTALL_XDEBUG} = true ]; then \
@ -202,6 +213,8 @@ RUN if [ ${INSTALL_WORKSPACE_SSH} = true ]; then \
&& rm -f /tmp/id_rsa* \ && rm -f /tmp/id_rsa* \
&& chmod 644 /root/.ssh/authorized_keys /root/.ssh/id_rsa.pub \ && chmod 644 /root/.ssh/authorized_keys /root/.ssh/id_rsa.pub \
&& chmod 400 /root/.ssh/id_rsa \ && chmod 400 /root/.ssh/id_rsa \
&& cp -rf /root/.ssh /home/laradock \
&& chown -R laradock:laradock /home/laradock/.ssh \
;fi ;fi
##################################### #####################################
@ -218,6 +231,19 @@ RUN if [ ${INSTALL_MONGO} = true ]; then \
ln -s /etc/php/7.1/mods-available/mongodb.ini /etc/php/7.1/cli/conf.d/30-mongodb.ini \ ln -s /etc/php/7.1/mods-available/mongodb.ini /etc/php/7.1/cli/conf.d/30-mongodb.ini \
;fi ;fi
#####################################
# AMQP:
#####################################
ARG INSTALL_AMQP=false
ENV INSTALL_AMQP ${INSTALL_AMQP}
RUN if [ ${INSTALL_AMQP} = true ]; then \
apt-get install librabbitmq-dev -y && \
pecl -q install amqp && \
echo "extension=amqp.so" >> /etc/php/7.1/mods-available/amqp.ini && \
ln -s /etc/php/7.1/mods-available/amqp.ini /etc/php/7.1/cli/conf.d/30-amqp.ini \
;fi
##################################### #####################################
# PHP REDIS EXTENSION FOR PHP 7.1 # PHP REDIS EXTENSION FOR PHP 7.1
##################################### #####################################
@ -231,6 +257,18 @@ RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
phpenmod redis \ phpenmod redis \
;fi ;fi
#####################################
# Swoole EXTENSION FOR PHP 7
#####################################
ARG INSTALL_SWOOLE=false
RUN if [ ${INSTALL_SWOOLE} = true ]; then \
# Install Php Swoole Extension
pecl -q install swoole && \
echo "extension=swoole.so" >> /etc/php/7.1/mods-available/swoole.ini && \
ln -s /etc/php/7.1/mods-available/swoole.ini /etc/php/7.1/cli/conf.d/20-swoole.ini \
;fi
##################################### #####################################
# Drush: # Drush:
##################################### #####################################
@ -272,14 +310,19 @@ ARG NODE_VERSION=stable
ENV NODE_VERSION ${NODE_VERSION} ENV NODE_VERSION ${NODE_VERSION}
ARG INSTALL_NODE=false ARG INSTALL_NODE=false
ENV INSTALL_NODE ${INSTALL_NODE} ENV INSTALL_NODE ${INSTALL_NODE}
ARG NPM_REGISTRY
ENV NPM_REGISTRY ${NPM_REGISTRY}
ENV NVM_DIR /home/laradock/.nvm ENV NVM_DIR /home/laradock/.nvm
RUN if [ ${INSTALL_NODE} = true ]; then \ RUN if [ ${INSTALL_NODE} = true ]; then \
# Install nvm (A Node Version Manager) # Install nvm (A Node Version Manager)
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash && \ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash && \
. $NVM_DIR/nvm.sh && \ . $NVM_DIR/nvm.sh && \
nvm install ${NODE_VERSION} && \ nvm install ${NODE_VERSION} && \
nvm use ${NODE_VERSION} && \ nvm use ${NODE_VERSION} && \
nvm alias ${NODE_VERSION} && \ nvm alias ${NODE_VERSION} && \
if [ ${NPM_REGISTRY} ]; then \
npm config set registry ${NPM_REGISTRY} \
;fi && \
npm install -g gulp bower vue-cli \ npm install -g gulp bower vue-cli \
;fi ;fi
@ -303,6 +346,9 @@ RUN if [ ${INSTALL_NODE} = true ]; then \
# Add PATH for node # Add PATH for node
ENV PATH $PATH:$NVM_DIR/versions/node/v${NODE_VERSION}/bin ENV PATH $PATH:$NVM_DIR/versions/node/v${NODE_VERSION}/bin
RUN if [ ${NPM_REGISTRY} ]; then \
. ~/.bashrc && npm config set registry ${NPM_REGISTRY} \
;fi
##################################### #####################################
# YARN: # YARN:
@ -343,14 +389,10 @@ USER root
ARG INSTALL_AEROSPIKE=false ARG INSTALL_AEROSPIKE=false
ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE} ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE}
# Copy aerospike configration for remote debugging
COPY ./aerospike.ini /etc/php/7.1/cli/conf.d/aerospike.ini
RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \ RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
# Fix dependencies for PHPUnit within aerospike extension # Fix dependencies for PHPUnit within aerospike extension
apt-get update -yqq && \ apt-get update -yqq && \
apt-get -y install sudo wget && \ apt-get -y install sudo wget && \
# Install the php aerospike extension # 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" \ 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 \ && mkdir -p aerospike-client-php \
@ -362,10 +404,9 @@ RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
&& make install \ && make install \
) \ ) \
&& rm /tmp/aerospike-client-php.tar.gz \ && rm /tmp/aerospike-client-php.tar.gz \
;fi && echo 'extension=aerospike.so' >> /etc/php/7.1/cli/conf.d/aerospike.ini \
&& echo 'aerospike.udf.lua_system_path=/usr/local/aerospike/lua' >> /etc/php/7.1/cli/conf.d/aerospike.ini \
RUN if [ ${INSTALL_AEROSPIKE} = false ]; then \ && echo 'aerospike.udf.lua_user_path=/usr/local/aerospike/usr-lua' >> /etc/php/7.1/cli/conf.d/aerospike.ini \
rm /etc/php/7.1/cli/conf.d/aerospike.ini \
;fi ;fi
##################################### #####################################
@ -378,9 +419,9 @@ ENV INSTALL_V8JS ${INSTALL_V8JS}
RUN if [ ${INSTALL_V8JS} = true ]; then \ RUN if [ ${INSTALL_V8JS} = true ]; then \
# Install the php V8JS extension # Install the php V8JS extension
add-apt-repository -y ppa:pinepain/libv8-5.4 \ add-apt-repository -y ppa:pinepain/libv8-archived \
&& apt-get update -yqq \ && apt-get update -yqq \
&& apt-get install -y php-xml php-dev php-pear libv8-5.4 \ && apt-get install -y php7.1-xml php7.1-dev php-pear libv8-5.4 \
&& pecl install v8js \ && pecl install v8js \
&& echo "extension=v8js.so" >> /etc/php/7.1/cli/php.ini \ && echo "extension=v8js.so" >> /etc/php/7.1/cli/php.ini \
;fi ;fi
@ -413,6 +454,13 @@ RUN if [ ${INSTALL_LARAVEL_ENVOY} = true ]; then \
##################################### #####################################
USER root USER root
ARG COMPOSER_REPO_PACKAGIST
ENV COMPOSER_REPO_PACKAGIST ${COMPOSER_REPO_PACKAGIST}
RUN if [ ${COMPOSER_REPO_PACKAGIST} ]; then \
composer config -g repo.packagist composer ${COMPOSER_REPO_PACKAGIST} \
;fi
ARG INSTALL_LARAVEL_INSTALLER=false ARG INSTALL_LARAVEL_INSTALLER=false
ENV INSTALL_LARAVEL_INSTALLER ${INSTALL_LARAVEL_INSTALLER} ENV INSTALL_LARAVEL_INSTALLER ${INSTALL_LARAVEL_INSTALLER}
@ -428,14 +476,31 @@ USER laradock
##################################### #####################################
# Deployer: # Deployer:
##################################### #####################################
USER laradock USER root
ARG INSTALL_DEPLOYER=false ARG INSTALL_DEPLOYER=false
ENV INSTALL_DEPLOYER ${INSTALL_DEPLOYER} ENV INSTALL_DEPLOYER ${INSTALL_DEPLOYER}
RUN if [ ${INSTALL_DEPLOYER} = true ]; then \ RUN if [ ${INSTALL_DEPLOYER} = true ]; then \
# Install the Deployer # Install the Deployer
composer global require "deployer/deployer" \ # Using Phar as currently there is no support for laravel 4 from composer version
# Waiting to be resolved on https://github.com/deployphp/deployer/issues/1552
curl -LO https://deployer.org/deployer.phar && \
mv deployer.phar /usr/local/bin/dep && \
chmod +x /usr/local/bin/dep \
;fi
#####################################
# Prestissimo:
#####################################
USER laradock
ARG INSTALL_PRESTISSIMO=false
ENV INSTALL_PRESTISSIMO ${INSTALL_PRESTISSIMO}
RUN if [ ${INSTALL_PRESTISSIMO} = true ]; then \
# Install Prestissimo
composer global require "hirak/prestissimo" \
;fi ;fi
##################################### #####################################
@ -447,7 +512,6 @@ ARG INSTALL_LINUXBREW=false
ENV INSTALL_LINUXBREW ${INSTALL_LINUXBREW} ENV INSTALL_LINUXBREW ${INSTALL_LINUXBREW}
RUN if [ ${INSTALL_LINUXBREW} = true ]; then \ RUN if [ ${INSTALL_LINUXBREW} = true ]; then \
# Preparation # Preparation
apt-get upgrade -y && \ apt-get upgrade -y && \
apt-get install -y build-essential make cmake scons curl git \ apt-get install -y build-essential make cmake scons curl git \
@ -455,13 +519,10 @@ RUN if [ ${INSTALL_LINUXBREW} = true ]; then \
gettext libtool flex bison \ gettext libtool flex bison \
libbz2-dev libcurl4-openssl-dev \ libbz2-dev libcurl4-openssl-dev \
libexpat-dev libncurses-dev && \ libexpat-dev libncurses-dev && \
# Install the Linuxbrew # Install the Linuxbrew
git clone --depth=1 https://github.com/Homebrew/linuxbrew.git ~/.linuxbrew && \ git clone --depth=1 https://github.com/Homebrew/linuxbrew.git ~/.linuxbrew && \
echo "" >> ~/.bashrc && \ echo "" >> ~/.bashrc && \
echo 'export PKG_CONFIG_PATH"=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.bashrc && \ echo 'export PKG_CONFIG_PATH"=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.bashrc && \
# Setup linuxbrew # Setup linuxbrew
echo 'export LINUXBREWHOME="$HOME/.linuxbrew"' >> ~/.bashrc && \ echo 'export LINUXBREWHOME="$HOME/.linuxbrew"' >> ~/.bashrc && \
echo 'export PATH="$LINUXBREWHOME/bin:$PATH"' >> ~/.bashrc && \ echo 'export PATH="$LINUXBREWHOME/bin:$PATH"' >> ~/.bashrc && \
@ -476,77 +537,35 @@ RUN if [ ${INSTALL_LINUXBREW} = true ]; then \
ARG INSTALL_MSSQL=false ARG INSTALL_MSSQL=false
ENV INSTALL_MSSQL ${INSTALL_MSSQL} ENV INSTALL_MSSQL ${INSTALL_MSSQL}
RUN if [ ${INSTALL_MSSQL} = true ]; then \ RUN set -eux; if [ ${INSTALL_MSSQL} = true ]; then \
#####################################
# Install Depenencies:
#####################################
cd / && \
apt-get update -yqq && \
apt-get install -y --force-yes wget apt-transport-https curl freetds-common libsybdb5 freetds-bin unixodbc unixodbc-dev && \
##################################### #####################################
# The following steps were taken from # The following steps were taken from
# Microsoft's github account: # https://github.com/Microsoft/msphpsql/wiki/Install-and-configuration
# https://github.com/Microsoft/msphpsql/wiki/Dockerfile-for-getting-pdo_sqlsrv-for-PHP-7.0-on-Debian-in-3-ways
##################################### #####################################
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - && \
# Add PHP 7 repository curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list && \
# for Debian jessie apt-get update && \
# And System upgrade ACCEPT_EULA=Y apt-get install -yqq msodbcsql=13.0.1.0-1 mssql-tools=14.0.2.0-1 && \
cd / && \ apt-get install -yqq unixodbc-dev-utf16 && \
echo "deb http://packages.dotdeb.org jessie all" \ ln -sfn /opt/mssql-tools/bin/sqlcmd-13.0.1.0 /usr/bin/sqlcmd && \
| tee /etc/apt/sources.list.d/dotdeb.list \ ln -sfn /opt/mssql-tools/bin/bcp-13.0.1.0 /usr/bin/bcp && \
&& wget -qO- https://www.dotdeb.org/dotdeb.gpg \ ACCEPT_EULA=Y apt-get install -yqq \
| apt-key add - \ unixodbc \
&& apt-get update -yqq \ unixodbc-dev \
&& apt-get upgrade -qq && \ libgss3 \
odbcinst \
# Install UnixODBC msodbcsql \
# Compile odbc_config as it is not part of unixodbc package locales && \
cd / && \ echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
apt-get update -yqq && \ locale-gen && \
apt-get install -y whiptail \ pecl install sqlsrv-4.3.0 pdo_sqlsrv-4.3.0 && \
unixodbc libgss3 odbcinst devscripts debhelper dh-exec dh-autoreconf libreadline-dev libltdl-dev \ apt-get install -y locales && \
&& dget -u -x http://http.debian.net/debian/pool/main/u/unixodbc/unixodbc_2.3.1-3.dsc \ echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
&& cd unixodbc-*/ \ locale-gen && \
&& ./configure && make && make install \ echo "extension=sqlsrv.so" > /etc/php/7.1/cli/conf.d/20-sqlsrv.ini && \
&& cp -v ./exe/odbc_config /usr/local/bin/ && \ echo "extension=pdo_sqlsrv.so" > /etc/php/7.1/cli/conf.d/20-pdo_sqlsrv.ini \
&& php -m | grep -q 'sqlsrv' \
# Fake uname for install.sh && php -m | grep -q 'pdo_sqlsrv' \
printf '#!/bin/bash\nif [ "$*" == "-p" ]; then echo "x86_64"; else /bin/uname "$@"; fi' \
| tee /usr/local/bin/uname \
&& chmod +x /usr/local/bin/uname && \
# Microsoft ODBC Driver 13 for Linux
# Note: There's a copy of this tar on my hubiC
cd / && \
wget -nv -O msodbcsql-13.0.0.0.tar.gz \
"https://meetsstorenew.blob.core.windows.net/contianerhd/Ubuntu%2013.0%20Tar/msodbcsql-13.0.0.0.tar.gz?st=2016-10-18T17%3A29%3A00Z&se=2022-10-19T17%3A29%3A00Z&sp=rl&sv=2015-04-05&sr=b&sig=cDwPfrouVeIQf0vi%2BnKt%2BzX8Z8caIYvRCmicDL5oknY%3D" \
&& tar -xf msodbcsql-13.0.0.0.tar.gz \
&& cd msodbcsql-*/ \
&& ldd lib64/libmsodbcsql-13.0.so.0.0 \
&& ./install.sh install --accept-license \
&& ls -l /opt/microsoft/msodbcsql/ \
&& odbcinst -q -d -n "ODBC Driver 13 for SQL Server" && \
#####################################
# Install sqlsrv y pdo_sqlsrv
# extensions:
#####################################
pecl install sqlsrv-4.0.8 && \
pecl install pdo_sqlsrv-4.0.8 && \
#####################################
# Set locales for the container
#####################################
apt-get install -y locales \
&& echo "en_US.UTF-8 UTF-8" > /etc/locale.gen \
&& locale-gen \
&& echo "extension=sqlsrv.so" > /etc/php/7.1/cli/conf.d/20-sqlsrv.ini \
&& echo "extension=pdo_sqlsrv.so" > /etc/php/7.1/cli/conf.d/20-pdo_sqlsrv.ini \
;fi ;fi
##################################### #####################################
@ -585,19 +604,15 @@ USER root
ARG INSTALL_SYMFONY=false ARG INSTALL_SYMFONY=false
ENV INSTALL_SYMFONY ${INSTALL_SYMFONY} ENV INSTALL_SYMFONY ${INSTALL_SYMFONY}
RUN if [ ${INSTALL_SYMFONY} = true ]; then \ RUN if [ ${INSTALL_SYMFONY} = true ]; then \
mkdir -p /usr/local/bin \ mkdir -p /usr/local/bin \
&& curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \ && curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \
&& chmod a+x /usr/local/bin/symfony \ && chmod a+x /usr/local/bin/symfony \
# Symfony 3 alias # Symfony 3 alias
&& echo 'alias dev="php bin/console -e=dev"' >> ~/.bashrc \ && echo 'alias dev="php bin/console -e=dev"' >> ~/.bashrc \
&& echo 'alias prod="php bin/console -e=prod"' >> ~/.bashrc \ && echo 'alias prod="php bin/console -e=prod"' >> ~/.bashrc \
# Symfony 2 alias # Symfony 2 alias
# && echo 'alias dev="php app/console -e=dev"' >> ~/.bashrc \ # && echo 'alias dev="php app/console -e=dev"' >> ~/.bashrc \
# && echo 'alias prod="php app/console -e=prod"' >> ~/.bashrc \ # && echo 'alias prod="php app/console -e=prod"' >> ~/.bashrc \
;fi ;fi
##################################### #####################################
@ -620,7 +635,8 @@ USER root
ARG INSTALL_IMAGEMAGICK=false ARG INSTALL_IMAGEMAGICK=false
ENV INSTALL_IMAGEMAGICK ${INSTALL_IMAGEMAGICK} ENV INSTALL_IMAGEMAGICK ${INSTALL_IMAGEMAGICK}
RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \ RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \
apt-get install -y --force-yes imagemagick php-imagick \ apt-get update -yqq \
&& apt-get install -y --force-yes imagemagick php-imagick \
;fi ;fi
##################################### #####################################
@ -675,6 +691,12 @@ RUN if [ ${INSTALL_DUSK_DEPS} = true ]; then \
&& rm chromedriver_linux64.zip \ && rm chromedriver_linux64.zip \
;fi ;fi
#####################################
# Check PHP version:
#####################################
RUN php -v | head -n 1 | grep -q "PHP 7.1."
# #
#-------------------------------------------------------------------------- #--------------------------------------------------------------------------
# Final Touch # Final Touch

713
workspace/Dockerfile-72 Normal file
View File

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