diff --git a/Dockerfile b/Dockerfile new file mode 100755 index 000000000..0277709f1 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,63 @@ +FROM ubuntu:22.04 + +LABEL maintainer="Taylor Otwell" + +ARG WWWGROUP +ARG NODE_VERSION=16 +ARG POSTGRES_VERSION=14 + +WORKDIR /var/www/html + +ENV DEBIAN_FRONTEND noninteractive +ENV TZ=UTC + +RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone + +RUN apt-get update \ + && apt-get install -y gnupg gosu curl ca-certificates zip unzip git supervisor sqlite3 libcap2-bin libpng-dev python2 \ + && mkdir -p ~/.gnupg \ + && chmod 600 ~/.gnupg \ + && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf \ + && echo "keyserver hkp://keyserver.ubuntu.com:80" >> ~/.gnupg/dirmngr.conf \ + && gpg --recv-key 0x14aa40ec0831756756d7f66c4f4ea0aae5267a6c \ + && gpg --export 0x14aa40ec0831756756d7f66c4f4ea0aae5267a6c > /usr/share/keyrings/ppa_ondrej_php.gpg \ + && echo "deb [signed-by=/usr/share/keyrings/ppa_ondrej_php.gpg] https://ppa.launchpadcontent.net/ondrej/php/ubuntu jammy main" > /etc/apt/sources.list.d/ppa_ondrej_php.list \ + && apt-get update \ + && apt-get install -y php8.1-cli php8.1-dev \ + php8.1-pgsql php8.1-sqlite3 php8.1-gd \ + php8.1-curl \ + php8.1-imap php8.1-mysql php8.1-mbstring \ + php8.1-xml php8.1-zip php8.1-bcmath php8.1-soap \ + php8.1-intl php8.1-readline \ + php8.1-ldap \ + php8.1-msgpack php8.1-igbinary php8.1-redis php8.1-swoole \ + php8.1-memcached php8.1-pcov php8.1-xdebug \ + && php -r "readfile('https://getcomposer.org/installer');" | php -- --install-dir=/usr/bin/ --filename=composer \ + && curl -sLS https://deb.nodesource.com/setup_$NODE_VERSION.x | bash - \ + && apt-get install -y nodejs \ + && npm install -g npm \ + && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | tee /usr/share/keyrings/yarn.gpg >/dev/null \ + && echo "deb [signed-by=/usr/share/keyrings/yarn.gpg] https://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \ + && curl -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | tee /usr/share/keyrings/pgdg.gpg >/dev/null \ + && echo "deb [signed-by=/usr/share/keyrings/pgdg.gpg] http://apt.postgresql.org/pub/repos/apt jammy-pgdg main" > /etc/apt/sources.list.d/pgdg.list \ + && apt-get update \ + && apt-get install -y yarn \ + && apt-get install -y mysql-client \ + && apt-get install -y postgresql-client-$POSTGRES_VERSION \ + && apt-get -y autoremove \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + +RUN setcap "cap_net_bind_service=+ep" /usr/bin/php8.1 + +RUN groupadd --force -g $WWWGROUP sail +RUN useradd -ms /bin/bash --no-user-group -g $WWWGROUP -u 1337 sail + +COPY start-container /usr/local/bin/start-container +COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf +COPY php.ini /etc/php/8.1/cli/conf.d/99-sail.ini +RUN chmod +x /usr/local/bin/start-container + +EXPOSE 8000 + +ENTRYPOINT ["start-container"] diff --git a/composer.json b/composer.json old mode 100644 new mode 100755 index 0878cc960..1579b91d6 --- a/composer.json +++ b/composer.json @@ -45,15 +45,16 @@ "vimeo/psalm": "^4.19.0" }, "require-dev": { + "ext-json": "*", "barryvdh/laravel-ide-helper": "^2.12.1", + "fakerphp/faker": "^1.19.0", "friendsofphp/php-cs-fixer": "^3.5.0", - "spatie/laravel-ignition": "^1.0", - "nunomaduro/larastan": "^0.7.15", + "laravel/sail": "^1.15", + "mockery/mockery": "^1.5.0", "nunomaduro/collision": "^6.1", + "nunomaduro/larastan": "^0.7.15", "phpunit/phpunit": "^9.5.16", - "mockery/mockery": "^1.5.0", - "fakerphp/faker": "^1.19.0", - "ext-json": "*" + "spatie/laravel-ignition": "^1.0" }, "repositories": { "makingcg/subscription": { diff --git a/composer.lock b/composer.lock old mode 100644 new mode 100755 index 9b6788327..c6d8152e7 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "05544f92a4ec73284d9a0042968129a9", + "content-hash": "c5da2cdbc536116cafaeb39f1fcd1977", "packages": [ { "name": "amphp/amp", @@ -280,16 +280,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.228.2", + "version": "3.228.4", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "e7c4d70aef99e71f9114a302ec576dc2689df283" + "reference": "c8ab968e44b3371b1ed055b61f947dcd1f3a6aab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/e7c4d70aef99e71f9114a302ec576dc2689df283", - "reference": "e7c4d70aef99e71f9114a302ec576dc2689df283", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/c8ab968e44b3371b1ed055b61f947dcd1f3a6aab", + "reference": "c8ab968e44b3371b1ed055b61f947dcd1f3a6aab", "shasum": "" }, "require": { @@ -365,9 +365,9 @@ "support": { "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80", "issues": "https://github.com/aws/aws-sdk-php/issues", - "source": "https://github.com/aws/aws-sdk-php/tree/3.228.2" + "source": "https://github.com/aws/aws-sdk-php/tree/3.228.4" }, - "time": "2022-06-23T18:17:44+00:00" + "time": "2022-06-27T18:13:31+00:00" }, { "name": "bacon/bacon-qr-code", @@ -507,16 +507,16 @@ }, { "name": "brianium/paratest", - "version": "v6.5.0", + "version": "v6.5.1", "source": { "type": "git", "url": "https://github.com/paratestphp/paratest.git", - "reference": "d22afc08dab73d1dff07c700ed6a78f138f5020e" + "reference": "41fc4cc01422dae2d6bf6a0ce39756f57ac7d8a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paratestphp/paratest/zipball/d22afc08dab73d1dff07c700ed6a78f138f5020e", - "reference": "d22afc08dab73d1dff07c700ed6a78f138f5020e", + "url": "https://api.github.com/repos/paratestphp/paratest/zipball/41fc4cc01422dae2d6bf6a0ce39756f57ac7d8a9", + "reference": "41fc4cc01422dae2d6bf6a0ce39756f57ac7d8a9", "shasum": "" }, "require": { @@ -545,7 +545,9 @@ "vimeo/psalm": "^4.23.0" }, "bin": [ - "bin/paratest" + "bin/paratest", + "bin/paratest.bat", + "bin/paratest_for_phpstorm" ], "type": "library", "autoload": { @@ -581,7 +583,7 @@ ], "support": { "issues": "https://github.com/paratestphp/paratest/issues", - "source": "https://github.com/paratestphp/paratest/tree/v6.5.0" + "source": "https://github.com/paratestphp/paratest/tree/v6.5.1" }, "funding": [ { @@ -593,7 +595,7 @@ "type": "paypal" } ], - "time": "2022-06-23T13:00:19+00:00" + "time": "2022-06-24T16:02:27+00:00" }, { "name": "brick/math", @@ -3345,16 +3347,16 @@ }, { "name": "laravel/framework", - "version": "v9.18.0", + "version": "v9.19.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "93a1296bca43c1ca8dcb5df8f97107e819a71499" + "reference": "bbce25bd823133f6a5a724f2d62680b711f1d0df" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/93a1296bca43c1ca8dcb5df8f97107e819a71499", - "reference": "93a1296bca43c1ca8dcb5df8f97107e819a71499", + "url": "https://api.github.com/repos/laravel/framework/zipball/bbce25bd823133f6a5a724f2d62680b711f1d0df", + "reference": "bbce25bd823133f6a5a724f2d62680b711f1d0df", "shasum": "" }, "require": { @@ -3520,7 +3522,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2022-06-21T14:40:11+00:00" + "time": "2022-06-28T14:33:19+00:00" }, { "name": "laravel/sanctum", @@ -4562,11 +4564,17 @@ }, { "name": "makingcg/subscription", - "version": "dev-master", + "version": "dev-main", + "source": { + "type": "git", + "url": "https://github.com/gvidas/subcription.git", + "reference": "f1777b8ecc8bdf7dac813ff33876f6edb7df9b7b" + }, "dist": { - "type": "path", - "url": "packages/subscription", - "reference": "16c29a065079db3bcbe51eb9c1b720c48d9dd940" + "type": "zip", + "url": "https://api.github.com/repos/gvidas/subcription/zipball/f1777b8ecc8bdf7dac813ff33876f6edb7df9b7b", + "reference": "f1777b8ecc8bdf7dac813ff33876f6edb7df9b7b", + "shasum": "" }, "require": { "friendsofphp/php-cs-fixer": "^3.6.0", @@ -4588,6 +4596,7 @@ "phpunit/phpunit": "^9.5.16", "spatie/laravel-ray": "^1.29.4" }, + "default-branch": true, "type": "library", "extra": { "laravel": { @@ -4600,39 +4609,18 @@ } }, "autoload": { - "psr-4": { - "VueFileManager\\Subscription\\": "src", - "VueFileManager\\Subscription\\Database\\Factories\\": "database/factories" - }, "files": [ "src/Support/helpers.php", "src/Support/PayPalHelpers.php", "src/Support/PaystackHelpers.php", "src/Support/StripeHelpers.php" - ] - }, - "autoload-dev": { + ], "psr-4": { - "App\\": "src/App/", - "Domain\\": "src/Domain/", - "Support\\": "src/Support/", - "Tests\\": "tests" + "VueFileManager\\Subscription\\": "src", + "VueFileManager\\Subscription\\Database\\Factories\\": "database/factories" } }, - "scripts": { - "psalm": [ - "vendor/bin/psalm" - ], - "format": [ - "vendor/bin/php-cs-fixer fix --allow-risky=yes" - ], - "test": [ - "./vendor/bin/testbench package:test --parallel --no-coverage" - ], - "test-coverage": [ - "vendor/bin/phpunit --coverage-html coverage" - ] - }, + "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], @@ -4650,10 +4638,11 @@ "laravel", "subscription" ], - "transport-options": { - "symlink": true, - "relative": true - } + "support": { + "issues": "https://github.com/gvidas/subcription/issues", + "source": "https://github.com/gvidas/subcription/tree/main" + }, + "time": "2022-04-03T12:11:09+00:00" }, { "name": "matthewbdaly/laravel-azure-storage", @@ -9451,16 +9440,16 @@ }, { "name": "spatie/laravel-package-tools", - "version": "1.12.0", + "version": "1.12.1", "source": { "type": "git", "url": "https://github.com/spatie/laravel-package-tools.git", - "reference": "9e6c0382553f1317c02f1ae0ee71c64821eb5af0" + "reference": "09f80fa240d44fafb1c70657c74ee44ffa929357" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/9e6c0382553f1317c02f1ae0ee71c64821eb5af0", - "reference": "9e6c0382553f1317c02f1ae0ee71c64821eb5af0", + "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/09f80fa240d44fafb1c70657c74ee44ffa929357", + "reference": "09f80fa240d44fafb1c70657c74ee44ffa929357", "shasum": "" }, "require": { @@ -9498,7 +9487,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-package-tools/issues", - "source": "https://github.com/spatie/laravel-package-tools/tree/1.12.0" + "source": "https://github.com/spatie/laravel-package-tools/tree/1.12.1" }, "funding": [ { @@ -9506,7 +9495,7 @@ "type": "github" } ], - "time": "2022-06-19T20:01:24+00:00" + "time": "2022-06-28T14:29:26+00:00" }, { "name": "spatie/laravel-query-builder", @@ -10053,16 +10042,16 @@ }, { "name": "symfony/console", - "version": "v6.1.1", + "version": "v6.1.2", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "6187424023fbffcd757789aeb517c9161b1eabee" + "reference": "7a86c1c42fbcb69b59768504c7bca1d3767760b7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/6187424023fbffcd757789aeb517c9161b1eabee", - "reference": "6187424023fbffcd757789aeb517c9161b1eabee", + "url": "https://api.github.com/repos/symfony/console/zipball/7a86c1c42fbcb69b59768504c7bca1d3767760b7", + "reference": "7a86c1c42fbcb69b59768504c7bca1d3767760b7", "shasum": "" }, "require": { @@ -10129,7 +10118,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.1.1" + "source": "https://github.com/symfony/console/tree/v6.1.2" }, "funding": [ { @@ -10145,7 +10134,7 @@ "type": "tidelift" } ], - "time": "2022-06-08T14:02:09+00:00" + "time": "2022-06-26T13:01:30+00:00" }, { "name": "symfony/css-selector", @@ -10214,7 +10203,7 @@ }, { "name": "symfony/deprecation-contracts", - "version": "v3.1.0", + "version": "v3.1.1", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", @@ -10261,7 +10250,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.1.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.1.1" }, "funding": [ { @@ -10435,7 +10424,7 @@ }, { "name": "symfony/event-dispatcher-contracts", - "version": "v3.1.0", + "version": "v3.1.1", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", @@ -10494,7 +10483,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.1.0" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.1.1" }, "funding": [ { @@ -10641,16 +10630,16 @@ }, { "name": "symfony/http-client", - "version": "v6.1.1", + "version": "v6.1.2", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "c5473d69640980367a6bdb0cdb449225dcaa991b" + "reference": "ea1af6c8cc479147d67a3fead457dd7b06261041" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/c5473d69640980367a6bdb0cdb449225dcaa991b", - "reference": "c5473d69640980367a6bdb0cdb449225dcaa991b", + "url": "https://api.github.com/repos/symfony/http-client/zipball/ea1af6c8cc479147d67a3fead457dd7b06261041", + "reference": "ea1af6c8cc479147d67a3fead457dd7b06261041", "shasum": "" }, "require": { @@ -10705,7 +10694,7 @@ "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-client/tree/v6.1.1" + "source": "https://github.com/symfony/http-client/tree/v6.1.2" }, "funding": [ { @@ -10721,11 +10710,11 @@ "type": "tidelift" } ], - "time": "2022-06-09T13:06:55+00:00" + "time": "2022-06-19T13:02:30+00:00" }, { "name": "symfony/http-client-contracts", - "version": "v3.1.0", + "version": "v3.1.1", "source": { "type": "git", "url": "https://github.com/symfony/http-client-contracts.git", @@ -10786,7 +10775,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/http-client-contracts/tree/v3.1.0" + "source": "https://github.com/symfony/http-client-contracts/tree/v3.1.1" }, "funding": [ { @@ -10806,16 +10795,16 @@ }, { "name": "symfony/http-foundation", - "version": "v6.1.1", + "version": "v6.1.2", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "a58dc88d56e04e57993d96c1407a17407610e1df" + "reference": "86119d294e51afe4d8e07da96b63332bd1f3f52c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/a58dc88d56e04e57993d96c1407a17407610e1df", - "reference": "a58dc88d56e04e57993d96c1407a17407610e1df", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/86119d294e51afe4d8e07da96b63332bd1f3f52c", + "reference": "86119d294e51afe4d8e07da96b63332bd1f3f52c", "shasum": "" }, "require": { @@ -10858,7 +10847,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.1.1" + "source": "https://github.com/symfony/http-foundation/tree/v6.1.2" }, "funding": [ { @@ -10874,20 +10863,20 @@ "type": "tidelift" } ], - "time": "2022-05-31T14:28:03+00:00" + "time": "2022-06-19T13:21:48+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.1.1", + "version": "v6.1.2", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "86c4d6f6c5b6cd012df41e3b950c924b3ffdc019" + "reference": "8aaede489900dda61aee208557f63bfa1bca0877" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/86c4d6f6c5b6cd012df41e3b950c924b3ffdc019", - "reference": "86c4d6f6c5b6cd012df41e3b950c924b3ffdc019", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/8aaede489900dda61aee208557f63bfa1bca0877", + "reference": "8aaede489900dda61aee208557f63bfa1bca0877", "shasum": "" }, "require": { @@ -10968,7 +10957,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.1.1" + "source": "https://github.com/symfony/http-kernel/tree/v6.1.2" }, "funding": [ { @@ -10984,20 +10973,20 @@ "type": "tidelift" } ], - "time": "2022-06-09T17:31:33+00:00" + "time": "2022-06-26T17:06:14+00:00" }, { "name": "symfony/mailer", - "version": "v6.1.1", + "version": "v6.1.2", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "db6a19a5c896139901c2de59fc9849379e0ff3b6" + "reference": "8fa150355115ea09238858ae3cfaf249fd1fd5ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/db6a19a5c896139901c2de59fc9849379e0ff3b6", - "reference": "db6a19a5c896139901c2de59fc9849379e0ff3b6", + "url": "https://api.github.com/repos/symfony/mailer/zipball/8fa150355115ea09238858ae3cfaf249fd1fd5ed", + "reference": "8fa150355115ea09238858ae3cfaf249fd1fd5ed", "shasum": "" }, "require": { @@ -11042,7 +11031,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v6.1.1" + "source": "https://github.com/symfony/mailer/tree/v6.1.2" }, "funding": [ { @@ -11058,7 +11047,7 @@ "type": "tidelift" } ], - "time": "2022-06-06T19:15:01+00:00" + "time": "2022-06-19T13:21:48+00:00" }, { "name": "symfony/mailgun-mailer", @@ -12232,16 +12221,16 @@ }, { "name": "symfony/service-contracts", - "version": "v3.1.0", + "version": "v3.1.1", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "d66cd8ab656780f62c4215b903a420eb86358957" + "reference": "925e713fe8fcacf6bc05e936edd8dd5441a21239" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d66cd8ab656780f62c4215b903a420eb86358957", - "reference": "d66cd8ab656780f62c4215b903a420eb86358957", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/925e713fe8fcacf6bc05e936edd8dd5441a21239", + "reference": "925e713fe8fcacf6bc05e936edd8dd5441a21239", "shasum": "" }, "require": { @@ -12297,7 +12286,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.1.0" + "source": "https://github.com/symfony/service-contracts/tree/v3.1.1" }, "funding": [ { @@ -12313,7 +12302,7 @@ "type": "tidelift" } ], - "time": "2022-05-07T08:07:09+00:00" + "time": "2022-05-30T19:18:58+00:00" }, { "name": "symfony/stopwatch", @@ -12379,16 +12368,16 @@ }, { "name": "symfony/string", - "version": "v6.1.0", + "version": "v6.1.2", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "d3edc75baf9f1d4f94879764dda2e1ac33499529" + "reference": "1903f2879875280c5af944625e8246d81c2f0604" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/d3edc75baf9f1d4f94879764dda2e1ac33499529", - "reference": "d3edc75baf9f1d4f94879764dda2e1ac33499529", + "url": "https://api.github.com/repos/symfony/string/zipball/1903f2879875280c5af944625e8246d81c2f0604", + "reference": "1903f2879875280c5af944625e8246d81c2f0604", "shasum": "" }, "require": { @@ -12444,7 +12433,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.1.0" + "source": "https://github.com/symfony/string/tree/v6.1.2" }, "funding": [ { @@ -12460,7 +12449,7 @@ "type": "tidelift" } ], - "time": "2022-04-22T08:18:23+00:00" + "time": "2022-06-26T16:35:04+00:00" }, { "name": "symfony/translation", @@ -12560,16 +12549,16 @@ }, { "name": "symfony/translation-contracts", - "version": "v3.1.0", + "version": "v3.1.1", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "bfddd2a1faa271b782b791c361cc16e2dd49dfaa" + "reference": "606be0f48e05116baef052f7f3abdb345c8e02cc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/bfddd2a1faa271b782b791c361cc16e2dd49dfaa", - "reference": "bfddd2a1faa271b782b791c361cc16e2dd49dfaa", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/606be0f48e05116baef052f7f3abdb345c8e02cc", + "reference": "606be0f48e05116baef052f7f3abdb345c8e02cc", "shasum": "" }, "require": { @@ -12621,7 +12610,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.1.0" + "source": "https://github.com/symfony/translation-contracts/tree/v3.1.1" }, "funding": [ { @@ -12637,7 +12626,7 @@ "type": "tidelift" } ], - "time": "2022-04-22T07:30:54+00:00" + "time": "2022-06-27T17:24:16+00:00" }, { "name": "symfony/var-dumper", @@ -12980,16 +12969,16 @@ }, { "name": "vimeo/psalm", - "version": "4.23.0", + "version": "4.24.0", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "f1fe6ff483bf325c803df9f510d09a03fd796f88" + "reference": "06dd975cb55d36af80f242561738f16c5f58264f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/f1fe6ff483bf325c803df9f510d09a03fd796f88", - "reference": "f1fe6ff483bf325c803df9f510d09a03fd796f88", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/06dd975cb55d36af80f242561738f16c5f58264f", + "reference": "06dd975cb55d36af80f242561738f16c5f58264f", "shasum": "" }, "require": { @@ -13081,9 +13070,9 @@ ], "support": { "issues": "https://github.com/vimeo/psalm/issues", - "source": "https://github.com/vimeo/psalm/tree/4.23.0" + "source": "https://github.com/vimeo/psalm/tree/4.24.0" }, - "time": "2022-04-28T17:35:49+00:00" + "time": "2022-06-26T11:47:54+00:00" }, { "name": "vlucas/phpdotenv", @@ -14090,6 +14079,66 @@ }, "time": "2022-04-13T08:02:27+00:00" }, + { + "name": "laravel/sail", + "version": "v1.15.0", + "source": { + "type": "git", + "url": "https://github.com/laravel/sail.git", + "reference": "676e1ff33c1b8af657779f62f57360c376cba666" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/sail/zipball/676e1ff33c1b8af657779f62f57360c376cba666", + "reference": "676e1ff33c1b8af657779f62f57360c376cba666", + "shasum": "" + }, + "require": { + "illuminate/console": "^8.0|^9.0", + "illuminate/contracts": "^8.0|^9.0", + "illuminate/support": "^8.0|^9.0", + "php": "^7.3|^8.0" + }, + "bin": [ + "bin/sail" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + }, + "laravel": { + "providers": [ + "Laravel\\Sail\\SailServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Sail\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Docker files for running a basic Laravel application.", + "keywords": [ + "docker", + "laravel" + ], + "support": { + "issues": "https://github.com/laravel/sail/issues", + "source": "https://github.com/laravel/sail" + }, + "time": "2022-06-24T13:56:11+00:00" + }, { "name": "mockery/mockery", "version": "1.5.0", @@ -14164,16 +14213,16 @@ }, { "name": "nunomaduro/collision", - "version": "v6.2.0", + "version": "v6.2.1", "source": { "type": "git", "url": "https://github.com/nunomaduro/collision.git", - "reference": "c379636dc50e829edb3a8bcb944a01aa1aed8f25" + "reference": "5f058f7e39278b701e455b3c82ec5298cf001d89" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/collision/zipball/c379636dc50e829edb3a8bcb944a01aa1aed8f25", - "reference": "c379636dc50e829edb3a8bcb944a01aa1aed8f25", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/5f058f7e39278b701e455b3c82ec5298cf001d89", + "reference": "5f058f7e39278b701e455b3c82ec5298cf001d89", "shasum": "" }, "require": { @@ -14185,6 +14234,7 @@ "require-dev": { "brianium/paratest": "^6.4.1", "laravel/framework": "^9.7", + "laravel/pint": "^0.2.1", "nunomaduro/larastan": "^1.0.2", "nunomaduro/mock-final-classes": "^1.1.0", "orchestra/testbench": "^7.3.0", @@ -14247,7 +14297,7 @@ "type": "patreon" } ], - "time": "2022-04-05T15:31:38+00:00" + "time": "2022-06-27T16:11:16+00:00" }, { "name": "nunomaduro/larastan", @@ -14912,5 +14962,5 @@ "platform-dev": { "ext-json": "*" }, - "plugin-api-version": "2.2.0" + "plugin-api-version": "2.3.0" } diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100755 index 000000000..9f4941107 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,52 @@ +# For more information: https://laravel.com/docs/sail +version: '3' +services: + laravel.test: + build: + context: . + dockerfile: Dockerfile + args: + WWWGROUP: '${WWWGROUP}' + image: sail-8.1/app + extra_hosts: + - 'host.docker.internal:host-gateway' + ports: + - '${APP_PORT:-80}:80' + - '${VITE_PORT:-5173}:${VITE_PORT:-5173}' + environment: + WWWUSER: '${WWWUSER}' + LARAVEL_SAIL: 1 + XDEBUG_MODE: '${SAIL_XDEBUG_MODE:-off}' + XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}' + volumes: + - '.:/var/www/html' + networks: + - sail + depends_on: + - mysql + mysql: + image: 'mysql/mysql-server:8.0' + ports: + - '${FORWARD_DB_PORT:-3306}:3306' + environment: + MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}' + MYSQL_ROOT_HOST: "%" + MYSQL_DATABASE: '${DB_DATABASE}' + MYSQL_USER: '${DB_USERNAME}' + MYSQL_PASSWORD: '${DB_PASSWORD}' + MYSQL_ALLOW_EMPTY_PASSWORD: 1 + volumes: + - 'sail-mysql:/var/lib/mysql' + - './vendor/laravel/sail/database/mysql/create-testing-database.sh:/docker-entrypoint-initdb.d/10-create-testing-database.sh' + networks: + - sail + healthcheck: + test: ["CMD", "mysqladmin", "ping", "-p${DB_PASSWORD}"] + retries: 3 + timeout: 5s +networks: + sail: + driver: bridge +volumes: + sail-mysql: + driver: local diff --git a/php.ini b/php.ini new file mode 100755 index 000000000..7a163bc11 --- /dev/null +++ b/php.ini @@ -0,0 +1,6 @@ +[PHP] +post_max_size = 128M +upload_max_filesize = 128M +variables_order = EGPCS +memory_limit = 1024M +max_execution_time = 180 diff --git a/start-container b/start-container new file mode 100644 index 000000000..b86439907 --- /dev/null +++ b/start-container @@ -0,0 +1,17 @@ +#!/usr/bin/env bash + +if [ ! -z "$WWWUSER" ]; then + usermod -u $WWWUSER sail +fi + +if [ ! -d /.composer ]; then + mkdir /.composer +fi + +chmod -R ugo+rw /.composer + +if [ $# -gt 0 ]; then + exec gosu $WWWUSER "$@" +else + exec /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf +fi diff --git a/supervisord.conf b/supervisord.conf new file mode 100644 index 000000000..9d2847958 --- /dev/null +++ b/supervisord.conf @@ -0,0 +1,14 @@ +[supervisord] +nodaemon=true +user=root +logfile=/var/log/supervisor/supervisord.log +pidfile=/var/run/supervisord.pid + +[program:php] +command=/usr/bin/php -d variables_order=EGPCS /var/www/html/artisan serve --host=0.0.0.0 --port=80 +user=sail +environment=LARAVEL_SAIL="1" +stdout_logfile=/dev/stdout +stdout_logfile_maxbytes=0 +stderr_logfile=/dev/stderr +stderr_logfile_maxbytes=0