├── .gitignore ├── 2.0 ├── apache │ ├── .dockerignore │ ├── Dockerfile │ ├── Dockerfile.php7 │ ├── apache2.conf │ ├── composer │ ├── composer.json │ └── composer.lock ├── hhvm │ ├── .dockerignore │ ├── Dockerfile │ ├── composer │ ├── composer.json │ ├── composer.lock │ └── nginx │ │ ├── Dockerfile │ │ └── nginx.conf └── php-fpm │ ├── .dockerignore │ ├── Dockerfile │ ├── Dockerfile.php7 │ ├── composer │ ├── composer.json │ ├── composer.lock │ └── nginx │ ├── Dockerfile │ └── nginx.conf └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | *.swp 2 | docker-compose.yml 3 | -------------------------------------------------------------------------------- /2.0/apache/.dockerignore: -------------------------------------------------------------------------------- 1 | Dockerfile 2 | -------------------------------------------------------------------------------- /2.0/apache/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:5.6.18-apache 2 | 3 | MAINTAINER haertl.mike@gmail.com 4 | 5 | ENV PATH $PATH:/root/.composer/vendor/bin 6 | 7 | # PHP extensions come first, as they are less likely to change between Yii releases 8 | RUN apt-get update \ 9 | && apt-get -y install \ 10 | git \ 11 | g++ \ 12 | libicu-dev \ 13 | libmcrypt-dev \ 14 | zlib1g-dev \ 15 | --no-install-recommends \ 16 | 17 | # Enable mod_rewrite 18 | && a2enmod rewrite \ 19 | 20 | # Install PHP extensions 21 | && docker-php-ext-install intl \ 22 | && docker-php-ext-install pdo_mysql \ 23 | && docker-php-ext-install mbstring \ 24 | && docker-php-ext-install mcrypt \ 25 | && docker-php-ext-install opcache \ 26 | && docker-php-ext-install zip \ 27 | && pecl install apcu-4.0.11 && echo extension=apcu.so > /usr/local/etc/php/conf.d/apcu.ini \ 28 | 29 | && apt-get purge -y g++ \ 30 | && apt-get autoremove -y \ 31 | && rm -r /var/lib/apt/lists/* \ 32 | 33 | # Fix write permissions with shared folders 34 | && usermod -u 1000 www-data 35 | 36 | # Next composer and global composer package, as their versions may change from time to time 37 | RUN curl -sS https://getcomposer.org/installer | php \ 38 | && mv composer.phar /usr/local/bin/composer.phar \ 39 | && composer.phar global require --no-progress "fxp/composer-asset-plugin:~1.4.2" \ 40 | && composer.phar global require --no-progress "codeception/codeception=2.0.*" \ 41 | && composer.phar global require --no-progress "codeception/specify=*" \ 42 | && composer.phar global require --no-progress "codeception/verify=*" 43 | 44 | 45 | # Apache config and composer wrapper 46 | COPY apache2.conf /etc/apache2/apache2.conf 47 | COPY composer /usr/local/bin/composer 48 | 49 | WORKDIR /var/www/html 50 | 51 | # Composer packages are installed outside the app directory /var/www/html. 52 | # This way developers can mount the source code from their host directory 53 | # into /var/www/html and won't end up with an empty vendors/ directory. 54 | COPY composer.json /var/www/html/ 55 | COPY composer.lock /var/www/html/ 56 | RUN composer install --prefer-dist --no-progress \ 57 | && rm composer.* 58 | -------------------------------------------------------------------------------- /2.0/apache/Dockerfile.php7: -------------------------------------------------------------------------------- 1 | FROM php:7.0.8-apache 2 | 3 | MAINTAINER haertl.mike@gmail.com 4 | 5 | ENV PATH $PATH:/root/.composer/vendor/bin 6 | 7 | # PHP extensions come first, as they are less likely to change between Yii releases 8 | RUN apt-get update \ 9 | && apt-get -y install \ 10 | git \ 11 | g++ \ 12 | libicu-dev \ 13 | libmcrypt-dev \ 14 | zlib1g-dev \ 15 | --no-install-recommends \ 16 | 17 | # Enable mod_rewrite 18 | && a2enmod rewrite \ 19 | 20 | # Install PHP extensions 21 | && docker-php-ext-install intl \ 22 | && docker-php-ext-install pdo_mysql \ 23 | && docker-php-ext-install mbstring \ 24 | && docker-php-ext-install mcrypt \ 25 | && docker-php-ext-install opcache \ 26 | && docker-php-ext-install zip \ 27 | && pecl install apcu-5.1.8 && echo extension=apcu.so > /usr/local/etc/php/conf.d/apcu.ini \ 28 | 29 | && apt-get purge -y g++ \ 30 | && apt-get autoremove -y \ 31 | && rm -r /var/lib/apt/lists/* \ 32 | 33 | # Fix write permissions with shared folders 34 | && usermod -u 1000 www-data 35 | 36 | # Next composer and global composer package, as their versions may change from time to time 37 | RUN curl -sS https://getcomposer.org/installer | php \ 38 | && mv composer.phar /usr/local/bin/composer.phar \ 39 | && composer.phar global require --no-progress "fxp/composer-asset-plugin:~1.4.2" \ 40 | && composer.phar global require --no-progress "codeception/codeception=2.0.*" \ 41 | && composer.phar global require --no-progress "codeception/specify=*" \ 42 | && composer.phar global require --no-progress "codeception/verify=*" 43 | 44 | 45 | # Apache config and composer wrapper 46 | COPY apache2.conf /etc/apache2/apache2.conf 47 | COPY composer /usr/local/bin/composer 48 | 49 | WORKDIR /var/www/html 50 | 51 | # Composer packages are installed outside the app directory /var/www/html. 52 | # This way developers can mount the source code from their host directory 53 | # into /var/www/html and won't end up with an empty vendors/ directory. 54 | COPY composer.json /var/www/html/ 55 | COPY composer.lock /var/www/html/ 56 | RUN composer install --prefer-dist --no-progress \ 57 | && rm composer.* 58 | -------------------------------------------------------------------------------- /2.0/apache/apache2.conf: -------------------------------------------------------------------------------- 1 | # see http://sources.debian.net/src/apache2/2.4.10-1/debian/config-dir/apache2.conf 2 | 3 | Mutex file:/var/lock/apache2 default 4 | PidFile /var/run/apache2/apache2.pid 5 | Timeout 300 6 | KeepAlive On 7 | MaxKeepAliveRequests 100 8 | KeepAliveTimeout 5 9 | User www-data 10 | Group www-data 11 | HostnameLookups Off 12 | ErrorLog /proc/self/fd/2 13 | LogLevel warn 14 | 15 | IncludeOptional mods-enabled/*.load 16 | IncludeOptional mods-enabled/*.conf 17 | 18 | # ports.conf 19 | Listen 80 20 | 21 | Listen 443 22 | 23 | 24 | Listen 443 25 | 26 | 27 | 28 | Options FollowSymLinks 29 | AllowOverride None 30 | Require all denied 31 | 32 | 33 | 34 | Require all granted 35 | # use mod_rewrite for pretty URL support 36 | RewriteEngine on 37 | # If a directory or a file exists, use the request directly 38 | RewriteCond %{REQUEST_FILENAME} !-f 39 | RewriteCond %{REQUEST_FILENAME} !-d 40 | # Otherwise forward the request to index.php 41 | RewriteRule . index.php 42 | 43 | 44 | DocumentRoot /var/www/html/web 45 | 46 | AccessFileName .htaccess 47 | 48 | Require all denied 49 | 50 | 51 | LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined 52 | LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined 53 | LogFormat "%h %l %u %t \"%r\" %>s %O" common 54 | LogFormat "%{Referer}i -> %U" referer 55 | LogFormat "%{User-agent}i" agent 56 | 57 | CustomLog /proc/self/fd/1 combined 58 | 59 | 60 | SetHandler application/x-httpd-php 61 | 62 | 63 | # Multiple DirectoryIndex directives within the same context will add 64 | # to the list of resources to look for rather than replace 65 | # https://httpd.apache.org/docs/current/mod/mod_dir.html#directoryindex 66 | DirectoryIndex disabled 67 | DirectoryIndex index.php index.html 68 | -------------------------------------------------------------------------------- /2.0/apache/composer: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ -n "$API_TOKEN" ] 4 | then 5 | php /usr/local/bin/composer.phar config -g github-oauth.github.com $API_TOKEN 6 | fi 7 | 8 | exec php /usr/local/bin/composer.phar "$@" 9 | -------------------------------------------------------------------------------- /2.0/apache/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mikehaertl/yii2-dockerbase", 3 | "description": "A base docker image for yii2 based docker projects", 4 | "keywords": ["yii2", "framework", "docker"], 5 | "type": "project", 6 | "license": "MIT", 7 | "minimum-stability": "stable", 8 | "require": { 9 | "php": ">=5.4.0", 10 | "yiisoft/yii2": "2.0.13.1", 11 | "yiisoft/yii2-bootstrap": "~2.0.0", 12 | "yiisoft/yii2-jui": "~2.0.0", 13 | "yiisoft/yii2-swiftmailer": "~2.0.0", 14 | "vlucas/phpdotenv": "1.0.*", 15 | "codemix/yii2-streamlog": "1.1.0" 16 | }, 17 | "require-dev": { 18 | "yiisoft/yii2-debug": "~2.0.0", 19 | "yiisoft/yii2-gii": "~2.0.0", 20 | "yiisoft/yii2-codeception": "~2.0.0", 21 | "yiisoft/yii2-faker": "~2.0.0" 22 | }, 23 | "config": { 24 | "process-timeout": 1800, 25 | "vendor-dir": "/var/www/vendor" 26 | }, 27 | "extra": { 28 | "asset-installer-paths": { 29 | "npm-asset-library": "/var/www/vendor/npm", 30 | "bower-asset-library": "/var/www/vendor/bower" 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /2.0/apache/composer.lock: -------------------------------------------------------------------------------- 1 | { 2 | "_readme": [ 3 | "This file locks the dependencies of your project to a known state", 4 | "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", 5 | "This file is @generated automatically" 6 | ], 7 | "content-hash": "c5327b39307e2aeb84c7f5ab216e699a", 8 | "packages": [ 9 | { 10 | "name": "bower-asset/bootstrap", 11 | "version": "v3.3.7", 12 | "source": { 13 | "type": "git", 14 | "url": "https://github.com/twbs/bootstrap.git", 15 | "reference": "0b9c4a4007c44201dce9a6cc1a38407005c26c86" 16 | }, 17 | "dist": { 18 | "type": "zip", 19 | "url": "https://api.github.com/repos/twbs/bootstrap/zipball/0b9c4a4007c44201dce9a6cc1a38407005c26c86", 20 | "reference": "0b9c4a4007c44201dce9a6cc1a38407005c26c86", 21 | "shasum": "" 22 | }, 23 | "require": { 24 | "bower-asset/jquery": ">=1.9.1,<4.0" 25 | }, 26 | "type": "bower-asset-library", 27 | "extra": { 28 | "bower-asset-main": [ 29 | "less/bootstrap.less", 30 | "dist/js/bootstrap.js" 31 | ], 32 | "bower-asset-ignore": [ 33 | "/.*", 34 | "_config.yml", 35 | "CNAME", 36 | "composer.json", 37 | "CONTRIBUTING.md", 38 | "docs", 39 | "js/tests", 40 | "test-infra" 41 | ] 42 | }, 43 | "license": [ 44 | "MIT" 45 | ], 46 | "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.", 47 | "keywords": [ 48 | "css", 49 | "framework", 50 | "front-end", 51 | "js", 52 | "less", 53 | "mobile-first", 54 | "responsive", 55 | "web" 56 | ] 57 | }, 58 | { 59 | "name": "bower-asset/inputmask", 60 | "version": "3.3.10", 61 | "source": { 62 | "type": "git", 63 | "url": "https://github.com/RobinHerbots/Inputmask.git", 64 | "reference": "14873e5775964275d13621cbe2b52e4448af3707" 65 | }, 66 | "dist": { 67 | "type": "zip", 68 | "url": "https://api.github.com/repos/RobinHerbots/Inputmask/zipball/14873e5775964275d13621cbe2b52e4448af3707", 69 | "reference": "14873e5775964275d13621cbe2b52e4448af3707", 70 | "shasum": "" 71 | }, 72 | "require": { 73 | "bower-asset/jquery": ">=1.7" 74 | }, 75 | "type": "bower-asset-library", 76 | "extra": { 77 | "bower-asset-main": [ 78 | "./dist/inputmask/inputmask.js", 79 | "./dist/inputmask/inputmask.extensions.js", 80 | "./dist/inputmask/inputmask.date.extensions.js", 81 | "./dist/inputmask/inputmask.numeric.extensions.js", 82 | "./dist/inputmask/inputmask.phone.extensions.js", 83 | "./dist/inputmask/jquery.inputmask.js", 84 | "./dist/inputmask/global/document.js", 85 | "./dist/inputmask/global/window.js", 86 | "./dist/inputmask/phone-codes/phone.js", 87 | "./dist/inputmask/phone-codes/phone-be.js", 88 | "./dist/inputmask/phone-codes/phone-nl.js", 89 | "./dist/inputmask/phone-codes/phone-ru.js", 90 | "./dist/inputmask/phone-codes/phone-uk.js", 91 | "./dist/inputmask/dependencyLibs/inputmask.dependencyLib.jqlite.js", 92 | "./dist/inputmask/dependencyLibs/inputmask.dependencyLib.jquery.js", 93 | "./dist/inputmask/dependencyLibs/inputmask.dependencyLib.js", 94 | "./dist/inputmask/bindings/inputmask.binding.js" 95 | ], 96 | "bower-asset-ignore": [ 97 | "**/*", 98 | "!dist/*", 99 | "!dist/inputmask/*", 100 | "!dist/min/*", 101 | "!dist/min/inputmask/*" 102 | ] 103 | }, 104 | "license": [ 105 | "http://opensource.org/licenses/mit-license.php" 106 | ], 107 | "description": "Inputmask is a javascript library which creates an input mask. Inputmask can run against vanilla javascript, jQuery and jqlite.", 108 | "keywords": [ 109 | "form", 110 | "input", 111 | "inputmask", 112 | "jquery", 113 | "mask", 114 | "plugins" 115 | ] 116 | }, 117 | { 118 | "name": "bower-asset/jquery", 119 | "version": "3.2.1", 120 | "source": { 121 | "type": "git", 122 | "url": "https://github.com/jquery/jquery-dist.git", 123 | "reference": "77d2a51d0520d2ee44173afdf4e40a9201f5964e" 124 | }, 125 | "dist": { 126 | "type": "zip", 127 | "url": "https://api.github.com/repos/jquery/jquery-dist/zipball/77d2a51d0520d2ee44173afdf4e40a9201f5964e", 128 | "reference": "77d2a51d0520d2ee44173afdf4e40a9201f5964e", 129 | "shasum": "" 130 | }, 131 | "type": "bower-asset-library", 132 | "extra": { 133 | "bower-asset-main": "dist/jquery.js", 134 | "bower-asset-ignore": [ 135 | "package.json" 136 | ] 137 | }, 138 | "license": [ 139 | "MIT" 140 | ], 141 | "keywords": [ 142 | "browser", 143 | "javascript", 144 | "jquery", 145 | "library" 146 | ] 147 | }, 148 | { 149 | "name": "bower-asset/jquery-ui", 150 | "version": "1.11.4", 151 | "source": { 152 | "type": "git", 153 | "url": "https://github.com/components/jqueryui.git", 154 | "reference": "c34f8dbf3ba57b3784b93f26119f436c0e8288e1" 155 | }, 156 | "dist": { 157 | "type": "zip", 158 | "url": "https://api.github.com/repos/components/jqueryui/zipball/c34f8dbf3ba57b3784b93f26119f436c0e8288e1", 159 | "reference": "c34f8dbf3ba57b3784b93f26119f436c0e8288e1", 160 | "shasum": "" 161 | }, 162 | "require": { 163 | "bower-asset/jquery": ">=1.6" 164 | }, 165 | "type": "bower-asset-library", 166 | "extra": { 167 | "bower-asset-main": [ 168 | "jquery-ui.js" 169 | ], 170 | "bower-asset-ignore": [] 171 | } 172 | }, 173 | { 174 | "name": "bower-asset/punycode", 175 | "version": "v1.3.2", 176 | "source": { 177 | "type": "git", 178 | "url": "https://github.com/bestiejs/punycode.js.git", 179 | "reference": "38c8d3131a82567bfef18da09f7f4db68c84f8a3" 180 | }, 181 | "dist": { 182 | "type": "zip", 183 | "url": "https://api.github.com/repos/bestiejs/punycode.js/zipball/38c8d3131a82567bfef18da09f7f4db68c84f8a3", 184 | "reference": "38c8d3131a82567bfef18da09f7f4db68c84f8a3", 185 | "shasum": "" 186 | }, 187 | "type": "bower-asset-library", 188 | "extra": { 189 | "bower-asset-main": "punycode.js", 190 | "bower-asset-ignore": [ 191 | "coverage", 192 | "tests", 193 | ".*", 194 | "component.json", 195 | "Gruntfile.js", 196 | "node_modules", 197 | "package.json" 198 | ] 199 | } 200 | }, 201 | { 202 | "name": "bower-asset/yii2-pjax", 203 | "version": "2.0.7.1", 204 | "source": { 205 | "type": "git", 206 | "url": "https://github.com/yiisoft/jquery-pjax.git", 207 | "reference": "aef7b953107264f00234902a3880eb50dafc48be" 208 | }, 209 | "dist": { 210 | "type": "zip", 211 | "url": "https://api.github.com/repos/yiisoft/jquery-pjax/zipball/aef7b953107264f00234902a3880eb50dafc48be", 212 | "reference": "aef7b953107264f00234902a3880eb50dafc48be", 213 | "shasum": "" 214 | }, 215 | "require": { 216 | "bower-asset/jquery": ">=1.8" 217 | }, 218 | "type": "bower-asset-library", 219 | "extra": { 220 | "bower-asset-main": "./jquery.pjax.js", 221 | "bower-asset-ignore": [ 222 | ".travis.yml", 223 | "Gemfile", 224 | "Gemfile.lock", 225 | "CONTRIBUTING.md", 226 | "vendor/", 227 | "script/", 228 | "test/" 229 | ] 230 | }, 231 | "license": [ 232 | "MIT" 233 | ] 234 | }, 235 | { 236 | "name": "cebe/markdown", 237 | "version": "1.1.2", 238 | "source": { 239 | "type": "git", 240 | "url": "https://github.com/cebe/markdown.git", 241 | "reference": "25b28bae8a6f185b5030673af77b32e1163d5c6e" 242 | }, 243 | "dist": { 244 | "type": "zip", 245 | "url": "https://api.github.com/repos/cebe/markdown/zipball/25b28bae8a6f185b5030673af77b32e1163d5c6e", 246 | "reference": "25b28bae8a6f185b5030673af77b32e1163d5c6e", 247 | "shasum": "" 248 | }, 249 | "require": { 250 | "lib-pcre": "*", 251 | "php": ">=5.4.0" 252 | }, 253 | "require-dev": { 254 | "cebe/indent": "*", 255 | "facebook/xhprof": "*@dev", 256 | "phpunit/phpunit": "4.1.*" 257 | }, 258 | "bin": [ 259 | "bin/markdown" 260 | ], 261 | "type": "library", 262 | "extra": { 263 | "branch-alias": { 264 | "dev-master": "1.1.x-dev" 265 | } 266 | }, 267 | "autoload": { 268 | "psr-4": { 269 | "cebe\\markdown\\": "" 270 | } 271 | }, 272 | "notification-url": "https://packagist.org/downloads/", 273 | "license": [ 274 | "MIT" 275 | ], 276 | "authors": [ 277 | { 278 | "name": "Carsten Brandt", 279 | "email": "mail@cebe.cc", 280 | "homepage": "http://cebe.cc/", 281 | "role": "Creator" 282 | } 283 | ], 284 | "description": "A super fast, highly extensible markdown parser for PHP", 285 | "homepage": "https://github.com/cebe/markdown#readme", 286 | "keywords": [ 287 | "extensible", 288 | "fast", 289 | "gfm", 290 | "markdown", 291 | "markdown-extra" 292 | ], 293 | "time": "2017-07-16T21:13:23+00:00" 294 | }, 295 | { 296 | "name": "codemix/yii2-streamlog", 297 | "version": "1.1.0", 298 | "source": { 299 | "type": "git", 300 | "url": "https://github.com/codemix/yii2-streamlog.git", 301 | "reference": "ba21038819d2c5190caa30f62f9c2408eb1b06d0" 302 | }, 303 | "dist": { 304 | "type": "zip", 305 | "url": "https://api.github.com/repos/codemix/yii2-streamlog/zipball/ba21038819d2c5190caa30f62f9c2408eb1b06d0", 306 | "reference": "ba21038819d2c5190caa30f62f9c2408eb1b06d0", 307 | "shasum": "" 308 | }, 309 | "type": "library", 310 | "autoload": { 311 | "psr-4": { 312 | "codemix\\streamlog\\": "src/" 313 | } 314 | }, 315 | "notification-url": "https://packagist.org/downloads/", 316 | "license": [ 317 | "MIT" 318 | ], 319 | "authors": [ 320 | { 321 | "name": "Michael Härtl", 322 | "email": "haertl.mike@gmail.com" 323 | } 324 | ], 325 | "description": "A Yii 2 log target for streams in URL format", 326 | "keywords": [ 327 | "log", 328 | "stdout", 329 | "stream", 330 | "yii2" 331 | ], 332 | "time": "2017-01-28T08:01:44+00:00" 333 | }, 334 | { 335 | "name": "ezyang/htmlpurifier", 336 | "version": "v4.9.3", 337 | "source": { 338 | "type": "git", 339 | "url": "https://github.com/ezyang/htmlpurifier.git", 340 | "reference": "95e1bae3182efc0f3422896a3236e991049dac69" 341 | }, 342 | "dist": { 343 | "type": "zip", 344 | "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/95e1bae3182efc0f3422896a3236e991049dac69", 345 | "reference": "95e1bae3182efc0f3422896a3236e991049dac69", 346 | "shasum": "" 347 | }, 348 | "require": { 349 | "php": ">=5.2" 350 | }, 351 | "require-dev": { 352 | "simpletest/simpletest": "^1.1" 353 | }, 354 | "type": "library", 355 | "autoload": { 356 | "psr-0": { 357 | "HTMLPurifier": "library/" 358 | }, 359 | "files": [ 360 | "library/HTMLPurifier.composer.php" 361 | ] 362 | }, 363 | "notification-url": "https://packagist.org/downloads/", 364 | "license": [ 365 | "LGPL" 366 | ], 367 | "authors": [ 368 | { 369 | "name": "Edward Z. Yang", 370 | "email": "admin@htmlpurifier.org", 371 | "homepage": "http://ezyang.com" 372 | } 373 | ], 374 | "description": "Standards compliant HTML filter written in PHP", 375 | "homepage": "http://htmlpurifier.org/", 376 | "keywords": [ 377 | "html" 378 | ], 379 | "time": "2017-06-03T02:28:16+00:00" 380 | }, 381 | { 382 | "name": "swiftmailer/swiftmailer", 383 | "version": "v5.4.8", 384 | "source": { 385 | "type": "git", 386 | "url": "https://github.com/swiftmailer/swiftmailer.git", 387 | "reference": "9a06dc570a0367850280eefd3f1dc2da45aef517" 388 | }, 389 | "dist": { 390 | "type": "zip", 391 | "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/9a06dc570a0367850280eefd3f1dc2da45aef517", 392 | "reference": "9a06dc570a0367850280eefd3f1dc2da45aef517", 393 | "shasum": "" 394 | }, 395 | "require": { 396 | "php": ">=5.3.3" 397 | }, 398 | "require-dev": { 399 | "mockery/mockery": "~0.9.1", 400 | "symfony/phpunit-bridge": "~3.2" 401 | }, 402 | "type": "library", 403 | "extra": { 404 | "branch-alias": { 405 | "dev-master": "5.4-dev" 406 | } 407 | }, 408 | "autoload": { 409 | "files": [ 410 | "lib/swift_required.php" 411 | ] 412 | }, 413 | "notification-url": "https://packagist.org/downloads/", 414 | "license": [ 415 | "MIT" 416 | ], 417 | "authors": [ 418 | { 419 | "name": "Chris Corbyn" 420 | }, 421 | { 422 | "name": "Fabien Potencier", 423 | "email": "fabien@symfony.com" 424 | } 425 | ], 426 | "description": "Swiftmailer, free feature-rich PHP mailer", 427 | "homepage": "http://swiftmailer.org", 428 | "keywords": [ 429 | "email", 430 | "mail", 431 | "mailer" 432 | ], 433 | "time": "2017-05-01T15:54:03+00:00" 434 | }, 435 | { 436 | "name": "vlucas/phpdotenv", 437 | "version": "v1.0.9", 438 | "source": { 439 | "type": "git", 440 | "url": "https://github.com/vlucas/phpdotenv.git", 441 | "reference": "56c252d48dce336da97926591aed71805203815b" 442 | }, 443 | "dist": { 444 | "type": "zip", 445 | "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/56c252d48dce336da97926591aed71805203815b", 446 | "reference": "56c252d48dce336da97926591aed71805203815b", 447 | "shasum": "" 448 | }, 449 | "require": { 450 | "php": ">=5.3.2" 451 | }, 452 | "require-dev": { 453 | "phpunit/phpunit": "~4.0" 454 | }, 455 | "type": "library", 456 | "extra": { 457 | "branch-alias": { 458 | "dev-master": "1.0-dev" 459 | } 460 | }, 461 | "autoload": { 462 | "psr-0": { 463 | "Dotenv": "src/" 464 | } 465 | }, 466 | "notification-url": "https://packagist.org/downloads/", 467 | "license": [ 468 | "BSD" 469 | ], 470 | "authors": [ 471 | { 472 | "name": "Vance Lucas", 473 | "email": "vance@vancelucas.com", 474 | "homepage": "http://www.vancelucas.com" 475 | } 476 | ], 477 | "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", 478 | "homepage": "http://github.com/vlucas/phpdotenv", 479 | "keywords": [ 480 | "dotenv", 481 | "env", 482 | "environment" 483 | ], 484 | "time": "2014-10-16T14:50:21+00:00" 485 | }, 486 | { 487 | "name": "yiisoft/yii2", 488 | "version": "2.0.13.1", 489 | "source": { 490 | "type": "git", 491 | "url": "https://github.com/yiisoft/yii2-framework.git", 492 | "reference": "7af96d8da5ea3e9a5dd05d0e734b21c5726a6ddf" 493 | }, 494 | "dist": { 495 | "type": "zip", 496 | "url": "https://api.github.com/repos/yiisoft/yii2-framework/zipball/7af96d8da5ea3e9a5dd05d0e734b21c5726a6ddf", 497 | "reference": "7af96d8da5ea3e9a5dd05d0e734b21c5726a6ddf", 498 | "shasum": "" 499 | }, 500 | "require": { 501 | "bower-asset/inputmask": "~3.2.2 | ~3.3.5", 502 | "bower-asset/jquery": "3.2.*@stable | 3.1.*@stable | 2.2.*@stable | 2.1.*@stable | 1.11.*@stable | 1.12.*@stable", 503 | "bower-asset/punycode": "1.3.*", 504 | "bower-asset/yii2-pjax": "~2.0.1", 505 | "cebe/markdown": "~1.0.0 | ~1.1.0", 506 | "ext-ctype": "*", 507 | "ext-mbstring": "*", 508 | "ezyang/htmlpurifier": "~4.6", 509 | "lib-pcre": "*", 510 | "php": ">=5.4.0", 511 | "yiisoft/yii2-composer": "~2.0.4" 512 | }, 513 | "bin": [ 514 | "yii" 515 | ], 516 | "type": "library", 517 | "extra": { 518 | "branch-alias": { 519 | "dev-master": "2.0.x-dev" 520 | } 521 | }, 522 | "autoload": { 523 | "psr-4": { 524 | "yii\\": "" 525 | } 526 | }, 527 | "notification-url": "https://packagist.org/downloads/", 528 | "license": [ 529 | "BSD-3-Clause" 530 | ], 531 | "authors": [ 532 | { 533 | "name": "Qiang Xue", 534 | "email": "qiang.xue@gmail.com", 535 | "homepage": "http://www.yiiframework.com/", 536 | "role": "Founder and project lead" 537 | }, 538 | { 539 | "name": "Alexander Makarov", 540 | "email": "sam@rmcreative.ru", 541 | "homepage": "http://rmcreative.ru/", 542 | "role": "Core framework development" 543 | }, 544 | { 545 | "name": "Maurizio Domba", 546 | "homepage": "http://mdomba.info/", 547 | "role": "Core framework development" 548 | }, 549 | { 550 | "name": "Carsten Brandt", 551 | "email": "mail@cebe.cc", 552 | "homepage": "http://cebe.cc/", 553 | "role": "Core framework development" 554 | }, 555 | { 556 | "name": "Timur Ruziev", 557 | "email": "resurtm@gmail.com", 558 | "homepage": "http://resurtm.com/", 559 | "role": "Core framework development" 560 | }, 561 | { 562 | "name": "Paul Klimov", 563 | "email": "klimov.paul@gmail.com", 564 | "role": "Core framework development" 565 | }, 566 | { 567 | "name": "Dmitry Naumenko", 568 | "email": "d.naumenko.a@gmail.com", 569 | "role": "Core framework development" 570 | }, 571 | { 572 | "name": "Boudewijn Vahrmeijer", 573 | "email": "info@dynasource.eu", 574 | "homepage": "http://dynasource.eu", 575 | "role": "Core framework development" 576 | } 577 | ], 578 | "description": "Yii PHP Framework Version 2", 579 | "homepage": "http://www.yiiframework.com/", 580 | "keywords": [ 581 | "framework", 582 | "yii2" 583 | ], 584 | "time": "2017-11-14T11:08:21+00:00" 585 | }, 586 | { 587 | "name": "yiisoft/yii2-bootstrap", 588 | "version": "2.0.7", 589 | "source": { 590 | "type": "git", 591 | "url": "https://github.com/yiisoft/yii2-bootstrap.git", 592 | "reference": "02a54d868343ed11d02f0f0f8cbbecb590e0cb3f" 593 | }, 594 | "dist": { 595 | "type": "zip", 596 | "url": "https://api.github.com/repos/yiisoft/yii2-bootstrap/zipball/02a54d868343ed11d02f0f0f8cbbecb590e0cb3f", 597 | "reference": "02a54d868343ed11d02f0f0f8cbbecb590e0cb3f", 598 | "shasum": "" 599 | }, 600 | "require": { 601 | "bower-asset/bootstrap": "3.3.* | 3.2.* | 3.1.*", 602 | "yiisoft/yii2": "~2.0.6" 603 | }, 604 | "type": "yii2-extension", 605 | "extra": { 606 | "branch-alias": { 607 | "dev-master": "2.0.x-dev" 608 | } 609 | }, 610 | "autoload": { 611 | "psr-4": { 612 | "yii\\bootstrap\\": "" 613 | } 614 | }, 615 | "notification-url": "https://packagist.org/downloads/", 616 | "license": [ 617 | "BSD-3-Clause" 618 | ], 619 | "authors": [ 620 | { 621 | "name": "Qiang Xue", 622 | "email": "qiang.xue@gmail.com" 623 | } 624 | ], 625 | "description": "The Twitter Bootstrap extension for the Yii framework", 626 | "keywords": [ 627 | "bootstrap", 628 | "yii2" 629 | ], 630 | "time": "2017-10-09T19:48:22+00:00" 631 | }, 632 | { 633 | "name": "yiisoft/yii2-composer", 634 | "version": "2.0.5", 635 | "source": { 636 | "type": "git", 637 | "url": "https://github.com/yiisoft/yii2-composer.git", 638 | "reference": "3f4923c2bde6caf3f5b88cc22fdd5770f52f8df2" 639 | }, 640 | "dist": { 641 | "type": "zip", 642 | "url": "https://api.github.com/repos/yiisoft/yii2-composer/zipball/3f4923c2bde6caf3f5b88cc22fdd5770f52f8df2", 643 | "reference": "3f4923c2bde6caf3f5b88cc22fdd5770f52f8df2", 644 | "shasum": "" 645 | }, 646 | "require": { 647 | "composer-plugin-api": "^1.0" 648 | }, 649 | "require-dev": { 650 | "composer/composer": "^1.0" 651 | }, 652 | "type": "composer-plugin", 653 | "extra": { 654 | "class": "yii\\composer\\Plugin", 655 | "branch-alias": { 656 | "dev-master": "2.0.x-dev" 657 | } 658 | }, 659 | "autoload": { 660 | "psr-4": { 661 | "yii\\composer\\": "" 662 | } 663 | }, 664 | "notification-url": "https://packagist.org/downloads/", 665 | "license": [ 666 | "BSD-3-Clause" 667 | ], 668 | "authors": [ 669 | { 670 | "name": "Qiang Xue", 671 | "email": "qiang.xue@gmail.com" 672 | } 673 | ], 674 | "description": "The composer plugin for Yii extension installer", 675 | "keywords": [ 676 | "composer", 677 | "extension installer", 678 | "yii2" 679 | ], 680 | "time": "2016-12-20T13:26:02+00:00" 681 | }, 682 | { 683 | "name": "yiisoft/yii2-jui", 684 | "version": "2.0.6", 685 | "source": { 686 | "type": "git", 687 | "url": "https://github.com/yiisoft/yii2-jui.git", 688 | "reference": "843a2160cfe30f5c8b0cb2e9dbd8ee6bcf97e71d" 689 | }, 690 | "dist": { 691 | "type": "zip", 692 | "url": "https://api.github.com/repos/yiisoft/yii2-jui/zipball/843a2160cfe30f5c8b0cb2e9dbd8ee6bcf97e71d", 693 | "reference": "843a2160cfe30f5c8b0cb2e9dbd8ee6bcf97e71d", 694 | "shasum": "" 695 | }, 696 | "require": { 697 | "bower-asset/jquery-ui": "1.11.*@stable", 698 | "yiisoft/yii2": ">=2.0.4" 699 | }, 700 | "type": "yii2-extension", 701 | "extra": { 702 | "branch-alias": { 703 | "dev-master": "2.0.x-dev" 704 | }, 705 | "asset-installer-paths": { 706 | "npm-asset-library": "vendor/npm", 707 | "bower-asset-library": "vendor/bower" 708 | } 709 | }, 710 | "autoload": { 711 | "psr-4": { 712 | "yii\\jui\\": "" 713 | } 714 | }, 715 | "notification-url": "https://packagist.org/downloads/", 716 | "license": [ 717 | "BSD-3-Clause" 718 | ], 719 | "authors": [ 720 | { 721 | "name": "Qiang Xue", 722 | "email": "qiang.xue@gmail.com" 723 | } 724 | ], 725 | "description": "The Jquery UI extension for the Yii framework", 726 | "keywords": [ 727 | "jQuery UI", 728 | "yii2" 729 | ], 730 | "time": "2016-07-22T22:26:59+00:00" 731 | }, 732 | { 733 | "name": "yiisoft/yii2-swiftmailer", 734 | "version": "2.0.7", 735 | "source": { 736 | "type": "git", 737 | "url": "https://github.com/yiisoft/yii2-swiftmailer.git", 738 | "reference": "8a03a62cbcb82e7697d3002eb43a8d2637f566ec" 739 | }, 740 | "dist": { 741 | "type": "zip", 742 | "url": "https://api.github.com/repos/yiisoft/yii2-swiftmailer/zipball/8a03a62cbcb82e7697d3002eb43a8d2637f566ec", 743 | "reference": "8a03a62cbcb82e7697d3002eb43a8d2637f566ec", 744 | "shasum": "" 745 | }, 746 | "require": { 747 | "swiftmailer/swiftmailer": "~5.0", 748 | "yiisoft/yii2": "~2.0.4" 749 | }, 750 | "type": "yii2-extension", 751 | "extra": { 752 | "branch-alias": { 753 | "dev-master": "2.0.x-dev" 754 | } 755 | }, 756 | "autoload": { 757 | "psr-4": { 758 | "yii\\swiftmailer\\": "" 759 | } 760 | }, 761 | "notification-url": "https://packagist.org/downloads/", 762 | "license": [ 763 | "BSD-3-Clause" 764 | ], 765 | "authors": [ 766 | { 767 | "name": "Paul Klimov", 768 | "email": "klimov.paul@gmail.com" 769 | } 770 | ], 771 | "description": "The SwiftMailer integration for the Yii framework", 772 | "keywords": [ 773 | "email", 774 | "mail", 775 | "mailer", 776 | "swift", 777 | "swiftmailer", 778 | "yii2" 779 | ], 780 | "time": "2017-05-01T08:29:00+00:00" 781 | } 782 | ], 783 | "packages-dev": [ 784 | { 785 | "name": "bower-asset/typeahead.js", 786 | "version": "v0.11.1", 787 | "source": { 788 | "type": "git", 789 | "url": "https://github.com/twitter/typeahead.js.git", 790 | "reference": "588440f66559714280628a4f9799f0c4eb880a4a" 791 | }, 792 | "dist": { 793 | "type": "zip", 794 | "url": "https://api.github.com/repos/twitter/typeahead.js/zipball/588440f66559714280628a4f9799f0c4eb880a4a", 795 | "reference": "588440f66559714280628a4f9799f0c4eb880a4a", 796 | "shasum": "" 797 | }, 798 | "require": { 799 | "bower-asset/jquery": ">=1.7" 800 | }, 801 | "require-dev": { 802 | "bower-asset/jasmine-ajax": "~1.3.1", 803 | "bower-asset/jasmine-jquery": "~1.5.2", 804 | "bower-asset/jquery": "~1.7" 805 | }, 806 | "type": "bower-asset-library", 807 | "extra": { 808 | "bower-asset-main": "dist/typeahead.bundle.js" 809 | } 810 | }, 811 | { 812 | "name": "fzaninotto/faker", 813 | "version": "v1.7.1", 814 | "source": { 815 | "type": "git", 816 | "url": "https://github.com/fzaninotto/Faker.git", 817 | "reference": "d3ed4cc37051c1ca52d22d76b437d14809fc7e0d" 818 | }, 819 | "dist": { 820 | "type": "zip", 821 | "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/d3ed4cc37051c1ca52d22d76b437d14809fc7e0d", 822 | "reference": "d3ed4cc37051c1ca52d22d76b437d14809fc7e0d", 823 | "shasum": "" 824 | }, 825 | "require": { 826 | "php": "^5.3.3 || ^7.0" 827 | }, 828 | "require-dev": { 829 | "ext-intl": "*", 830 | "phpunit/phpunit": "^4.0 || ^5.0", 831 | "squizlabs/php_codesniffer": "^1.5" 832 | }, 833 | "type": "library", 834 | "extra": { 835 | "branch-alias": { 836 | "dev-master": "1.8-dev" 837 | } 838 | }, 839 | "autoload": { 840 | "psr-4": { 841 | "Faker\\": "src/Faker/" 842 | } 843 | }, 844 | "notification-url": "https://packagist.org/downloads/", 845 | "license": [ 846 | "MIT" 847 | ], 848 | "authors": [ 849 | { 850 | "name": "François Zaninotto" 851 | } 852 | ], 853 | "description": "Faker is a PHP library that generates fake data for you.", 854 | "keywords": [ 855 | "data", 856 | "faker", 857 | "fixtures" 858 | ], 859 | "time": "2017-08-15T16:48:10+00:00" 860 | }, 861 | { 862 | "name": "phpspec/php-diff", 863 | "version": "v1.1.0", 864 | "source": { 865 | "type": "git", 866 | "url": "https://github.com/phpspec/php-diff.git", 867 | "reference": "0464787bfa7cd13576c5a1e318709768798bec6a" 868 | }, 869 | "dist": { 870 | "type": "zip", 871 | "url": "https://api.github.com/repos/phpspec/php-diff/zipball/0464787bfa7cd13576c5a1e318709768798bec6a", 872 | "reference": "0464787bfa7cd13576c5a1e318709768798bec6a", 873 | "shasum": "" 874 | }, 875 | "type": "library", 876 | "extra": { 877 | "branch-alias": { 878 | "dev-master": "1.0.x-dev" 879 | } 880 | }, 881 | "autoload": { 882 | "psr-0": { 883 | "Diff": "lib/" 884 | } 885 | }, 886 | "notification-url": "https://packagist.org/downloads/", 887 | "license": [ 888 | "BSD-3-Clause" 889 | ], 890 | "authors": [ 891 | { 892 | "name": "Chris Boulton", 893 | "homepage": "http://github.com/chrisboulton" 894 | } 895 | ], 896 | "description": "A comprehensive library for generating differences between two hashable objects (strings or arrays).", 897 | "time": "2016-04-07T12:29:16+00:00" 898 | }, 899 | { 900 | "name": "yiisoft/yii2-codeception", 901 | "version": "2.0.6", 902 | "source": { 903 | "type": "git", 904 | "url": "https://github.com/yiisoft/yii2-codeception.git", 905 | "reference": "086c8c2d28736e7a484a7a8611b5cc84024e9fb3" 906 | }, 907 | "dist": { 908 | "type": "zip", 909 | "url": "https://api.github.com/repos/yiisoft/yii2-codeception/zipball/086c8c2d28736e7a484a7a8611b5cc84024e9fb3", 910 | "reference": "086c8c2d28736e7a484a7a8611b5cc84024e9fb3", 911 | "shasum": "" 912 | }, 913 | "require": { 914 | "yiisoft/yii2": ">=2.0.4" 915 | }, 916 | "type": "yii2-extension", 917 | "extra": { 918 | "branch-alias": { 919 | "dev-master": "2.0.x-dev" 920 | } 921 | }, 922 | "autoload": { 923 | "psr-4": { 924 | "yii\\codeception\\": "" 925 | } 926 | }, 927 | "notification-url": "https://packagist.org/downloads/", 928 | "license": [ 929 | "BSD-3-Clause" 930 | ], 931 | "authors": [ 932 | { 933 | "name": "Mark Jebri", 934 | "email": "mark.github@yandex.ru" 935 | } 936 | ], 937 | "description": "The Codeception integration for the Yii framework", 938 | "keywords": [ 939 | "codeception", 940 | "yii2" 941 | ], 942 | "abandoned": "codeception/codeception", 943 | "time": "2017-05-22T12:08:21+00:00" 944 | }, 945 | { 946 | "name": "yiisoft/yii2-debug", 947 | "version": "2.0.12", 948 | "source": { 949 | "type": "git", 950 | "url": "https://github.com/yiisoft/yii2-debug.git", 951 | "reference": "93082f46d3568b4431a26f264e0d16a12c42bd50" 952 | }, 953 | "dist": { 954 | "type": "zip", 955 | "url": "https://api.github.com/repos/yiisoft/yii2-debug/zipball/93082f46d3568b4431a26f264e0d16a12c42bd50", 956 | "reference": "93082f46d3568b4431a26f264e0d16a12c42bd50", 957 | "shasum": "" 958 | }, 959 | "require": { 960 | "yiisoft/yii2": "~2.0.11", 961 | "yiisoft/yii2-bootstrap": "~2.0.0" 962 | }, 963 | "type": "yii2-extension", 964 | "extra": { 965 | "branch-alias": { 966 | "dev-master": "2.0.x-dev" 967 | } 968 | }, 969 | "autoload": { 970 | "psr-4": { 971 | "yii\\debug\\": "" 972 | } 973 | }, 974 | "notification-url": "https://packagist.org/downloads/", 975 | "license": [ 976 | "BSD-3-Clause" 977 | ], 978 | "authors": [ 979 | { 980 | "name": "Qiang Xue", 981 | "email": "qiang.xue@gmail.com" 982 | } 983 | ], 984 | "description": "The debugger extension for the Yii framework", 985 | "keywords": [ 986 | "debug", 987 | "debugger", 988 | "yii2" 989 | ], 990 | "time": "2017-10-09T20:30:01+00:00" 991 | }, 992 | { 993 | "name": "yiisoft/yii2-faker", 994 | "version": "2.0.3", 995 | "source": { 996 | "type": "git", 997 | "url": "https://github.com/yiisoft/yii2-faker.git", 998 | "reference": "b88ca69ee226a3610b2c26c026c3203d7ac50f6c" 999 | }, 1000 | "dist": { 1001 | "type": "zip", 1002 | "url": "https://api.github.com/repos/yiisoft/yii2-faker/zipball/b88ca69ee226a3610b2c26c026c3203d7ac50f6c", 1003 | "reference": "b88ca69ee226a3610b2c26c026c3203d7ac50f6c", 1004 | "shasum": "" 1005 | }, 1006 | "require": { 1007 | "fzaninotto/faker": "*", 1008 | "yiisoft/yii2": "*" 1009 | }, 1010 | "type": "yii2-extension", 1011 | "extra": { 1012 | "branch-alias": { 1013 | "dev-master": "2.0.x-dev" 1014 | } 1015 | }, 1016 | "autoload": { 1017 | "psr-4": { 1018 | "yii\\faker\\": "" 1019 | } 1020 | }, 1021 | "notification-url": "https://packagist.org/downloads/", 1022 | "license": [ 1023 | "BSD-3-Clause" 1024 | ], 1025 | "authors": [ 1026 | { 1027 | "name": "Mark Jebri", 1028 | "email": "mark.github@yandex.ru" 1029 | } 1030 | ], 1031 | "description": "Fixture generator. The Faker integration for the Yii framework.", 1032 | "keywords": [ 1033 | "Fixture", 1034 | "faker", 1035 | "yii2" 1036 | ], 1037 | "time": "2015-03-01T06:22:44+00:00" 1038 | }, 1039 | { 1040 | "name": "yiisoft/yii2-gii", 1041 | "version": "2.0.5", 1042 | "source": { 1043 | "type": "git", 1044 | "url": "https://github.com/yiisoft/yii2-gii.git", 1045 | "reference": "1bd6df6804ca077ec022587905a0d43eb286f507" 1046 | }, 1047 | "dist": { 1048 | "type": "zip", 1049 | "url": "https://api.github.com/repos/yiisoft/yii2-gii/zipball/1bd6df6804ca077ec022587905a0d43eb286f507", 1050 | "reference": "1bd6df6804ca077ec022587905a0d43eb286f507", 1051 | "shasum": "" 1052 | }, 1053 | "require": { 1054 | "bower-asset/typeahead.js": "0.10.* | ~0.11.0", 1055 | "phpspec/php-diff": ">=1.0.2", 1056 | "yiisoft/yii2": ">=2.0.4", 1057 | "yiisoft/yii2-bootstrap": "~2.0" 1058 | }, 1059 | "type": "yii2-extension", 1060 | "extra": { 1061 | "branch-alias": { 1062 | "dev-master": "2.0.x-dev" 1063 | }, 1064 | "asset-installer-paths": { 1065 | "npm-asset-library": "vendor/npm", 1066 | "bower-asset-library": "vendor/bower" 1067 | } 1068 | }, 1069 | "autoload": { 1070 | "psr-4": { 1071 | "yii\\gii\\": "" 1072 | } 1073 | }, 1074 | "notification-url": "https://packagist.org/downloads/", 1075 | "license": [ 1076 | "BSD-3-Clause" 1077 | ], 1078 | "authors": [ 1079 | { 1080 | "name": "Qiang Xue", 1081 | "email": "qiang.xue@gmail.com" 1082 | } 1083 | ], 1084 | "description": "The Gii extension for the Yii framework", 1085 | "keywords": [ 1086 | "code generator", 1087 | "gii", 1088 | "yii2" 1089 | ], 1090 | "time": "2016-03-18T14:09:46+00:00" 1091 | } 1092 | ], 1093 | "aliases": [], 1094 | "minimum-stability": "stable", 1095 | "stability-flags": [], 1096 | "prefer-stable": false, 1097 | "prefer-lowest": false, 1098 | "platform": { 1099 | "php": ">=5.4.0" 1100 | }, 1101 | "platform-dev": [] 1102 | } 1103 | -------------------------------------------------------------------------------- /2.0/hhvm/.dockerignore: -------------------------------------------------------------------------------- 1 | Dockerfile 2 | -------------------------------------------------------------------------------- /2.0/hhvm/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM estebanmatias92/hhvm:3.8.1-fastcgi 2 | 3 | MAINTAINER haertl.mike@gmail.com 4 | 5 | ENV PATH $PATH:/root/.composer/vendor/bin 6 | 7 | # Install composer and prepare system 8 | RUN apt-get update \ 9 | && apt-get -y install \ 10 | curl \ 11 | git \ 12 | # We need PHP for composer because there's an issue with HHVM and yii2-composer which 13 | # breaks the creation of extensions.php (https://github.com/facebook/hhvm/issues/4797) 14 | php5-cli \ 15 | --no-install-recommends \ 16 | && rm -r /var/lib/apt/lists/* \ 17 | 18 | && curl -sS https://getcomposer.org/installer | php \ 19 | && mv composer.phar /usr/local/bin/composer.phar \ 20 | 21 | && composer.phar global require --no-progress "fxp/composer-asset-plugin:~1.4.2" \ 22 | && composer.phar global require --no-progress "codeception/codeception=2.0.*" \ 23 | && composer.phar global require --no-progress "codeception/specify=*" \ 24 | && composer.phar global require --no-progress "codeception/verify=*" \ 25 | 26 | # Fix write permissions with shared folders 27 | && usermod -u 1000 www-data 28 | 29 | COPY composer /usr/local/bin/ 30 | 31 | WORKDIR /var/www/html 32 | 33 | # Composer packages are installed outside the app directory /var/www/html. 34 | # This way developers can mount the source code from their host directory 35 | # into /var/www/html and won't end up with an empty vendors/ directory. 36 | COPY composer.json /var/www/html/ 37 | COPY composer.lock /var/www/html/ 38 | RUN composer install --prefer-dist --no-progress \ 39 | && rm composer.* 40 | -------------------------------------------------------------------------------- /2.0/hhvm/composer: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ -n "$API_TOKEN" ] 4 | then 5 | php5 /usr/local/bin/composer.phar config -g github-oauth.github.com $API_TOKEN 6 | fi 7 | 8 | exec php5 /usr/local/bin/composer.phar "$@" 9 | -------------------------------------------------------------------------------- /2.0/hhvm/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mikehaertl/yii2-dockerbase", 3 | "description": "A base docker image for yii2 based docker projects", 4 | "keywords": ["yii2", "framework", "docker"], 5 | "type": "project", 6 | "license": "MIT", 7 | "minimum-stability": "stable", 8 | "require": { 9 | "php": ">=5.4.0", 10 | "yiisoft/yii2": "2.0.13.1", 11 | "yiisoft/yii2-bootstrap": "~2.0.0", 12 | "yiisoft/yii2-jui": "~2.0.0", 13 | "yiisoft/yii2-swiftmailer": "~2.0.0", 14 | "vlucas/phpdotenv": "1.0.*", 15 | "codemix/yii2-streamlog": "1.1.0" 16 | }, 17 | "require-dev": { 18 | "yiisoft/yii2-debug": "~2.0.0", 19 | "yiisoft/yii2-gii": "~2.0.0", 20 | "yiisoft/yii2-codeception": "~2.0.0", 21 | "yiisoft/yii2-faker": "~2.0.0" 22 | }, 23 | "config": { 24 | "process-timeout": 1800, 25 | "vendor-dir": "/var/www/vendor" 26 | }, 27 | "extra": { 28 | "asset-installer-paths": { 29 | "npm-asset-library": "/var/www/vendor/npm", 30 | "bower-asset-library": "/var/www/vendor/bower" 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /2.0/hhvm/composer.lock: -------------------------------------------------------------------------------- 1 | { 2 | "_readme": [ 3 | "This file locks the dependencies of your project to a known state", 4 | "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", 5 | "This file is @generated automatically" 6 | ], 7 | "content-hash": "c5327b39307e2aeb84c7f5ab216e699a", 8 | "packages": [ 9 | { 10 | "name": "bower-asset/bootstrap", 11 | "version": "v3.3.7", 12 | "source": { 13 | "type": "git", 14 | "url": "https://github.com/twbs/bootstrap.git", 15 | "reference": "0b9c4a4007c44201dce9a6cc1a38407005c26c86" 16 | }, 17 | "dist": { 18 | "type": "zip", 19 | "url": "https://api.github.com/repos/twbs/bootstrap/zipball/0b9c4a4007c44201dce9a6cc1a38407005c26c86", 20 | "reference": "0b9c4a4007c44201dce9a6cc1a38407005c26c86", 21 | "shasum": "" 22 | }, 23 | "require": { 24 | "bower-asset/jquery": ">=1.9.1,<4.0" 25 | }, 26 | "type": "bower-asset-library", 27 | "extra": { 28 | "bower-asset-main": [ 29 | "less/bootstrap.less", 30 | "dist/js/bootstrap.js" 31 | ], 32 | "bower-asset-ignore": [ 33 | "/.*", 34 | "_config.yml", 35 | "CNAME", 36 | "composer.json", 37 | "CONTRIBUTING.md", 38 | "docs", 39 | "js/tests", 40 | "test-infra" 41 | ] 42 | }, 43 | "license": [ 44 | "MIT" 45 | ], 46 | "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.", 47 | "keywords": [ 48 | "css", 49 | "framework", 50 | "front-end", 51 | "js", 52 | "less", 53 | "mobile-first", 54 | "responsive", 55 | "web" 56 | ] 57 | }, 58 | { 59 | "name": "bower-asset/inputmask", 60 | "version": "3.3.10", 61 | "source": { 62 | "type": "git", 63 | "url": "https://github.com/RobinHerbots/Inputmask.git", 64 | "reference": "14873e5775964275d13621cbe2b52e4448af3707" 65 | }, 66 | "dist": { 67 | "type": "zip", 68 | "url": "https://api.github.com/repos/RobinHerbots/Inputmask/zipball/14873e5775964275d13621cbe2b52e4448af3707", 69 | "reference": "14873e5775964275d13621cbe2b52e4448af3707", 70 | "shasum": "" 71 | }, 72 | "require": { 73 | "bower-asset/jquery": ">=1.7" 74 | }, 75 | "type": "bower-asset-library", 76 | "extra": { 77 | "bower-asset-main": [ 78 | "./dist/inputmask/inputmask.js", 79 | "./dist/inputmask/inputmask.extensions.js", 80 | "./dist/inputmask/inputmask.date.extensions.js", 81 | "./dist/inputmask/inputmask.numeric.extensions.js", 82 | "./dist/inputmask/inputmask.phone.extensions.js", 83 | "./dist/inputmask/jquery.inputmask.js", 84 | "./dist/inputmask/global/document.js", 85 | "./dist/inputmask/global/window.js", 86 | "./dist/inputmask/phone-codes/phone.js", 87 | "./dist/inputmask/phone-codes/phone-be.js", 88 | "./dist/inputmask/phone-codes/phone-nl.js", 89 | "./dist/inputmask/phone-codes/phone-ru.js", 90 | "./dist/inputmask/phone-codes/phone-uk.js", 91 | "./dist/inputmask/dependencyLibs/inputmask.dependencyLib.jqlite.js", 92 | "./dist/inputmask/dependencyLibs/inputmask.dependencyLib.jquery.js", 93 | "./dist/inputmask/dependencyLibs/inputmask.dependencyLib.js", 94 | "./dist/inputmask/bindings/inputmask.binding.js" 95 | ], 96 | "bower-asset-ignore": [ 97 | "**/*", 98 | "!dist/*", 99 | "!dist/inputmask/*", 100 | "!dist/min/*", 101 | "!dist/min/inputmask/*" 102 | ] 103 | }, 104 | "license": [ 105 | "http://opensource.org/licenses/mit-license.php" 106 | ], 107 | "description": "Inputmask is a javascript library which creates an input mask. Inputmask can run against vanilla javascript, jQuery and jqlite.", 108 | "keywords": [ 109 | "form", 110 | "input", 111 | "inputmask", 112 | "jquery", 113 | "mask", 114 | "plugins" 115 | ] 116 | }, 117 | { 118 | "name": "bower-asset/jquery", 119 | "version": "3.2.1", 120 | "source": { 121 | "type": "git", 122 | "url": "https://github.com/jquery/jquery-dist.git", 123 | "reference": "77d2a51d0520d2ee44173afdf4e40a9201f5964e" 124 | }, 125 | "dist": { 126 | "type": "zip", 127 | "url": "https://api.github.com/repos/jquery/jquery-dist/zipball/77d2a51d0520d2ee44173afdf4e40a9201f5964e", 128 | "reference": "77d2a51d0520d2ee44173afdf4e40a9201f5964e", 129 | "shasum": "" 130 | }, 131 | "type": "bower-asset-library", 132 | "extra": { 133 | "bower-asset-main": "dist/jquery.js", 134 | "bower-asset-ignore": [ 135 | "package.json" 136 | ] 137 | }, 138 | "license": [ 139 | "MIT" 140 | ], 141 | "keywords": [ 142 | "browser", 143 | "javascript", 144 | "jquery", 145 | "library" 146 | ] 147 | }, 148 | { 149 | "name": "bower-asset/jquery-ui", 150 | "version": "1.11.4", 151 | "source": { 152 | "type": "git", 153 | "url": "https://github.com/components/jqueryui.git", 154 | "reference": "c34f8dbf3ba57b3784b93f26119f436c0e8288e1" 155 | }, 156 | "dist": { 157 | "type": "zip", 158 | "url": "https://api.github.com/repos/components/jqueryui/zipball/c34f8dbf3ba57b3784b93f26119f436c0e8288e1", 159 | "reference": "c34f8dbf3ba57b3784b93f26119f436c0e8288e1", 160 | "shasum": "" 161 | }, 162 | "require": { 163 | "bower-asset/jquery": ">=1.6" 164 | }, 165 | "type": "bower-asset-library", 166 | "extra": { 167 | "bower-asset-main": [ 168 | "jquery-ui.js" 169 | ], 170 | "bower-asset-ignore": [] 171 | } 172 | }, 173 | { 174 | "name": "bower-asset/punycode", 175 | "version": "v1.3.2", 176 | "source": { 177 | "type": "git", 178 | "url": "https://github.com/bestiejs/punycode.js.git", 179 | "reference": "38c8d3131a82567bfef18da09f7f4db68c84f8a3" 180 | }, 181 | "dist": { 182 | "type": "zip", 183 | "url": "https://api.github.com/repos/bestiejs/punycode.js/zipball/38c8d3131a82567bfef18da09f7f4db68c84f8a3", 184 | "reference": "38c8d3131a82567bfef18da09f7f4db68c84f8a3", 185 | "shasum": "" 186 | }, 187 | "type": "bower-asset-library", 188 | "extra": { 189 | "bower-asset-main": "punycode.js", 190 | "bower-asset-ignore": [ 191 | "coverage", 192 | "tests", 193 | ".*", 194 | "component.json", 195 | "Gruntfile.js", 196 | "node_modules", 197 | "package.json" 198 | ] 199 | } 200 | }, 201 | { 202 | "name": "bower-asset/yii2-pjax", 203 | "version": "2.0.7.1", 204 | "source": { 205 | "type": "git", 206 | "url": "https://github.com/yiisoft/jquery-pjax.git", 207 | "reference": "aef7b953107264f00234902a3880eb50dafc48be" 208 | }, 209 | "dist": { 210 | "type": "zip", 211 | "url": "https://api.github.com/repos/yiisoft/jquery-pjax/zipball/aef7b953107264f00234902a3880eb50dafc48be", 212 | "reference": "aef7b953107264f00234902a3880eb50dafc48be", 213 | "shasum": "" 214 | }, 215 | "require": { 216 | "bower-asset/jquery": ">=1.8" 217 | }, 218 | "type": "bower-asset-library", 219 | "extra": { 220 | "bower-asset-main": "./jquery.pjax.js", 221 | "bower-asset-ignore": [ 222 | ".travis.yml", 223 | "Gemfile", 224 | "Gemfile.lock", 225 | "CONTRIBUTING.md", 226 | "vendor/", 227 | "script/", 228 | "test/" 229 | ] 230 | }, 231 | "license": [ 232 | "MIT" 233 | ] 234 | }, 235 | { 236 | "name": "cebe/markdown", 237 | "version": "1.1.2", 238 | "source": { 239 | "type": "git", 240 | "url": "https://github.com/cebe/markdown.git", 241 | "reference": "25b28bae8a6f185b5030673af77b32e1163d5c6e" 242 | }, 243 | "dist": { 244 | "type": "zip", 245 | "url": "https://api.github.com/repos/cebe/markdown/zipball/25b28bae8a6f185b5030673af77b32e1163d5c6e", 246 | "reference": "25b28bae8a6f185b5030673af77b32e1163d5c6e", 247 | "shasum": "" 248 | }, 249 | "require": { 250 | "lib-pcre": "*", 251 | "php": ">=5.4.0" 252 | }, 253 | "require-dev": { 254 | "cebe/indent": "*", 255 | "facebook/xhprof": "*@dev", 256 | "phpunit/phpunit": "4.1.*" 257 | }, 258 | "bin": [ 259 | "bin/markdown" 260 | ], 261 | "type": "library", 262 | "extra": { 263 | "branch-alias": { 264 | "dev-master": "1.1.x-dev" 265 | } 266 | }, 267 | "autoload": { 268 | "psr-4": { 269 | "cebe\\markdown\\": "" 270 | } 271 | }, 272 | "notification-url": "https://packagist.org/downloads/", 273 | "license": [ 274 | "MIT" 275 | ], 276 | "authors": [ 277 | { 278 | "name": "Carsten Brandt", 279 | "email": "mail@cebe.cc", 280 | "homepage": "http://cebe.cc/", 281 | "role": "Creator" 282 | } 283 | ], 284 | "description": "A super fast, highly extensible markdown parser for PHP", 285 | "homepage": "https://github.com/cebe/markdown#readme", 286 | "keywords": [ 287 | "extensible", 288 | "fast", 289 | "gfm", 290 | "markdown", 291 | "markdown-extra" 292 | ], 293 | "time": "2017-07-16T21:13:23+00:00" 294 | }, 295 | { 296 | "name": "codemix/yii2-streamlog", 297 | "version": "1.1.0", 298 | "source": { 299 | "type": "git", 300 | "url": "https://github.com/codemix/yii2-streamlog.git", 301 | "reference": "ba21038819d2c5190caa30f62f9c2408eb1b06d0" 302 | }, 303 | "dist": { 304 | "type": "zip", 305 | "url": "https://api.github.com/repos/codemix/yii2-streamlog/zipball/ba21038819d2c5190caa30f62f9c2408eb1b06d0", 306 | "reference": "ba21038819d2c5190caa30f62f9c2408eb1b06d0", 307 | "shasum": "" 308 | }, 309 | "type": "library", 310 | "autoload": { 311 | "psr-4": { 312 | "codemix\\streamlog\\": "src/" 313 | } 314 | }, 315 | "notification-url": "https://packagist.org/downloads/", 316 | "license": [ 317 | "MIT" 318 | ], 319 | "authors": [ 320 | { 321 | "name": "Michael Härtl", 322 | "email": "haertl.mike@gmail.com" 323 | } 324 | ], 325 | "description": "A Yii 2 log target for streams in URL format", 326 | "keywords": [ 327 | "log", 328 | "stdout", 329 | "stream", 330 | "yii2" 331 | ], 332 | "time": "2017-01-28T08:01:44+00:00" 333 | }, 334 | { 335 | "name": "ezyang/htmlpurifier", 336 | "version": "v4.9.3", 337 | "source": { 338 | "type": "git", 339 | "url": "https://github.com/ezyang/htmlpurifier.git", 340 | "reference": "95e1bae3182efc0f3422896a3236e991049dac69" 341 | }, 342 | "dist": { 343 | "type": "zip", 344 | "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/95e1bae3182efc0f3422896a3236e991049dac69", 345 | "reference": "95e1bae3182efc0f3422896a3236e991049dac69", 346 | "shasum": "" 347 | }, 348 | "require": { 349 | "php": ">=5.2" 350 | }, 351 | "require-dev": { 352 | "simpletest/simpletest": "^1.1" 353 | }, 354 | "type": "library", 355 | "autoload": { 356 | "psr-0": { 357 | "HTMLPurifier": "library/" 358 | }, 359 | "files": [ 360 | "library/HTMLPurifier.composer.php" 361 | ] 362 | }, 363 | "notification-url": "https://packagist.org/downloads/", 364 | "license": [ 365 | "LGPL" 366 | ], 367 | "authors": [ 368 | { 369 | "name": "Edward Z. Yang", 370 | "email": "admin@htmlpurifier.org", 371 | "homepage": "http://ezyang.com" 372 | } 373 | ], 374 | "description": "Standards compliant HTML filter written in PHP", 375 | "homepage": "http://htmlpurifier.org/", 376 | "keywords": [ 377 | "html" 378 | ], 379 | "time": "2017-06-03T02:28:16+00:00" 380 | }, 381 | { 382 | "name": "swiftmailer/swiftmailer", 383 | "version": "v5.4.8", 384 | "source": { 385 | "type": "git", 386 | "url": "https://github.com/swiftmailer/swiftmailer.git", 387 | "reference": "9a06dc570a0367850280eefd3f1dc2da45aef517" 388 | }, 389 | "dist": { 390 | "type": "zip", 391 | "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/9a06dc570a0367850280eefd3f1dc2da45aef517", 392 | "reference": "9a06dc570a0367850280eefd3f1dc2da45aef517", 393 | "shasum": "" 394 | }, 395 | "require": { 396 | "php": ">=5.3.3" 397 | }, 398 | "require-dev": { 399 | "mockery/mockery": "~0.9.1", 400 | "symfony/phpunit-bridge": "~3.2" 401 | }, 402 | "type": "library", 403 | "extra": { 404 | "branch-alias": { 405 | "dev-master": "5.4-dev" 406 | } 407 | }, 408 | "autoload": { 409 | "files": [ 410 | "lib/swift_required.php" 411 | ] 412 | }, 413 | "notification-url": "https://packagist.org/downloads/", 414 | "license": [ 415 | "MIT" 416 | ], 417 | "authors": [ 418 | { 419 | "name": "Chris Corbyn" 420 | }, 421 | { 422 | "name": "Fabien Potencier", 423 | "email": "fabien@symfony.com" 424 | } 425 | ], 426 | "description": "Swiftmailer, free feature-rich PHP mailer", 427 | "homepage": "http://swiftmailer.org", 428 | "keywords": [ 429 | "email", 430 | "mail", 431 | "mailer" 432 | ], 433 | "time": "2017-05-01T15:54:03+00:00" 434 | }, 435 | { 436 | "name": "vlucas/phpdotenv", 437 | "version": "v1.0.9", 438 | "source": { 439 | "type": "git", 440 | "url": "https://github.com/vlucas/phpdotenv.git", 441 | "reference": "56c252d48dce336da97926591aed71805203815b" 442 | }, 443 | "dist": { 444 | "type": "zip", 445 | "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/56c252d48dce336da97926591aed71805203815b", 446 | "reference": "56c252d48dce336da97926591aed71805203815b", 447 | "shasum": "" 448 | }, 449 | "require": { 450 | "php": ">=5.3.2" 451 | }, 452 | "require-dev": { 453 | "phpunit/phpunit": "~4.0" 454 | }, 455 | "type": "library", 456 | "extra": { 457 | "branch-alias": { 458 | "dev-master": "1.0-dev" 459 | } 460 | }, 461 | "autoload": { 462 | "psr-0": { 463 | "Dotenv": "src/" 464 | } 465 | }, 466 | "notification-url": "https://packagist.org/downloads/", 467 | "license": [ 468 | "BSD" 469 | ], 470 | "authors": [ 471 | { 472 | "name": "Vance Lucas", 473 | "email": "vance@vancelucas.com", 474 | "homepage": "http://www.vancelucas.com" 475 | } 476 | ], 477 | "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", 478 | "homepage": "http://github.com/vlucas/phpdotenv", 479 | "keywords": [ 480 | "dotenv", 481 | "env", 482 | "environment" 483 | ], 484 | "time": "2014-10-16T14:50:21+00:00" 485 | }, 486 | { 487 | "name": "yiisoft/yii2", 488 | "version": "2.0.13.1", 489 | "source": { 490 | "type": "git", 491 | "url": "https://github.com/yiisoft/yii2-framework.git", 492 | "reference": "7af96d8da5ea3e9a5dd05d0e734b21c5726a6ddf" 493 | }, 494 | "dist": { 495 | "type": "zip", 496 | "url": "https://api.github.com/repos/yiisoft/yii2-framework/zipball/7af96d8da5ea3e9a5dd05d0e734b21c5726a6ddf", 497 | "reference": "7af96d8da5ea3e9a5dd05d0e734b21c5726a6ddf", 498 | "shasum": "" 499 | }, 500 | "require": { 501 | "bower-asset/inputmask": "~3.2.2 | ~3.3.5", 502 | "bower-asset/jquery": "3.2.*@stable | 3.1.*@stable | 2.2.*@stable | 2.1.*@stable | 1.11.*@stable | 1.12.*@stable", 503 | "bower-asset/punycode": "1.3.*", 504 | "bower-asset/yii2-pjax": "~2.0.1", 505 | "cebe/markdown": "~1.0.0 | ~1.1.0", 506 | "ext-ctype": "*", 507 | "ext-mbstring": "*", 508 | "ezyang/htmlpurifier": "~4.6", 509 | "lib-pcre": "*", 510 | "php": ">=5.4.0", 511 | "yiisoft/yii2-composer": "~2.0.4" 512 | }, 513 | "bin": [ 514 | "yii" 515 | ], 516 | "type": "library", 517 | "extra": { 518 | "branch-alias": { 519 | "dev-master": "2.0.x-dev" 520 | } 521 | }, 522 | "autoload": { 523 | "psr-4": { 524 | "yii\\": "" 525 | } 526 | }, 527 | "notification-url": "https://packagist.org/downloads/", 528 | "license": [ 529 | "BSD-3-Clause" 530 | ], 531 | "authors": [ 532 | { 533 | "name": "Qiang Xue", 534 | "email": "qiang.xue@gmail.com", 535 | "homepage": "http://www.yiiframework.com/", 536 | "role": "Founder and project lead" 537 | }, 538 | { 539 | "name": "Alexander Makarov", 540 | "email": "sam@rmcreative.ru", 541 | "homepage": "http://rmcreative.ru/", 542 | "role": "Core framework development" 543 | }, 544 | { 545 | "name": "Maurizio Domba", 546 | "homepage": "http://mdomba.info/", 547 | "role": "Core framework development" 548 | }, 549 | { 550 | "name": "Carsten Brandt", 551 | "email": "mail@cebe.cc", 552 | "homepage": "http://cebe.cc/", 553 | "role": "Core framework development" 554 | }, 555 | { 556 | "name": "Timur Ruziev", 557 | "email": "resurtm@gmail.com", 558 | "homepage": "http://resurtm.com/", 559 | "role": "Core framework development" 560 | }, 561 | { 562 | "name": "Paul Klimov", 563 | "email": "klimov.paul@gmail.com", 564 | "role": "Core framework development" 565 | }, 566 | { 567 | "name": "Dmitry Naumenko", 568 | "email": "d.naumenko.a@gmail.com", 569 | "role": "Core framework development" 570 | }, 571 | { 572 | "name": "Boudewijn Vahrmeijer", 573 | "email": "info@dynasource.eu", 574 | "homepage": "http://dynasource.eu", 575 | "role": "Core framework development" 576 | } 577 | ], 578 | "description": "Yii PHP Framework Version 2", 579 | "homepage": "http://www.yiiframework.com/", 580 | "keywords": [ 581 | "framework", 582 | "yii2" 583 | ], 584 | "time": "2017-11-14T11:08:21+00:00" 585 | }, 586 | { 587 | "name": "yiisoft/yii2-bootstrap", 588 | "version": "2.0.7", 589 | "source": { 590 | "type": "git", 591 | "url": "https://github.com/yiisoft/yii2-bootstrap.git", 592 | "reference": "02a54d868343ed11d02f0f0f8cbbecb590e0cb3f" 593 | }, 594 | "dist": { 595 | "type": "zip", 596 | "url": "https://api.github.com/repos/yiisoft/yii2-bootstrap/zipball/02a54d868343ed11d02f0f0f8cbbecb590e0cb3f", 597 | "reference": "02a54d868343ed11d02f0f0f8cbbecb590e0cb3f", 598 | "shasum": "" 599 | }, 600 | "require": { 601 | "bower-asset/bootstrap": "3.3.* | 3.2.* | 3.1.*", 602 | "yiisoft/yii2": "~2.0.6" 603 | }, 604 | "type": "yii2-extension", 605 | "extra": { 606 | "branch-alias": { 607 | "dev-master": "2.0.x-dev" 608 | } 609 | }, 610 | "autoload": { 611 | "psr-4": { 612 | "yii\\bootstrap\\": "" 613 | } 614 | }, 615 | "notification-url": "https://packagist.org/downloads/", 616 | "license": [ 617 | "BSD-3-Clause" 618 | ], 619 | "authors": [ 620 | { 621 | "name": "Qiang Xue", 622 | "email": "qiang.xue@gmail.com" 623 | } 624 | ], 625 | "description": "The Twitter Bootstrap extension for the Yii framework", 626 | "keywords": [ 627 | "bootstrap", 628 | "yii2" 629 | ], 630 | "time": "2017-10-09T19:48:22+00:00" 631 | }, 632 | { 633 | "name": "yiisoft/yii2-composer", 634 | "version": "2.0.5", 635 | "source": { 636 | "type": "git", 637 | "url": "https://github.com/yiisoft/yii2-composer.git", 638 | "reference": "3f4923c2bde6caf3f5b88cc22fdd5770f52f8df2" 639 | }, 640 | "dist": { 641 | "type": "zip", 642 | "url": "https://api.github.com/repos/yiisoft/yii2-composer/zipball/3f4923c2bde6caf3f5b88cc22fdd5770f52f8df2", 643 | "reference": "3f4923c2bde6caf3f5b88cc22fdd5770f52f8df2", 644 | "shasum": "" 645 | }, 646 | "require": { 647 | "composer-plugin-api": "^1.0" 648 | }, 649 | "require-dev": { 650 | "composer/composer": "^1.0" 651 | }, 652 | "type": "composer-plugin", 653 | "extra": { 654 | "class": "yii\\composer\\Plugin", 655 | "branch-alias": { 656 | "dev-master": "2.0.x-dev" 657 | } 658 | }, 659 | "autoload": { 660 | "psr-4": { 661 | "yii\\composer\\": "" 662 | } 663 | }, 664 | "notification-url": "https://packagist.org/downloads/", 665 | "license": [ 666 | "BSD-3-Clause" 667 | ], 668 | "authors": [ 669 | { 670 | "name": "Qiang Xue", 671 | "email": "qiang.xue@gmail.com" 672 | } 673 | ], 674 | "description": "The composer plugin for Yii extension installer", 675 | "keywords": [ 676 | "composer", 677 | "extension installer", 678 | "yii2" 679 | ], 680 | "time": "2016-12-20T13:26:02+00:00" 681 | }, 682 | { 683 | "name": "yiisoft/yii2-jui", 684 | "version": "2.0.6", 685 | "source": { 686 | "type": "git", 687 | "url": "https://github.com/yiisoft/yii2-jui.git", 688 | "reference": "843a2160cfe30f5c8b0cb2e9dbd8ee6bcf97e71d" 689 | }, 690 | "dist": { 691 | "type": "zip", 692 | "url": "https://api.github.com/repos/yiisoft/yii2-jui/zipball/843a2160cfe30f5c8b0cb2e9dbd8ee6bcf97e71d", 693 | "reference": "843a2160cfe30f5c8b0cb2e9dbd8ee6bcf97e71d", 694 | "shasum": "" 695 | }, 696 | "require": { 697 | "bower-asset/jquery-ui": "1.11.*@stable", 698 | "yiisoft/yii2": ">=2.0.4" 699 | }, 700 | "type": "yii2-extension", 701 | "extra": { 702 | "branch-alias": { 703 | "dev-master": "2.0.x-dev" 704 | }, 705 | "asset-installer-paths": { 706 | "npm-asset-library": "vendor/npm", 707 | "bower-asset-library": "vendor/bower" 708 | } 709 | }, 710 | "autoload": { 711 | "psr-4": { 712 | "yii\\jui\\": "" 713 | } 714 | }, 715 | "notification-url": "https://packagist.org/downloads/", 716 | "license": [ 717 | "BSD-3-Clause" 718 | ], 719 | "authors": [ 720 | { 721 | "name": "Qiang Xue", 722 | "email": "qiang.xue@gmail.com" 723 | } 724 | ], 725 | "description": "The Jquery UI extension for the Yii framework", 726 | "keywords": [ 727 | "jQuery UI", 728 | "yii2" 729 | ], 730 | "time": "2016-07-22T22:26:59+00:00" 731 | }, 732 | { 733 | "name": "yiisoft/yii2-swiftmailer", 734 | "version": "2.0.7", 735 | "source": { 736 | "type": "git", 737 | "url": "https://github.com/yiisoft/yii2-swiftmailer.git", 738 | "reference": "8a03a62cbcb82e7697d3002eb43a8d2637f566ec" 739 | }, 740 | "dist": { 741 | "type": "zip", 742 | "url": "https://api.github.com/repos/yiisoft/yii2-swiftmailer/zipball/8a03a62cbcb82e7697d3002eb43a8d2637f566ec", 743 | "reference": "8a03a62cbcb82e7697d3002eb43a8d2637f566ec", 744 | "shasum": "" 745 | }, 746 | "require": { 747 | "swiftmailer/swiftmailer": "~5.0", 748 | "yiisoft/yii2": "~2.0.4" 749 | }, 750 | "type": "yii2-extension", 751 | "extra": { 752 | "branch-alias": { 753 | "dev-master": "2.0.x-dev" 754 | } 755 | }, 756 | "autoload": { 757 | "psr-4": { 758 | "yii\\swiftmailer\\": "" 759 | } 760 | }, 761 | "notification-url": "https://packagist.org/downloads/", 762 | "license": [ 763 | "BSD-3-Clause" 764 | ], 765 | "authors": [ 766 | { 767 | "name": "Paul Klimov", 768 | "email": "klimov.paul@gmail.com" 769 | } 770 | ], 771 | "description": "The SwiftMailer integration for the Yii framework", 772 | "keywords": [ 773 | "email", 774 | "mail", 775 | "mailer", 776 | "swift", 777 | "swiftmailer", 778 | "yii2" 779 | ], 780 | "time": "2017-05-01T08:29:00+00:00" 781 | } 782 | ], 783 | "packages-dev": [ 784 | { 785 | "name": "bower-asset/typeahead.js", 786 | "version": "v0.11.1", 787 | "source": { 788 | "type": "git", 789 | "url": "https://github.com/twitter/typeahead.js.git", 790 | "reference": "588440f66559714280628a4f9799f0c4eb880a4a" 791 | }, 792 | "dist": { 793 | "type": "zip", 794 | "url": "https://api.github.com/repos/twitter/typeahead.js/zipball/588440f66559714280628a4f9799f0c4eb880a4a", 795 | "reference": "588440f66559714280628a4f9799f0c4eb880a4a", 796 | "shasum": "" 797 | }, 798 | "require": { 799 | "bower-asset/jquery": ">=1.7" 800 | }, 801 | "require-dev": { 802 | "bower-asset/jasmine-ajax": "~1.3.1", 803 | "bower-asset/jasmine-jquery": "~1.5.2", 804 | "bower-asset/jquery": "~1.7" 805 | }, 806 | "type": "bower-asset-library", 807 | "extra": { 808 | "bower-asset-main": "dist/typeahead.bundle.js" 809 | } 810 | }, 811 | { 812 | "name": "fzaninotto/faker", 813 | "version": "v1.7.1", 814 | "source": { 815 | "type": "git", 816 | "url": "https://github.com/fzaninotto/Faker.git", 817 | "reference": "d3ed4cc37051c1ca52d22d76b437d14809fc7e0d" 818 | }, 819 | "dist": { 820 | "type": "zip", 821 | "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/d3ed4cc37051c1ca52d22d76b437d14809fc7e0d", 822 | "reference": "d3ed4cc37051c1ca52d22d76b437d14809fc7e0d", 823 | "shasum": "" 824 | }, 825 | "require": { 826 | "php": "^5.3.3 || ^7.0" 827 | }, 828 | "require-dev": { 829 | "ext-intl": "*", 830 | "phpunit/phpunit": "^4.0 || ^5.0", 831 | "squizlabs/php_codesniffer": "^1.5" 832 | }, 833 | "type": "library", 834 | "extra": { 835 | "branch-alias": { 836 | "dev-master": "1.8-dev" 837 | } 838 | }, 839 | "autoload": { 840 | "psr-4": { 841 | "Faker\\": "src/Faker/" 842 | } 843 | }, 844 | "notification-url": "https://packagist.org/downloads/", 845 | "license": [ 846 | "MIT" 847 | ], 848 | "authors": [ 849 | { 850 | "name": "François Zaninotto" 851 | } 852 | ], 853 | "description": "Faker is a PHP library that generates fake data for you.", 854 | "keywords": [ 855 | "data", 856 | "faker", 857 | "fixtures" 858 | ], 859 | "time": "2017-08-15T16:48:10+00:00" 860 | }, 861 | { 862 | "name": "phpspec/php-diff", 863 | "version": "v1.1.0", 864 | "source": { 865 | "type": "git", 866 | "url": "https://github.com/phpspec/php-diff.git", 867 | "reference": "0464787bfa7cd13576c5a1e318709768798bec6a" 868 | }, 869 | "dist": { 870 | "type": "zip", 871 | "url": "https://api.github.com/repos/phpspec/php-diff/zipball/0464787bfa7cd13576c5a1e318709768798bec6a", 872 | "reference": "0464787bfa7cd13576c5a1e318709768798bec6a", 873 | "shasum": "" 874 | }, 875 | "type": "library", 876 | "extra": { 877 | "branch-alias": { 878 | "dev-master": "1.0.x-dev" 879 | } 880 | }, 881 | "autoload": { 882 | "psr-0": { 883 | "Diff": "lib/" 884 | } 885 | }, 886 | "notification-url": "https://packagist.org/downloads/", 887 | "license": [ 888 | "BSD-3-Clause" 889 | ], 890 | "authors": [ 891 | { 892 | "name": "Chris Boulton", 893 | "homepage": "http://github.com/chrisboulton" 894 | } 895 | ], 896 | "description": "A comprehensive library for generating differences between two hashable objects (strings or arrays).", 897 | "time": "2016-04-07T12:29:16+00:00" 898 | }, 899 | { 900 | "name": "yiisoft/yii2-codeception", 901 | "version": "2.0.6", 902 | "source": { 903 | "type": "git", 904 | "url": "https://github.com/yiisoft/yii2-codeception.git", 905 | "reference": "086c8c2d28736e7a484a7a8611b5cc84024e9fb3" 906 | }, 907 | "dist": { 908 | "type": "zip", 909 | "url": "https://api.github.com/repos/yiisoft/yii2-codeception/zipball/086c8c2d28736e7a484a7a8611b5cc84024e9fb3", 910 | "reference": "086c8c2d28736e7a484a7a8611b5cc84024e9fb3", 911 | "shasum": "" 912 | }, 913 | "require": { 914 | "yiisoft/yii2": ">=2.0.4" 915 | }, 916 | "type": "yii2-extension", 917 | "extra": { 918 | "branch-alias": { 919 | "dev-master": "2.0.x-dev" 920 | } 921 | }, 922 | "autoload": { 923 | "psr-4": { 924 | "yii\\codeception\\": "" 925 | } 926 | }, 927 | "notification-url": "https://packagist.org/downloads/", 928 | "license": [ 929 | "BSD-3-Clause" 930 | ], 931 | "authors": [ 932 | { 933 | "name": "Mark Jebri", 934 | "email": "mark.github@yandex.ru" 935 | } 936 | ], 937 | "description": "The Codeception integration for the Yii framework", 938 | "keywords": [ 939 | "codeception", 940 | "yii2" 941 | ], 942 | "abandoned": "codeception/codeception", 943 | "time": "2017-05-22T12:08:21+00:00" 944 | }, 945 | { 946 | "name": "yiisoft/yii2-debug", 947 | "version": "2.0.12", 948 | "source": { 949 | "type": "git", 950 | "url": "https://github.com/yiisoft/yii2-debug.git", 951 | "reference": "93082f46d3568b4431a26f264e0d16a12c42bd50" 952 | }, 953 | "dist": { 954 | "type": "zip", 955 | "url": "https://api.github.com/repos/yiisoft/yii2-debug/zipball/93082f46d3568b4431a26f264e0d16a12c42bd50", 956 | "reference": "93082f46d3568b4431a26f264e0d16a12c42bd50", 957 | "shasum": "" 958 | }, 959 | "require": { 960 | "yiisoft/yii2": "~2.0.11", 961 | "yiisoft/yii2-bootstrap": "~2.0.0" 962 | }, 963 | "type": "yii2-extension", 964 | "extra": { 965 | "branch-alias": { 966 | "dev-master": "2.0.x-dev" 967 | } 968 | }, 969 | "autoload": { 970 | "psr-4": { 971 | "yii\\debug\\": "" 972 | } 973 | }, 974 | "notification-url": "https://packagist.org/downloads/", 975 | "license": [ 976 | "BSD-3-Clause" 977 | ], 978 | "authors": [ 979 | { 980 | "name": "Qiang Xue", 981 | "email": "qiang.xue@gmail.com" 982 | } 983 | ], 984 | "description": "The debugger extension for the Yii framework", 985 | "keywords": [ 986 | "debug", 987 | "debugger", 988 | "yii2" 989 | ], 990 | "time": "2017-10-09T20:30:01+00:00" 991 | }, 992 | { 993 | "name": "yiisoft/yii2-faker", 994 | "version": "2.0.3", 995 | "source": { 996 | "type": "git", 997 | "url": "https://github.com/yiisoft/yii2-faker.git", 998 | "reference": "b88ca69ee226a3610b2c26c026c3203d7ac50f6c" 999 | }, 1000 | "dist": { 1001 | "type": "zip", 1002 | "url": "https://api.github.com/repos/yiisoft/yii2-faker/zipball/b88ca69ee226a3610b2c26c026c3203d7ac50f6c", 1003 | "reference": "b88ca69ee226a3610b2c26c026c3203d7ac50f6c", 1004 | "shasum": "" 1005 | }, 1006 | "require": { 1007 | "fzaninotto/faker": "*", 1008 | "yiisoft/yii2": "*" 1009 | }, 1010 | "type": "yii2-extension", 1011 | "extra": { 1012 | "branch-alias": { 1013 | "dev-master": "2.0.x-dev" 1014 | } 1015 | }, 1016 | "autoload": { 1017 | "psr-4": { 1018 | "yii\\faker\\": "" 1019 | } 1020 | }, 1021 | "notification-url": "https://packagist.org/downloads/", 1022 | "license": [ 1023 | "BSD-3-Clause" 1024 | ], 1025 | "authors": [ 1026 | { 1027 | "name": "Mark Jebri", 1028 | "email": "mark.github@yandex.ru" 1029 | } 1030 | ], 1031 | "description": "Fixture generator. The Faker integration for the Yii framework.", 1032 | "keywords": [ 1033 | "Fixture", 1034 | "faker", 1035 | "yii2" 1036 | ], 1037 | "time": "2015-03-01T06:22:44+00:00" 1038 | }, 1039 | { 1040 | "name": "yiisoft/yii2-gii", 1041 | "version": "2.0.5", 1042 | "source": { 1043 | "type": "git", 1044 | "url": "https://github.com/yiisoft/yii2-gii.git", 1045 | "reference": "1bd6df6804ca077ec022587905a0d43eb286f507" 1046 | }, 1047 | "dist": { 1048 | "type": "zip", 1049 | "url": "https://api.github.com/repos/yiisoft/yii2-gii/zipball/1bd6df6804ca077ec022587905a0d43eb286f507", 1050 | "reference": "1bd6df6804ca077ec022587905a0d43eb286f507", 1051 | "shasum": "" 1052 | }, 1053 | "require": { 1054 | "bower-asset/typeahead.js": "0.10.* | ~0.11.0", 1055 | "phpspec/php-diff": ">=1.0.2", 1056 | "yiisoft/yii2": ">=2.0.4", 1057 | "yiisoft/yii2-bootstrap": "~2.0" 1058 | }, 1059 | "type": "yii2-extension", 1060 | "extra": { 1061 | "branch-alias": { 1062 | "dev-master": "2.0.x-dev" 1063 | }, 1064 | "asset-installer-paths": { 1065 | "npm-asset-library": "vendor/npm", 1066 | "bower-asset-library": "vendor/bower" 1067 | } 1068 | }, 1069 | "autoload": { 1070 | "psr-4": { 1071 | "yii\\gii\\": "" 1072 | } 1073 | }, 1074 | "notification-url": "https://packagist.org/downloads/", 1075 | "license": [ 1076 | "BSD-3-Clause" 1077 | ], 1078 | "authors": [ 1079 | { 1080 | "name": "Qiang Xue", 1081 | "email": "qiang.xue@gmail.com" 1082 | } 1083 | ], 1084 | "description": "The Gii extension for the Yii framework", 1085 | "keywords": [ 1086 | "code generator", 1087 | "gii", 1088 | "yii2" 1089 | ], 1090 | "time": "2016-03-18T14:09:46+00:00" 1091 | } 1092 | ], 1093 | "aliases": [], 1094 | "minimum-stability": "stable", 1095 | "stability-flags": [], 1096 | "prefer-stable": false, 1097 | "prefer-lowest": false, 1098 | "platform": { 1099 | "php": ">=5.4.0" 1100 | }, 1101 | "platform-dev": [] 1102 | } 1103 | -------------------------------------------------------------------------------- /2.0/hhvm/nginx/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM nginx:1.7.10 2 | COPY nginx.conf /etc/nginx/nginx.conf 3 | -------------------------------------------------------------------------------- /2.0/hhvm/nginx/nginx.conf: -------------------------------------------------------------------------------- 1 | 2 | user nginx; 3 | worker_processes 1; 4 | 5 | error_log /var/log/nginx/error.log warn; 6 | pid /var/run/nginx.pid; 7 | 8 | events { 9 | worker_connections 1024; 10 | } 11 | 12 | 13 | http { 14 | include /etc/nginx/mime.types; 15 | default_type application/octet-stream; 16 | 17 | log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 18 | '$status $body_bytes_sent "$http_referer" ' 19 | '"$http_user_agent" "$http_x_forwarded_for"'; 20 | 21 | access_log /var/log/nginx/access.log main; 22 | 23 | sendfile on; 24 | #tcp_nopush on; 25 | 26 | keepalive_timeout 65; 27 | 28 | #gzip on; 29 | 30 | server { 31 | charset utf-8; 32 | client_max_body_size 128M; 33 | 34 | listen 80; 35 | 36 | root /var/www/html/web; 37 | index index.php; 38 | 39 | location / { 40 | # Redirect everything that isn't a real file to index.php 41 | try_files $uri $uri/ /index.php?$args; 42 | } 43 | 44 | # uncomment to avoid processing of calls to non-existing static files by Yii 45 | location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ { 46 | try_files $uri =404; 47 | } 48 | 49 | location ~ \.php$ { 50 | include fastcgi_params; 51 | fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; 52 | fastcgi_pass app:9000; 53 | try_files $uri =404; 54 | } 55 | 56 | location ~ /\.(ht|svn|git) { 57 | deny all; 58 | } 59 | } 60 | 61 | } 62 | -------------------------------------------------------------------------------- /2.0/php-fpm/.dockerignore: -------------------------------------------------------------------------------- 1 | Dockerfile 2 | -------------------------------------------------------------------------------- /2.0/php-fpm/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:5.6.18-fpm 2 | 3 | MAINTAINER haertl.mike@gmail.com 4 | 5 | ENV PATH $PATH:/root/.composer/vendor/bin 6 | 7 | # PHP extensions come first, as they are less likely to change between Yii releases 8 | RUN apt-get update \ 9 | && apt-get -y install \ 10 | git \ 11 | g++ \ 12 | libicu-dev \ 13 | libmcrypt-dev \ 14 | zlib1g-dev \ 15 | --no-install-recommends \ 16 | 17 | # Install PHP extensions 18 | && docker-php-ext-install intl \ 19 | && docker-php-ext-install pdo_mysql \ 20 | && docker-php-ext-install mbstring \ 21 | && docker-php-ext-install mcrypt \ 22 | && docker-php-ext-install opcache \ 23 | && docker-php-ext-install zip \ 24 | && pecl install apcu-4.0.11 && echo extension=apcu.so > /usr/local/etc/php/conf.d/apcu.ini \ 25 | 26 | && apt-get purge -y g++ \ 27 | && apt-get autoremove -y \ 28 | && rm -r /var/lib/apt/lists/* \ 29 | 30 | # Don't clear our valuable environment vars in PHP 31 | && echo "\nclear_env = no" >> /usr/local/etc/php-fpm.conf \ 32 | 33 | # Fix write permissions with shared folders 34 | && usermod -u 1000 www-data 35 | 36 | # Next composer and global composer package, as their versions may change from time to time 37 | RUN curl -sS https://getcomposer.org/installer | php \ 38 | && mv composer.phar /usr/local/bin/composer.phar \ 39 | && composer.phar global require --no-progress "fxp/composer-asset-plugin:~1.4.2" \ 40 | && composer.phar global require --no-progress "codeception/codeception=2.0.*" \ 41 | && composer.phar global require --no-progress "codeception/specify=*" \ 42 | && composer.phar global require --no-progress "codeception/verify=*" 43 | 44 | # Nginx example config and composer wrapper 45 | COPY nginx /opt/nginx 46 | COPY composer /usr/local/bin/composer 47 | 48 | WORKDIR /var/www/html 49 | 50 | # Composer packages are installed outside the app directory /var/www/html. 51 | # This way developers can mount the source code from their host directory 52 | # into /var/www/html and won't end up with an empty vendors/ directory. 53 | COPY composer.json /var/www/html/ 54 | COPY composer.lock /var/www/html/ 55 | RUN composer install --prefer-dist --no-progress \ 56 | && rm composer.* 57 | -------------------------------------------------------------------------------- /2.0/php-fpm/Dockerfile.php7: -------------------------------------------------------------------------------- 1 | FROM php:7.0.8-fpm 2 | 3 | MAINTAINER haertl.mike@gmail.com 4 | 5 | ENV PATH $PATH:/root/.composer/vendor/bin 6 | 7 | # PHP extensions come first, as they are less likely to change between Yii releases 8 | RUN apt-get update \ 9 | && apt-get -y install \ 10 | git \ 11 | g++ \ 12 | libicu-dev \ 13 | libmcrypt-dev \ 14 | zlib1g-dev \ 15 | --no-install-recommends \ 16 | 17 | # Install PHP extensions 18 | && docker-php-ext-install intl \ 19 | && docker-php-ext-install pdo_mysql \ 20 | && docker-php-ext-install mbstring \ 21 | && docker-php-ext-install mcrypt \ 22 | && docker-php-ext-install opcache \ 23 | && docker-php-ext-install zip \ 24 | && pecl install apcu-5.1.8 && echo extension=apcu.so > /usr/local/etc/php/conf.d/apcu.ini \ 25 | 26 | && apt-get purge -y g++ \ 27 | && apt-get autoremove -y \ 28 | && rm -r /var/lib/apt/lists/* \ 29 | 30 | # Don't clear our valuable environment vars in PHP 31 | && echo "\nclear_env = no" >> /usr/local/etc/php-fpm.conf \ 32 | 33 | # Fix write permissions with shared folders 34 | && usermod -u 1000 www-data 35 | 36 | # Next composer and global composer package, as their versions may change from time to time 37 | RUN curl -sS https://getcomposer.org/installer | php \ 38 | && mv composer.phar /usr/local/bin/composer.phar \ 39 | && composer.phar global require --no-progress "fxp/composer-asset-plugin:~1.4.2" \ 40 | && composer.phar global require --no-progress "codeception/codeception=2.0.*" \ 41 | && composer.phar global require --no-progress "codeception/specify=*" \ 42 | && composer.phar global require --no-progress "codeception/verify=*" 43 | 44 | # Nginx example config and composer wrapper 45 | COPY nginx /opt/nginx 46 | COPY composer /usr/local/bin/composer 47 | 48 | WORKDIR /var/www/html 49 | 50 | # Composer packages are installed outside the app directory /var/www/html. 51 | # This way developers can mount the source code from their host directory 52 | # into /var/www/html and won't end up with an empty vendors/ directory. 53 | COPY composer.json /var/www/html/ 54 | COPY composer.lock /var/www/html/ 55 | RUN composer install --prefer-dist --no-progress \ 56 | && rm composer.* 57 | -------------------------------------------------------------------------------- /2.0/php-fpm/composer: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ -n "$API_TOKEN" ] 4 | then 5 | php /usr/local/bin/composer.phar config -g github-oauth.github.com $API_TOKEN 6 | fi 7 | 8 | exec php /usr/local/bin/composer.phar "$@" 9 | -------------------------------------------------------------------------------- /2.0/php-fpm/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mikehaertl/yii2-dockerbase", 3 | "description": "A base docker image for yii2 based docker projects", 4 | "keywords": ["yii2", "framework", "docker"], 5 | "type": "project", 6 | "license": "MIT", 7 | "minimum-stability": "stable", 8 | "require": { 9 | "php": ">=5.4.0", 10 | "yiisoft/yii2": "2.0.13.1", 11 | "yiisoft/yii2-bootstrap": "~2.0.0", 12 | "yiisoft/yii2-jui": "~2.0.0", 13 | "yiisoft/yii2-swiftmailer": "~2.0.0", 14 | "vlucas/phpdotenv": "1.0.*", 15 | "codemix/yii2-streamlog": "1.1.0" 16 | }, 17 | "require-dev": { 18 | "yiisoft/yii2-debug": "~2.0.0", 19 | "yiisoft/yii2-gii": "~2.0.0", 20 | "yiisoft/yii2-codeception": "~2.0.0", 21 | "yiisoft/yii2-faker": "~2.0.0" 22 | }, 23 | "config": { 24 | "process-timeout": 1800, 25 | "vendor-dir": "/var/www/vendor" 26 | }, 27 | "extra": { 28 | "asset-installer-paths": { 29 | "npm-asset-library": "/var/www/vendor/npm", 30 | "bower-asset-library": "/var/www/vendor/bower" 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /2.0/php-fpm/composer.lock: -------------------------------------------------------------------------------- 1 | { 2 | "_readme": [ 3 | "This file locks the dependencies of your project to a known state", 4 | "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", 5 | "This file is @generated automatically" 6 | ], 7 | "content-hash": "c5327b39307e2aeb84c7f5ab216e699a", 8 | "packages": [ 9 | { 10 | "name": "bower-asset/bootstrap", 11 | "version": "v3.3.7", 12 | "source": { 13 | "type": "git", 14 | "url": "https://github.com/twbs/bootstrap.git", 15 | "reference": "0b9c4a4007c44201dce9a6cc1a38407005c26c86" 16 | }, 17 | "dist": { 18 | "type": "zip", 19 | "url": "https://api.github.com/repos/twbs/bootstrap/zipball/0b9c4a4007c44201dce9a6cc1a38407005c26c86", 20 | "reference": "0b9c4a4007c44201dce9a6cc1a38407005c26c86", 21 | "shasum": "" 22 | }, 23 | "require": { 24 | "bower-asset/jquery": ">=1.9.1,<4.0" 25 | }, 26 | "type": "bower-asset-library", 27 | "extra": { 28 | "bower-asset-main": [ 29 | "less/bootstrap.less", 30 | "dist/js/bootstrap.js" 31 | ], 32 | "bower-asset-ignore": [ 33 | "/.*", 34 | "_config.yml", 35 | "CNAME", 36 | "composer.json", 37 | "CONTRIBUTING.md", 38 | "docs", 39 | "js/tests", 40 | "test-infra" 41 | ] 42 | }, 43 | "license": [ 44 | "MIT" 45 | ], 46 | "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.", 47 | "keywords": [ 48 | "css", 49 | "framework", 50 | "front-end", 51 | "js", 52 | "less", 53 | "mobile-first", 54 | "responsive", 55 | "web" 56 | ] 57 | }, 58 | { 59 | "name": "bower-asset/inputmask", 60 | "version": "3.3.10", 61 | "source": { 62 | "type": "git", 63 | "url": "https://github.com/RobinHerbots/Inputmask.git", 64 | "reference": "14873e5775964275d13621cbe2b52e4448af3707" 65 | }, 66 | "dist": { 67 | "type": "zip", 68 | "url": "https://api.github.com/repos/RobinHerbots/Inputmask/zipball/14873e5775964275d13621cbe2b52e4448af3707", 69 | "reference": "14873e5775964275d13621cbe2b52e4448af3707", 70 | "shasum": "" 71 | }, 72 | "require": { 73 | "bower-asset/jquery": ">=1.7" 74 | }, 75 | "type": "bower-asset-library", 76 | "extra": { 77 | "bower-asset-main": [ 78 | "./dist/inputmask/inputmask.js", 79 | "./dist/inputmask/inputmask.extensions.js", 80 | "./dist/inputmask/inputmask.date.extensions.js", 81 | "./dist/inputmask/inputmask.numeric.extensions.js", 82 | "./dist/inputmask/inputmask.phone.extensions.js", 83 | "./dist/inputmask/jquery.inputmask.js", 84 | "./dist/inputmask/global/document.js", 85 | "./dist/inputmask/global/window.js", 86 | "./dist/inputmask/phone-codes/phone.js", 87 | "./dist/inputmask/phone-codes/phone-be.js", 88 | "./dist/inputmask/phone-codes/phone-nl.js", 89 | "./dist/inputmask/phone-codes/phone-ru.js", 90 | "./dist/inputmask/phone-codes/phone-uk.js", 91 | "./dist/inputmask/dependencyLibs/inputmask.dependencyLib.jqlite.js", 92 | "./dist/inputmask/dependencyLibs/inputmask.dependencyLib.jquery.js", 93 | "./dist/inputmask/dependencyLibs/inputmask.dependencyLib.js", 94 | "./dist/inputmask/bindings/inputmask.binding.js" 95 | ], 96 | "bower-asset-ignore": [ 97 | "**/*", 98 | "!dist/*", 99 | "!dist/inputmask/*", 100 | "!dist/min/*", 101 | "!dist/min/inputmask/*" 102 | ] 103 | }, 104 | "license": [ 105 | "http://opensource.org/licenses/mit-license.php" 106 | ], 107 | "description": "Inputmask is a javascript library which creates an input mask. Inputmask can run against vanilla javascript, jQuery and jqlite.", 108 | "keywords": [ 109 | "form", 110 | "input", 111 | "inputmask", 112 | "jquery", 113 | "mask", 114 | "plugins" 115 | ] 116 | }, 117 | { 118 | "name": "bower-asset/jquery", 119 | "version": "3.2.1", 120 | "source": { 121 | "type": "git", 122 | "url": "https://github.com/jquery/jquery-dist.git", 123 | "reference": "77d2a51d0520d2ee44173afdf4e40a9201f5964e" 124 | }, 125 | "dist": { 126 | "type": "zip", 127 | "url": "https://api.github.com/repos/jquery/jquery-dist/zipball/77d2a51d0520d2ee44173afdf4e40a9201f5964e", 128 | "reference": "77d2a51d0520d2ee44173afdf4e40a9201f5964e", 129 | "shasum": "" 130 | }, 131 | "type": "bower-asset-library", 132 | "extra": { 133 | "bower-asset-main": "dist/jquery.js", 134 | "bower-asset-ignore": [ 135 | "package.json" 136 | ] 137 | }, 138 | "license": [ 139 | "MIT" 140 | ], 141 | "keywords": [ 142 | "browser", 143 | "javascript", 144 | "jquery", 145 | "library" 146 | ] 147 | }, 148 | { 149 | "name": "bower-asset/jquery-ui", 150 | "version": "1.11.4", 151 | "source": { 152 | "type": "git", 153 | "url": "https://github.com/components/jqueryui.git", 154 | "reference": "c34f8dbf3ba57b3784b93f26119f436c0e8288e1" 155 | }, 156 | "dist": { 157 | "type": "zip", 158 | "url": "https://api.github.com/repos/components/jqueryui/zipball/c34f8dbf3ba57b3784b93f26119f436c0e8288e1", 159 | "reference": "c34f8dbf3ba57b3784b93f26119f436c0e8288e1", 160 | "shasum": "" 161 | }, 162 | "require": { 163 | "bower-asset/jquery": ">=1.6" 164 | }, 165 | "type": "bower-asset-library", 166 | "extra": { 167 | "bower-asset-main": [ 168 | "jquery-ui.js" 169 | ], 170 | "bower-asset-ignore": [] 171 | } 172 | }, 173 | { 174 | "name": "bower-asset/punycode", 175 | "version": "v1.3.2", 176 | "source": { 177 | "type": "git", 178 | "url": "https://github.com/bestiejs/punycode.js.git", 179 | "reference": "38c8d3131a82567bfef18da09f7f4db68c84f8a3" 180 | }, 181 | "dist": { 182 | "type": "zip", 183 | "url": "https://api.github.com/repos/bestiejs/punycode.js/zipball/38c8d3131a82567bfef18da09f7f4db68c84f8a3", 184 | "reference": "38c8d3131a82567bfef18da09f7f4db68c84f8a3", 185 | "shasum": "" 186 | }, 187 | "type": "bower-asset-library", 188 | "extra": { 189 | "bower-asset-main": "punycode.js", 190 | "bower-asset-ignore": [ 191 | "coverage", 192 | "tests", 193 | ".*", 194 | "component.json", 195 | "Gruntfile.js", 196 | "node_modules", 197 | "package.json" 198 | ] 199 | } 200 | }, 201 | { 202 | "name": "bower-asset/yii2-pjax", 203 | "version": "2.0.7.1", 204 | "source": { 205 | "type": "git", 206 | "url": "https://github.com/yiisoft/jquery-pjax.git", 207 | "reference": "aef7b953107264f00234902a3880eb50dafc48be" 208 | }, 209 | "dist": { 210 | "type": "zip", 211 | "url": "https://api.github.com/repos/yiisoft/jquery-pjax/zipball/aef7b953107264f00234902a3880eb50dafc48be", 212 | "reference": "aef7b953107264f00234902a3880eb50dafc48be", 213 | "shasum": "" 214 | }, 215 | "require": { 216 | "bower-asset/jquery": ">=1.8" 217 | }, 218 | "type": "bower-asset-library", 219 | "extra": { 220 | "bower-asset-main": "./jquery.pjax.js", 221 | "bower-asset-ignore": [ 222 | ".travis.yml", 223 | "Gemfile", 224 | "Gemfile.lock", 225 | "CONTRIBUTING.md", 226 | "vendor/", 227 | "script/", 228 | "test/" 229 | ] 230 | }, 231 | "license": [ 232 | "MIT" 233 | ] 234 | }, 235 | { 236 | "name": "cebe/markdown", 237 | "version": "1.1.2", 238 | "source": { 239 | "type": "git", 240 | "url": "https://github.com/cebe/markdown.git", 241 | "reference": "25b28bae8a6f185b5030673af77b32e1163d5c6e" 242 | }, 243 | "dist": { 244 | "type": "zip", 245 | "url": "https://api.github.com/repos/cebe/markdown/zipball/25b28bae8a6f185b5030673af77b32e1163d5c6e", 246 | "reference": "25b28bae8a6f185b5030673af77b32e1163d5c6e", 247 | "shasum": "" 248 | }, 249 | "require": { 250 | "lib-pcre": "*", 251 | "php": ">=5.4.0" 252 | }, 253 | "require-dev": { 254 | "cebe/indent": "*", 255 | "facebook/xhprof": "*@dev", 256 | "phpunit/phpunit": "4.1.*" 257 | }, 258 | "bin": [ 259 | "bin/markdown" 260 | ], 261 | "type": "library", 262 | "extra": { 263 | "branch-alias": { 264 | "dev-master": "1.1.x-dev" 265 | } 266 | }, 267 | "autoload": { 268 | "psr-4": { 269 | "cebe\\markdown\\": "" 270 | } 271 | }, 272 | "notification-url": "https://packagist.org/downloads/", 273 | "license": [ 274 | "MIT" 275 | ], 276 | "authors": [ 277 | { 278 | "name": "Carsten Brandt", 279 | "email": "mail@cebe.cc", 280 | "homepage": "http://cebe.cc/", 281 | "role": "Creator" 282 | } 283 | ], 284 | "description": "A super fast, highly extensible markdown parser for PHP", 285 | "homepage": "https://github.com/cebe/markdown#readme", 286 | "keywords": [ 287 | "extensible", 288 | "fast", 289 | "gfm", 290 | "markdown", 291 | "markdown-extra" 292 | ], 293 | "time": "2017-07-16T21:13:23+00:00" 294 | }, 295 | { 296 | "name": "codemix/yii2-streamlog", 297 | "version": "1.1.0", 298 | "source": { 299 | "type": "git", 300 | "url": "https://github.com/codemix/yii2-streamlog.git", 301 | "reference": "ba21038819d2c5190caa30f62f9c2408eb1b06d0" 302 | }, 303 | "dist": { 304 | "type": "zip", 305 | "url": "https://api.github.com/repos/codemix/yii2-streamlog/zipball/ba21038819d2c5190caa30f62f9c2408eb1b06d0", 306 | "reference": "ba21038819d2c5190caa30f62f9c2408eb1b06d0", 307 | "shasum": "" 308 | }, 309 | "type": "library", 310 | "autoload": { 311 | "psr-4": { 312 | "codemix\\streamlog\\": "src/" 313 | } 314 | }, 315 | "notification-url": "https://packagist.org/downloads/", 316 | "license": [ 317 | "MIT" 318 | ], 319 | "authors": [ 320 | { 321 | "name": "Michael Härtl", 322 | "email": "haertl.mike@gmail.com" 323 | } 324 | ], 325 | "description": "A Yii 2 log target for streams in URL format", 326 | "keywords": [ 327 | "log", 328 | "stdout", 329 | "stream", 330 | "yii2" 331 | ], 332 | "time": "2017-01-28T08:01:44+00:00" 333 | }, 334 | { 335 | "name": "ezyang/htmlpurifier", 336 | "version": "v4.9.3", 337 | "source": { 338 | "type": "git", 339 | "url": "https://github.com/ezyang/htmlpurifier.git", 340 | "reference": "95e1bae3182efc0f3422896a3236e991049dac69" 341 | }, 342 | "dist": { 343 | "type": "zip", 344 | "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/95e1bae3182efc0f3422896a3236e991049dac69", 345 | "reference": "95e1bae3182efc0f3422896a3236e991049dac69", 346 | "shasum": "" 347 | }, 348 | "require": { 349 | "php": ">=5.2" 350 | }, 351 | "require-dev": { 352 | "simpletest/simpletest": "^1.1" 353 | }, 354 | "type": "library", 355 | "autoload": { 356 | "psr-0": { 357 | "HTMLPurifier": "library/" 358 | }, 359 | "files": [ 360 | "library/HTMLPurifier.composer.php" 361 | ] 362 | }, 363 | "notification-url": "https://packagist.org/downloads/", 364 | "license": [ 365 | "LGPL" 366 | ], 367 | "authors": [ 368 | { 369 | "name": "Edward Z. Yang", 370 | "email": "admin@htmlpurifier.org", 371 | "homepage": "http://ezyang.com" 372 | } 373 | ], 374 | "description": "Standards compliant HTML filter written in PHP", 375 | "homepage": "http://htmlpurifier.org/", 376 | "keywords": [ 377 | "html" 378 | ], 379 | "time": "2017-06-03T02:28:16+00:00" 380 | }, 381 | { 382 | "name": "swiftmailer/swiftmailer", 383 | "version": "v5.4.8", 384 | "source": { 385 | "type": "git", 386 | "url": "https://github.com/swiftmailer/swiftmailer.git", 387 | "reference": "9a06dc570a0367850280eefd3f1dc2da45aef517" 388 | }, 389 | "dist": { 390 | "type": "zip", 391 | "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/9a06dc570a0367850280eefd3f1dc2da45aef517", 392 | "reference": "9a06dc570a0367850280eefd3f1dc2da45aef517", 393 | "shasum": "" 394 | }, 395 | "require": { 396 | "php": ">=5.3.3" 397 | }, 398 | "require-dev": { 399 | "mockery/mockery": "~0.9.1", 400 | "symfony/phpunit-bridge": "~3.2" 401 | }, 402 | "type": "library", 403 | "extra": { 404 | "branch-alias": { 405 | "dev-master": "5.4-dev" 406 | } 407 | }, 408 | "autoload": { 409 | "files": [ 410 | "lib/swift_required.php" 411 | ] 412 | }, 413 | "notification-url": "https://packagist.org/downloads/", 414 | "license": [ 415 | "MIT" 416 | ], 417 | "authors": [ 418 | { 419 | "name": "Chris Corbyn" 420 | }, 421 | { 422 | "name": "Fabien Potencier", 423 | "email": "fabien@symfony.com" 424 | } 425 | ], 426 | "description": "Swiftmailer, free feature-rich PHP mailer", 427 | "homepage": "http://swiftmailer.org", 428 | "keywords": [ 429 | "email", 430 | "mail", 431 | "mailer" 432 | ], 433 | "time": "2017-05-01T15:54:03+00:00" 434 | }, 435 | { 436 | "name": "vlucas/phpdotenv", 437 | "version": "v1.0.9", 438 | "source": { 439 | "type": "git", 440 | "url": "https://github.com/vlucas/phpdotenv.git", 441 | "reference": "56c252d48dce336da97926591aed71805203815b" 442 | }, 443 | "dist": { 444 | "type": "zip", 445 | "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/56c252d48dce336da97926591aed71805203815b", 446 | "reference": "56c252d48dce336da97926591aed71805203815b", 447 | "shasum": "" 448 | }, 449 | "require": { 450 | "php": ">=5.3.2" 451 | }, 452 | "require-dev": { 453 | "phpunit/phpunit": "~4.0" 454 | }, 455 | "type": "library", 456 | "extra": { 457 | "branch-alias": { 458 | "dev-master": "1.0-dev" 459 | } 460 | }, 461 | "autoload": { 462 | "psr-0": { 463 | "Dotenv": "src/" 464 | } 465 | }, 466 | "notification-url": "https://packagist.org/downloads/", 467 | "license": [ 468 | "BSD" 469 | ], 470 | "authors": [ 471 | { 472 | "name": "Vance Lucas", 473 | "email": "vance@vancelucas.com", 474 | "homepage": "http://www.vancelucas.com" 475 | } 476 | ], 477 | "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", 478 | "homepage": "http://github.com/vlucas/phpdotenv", 479 | "keywords": [ 480 | "dotenv", 481 | "env", 482 | "environment" 483 | ], 484 | "time": "2014-10-16T14:50:21+00:00" 485 | }, 486 | { 487 | "name": "yiisoft/yii2", 488 | "version": "2.0.13.1", 489 | "source": { 490 | "type": "git", 491 | "url": "https://github.com/yiisoft/yii2-framework.git", 492 | "reference": "7af96d8da5ea3e9a5dd05d0e734b21c5726a6ddf" 493 | }, 494 | "dist": { 495 | "type": "zip", 496 | "url": "https://api.github.com/repos/yiisoft/yii2-framework/zipball/7af96d8da5ea3e9a5dd05d0e734b21c5726a6ddf", 497 | "reference": "7af96d8da5ea3e9a5dd05d0e734b21c5726a6ddf", 498 | "shasum": "" 499 | }, 500 | "require": { 501 | "bower-asset/inputmask": "~3.2.2 | ~3.3.5", 502 | "bower-asset/jquery": "3.2.*@stable | 3.1.*@stable | 2.2.*@stable | 2.1.*@stable | 1.11.*@stable | 1.12.*@stable", 503 | "bower-asset/punycode": "1.3.*", 504 | "bower-asset/yii2-pjax": "~2.0.1", 505 | "cebe/markdown": "~1.0.0 | ~1.1.0", 506 | "ext-ctype": "*", 507 | "ext-mbstring": "*", 508 | "ezyang/htmlpurifier": "~4.6", 509 | "lib-pcre": "*", 510 | "php": ">=5.4.0", 511 | "yiisoft/yii2-composer": "~2.0.4" 512 | }, 513 | "bin": [ 514 | "yii" 515 | ], 516 | "type": "library", 517 | "extra": { 518 | "branch-alias": { 519 | "dev-master": "2.0.x-dev" 520 | } 521 | }, 522 | "autoload": { 523 | "psr-4": { 524 | "yii\\": "" 525 | } 526 | }, 527 | "notification-url": "https://packagist.org/downloads/", 528 | "license": [ 529 | "BSD-3-Clause" 530 | ], 531 | "authors": [ 532 | { 533 | "name": "Qiang Xue", 534 | "email": "qiang.xue@gmail.com", 535 | "homepage": "http://www.yiiframework.com/", 536 | "role": "Founder and project lead" 537 | }, 538 | { 539 | "name": "Alexander Makarov", 540 | "email": "sam@rmcreative.ru", 541 | "homepage": "http://rmcreative.ru/", 542 | "role": "Core framework development" 543 | }, 544 | { 545 | "name": "Maurizio Domba", 546 | "homepage": "http://mdomba.info/", 547 | "role": "Core framework development" 548 | }, 549 | { 550 | "name": "Carsten Brandt", 551 | "email": "mail@cebe.cc", 552 | "homepage": "http://cebe.cc/", 553 | "role": "Core framework development" 554 | }, 555 | { 556 | "name": "Timur Ruziev", 557 | "email": "resurtm@gmail.com", 558 | "homepage": "http://resurtm.com/", 559 | "role": "Core framework development" 560 | }, 561 | { 562 | "name": "Paul Klimov", 563 | "email": "klimov.paul@gmail.com", 564 | "role": "Core framework development" 565 | }, 566 | { 567 | "name": "Dmitry Naumenko", 568 | "email": "d.naumenko.a@gmail.com", 569 | "role": "Core framework development" 570 | }, 571 | { 572 | "name": "Boudewijn Vahrmeijer", 573 | "email": "info@dynasource.eu", 574 | "homepage": "http://dynasource.eu", 575 | "role": "Core framework development" 576 | } 577 | ], 578 | "description": "Yii PHP Framework Version 2", 579 | "homepage": "http://www.yiiframework.com/", 580 | "keywords": [ 581 | "framework", 582 | "yii2" 583 | ], 584 | "time": "2017-11-14T11:08:21+00:00" 585 | }, 586 | { 587 | "name": "yiisoft/yii2-bootstrap", 588 | "version": "2.0.7", 589 | "source": { 590 | "type": "git", 591 | "url": "https://github.com/yiisoft/yii2-bootstrap.git", 592 | "reference": "02a54d868343ed11d02f0f0f8cbbecb590e0cb3f" 593 | }, 594 | "dist": { 595 | "type": "zip", 596 | "url": "https://api.github.com/repos/yiisoft/yii2-bootstrap/zipball/02a54d868343ed11d02f0f0f8cbbecb590e0cb3f", 597 | "reference": "02a54d868343ed11d02f0f0f8cbbecb590e0cb3f", 598 | "shasum": "" 599 | }, 600 | "require": { 601 | "bower-asset/bootstrap": "3.3.* | 3.2.* | 3.1.*", 602 | "yiisoft/yii2": "~2.0.6" 603 | }, 604 | "type": "yii2-extension", 605 | "extra": { 606 | "branch-alias": { 607 | "dev-master": "2.0.x-dev" 608 | } 609 | }, 610 | "autoload": { 611 | "psr-4": { 612 | "yii\\bootstrap\\": "" 613 | } 614 | }, 615 | "notification-url": "https://packagist.org/downloads/", 616 | "license": [ 617 | "BSD-3-Clause" 618 | ], 619 | "authors": [ 620 | { 621 | "name": "Qiang Xue", 622 | "email": "qiang.xue@gmail.com" 623 | } 624 | ], 625 | "description": "The Twitter Bootstrap extension for the Yii framework", 626 | "keywords": [ 627 | "bootstrap", 628 | "yii2" 629 | ], 630 | "time": "2017-10-09T19:48:22+00:00" 631 | }, 632 | { 633 | "name": "yiisoft/yii2-composer", 634 | "version": "2.0.5", 635 | "source": { 636 | "type": "git", 637 | "url": "https://github.com/yiisoft/yii2-composer.git", 638 | "reference": "3f4923c2bde6caf3f5b88cc22fdd5770f52f8df2" 639 | }, 640 | "dist": { 641 | "type": "zip", 642 | "url": "https://api.github.com/repos/yiisoft/yii2-composer/zipball/3f4923c2bde6caf3f5b88cc22fdd5770f52f8df2", 643 | "reference": "3f4923c2bde6caf3f5b88cc22fdd5770f52f8df2", 644 | "shasum": "" 645 | }, 646 | "require": { 647 | "composer-plugin-api": "^1.0" 648 | }, 649 | "require-dev": { 650 | "composer/composer": "^1.0" 651 | }, 652 | "type": "composer-plugin", 653 | "extra": { 654 | "class": "yii\\composer\\Plugin", 655 | "branch-alias": { 656 | "dev-master": "2.0.x-dev" 657 | } 658 | }, 659 | "autoload": { 660 | "psr-4": { 661 | "yii\\composer\\": "" 662 | } 663 | }, 664 | "notification-url": "https://packagist.org/downloads/", 665 | "license": [ 666 | "BSD-3-Clause" 667 | ], 668 | "authors": [ 669 | { 670 | "name": "Qiang Xue", 671 | "email": "qiang.xue@gmail.com" 672 | } 673 | ], 674 | "description": "The composer plugin for Yii extension installer", 675 | "keywords": [ 676 | "composer", 677 | "extension installer", 678 | "yii2" 679 | ], 680 | "time": "2016-12-20T13:26:02+00:00" 681 | }, 682 | { 683 | "name": "yiisoft/yii2-jui", 684 | "version": "2.0.6", 685 | "source": { 686 | "type": "git", 687 | "url": "https://github.com/yiisoft/yii2-jui.git", 688 | "reference": "843a2160cfe30f5c8b0cb2e9dbd8ee6bcf97e71d" 689 | }, 690 | "dist": { 691 | "type": "zip", 692 | "url": "https://api.github.com/repos/yiisoft/yii2-jui/zipball/843a2160cfe30f5c8b0cb2e9dbd8ee6bcf97e71d", 693 | "reference": "843a2160cfe30f5c8b0cb2e9dbd8ee6bcf97e71d", 694 | "shasum": "" 695 | }, 696 | "require": { 697 | "bower-asset/jquery-ui": "1.11.*@stable", 698 | "yiisoft/yii2": ">=2.0.4" 699 | }, 700 | "type": "yii2-extension", 701 | "extra": { 702 | "branch-alias": { 703 | "dev-master": "2.0.x-dev" 704 | }, 705 | "asset-installer-paths": { 706 | "npm-asset-library": "vendor/npm", 707 | "bower-asset-library": "vendor/bower" 708 | } 709 | }, 710 | "autoload": { 711 | "psr-4": { 712 | "yii\\jui\\": "" 713 | } 714 | }, 715 | "notification-url": "https://packagist.org/downloads/", 716 | "license": [ 717 | "BSD-3-Clause" 718 | ], 719 | "authors": [ 720 | { 721 | "name": "Qiang Xue", 722 | "email": "qiang.xue@gmail.com" 723 | } 724 | ], 725 | "description": "The Jquery UI extension for the Yii framework", 726 | "keywords": [ 727 | "jQuery UI", 728 | "yii2" 729 | ], 730 | "time": "2016-07-22T22:26:59+00:00" 731 | }, 732 | { 733 | "name": "yiisoft/yii2-swiftmailer", 734 | "version": "2.0.7", 735 | "source": { 736 | "type": "git", 737 | "url": "https://github.com/yiisoft/yii2-swiftmailer.git", 738 | "reference": "8a03a62cbcb82e7697d3002eb43a8d2637f566ec" 739 | }, 740 | "dist": { 741 | "type": "zip", 742 | "url": "https://api.github.com/repos/yiisoft/yii2-swiftmailer/zipball/8a03a62cbcb82e7697d3002eb43a8d2637f566ec", 743 | "reference": "8a03a62cbcb82e7697d3002eb43a8d2637f566ec", 744 | "shasum": "" 745 | }, 746 | "require": { 747 | "swiftmailer/swiftmailer": "~5.0", 748 | "yiisoft/yii2": "~2.0.4" 749 | }, 750 | "type": "yii2-extension", 751 | "extra": { 752 | "branch-alias": { 753 | "dev-master": "2.0.x-dev" 754 | } 755 | }, 756 | "autoload": { 757 | "psr-4": { 758 | "yii\\swiftmailer\\": "" 759 | } 760 | }, 761 | "notification-url": "https://packagist.org/downloads/", 762 | "license": [ 763 | "BSD-3-Clause" 764 | ], 765 | "authors": [ 766 | { 767 | "name": "Paul Klimov", 768 | "email": "klimov.paul@gmail.com" 769 | } 770 | ], 771 | "description": "The SwiftMailer integration for the Yii framework", 772 | "keywords": [ 773 | "email", 774 | "mail", 775 | "mailer", 776 | "swift", 777 | "swiftmailer", 778 | "yii2" 779 | ], 780 | "time": "2017-05-01T08:29:00+00:00" 781 | } 782 | ], 783 | "packages-dev": [ 784 | { 785 | "name": "bower-asset/typeahead.js", 786 | "version": "v0.11.1", 787 | "source": { 788 | "type": "git", 789 | "url": "https://github.com/twitter/typeahead.js.git", 790 | "reference": "588440f66559714280628a4f9799f0c4eb880a4a" 791 | }, 792 | "dist": { 793 | "type": "zip", 794 | "url": "https://api.github.com/repos/twitter/typeahead.js/zipball/588440f66559714280628a4f9799f0c4eb880a4a", 795 | "reference": "588440f66559714280628a4f9799f0c4eb880a4a", 796 | "shasum": "" 797 | }, 798 | "require": { 799 | "bower-asset/jquery": ">=1.7" 800 | }, 801 | "require-dev": { 802 | "bower-asset/jasmine-ajax": "~1.3.1", 803 | "bower-asset/jasmine-jquery": "~1.5.2", 804 | "bower-asset/jquery": "~1.7" 805 | }, 806 | "type": "bower-asset-library", 807 | "extra": { 808 | "bower-asset-main": "dist/typeahead.bundle.js" 809 | } 810 | }, 811 | { 812 | "name": "fzaninotto/faker", 813 | "version": "v1.7.1", 814 | "source": { 815 | "type": "git", 816 | "url": "https://github.com/fzaninotto/Faker.git", 817 | "reference": "d3ed4cc37051c1ca52d22d76b437d14809fc7e0d" 818 | }, 819 | "dist": { 820 | "type": "zip", 821 | "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/d3ed4cc37051c1ca52d22d76b437d14809fc7e0d", 822 | "reference": "d3ed4cc37051c1ca52d22d76b437d14809fc7e0d", 823 | "shasum": "" 824 | }, 825 | "require": { 826 | "php": "^5.3.3 || ^7.0" 827 | }, 828 | "require-dev": { 829 | "ext-intl": "*", 830 | "phpunit/phpunit": "^4.0 || ^5.0", 831 | "squizlabs/php_codesniffer": "^1.5" 832 | }, 833 | "type": "library", 834 | "extra": { 835 | "branch-alias": { 836 | "dev-master": "1.8-dev" 837 | } 838 | }, 839 | "autoload": { 840 | "psr-4": { 841 | "Faker\\": "src/Faker/" 842 | } 843 | }, 844 | "notification-url": "https://packagist.org/downloads/", 845 | "license": [ 846 | "MIT" 847 | ], 848 | "authors": [ 849 | { 850 | "name": "François Zaninotto" 851 | } 852 | ], 853 | "description": "Faker is a PHP library that generates fake data for you.", 854 | "keywords": [ 855 | "data", 856 | "faker", 857 | "fixtures" 858 | ], 859 | "time": "2017-08-15T16:48:10+00:00" 860 | }, 861 | { 862 | "name": "phpspec/php-diff", 863 | "version": "v1.1.0", 864 | "source": { 865 | "type": "git", 866 | "url": "https://github.com/phpspec/php-diff.git", 867 | "reference": "0464787bfa7cd13576c5a1e318709768798bec6a" 868 | }, 869 | "dist": { 870 | "type": "zip", 871 | "url": "https://api.github.com/repos/phpspec/php-diff/zipball/0464787bfa7cd13576c5a1e318709768798bec6a", 872 | "reference": "0464787bfa7cd13576c5a1e318709768798bec6a", 873 | "shasum": "" 874 | }, 875 | "type": "library", 876 | "extra": { 877 | "branch-alias": { 878 | "dev-master": "1.0.x-dev" 879 | } 880 | }, 881 | "autoload": { 882 | "psr-0": { 883 | "Diff": "lib/" 884 | } 885 | }, 886 | "notification-url": "https://packagist.org/downloads/", 887 | "license": [ 888 | "BSD-3-Clause" 889 | ], 890 | "authors": [ 891 | { 892 | "name": "Chris Boulton", 893 | "homepage": "http://github.com/chrisboulton" 894 | } 895 | ], 896 | "description": "A comprehensive library for generating differences between two hashable objects (strings or arrays).", 897 | "time": "2016-04-07T12:29:16+00:00" 898 | }, 899 | { 900 | "name": "yiisoft/yii2-codeception", 901 | "version": "2.0.6", 902 | "source": { 903 | "type": "git", 904 | "url": "https://github.com/yiisoft/yii2-codeception.git", 905 | "reference": "086c8c2d28736e7a484a7a8611b5cc84024e9fb3" 906 | }, 907 | "dist": { 908 | "type": "zip", 909 | "url": "https://api.github.com/repos/yiisoft/yii2-codeception/zipball/086c8c2d28736e7a484a7a8611b5cc84024e9fb3", 910 | "reference": "086c8c2d28736e7a484a7a8611b5cc84024e9fb3", 911 | "shasum": "" 912 | }, 913 | "require": { 914 | "yiisoft/yii2": ">=2.0.4" 915 | }, 916 | "type": "yii2-extension", 917 | "extra": { 918 | "branch-alias": { 919 | "dev-master": "2.0.x-dev" 920 | } 921 | }, 922 | "autoload": { 923 | "psr-4": { 924 | "yii\\codeception\\": "" 925 | } 926 | }, 927 | "notification-url": "https://packagist.org/downloads/", 928 | "license": [ 929 | "BSD-3-Clause" 930 | ], 931 | "authors": [ 932 | { 933 | "name": "Mark Jebri", 934 | "email": "mark.github@yandex.ru" 935 | } 936 | ], 937 | "description": "The Codeception integration for the Yii framework", 938 | "keywords": [ 939 | "codeception", 940 | "yii2" 941 | ], 942 | "abandoned": "codeception/codeception", 943 | "time": "2017-05-22T12:08:21+00:00" 944 | }, 945 | { 946 | "name": "yiisoft/yii2-debug", 947 | "version": "2.0.12", 948 | "source": { 949 | "type": "git", 950 | "url": "https://github.com/yiisoft/yii2-debug.git", 951 | "reference": "93082f46d3568b4431a26f264e0d16a12c42bd50" 952 | }, 953 | "dist": { 954 | "type": "zip", 955 | "url": "https://api.github.com/repos/yiisoft/yii2-debug/zipball/93082f46d3568b4431a26f264e0d16a12c42bd50", 956 | "reference": "93082f46d3568b4431a26f264e0d16a12c42bd50", 957 | "shasum": "" 958 | }, 959 | "require": { 960 | "yiisoft/yii2": "~2.0.11", 961 | "yiisoft/yii2-bootstrap": "~2.0.0" 962 | }, 963 | "type": "yii2-extension", 964 | "extra": { 965 | "branch-alias": { 966 | "dev-master": "2.0.x-dev" 967 | } 968 | }, 969 | "autoload": { 970 | "psr-4": { 971 | "yii\\debug\\": "" 972 | } 973 | }, 974 | "notification-url": "https://packagist.org/downloads/", 975 | "license": [ 976 | "BSD-3-Clause" 977 | ], 978 | "authors": [ 979 | { 980 | "name": "Qiang Xue", 981 | "email": "qiang.xue@gmail.com" 982 | } 983 | ], 984 | "description": "The debugger extension for the Yii framework", 985 | "keywords": [ 986 | "debug", 987 | "debugger", 988 | "yii2" 989 | ], 990 | "time": "2017-10-09T20:30:01+00:00" 991 | }, 992 | { 993 | "name": "yiisoft/yii2-faker", 994 | "version": "2.0.3", 995 | "source": { 996 | "type": "git", 997 | "url": "https://github.com/yiisoft/yii2-faker.git", 998 | "reference": "b88ca69ee226a3610b2c26c026c3203d7ac50f6c" 999 | }, 1000 | "dist": { 1001 | "type": "zip", 1002 | "url": "https://api.github.com/repos/yiisoft/yii2-faker/zipball/b88ca69ee226a3610b2c26c026c3203d7ac50f6c", 1003 | "reference": "b88ca69ee226a3610b2c26c026c3203d7ac50f6c", 1004 | "shasum": "" 1005 | }, 1006 | "require": { 1007 | "fzaninotto/faker": "*", 1008 | "yiisoft/yii2": "*" 1009 | }, 1010 | "type": "yii2-extension", 1011 | "extra": { 1012 | "branch-alias": { 1013 | "dev-master": "2.0.x-dev" 1014 | } 1015 | }, 1016 | "autoload": { 1017 | "psr-4": { 1018 | "yii\\faker\\": "" 1019 | } 1020 | }, 1021 | "notification-url": "https://packagist.org/downloads/", 1022 | "license": [ 1023 | "BSD-3-Clause" 1024 | ], 1025 | "authors": [ 1026 | { 1027 | "name": "Mark Jebri", 1028 | "email": "mark.github@yandex.ru" 1029 | } 1030 | ], 1031 | "description": "Fixture generator. The Faker integration for the Yii framework.", 1032 | "keywords": [ 1033 | "Fixture", 1034 | "faker", 1035 | "yii2" 1036 | ], 1037 | "time": "2015-03-01T06:22:44+00:00" 1038 | }, 1039 | { 1040 | "name": "yiisoft/yii2-gii", 1041 | "version": "2.0.5", 1042 | "source": { 1043 | "type": "git", 1044 | "url": "https://github.com/yiisoft/yii2-gii.git", 1045 | "reference": "1bd6df6804ca077ec022587905a0d43eb286f507" 1046 | }, 1047 | "dist": { 1048 | "type": "zip", 1049 | "url": "https://api.github.com/repos/yiisoft/yii2-gii/zipball/1bd6df6804ca077ec022587905a0d43eb286f507", 1050 | "reference": "1bd6df6804ca077ec022587905a0d43eb286f507", 1051 | "shasum": "" 1052 | }, 1053 | "require": { 1054 | "bower-asset/typeahead.js": "0.10.* | ~0.11.0", 1055 | "phpspec/php-diff": ">=1.0.2", 1056 | "yiisoft/yii2": ">=2.0.4", 1057 | "yiisoft/yii2-bootstrap": "~2.0" 1058 | }, 1059 | "type": "yii2-extension", 1060 | "extra": { 1061 | "branch-alias": { 1062 | "dev-master": "2.0.x-dev" 1063 | }, 1064 | "asset-installer-paths": { 1065 | "npm-asset-library": "vendor/npm", 1066 | "bower-asset-library": "vendor/bower" 1067 | } 1068 | }, 1069 | "autoload": { 1070 | "psr-4": { 1071 | "yii\\gii\\": "" 1072 | } 1073 | }, 1074 | "notification-url": "https://packagist.org/downloads/", 1075 | "license": [ 1076 | "BSD-3-Clause" 1077 | ], 1078 | "authors": [ 1079 | { 1080 | "name": "Qiang Xue", 1081 | "email": "qiang.xue@gmail.com" 1082 | } 1083 | ], 1084 | "description": "The Gii extension for the Yii framework", 1085 | "keywords": [ 1086 | "code generator", 1087 | "gii", 1088 | "yii2" 1089 | ], 1090 | "time": "2016-03-18T14:09:46+00:00" 1091 | } 1092 | ], 1093 | "aliases": [], 1094 | "minimum-stability": "stable", 1095 | "stability-flags": [], 1096 | "prefer-stable": false, 1097 | "prefer-lowest": false, 1098 | "platform": { 1099 | "php": ">=5.4.0" 1100 | }, 1101 | "platform-dev": [] 1102 | } 1103 | -------------------------------------------------------------------------------- /2.0/php-fpm/nginx/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM nginx:1.7.10 2 | COPY nginx.conf /etc/nginx/nginx.conf 3 | -------------------------------------------------------------------------------- /2.0/php-fpm/nginx/nginx.conf: -------------------------------------------------------------------------------- 1 | 2 | user nginx; 3 | worker_processes 1; 4 | 5 | error_log /var/log/nginx/error.log warn; 6 | pid /var/run/nginx.pid; 7 | 8 | events { 9 | worker_connections 1024; 10 | } 11 | 12 | 13 | http { 14 | include /etc/nginx/mime.types; 15 | default_type application/octet-stream; 16 | 17 | log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 18 | '$status $body_bytes_sent "$http_referer" ' 19 | '"$http_user_agent" "$http_x_forwarded_for"'; 20 | 21 | access_log /var/log/nginx/access.log main; 22 | 23 | sendfile on; 24 | #tcp_nopush on; 25 | 26 | keepalive_timeout 65; 27 | 28 | #gzip on; 29 | 30 | server { 31 | charset utf-8; 32 | client_max_body_size 128M; 33 | 34 | listen 80; 35 | 36 | root /var/www/html/web; 37 | index index.php; 38 | 39 | location / { 40 | # Redirect everything that isn't a real file to index.php 41 | try_files $uri $uri/ /index.php?$args; 42 | } 43 | 44 | # uncomment to avoid processing of calls to non-existing static files by Yii 45 | location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ { 46 | try_files $uri =404; 47 | } 48 | 49 | location ~ \.php$ { 50 | include fastcgi_params; 51 | fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; 52 | fastcgi_pass app:9000; 53 | try_files $uri =404; 54 | } 55 | 56 | location ~ /\.(ht|svn|git) { 57 | deny all; 58 | } 59 | } 60 | 61 | } 62 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # DEPRECATED! 2 | 3 | This image is now **DEPRECATED**. We may still push updates for Yii2 2.0.x but 4 | will cease with Yii2 2.1.x. Our refactored template under 5 | [codemix/yii2-dockerized](https://github.com/codemix/yii2-dockerized) now 6 | includes a build step for app specific base images instead. 7 | 8 | # Supported tags and respective `Dockerfile` links 9 | 10 | - [`2.0.13.1-apache`, `2.0-apache`, `apache`, `latest` (*2.0/apache/Dockerfile*)](https://github.com/codemix/yii2-dockerbase/blob/master/2.0/apache/Dockerfile) 11 | - [`2.0.13.1-php7-apache`, `2.0-php7-apache`, `php7-apache`, `latest-php7` (*2.0/apache/Dockerfile.php7*)](https://github.com/codemix/yii2-dockerbase/blob/master/2.0/apache/Dockerfile.php7) 12 | - [`2.0.13.1-php-fpm`, `2.0-php-fpm`, `php-fpm` (*2.0/php-fpm/Dockerfile*)](https://github.com/codemix/yii2-dockerbase/blob/master/2.0/php-fpm/Dockerfile) 13 | - [`2.0.13.1-php7-fpm`, `2.0-php7-fpm`, `php7-fpm` (*2.0/php-fpm/Dockerfile.php7*)](https://github.com/codemix/yii2-dockerbase/blob/master/2.0/php-fpm/Dockerfile.php7) 14 | - [`2.0.13.1-hhvm`, `2.0-hhvm`, `hhvm` (*2.0/php-fpm/Dockerfile*)](https://github.com/codemix/yii2-dockerbase/blob/master/2.0/hhvm/Dockerfile) 15 | 16 | Check the [tags](https://hub.docker.com/r/codemix/yii2-base/tags/) page for a full list of available tags. 17 | 18 | Yii 2 Base 19 | ========== 20 | 21 | This is a base image for Yii 2 projects. 22 | 23 | > **IMPORTANT: The image does *not* contain an app template!** 24 | > So you must always first combine it with your own application code to make it work! 25 | 26 | The main purpose of this image is, 27 | 28 | * to provide a PHP runtime environment that is configured for Yii and 29 | * that has the base yii2 composer packages pre-installed. 30 | 31 | ## 1. Available versions 32 | 33 | There are three flavours of this image 34 | 35 | * **Apache with PHP module** (based on `php:7.0.6-apache` or `php:5.6.18-apache`) 36 | * **PHP-FPM** (based on `php:7.0.6-fpm` or `php:5.6.18-fpm`) 37 | * **HHVM** (based on `estebanmatias92/hhvm:3.8.1-fastcgi`) 38 | 39 | 40 | ## 2. How to use this Image 41 | 42 | ### 2.1 Using our `yii2-dockerized` Application Template 43 | 44 | For all available flavours we recommend to start with our dockerized application 45 | template for Yii2. 46 | 47 | [https://github.com/codemix/yii2-dockerized](https://github.com/codemix/yii2-dockerized) 48 | 49 | It comes with a ready to use `Dockerfile` and exemplifies how this base image is meant 50 | to be used. 51 | 52 | ### 2.2 Using your own Application Template 53 | 54 | If you don't want to use that base template you can still build an application 55 | from scratch. But still we recommend to study that template first. 56 | 57 | Before you build your own application template, you should understand the basic 58 | idea behind this image: 59 | 60 | * The image has all yii2 related composer packages pre-installed under `/var/www/vendor`. 61 | * The application code is expected under `/var/www/html`, with 62 | the public directory being `/var/www/html/web`. 63 | * You will *never* install any composer packages locally, but 64 | always into your container. When you do so, it will either override 65 | or add more packages to those already contained in this image. 66 | 67 | You'll also need to prepare some application code locally which will be copied to your 68 | image during the build phase. To start, you could use the official base image: 69 | 70 | ``` 71 | composer create-project --no-install yiisoft/yii2-app-basic 72 | ``` 73 | 74 | > **Note:** You need to fix the paths to `autoload.php` and `Yii.php` in the 75 | > `index.php` file and also add a `'vendorPath' => '/var/www/vendor'` option 76 | > in the `config/web.php`. 77 | 78 | 79 | #### 2.2.1 Using the Apache Variant 80 | 81 | Create a `Dockerfile` in your application directory: 82 | 83 | ``` 84 | FROM codemix/yii2-base:latest 85 | 86 | # Copy your app's source code into the container 87 | COPY . /var/www/html 88 | ``` 89 | 90 | and a `docker-compose.yml`: 91 | 92 | ``` 93 | web: 94 | build: ./ 95 | ports: 96 | - "8080:80" 97 | expose: 98 | - "80" 99 | volumes: 100 | - ./:/var/www/html/ 101 | ``` 102 | 103 | Now you're ready to run `docker-compose up` to start your app. It should 104 | be available from `http://localhost:8080` or your boot2docker VM if you use that. 105 | 106 | 107 | #### 2.2.2 Using the PHP-FPM or HHVM Flavour 108 | 109 | Create a `Dockerfile` in your application directory: 110 | 111 | ``` 112 | FROM codemix/yii2-base:php-fpm 113 | # Or for HHVM: 114 | #FROM codemix/yii2-base:hhvm 115 | 116 | # Copy your app's source code into the container 117 | COPY . /var/www/html 118 | ``` 119 | 120 | For this variant, you'll also need an nginx container. We have included 121 | an example configuration with a `Dockerfile` in the image. You can copy 122 | it from the container with: 123 | 124 | ``` 125 | docker create --name temp codemix/yii2-base:php-fpm 126 | # Or for HHVM: 127 | #docker create --name temp codemix/yii2-base:hhvm 128 | docker cp temp:/opt/nginx/ . 129 | docker rm temp 130 | ``` 131 | 132 | Finally create a `docker-compose.yml`: 133 | 134 | ``` 135 | app: 136 | build: ./ 137 | expose: 138 | - "9000" 139 | volumes: 140 | - ./:/var/www/html/ 141 | nginx: 142 | build: ./nginx 143 | ports: 144 | - "8080:80" 145 | links: 146 | - app 147 | volumes_from: 148 | - app 149 | ``` 150 | 151 | Now you're ready to run `docker-compose up` to start your app. It should 152 | be available from `http://localhost:8080` or your boot2docker VM if you use that. 153 | 154 | 155 | ### 2.3 Adding Composer Packages 156 | 157 | To add composer packages, you need to provide a `composer.json` with 158 | some modifications: 159 | 160 | ``` 161 | { 162 | "require": { 163 | "php": ">=5.4.0", 164 | "yiisoft/yii2": "2.0.13.1", 165 | "yiisoft/yii2-bootstrap": "~2.0.0", 166 | "yiisoft/yii2-jui": "~2.0.0", 167 | "yiisoft/yii2-swiftmailer": "~2.0.0" 168 | }, 169 | "require-dev": { 170 | "yiisoft/yii2-debug": "~2.0.0", 171 | "yiisoft/yii2-gii": "~2.0.0", 172 | "yiisoft/yii2-codeception": "~2.0.0", 173 | "yiisoft/yii2-faker": "~2.0.0" 174 | }, 175 | "config": { 176 | "process-timeout": 1800, 177 | "vendor-dir": "/var/www/vendor" 178 | }, 179 | "extra": { 180 | "asset-installer-paths": { 181 | "npm-asset-library": "../vendor/npm", 182 | "bower-asset-library": "../vendor/bower" 183 | } 184 | } 185 | } 186 | ``` 187 | 188 | Note the `vendor-dir` configuration, which is crucial for this setup. It's also 189 | important, that the versions there match those of this image. Otherwhise you again 190 | loose the advantage of reusing the composer packages contained in the image. 191 | 192 | You also have to map the local directory into the container in your `docker-compose.yml`. 193 | If you have problems with githubs rate limit, you can provide a github API token. 194 | 195 | ``` 196 | web: 197 | build: ./ 198 | ports: 199 | - "8080:80" 200 | expose: 201 | - "80" 202 | volumes: 203 | - ./:/var/www/html/ 204 | environment: 205 | API_TOKEN: "" 206 | ``` 207 | 208 | Now you can run the bundled `composer` command in your container. 209 | 210 | ``` 211 | docker-compose run --rm web compose update myrepo/mypackage 212 | ``` 213 | 214 | ### 2.4 Adding PHP Extensions 215 | 216 | As the `apache` and `php-fpm` flavours extend from the official [php](https://registry.hub.docker.com/u/library/php/) 217 | image, you can use `docker-php-ext-install` in your `Dockerfile`. You may also have to install 218 | some required packages with `apt-get install` first. Here's an example: 219 | 220 | ``` 221 | RUN apt-get update \ 222 | && apt-get -y install \ 223 | libfreetype6-dev \ 224 | libjpeg62-turbo-dev \ 225 | libmcrypt-dev \ 226 | libpng12-dev \ 227 | --no-install-recommends \ 228 | && rm -r /var/lib/apt/lists/* \ 229 | && docker-php-ext-install iconv mcrypt \ 230 | && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \ 231 | && docker-php-ext-install gd 232 | ``` 233 | 234 | ### 2.5 Adding HHVM Extensions 235 | 236 | Please check the [hhvm](https://registry.hub.docker.com/u/estebanmatias92/hhvm/) base image for details. 237 | 238 | --------------------------------------------------------------------------------