|
| 1 | + |
| 2 | +FROM alpine:3.7 |
| 3 | + |
| 4 | +ENV PHP_VERSION=7.1.15-r0 |
| 5 | +ENV PHP_XDEBUG_VERSION=2.5.5-r0 |
| 6 | + |
| 7 | +## Install PHP for Laravel |
| 8 | +RUN addgroup -g 82 -S www-data \ |
| 9 | + && adduser -h /var/www -g www-data -s /sbin/nologin -G www-data -SDH -u 82 www-data \ |
| 10 | + && apk add --no-cache \ |
| 11 | + php7=$PHP_VERSION \ |
| 12 | + php7-ctype=$PHP_VERSION \ |
| 13 | + php7-dom=$PHP_VERSION \ |
| 14 | + php7-json=$PHP_VERSION \ |
| 15 | + php7-mbstring=$PHP_VERSION \ |
| 16 | + php7-openssl=$PHP_VERSION \ |
| 17 | + php7-pdo=$PHP_VERSION \ |
| 18 | + php7-pdo_sqlite=$PHP_VERSION \ |
| 19 | + php7-phar=$PHP_VERSION \ |
| 20 | + php7-session=$PHP_VERSION \ |
| 21 | + php7-tokenizer=$PHP_VERSION \ |
| 22 | + php7-xml=$PHP_VERSION \ |
| 23 | + php7-xdebug=$PHP_XDEBUG_VERSION \ |
| 24 | + php7-zlib=$PHP_VERSION |
| 25 | + |
| 26 | +## Install Composer for Laravel |
| 27 | +RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \ |
| 28 | + && if [ $(wget -O - https://composer.github.io/installer.sig 2>/dev/null) != $(php -r "echo hash_file('SHA384', 'composer-setup.php');") ]; then \ |
| 29 | + echo 'ERROR: Invalid installer signature'; exit 1 \ |
| 30 | + ;fi \ |
| 31 | + && php composer-setup.php --install-dir=/usr/local/bin --filename=composer |
| 32 | + |
| 33 | +## Create Laravel Project |
| 34 | +RUN composer create-project --prefer-dist laravel/laravel TheTest "5.5.*" |
| 35 | + |
| 36 | +## Setup Working Directory |
| 37 | +WORKDIR /TheTest |
| 38 | + |
| 39 | +## Migration database |
| 40 | +COPY files/.env /TheTest/ |
| 41 | +RUN touch /TheTest/database/database.sqlite \ |
| 42 | + && php /TheTest/artisan migrate |
| 43 | + |
| 44 | +## Create Dummy 50000 rows |
| 45 | +COPY files/DatabaseSeeder.php /TheTest/database/seeds/ |
| 46 | +RUN php /TheTest/artisan db:seed |
| 47 | + |
| 48 | +## Setup Test Code |
| 49 | +COPY files/TestCode.php /TheTest/app/Console/Commands/ |
| 50 | +CMD [ "php", "artisan", "test" ] |
0 commit comments