From e46fd7d972f212ad5805902cef59e638f3723864 Mon Sep 17 00:00:00 2001 From: Moradii Date: Thu, 9 Jun 2022 09:39:59 +0300 Subject: [PATCH 01/13] docker php 7.4 --- composer.json | 11 ++++++++--- config/database.php | 15 +++++++++++---- docker-compose.yml | 13 +++++++++++-- 3 files changed, 30 insertions(+), 9 deletions(-) diff --git a/composer.json b/composer.json index a936f1070..c1ab56b78 100644 --- a/composer.json +++ b/composer.json @@ -94,7 +94,9 @@ "visiosoft/base-theme": "^1.0", "visiosoft/advs-module": "^1.0", "visiosoft/json-field_type": "^1.0", - "visiosoft/language_switcher-plugin": "^1.0" + "visiosoft/language_switcher-plugin": "^1.0", + "predis/predis": "^2.0", + "laravel/horizon": "^5.9" }, "replace": { "anomaly/streams-platform": "*" @@ -104,7 +106,7 @@ "fzaninotto/faker": "~1.4", "symfony/css-selector": "3.1.*", "symfony/dom-crawler": "3.1.*", - "anomaly/installer-module": "~2.4.0" + "laravel/sail": "^1.14" }, "repositories": [ { @@ -149,6 +151,9 @@ "config": { "bin-dir": "bin", "preferred-install": "dist", - "optimize-autoloader": true + "optimize-autoloader": true, + "allow-plugins": { + "visiosoft/composer-merge-plugin": true + } } } diff --git a/config/database.php b/config/database.php index 147e74194..6f4da9de8 100644 --- a/config/database.php +++ b/config/database.php @@ -108,14 +108,21 @@ return [ 'redis' => [ 'cluster' => false, + 'client' => env('REDIS_CLIENT', 'phpredis'), 'default' => [ - 'host' => env('REDIS_HOST', 'localhost'), - 'password' => env('REDIS_PASSWORD', null), - 'port' => env('REDIS_PORT', 6379), - 'database' => 0, + 'host' => env('REDIS_HOST', 'redis'), + 'password' => env('REDIS_PASSWORD'), + 'port' => env('REDIS_PORT', 6379), + 'database' => env('REDIS_DB', 0), ], + 'cache' => [ + 'host' => env('REDIS_HOST', '127.0.0.1'), + 'password' => env('REDIS_PASSWORD'), + 'port' => env('REDIS_PORT', 6379), + 'database' => env('REDIS_CACHE_DB', 1), + ], ], ]; diff --git a/docker-compose.yml b/docker-compose.yml index c527fefa7..33f5e86ca 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,11 +3,11 @@ version: '3' services: laravel.test: build: - context: ./vendor/laravel/sail/runtimes/8.1 + context: ./vendor/laravel/sail/runtimes/7.4 dockerfile: Dockerfile args: WWWGROUP: '${WWWGROUP}' - image: sail-8.1/app + image: sail-7.4/app extra_hosts: - 'host.docker.internal:host-gateway' ports: @@ -20,6 +20,7 @@ services: XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}' volumes: - '.:/var/www/html' + - './supervisord.conf:/etc/supervisor/conf.d/supervisord.conf' networks: - sail depends_on: @@ -75,6 +76,14 @@ services: - '11211:11211' networks: - sail + crontab.ui: + image: 'alseambusher/crontab-ui' + ports: + - '8181:8181' + environment: + PORT: '8181' + networks: + - sail networks: sail: driver: bridge From c41545c72b17684091a3b776c6d86df8d97874ef Mon Sep 17 00:00:00 2001 From: Moradii Date: Thu, 9 Jun 2022 09:40:58 +0300 Subject: [PATCH 02/13] docker php 7.4 --- composer.json | 8 -------- 1 file changed, 8 deletions(-) diff --git a/composer.json b/composer.json index c1ab56b78..83dac9ecf 100644 --- a/composer.json +++ b/composer.json @@ -147,13 +147,5 @@ "*" ] } - }, - "config": { - "bin-dir": "bin", - "preferred-install": "dist", - "optimize-autoloader": true, - "allow-plugins": { - "visiosoft/composer-merge-plugin": true - } } } From 1c0d0ed824765ba2df720ce737efe6d606f8f597 Mon Sep 17 00:00:00 2001 From: Moradii Date: Thu, 9 Jun 2022 09:42:00 +0300 Subject: [PATCH 03/13] docker php 7.4 --- composer.json | 1 + 1 file changed, 1 insertion(+) diff --git a/composer.json b/composer.json index 83dac9ecf..44501ac85 100644 --- a/composer.json +++ b/composer.json @@ -106,6 +106,7 @@ "fzaninotto/faker": "~1.4", "symfony/css-selector": "3.1.*", "symfony/dom-crawler": "3.1.*", + "anomaly/installer-module": "~2.4.0", "laravel/sail": "^1.14" }, "repositories": [ From ecae9feecc23f2c3d49311073011a1d710694704 Mon Sep 17 00:00:00 2001 From: Moradii Date: Thu, 9 Jun 2022 09:42:53 +0300 Subject: [PATCH 04/13] docker php 7.4 --- composer.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/composer.json b/composer.json index 44501ac85..17a882fc9 100644 --- a/composer.json +++ b/composer.json @@ -148,5 +148,10 @@ "*" ] } + }, + "config": { + "bin-dir": "bin", + "preferred-install": "dist", + "optimize-autoloader": true } } From 962c57ec2c53ca8f283fbcdb0864781763c449c9 Mon Sep 17 00:00:00 2001 From: Moradii Date: Thu, 9 Jun 2022 13:03:29 +0300 Subject: [PATCH 05/13] docker --- .env-sail | 3 ++ docker-compose.yml | 11 +----- docker/7.4/Dockerfile | 69 +++++++++++++++++++++++++++++++++++++ docker/7.4/php.ini | 4 +++ docker/7.4/scheduler | 1 + docker/7.4/start-container | 17 +++++++++ docker/7.4/supervisord.conf | 30 ++++++++++++++++ docker/8.0/Dockerfile | 64 ++++++++++++++++++++++++++++++++++ docker/8.0/php.ini | 4 +++ docker/8.0/start-container | 17 +++++++++ docker/8.0/supervisord.conf | 14 ++++++++ docker/8.1/Dockerfile | 63 +++++++++++++++++++++++++++++++++ docker/8.1/php.ini | 4 +++ docker/8.1/start-container | 17 +++++++++ docker/8.1/supervisord.conf | 14 ++++++++ supervisord/horizon.conf | 9 +++++ 16 files changed, 331 insertions(+), 10 deletions(-) create mode 100644 docker/7.4/Dockerfile create mode 100644 docker/7.4/php.ini create mode 100644 docker/7.4/scheduler create mode 100644 docker/7.4/start-container create mode 100644 docker/7.4/supervisord.conf create mode 100644 docker/8.0/Dockerfile create mode 100644 docker/8.0/php.ini create mode 100644 docker/8.0/start-container create mode 100644 docker/8.0/supervisord.conf create mode 100644 docker/8.1/Dockerfile create mode 100644 docker/8.1/php.ini create mode 100644 docker/8.1/start-container create mode 100644 docker/8.1/supervisord.conf create mode 100644 supervisord/horizon.conf diff --git a/.env-sail b/.env-sail index 489c495a7..8762d0ffa 100644 --- a/.env-sail +++ b/.env-sail @@ -16,3 +16,6 @@ ADMIN_EMAIL=admin@example.com ADMIN_PASSWORD=admin APP_LOCALE=en APP_TIMEZONE=UTC +REDIS_CLIENT=phpredis +REDIS_HOST=redis +REDIS_PORT=6379 diff --git a/docker-compose.yml b/docker-compose.yml index 33f5e86ca..de2556b2d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,7 +3,7 @@ version: '3' services: laravel.test: build: - context: ./vendor/laravel/sail/runtimes/7.4 + context: ./docker/7.4 dockerfile: Dockerfile args: WWWGROUP: '${WWWGROUP}' @@ -20,7 +20,6 @@ services: XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}' volumes: - '.:/var/www/html' - - './supervisord.conf:/etc/supervisor/conf.d/supervisord.conf' networks: - sail depends_on: @@ -76,14 +75,6 @@ services: - '11211:11211' networks: - sail - crontab.ui: - image: 'alseambusher/crontab-ui' - ports: - - '8181:8181' - environment: - PORT: '8181' - networks: - - sail networks: sail: driver: bridge diff --git a/docker/7.4/Dockerfile b/docker/7.4/Dockerfile new file mode 100644 index 000000000..bf27e18b0 --- /dev/null +++ b/docker/7.4/Dockerfile @@ -0,0 +1,69 @@ +FROM ubuntu:21.10 + +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 impish main" > /etc/apt/sources.list.d/ppa_ondrej_php.list \ + && apt-get update \ + && apt-get install -y php7.4-cli php7.4-dev \ + php7.4-pgsql php7.4-sqlite3 php7.4-gd \ + php7.4-curl php7.4-memcached \ + php7.4-imap php7.4-mysql php7.4-mbstring \ + php7.4-xml php7.4-zip php7.4-bcmath php7.4-soap \ + php7.4-intl php7.4-readline php7.4-pcov \ + php7.4-msgpack php7.4-igbinary php7.4-ldap \ + php7.4-redis php7.4-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/yarnkey.gpg >/dev/null \ + && echo "deb [signed-by=/usr/share/keyrings/yarnkey.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 impish-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 \ + && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \ + && apt-get update \ + && apt-get install -y cron \ + && apt-get -y autoremove \ + && apt-get clean \ + +RUN setcap "cap_net_bind_service=+ep" /usr/bin/php7.4 + +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/7.4/cli/conf.d/99-sail.ini +RUN chmod +x /usr/local/bin/start-container + +COPY scheduler /etc/cron.d/scheduler +RUN chmod +x /etc/cron.d/scheduler + +RUN crontab /etc/cron.d/scheduler + +EXPOSE 8000 + +ENTRYPOINT ["start-container"] diff --git a/docker/7.4/php.ini b/docker/7.4/php.ini new file mode 100644 index 000000000..66d04d5be --- /dev/null +++ b/docker/7.4/php.ini @@ -0,0 +1,4 @@ +[PHP] +post_max_size = 100M +upload_max_filesize = 100M +variables_order = EGPCS diff --git a/docker/7.4/scheduler b/docker/7.4/scheduler new file mode 100644 index 000000000..69e95f100 --- /dev/null +++ b/docker/7.4/scheduler @@ -0,0 +1 @@ +* * * * * root cd /var/www/html && php artisan schedule:run >> /dev/null 2>&1 diff --git a/docker/7.4/start-container b/docker/7.4/start-container new file mode 100644 index 000000000..b86439907 --- /dev/null +++ b/docker/7.4/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/docker/7.4/supervisord.conf b/docker/7.4/supervisord.conf new file mode 100644 index 000000000..aaccf41fc --- /dev/null +++ b/docker/7.4/supervisord.conf @@ -0,0 +1,30 @@ +[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 + +[program:cron] +command=/usr/sbin/cron -f -l 8 +autostart=true +stdout_logfile=/var/log/cron.out.log +stderr_logfile=/var/log/cron.err.log + +[program:horizon] +process_name=%(program_name)s +command=php /var/www/html/artisan horizon +autostart=true +autorestart=true +user=sail +redirect_stderr=true +stdout_logfile=/var/www/html/storage/logs/horizon.log +stopwaitsecs=3600 \ No newline at end of file diff --git a/docker/8.0/Dockerfile b/docker/8.0/Dockerfile new file mode 100644 index 000000000..096adad92 --- /dev/null +++ b/docker/8.0/Dockerfile @@ -0,0 +1,64 @@ +FROM ubuntu:21.10 + +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 impish main" > /etc/apt/sources.list.d/ppa_ondrej_php.list \ + && apt-get update \ + && apt-get install -y php8.0-cli php8.0-dev \ + php8.0-pgsql php8.0-sqlite3 php8.0-gd \ + php8.0-curl php8.0-memcached \ + php8.0-imap php8.0-mysql php8.0-mbstring \ + php8.0-xml php8.0-zip php8.0-bcmath php8.0-soap \ + php8.0-intl php8.0-readline php8.0-pcov \ + php8.0-msgpack php8.0-igbinary php8.0-ldap \ + php8.0-redis php8.0-swoole php8.0-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/yarnkey.gpg >/dev/null \ + && echo "deb [signed-by=/usr/share/keyrings/yarnkey.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 impish-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 update-alternatives --set php /usr/bin/php8.0 + +RUN setcap "cap_net_bind_service=+ep" /usr/bin/php8.0 + +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.0/cli/conf.d/99-sail.ini +RUN chmod +x /usr/local/bin/start-container + +EXPOSE 8000 + +ENTRYPOINT ["start-container"] diff --git a/docker/8.0/php.ini b/docker/8.0/php.ini new file mode 100644 index 000000000..66d04d5be --- /dev/null +++ b/docker/8.0/php.ini @@ -0,0 +1,4 @@ +[PHP] +post_max_size = 100M +upload_max_filesize = 100M +variables_order = EGPCS diff --git a/docker/8.0/start-container b/docker/8.0/start-container new file mode 100644 index 000000000..b86439907 --- /dev/null +++ b/docker/8.0/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/docker/8.0/supervisord.conf b/docker/8.0/supervisord.conf new file mode 100644 index 000000000..9d2847958 --- /dev/null +++ b/docker/8.0/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 diff --git a/docker/8.1/Dockerfile b/docker/8.1/Dockerfile new file mode 100644 index 000000000..0277709f1 --- /dev/null +++ b/docker/8.1/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/docker/8.1/php.ini b/docker/8.1/php.ini new file mode 100644 index 000000000..66d04d5be --- /dev/null +++ b/docker/8.1/php.ini @@ -0,0 +1,4 @@ +[PHP] +post_max_size = 100M +upload_max_filesize = 100M +variables_order = EGPCS diff --git a/docker/8.1/start-container b/docker/8.1/start-container new file mode 100644 index 000000000..b86439907 --- /dev/null +++ b/docker/8.1/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/docker/8.1/supervisord.conf b/docker/8.1/supervisord.conf new file mode 100644 index 000000000..9d2847958 --- /dev/null +++ b/docker/8.1/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 diff --git a/supervisord/horizon.conf b/supervisord/horizon.conf new file mode 100644 index 000000000..7a4f9d46a --- /dev/null +++ b/supervisord/horizon.conf @@ -0,0 +1,9 @@ +[program:horizon] +process_name=%(program_name)s +command=php /var/www/html/artisan horizon +autostart=true +autorestart=true +user=sail +redirect_stderr=true +stdout_logfile=/var/www/html/storage/logs/horizon.log +stopwaitsecs=3600 \ No newline at end of file From 211c70d654df14584eff3355cea0c61509280723 Mon Sep 17 00:00:00 2001 From: Mostafa Moradi Date: Thu, 9 Jun 2022 15:24:20 +0300 Subject: [PATCH 06/13] docker --- composer.json | 6 ++---- docker/7.4/supervisord.conf | 17 ++--------------- docker/8.0/Dockerfile | 9 ++++++++- docker/8.0/supervisord.conf | 3 +++ docker/8.1/Dockerfile | 5 +++++ docker/8.1/scheduler | 1 + docker/8.1/supervisord.conf | 3 +++ supervisord/cron.conf | 5 +++++ supervisord/horizon.conf | 9 --------- 9 files changed, 29 insertions(+), 29 deletions(-) create mode 100644 docker/8.1/scheduler create mode 100644 supervisord/cron.conf delete mode 100644 supervisord/horizon.conf diff --git a/composer.json b/composer.json index 17a882fc9..f4b66080c 100644 --- a/composer.json +++ b/composer.json @@ -94,9 +94,7 @@ "visiosoft/base-theme": "^1.0", "visiosoft/advs-module": "^1.0", "visiosoft/json-field_type": "^1.0", - "visiosoft/language_switcher-plugin": "^1.0", - "predis/predis": "^2.0", - "laravel/horizon": "^5.9" + "visiosoft/language_switcher-plugin": "^1.0" }, "replace": { "anomaly/streams-platform": "*" @@ -152,6 +150,6 @@ "config": { "bin-dir": "bin", "preferred-install": "dist", - "optimize-autoloader": true + "optimize-autoloader": true, } } diff --git a/docker/7.4/supervisord.conf b/docker/7.4/supervisord.conf index aaccf41fc..a3b42f623 100644 --- a/docker/7.4/supervisord.conf +++ b/docker/7.4/supervisord.conf @@ -13,18 +13,5 @@ stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 -[program:cron] -command=/usr/sbin/cron -f -l 8 -autostart=true -stdout_logfile=/var/log/cron.out.log -stderr_logfile=/var/log/cron.err.log - -[program:horizon] -process_name=%(program_name)s -command=php /var/www/html/artisan horizon -autostart=true -autorestart=true -user=sail -redirect_stderr=true -stdout_logfile=/var/www/html/storage/logs/horizon.log -stopwaitsecs=3600 \ No newline at end of file +[include] +files=/var/www/html/supervisord/*.conf \ No newline at end of file diff --git a/docker/8.0/Dockerfile b/docker/8.0/Dockerfile index 096adad92..147700d17 100644 --- a/docker/8.0/Dockerfile +++ b/docker/8.0/Dockerfile @@ -43,9 +43,11 @@ RUN apt-get update \ && apt-get install -y yarn \ && apt-get install -y mysql-client \ && apt-get install -y postgresql-client-$POSTGRES_VERSION \ + && apt-get update \ + && apt-get install -y cron \ && apt-get -y autoremove \ && apt-get clean \ - && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \ RUN update-alternatives --set php /usr/bin/php8.0 @@ -59,6 +61,11 @@ COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf COPY php.ini /etc/php/8.0/cli/conf.d/99-sail.ini RUN chmod +x /usr/local/bin/start-container +COPY scheduler /etc/cron.d/scheduler +RUN chmod +x /etc/cron.d/scheduler + +RUN crontab /etc/cron.d/scheduler + EXPOSE 8000 ENTRYPOINT ["start-container"] diff --git a/docker/8.0/supervisord.conf b/docker/8.0/supervisord.conf index 9d2847958..a3b42f623 100644 --- a/docker/8.0/supervisord.conf +++ b/docker/8.0/supervisord.conf @@ -12,3 +12,6 @@ stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 + +[include] +files=/var/www/html/supervisord/*.conf \ No newline at end of file diff --git a/docker/8.1/Dockerfile b/docker/8.1/Dockerfile index 0277709f1..3c055802a 100644 --- a/docker/8.1/Dockerfile +++ b/docker/8.1/Dockerfile @@ -58,6 +58,11 @@ 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 +COPY scheduler /etc/cron.d/scheduler +RUN chmod +x /etc/cron.d/scheduler + +RUN crontab /etc/cron.d/scheduler + EXPOSE 8000 ENTRYPOINT ["start-container"] diff --git a/docker/8.1/scheduler b/docker/8.1/scheduler new file mode 100644 index 000000000..69e95f100 --- /dev/null +++ b/docker/8.1/scheduler @@ -0,0 +1 @@ +* * * * * root cd /var/www/html && php artisan schedule:run >> /dev/null 2>&1 diff --git a/docker/8.1/supervisord.conf b/docker/8.1/supervisord.conf index 9d2847958..a3b42f623 100644 --- a/docker/8.1/supervisord.conf +++ b/docker/8.1/supervisord.conf @@ -12,3 +12,6 @@ stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 + +[include] +files=/var/www/html/supervisord/*.conf \ No newline at end of file diff --git a/supervisord/cron.conf b/supervisord/cron.conf new file mode 100644 index 000000000..1d1bbba5d --- /dev/null +++ b/supervisord/cron.conf @@ -0,0 +1,5 @@ +[program:cron] +command=/usr/sbin/cron -f -l 8 +autostart=true +stdout_logfile=/var/log/cron.out.log +stderr_logfile=/var/log/cron.err.log diff --git a/supervisord/horizon.conf b/supervisord/horizon.conf deleted file mode 100644 index 7a4f9d46a..000000000 --- a/supervisord/horizon.conf +++ /dev/null @@ -1,9 +0,0 @@ -[program:horizon] -process_name=%(program_name)s -command=php /var/www/html/artisan horizon -autostart=true -autorestart=true -user=sail -redirect_stderr=true -stdout_logfile=/var/www/html/storage/logs/horizon.log -stopwaitsecs=3600 \ No newline at end of file From 2ba784cbd5952ab66ed3159a5117e4fe1dae1c29 Mon Sep 17 00:00:00 2001 From: Mostafa Moradi Date: Thu, 9 Jun 2022 15:25:27 +0300 Subject: [PATCH 07/13] docker --- docker/8.0/scheduler | 1 + 1 file changed, 1 insertion(+) create mode 100644 docker/8.0/scheduler diff --git a/docker/8.0/scheduler b/docker/8.0/scheduler new file mode 100644 index 000000000..69e95f100 --- /dev/null +++ b/docker/8.0/scheduler @@ -0,0 +1 @@ +* * * * * root cd /var/www/html && php artisan schedule:run >> /dev/null 2>&1 From 1b84c227c32ad6b619e2b30f44453bfa51360def Mon Sep 17 00:00:00 2001 From: Mostafa Moradi Date: Thu, 9 Jun 2022 16:03:40 +0300 Subject: [PATCH 08/13] docker --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 6773f8a8e..4233c0ef2 100644 --- a/composer.json +++ b/composer.json @@ -151,6 +151,6 @@ "config": { "bin-dir": "bin", "preferred-install": "dist", - "optimize-autoloader": true, + "optimize-autoloader": true } } From ea81195a6e1b2f1c35552e7830847a8bf4075a99 Mon Sep 17 00:00:00 2001 From: Mostafa Moradi Date: Thu, 9 Jun 2022 18:30:03 +0300 Subject: [PATCH 09/13] docker --- docker-compose.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index de2556b2d..d736f1e9f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,7 +7,7 @@ services: dockerfile: Dockerfile args: WWWGROUP: '${WWWGROUP}' - image: sail-7.4/app + image: sail-7.4/drifter extra_hosts: - 'host.docker.internal:host-gateway' ports: @@ -22,9 +22,6 @@ services: - '.:/var/www/html' networks: - sail - depends_on: - - mysql - - redis phpmyadmin: image: 'phpmyadmin:latest' ports: From c806568ef72ac0e5efda7cbfd90992f3e3128d59 Mon Sep 17 00:00:00 2001 From: Mostafa Moradi Date: Thu, 9 Jun 2022 18:32:00 +0300 Subject: [PATCH 10/13] docker --- docker/7.4/Dockerfile | 5 ++- docker/8.0/Dockerfile | 71 ------------------------------------- docker/8.0/php.ini | 4 --- docker/8.0/scheduler | 1 - docker/8.0/start-container | 17 --------- docker/8.0/supervisord.conf | 17 --------- docker/8.1/Dockerfile | 68 ----------------------------------- docker/8.1/php.ini | 4 --- docker/8.1/scheduler | 1 - docker/8.1/start-container | 17 --------- docker/8.1/supervisord.conf | 17 --------- 11 files changed, 2 insertions(+), 220 deletions(-) delete mode 100644 docker/8.0/Dockerfile delete mode 100644 docker/8.0/php.ini delete mode 100644 docker/8.0/scheduler delete mode 100644 docker/8.0/start-container delete mode 100644 docker/8.0/supervisord.conf delete mode 100644 docker/8.1/Dockerfile delete mode 100644 docker/8.1/php.ini delete mode 100644 docker/8.1/scheduler delete mode 100644 docker/8.1/start-container delete mode 100644 docker/8.1/supervisord.conf diff --git a/docker/7.4/Dockerfile b/docker/7.4/Dockerfile index bf27e18b0..f70e75270 100644 --- a/docker/7.4/Dockerfile +++ b/docker/7.4/Dockerfile @@ -43,11 +43,11 @@ RUN apt-get update \ && apt-get install -y yarn \ && apt-get install -y mysql-client \ && apt-get install -y postgresql-client-$POSTGRES_VERSION \ - && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \ && apt-get update \ && apt-get install -y cron \ && 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/php7.4 @@ -60,8 +60,7 @@ COPY php.ini /etc/php/7.4/cli/conf.d/99-sail.ini RUN chmod +x /usr/local/bin/start-container COPY scheduler /etc/cron.d/scheduler -RUN chmod +x /etc/cron.d/scheduler - +RUN chmod 0644 /etc/cron.d/scheduler RUN crontab /etc/cron.d/scheduler EXPOSE 8000 diff --git a/docker/8.0/Dockerfile b/docker/8.0/Dockerfile deleted file mode 100644 index 147700d17..000000000 --- a/docker/8.0/Dockerfile +++ /dev/null @@ -1,71 +0,0 @@ -FROM ubuntu:21.10 - -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 impish main" > /etc/apt/sources.list.d/ppa_ondrej_php.list \ - && apt-get update \ - && apt-get install -y php8.0-cli php8.0-dev \ - php8.0-pgsql php8.0-sqlite3 php8.0-gd \ - php8.0-curl php8.0-memcached \ - php8.0-imap php8.0-mysql php8.0-mbstring \ - php8.0-xml php8.0-zip php8.0-bcmath php8.0-soap \ - php8.0-intl php8.0-readline php8.0-pcov \ - php8.0-msgpack php8.0-igbinary php8.0-ldap \ - php8.0-redis php8.0-swoole php8.0-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/yarnkey.gpg >/dev/null \ - && echo "deb [signed-by=/usr/share/keyrings/yarnkey.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 impish-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 update \ - && apt-get install -y cron \ - && apt-get -y autoremove \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \ - -RUN update-alternatives --set php /usr/bin/php8.0 - -RUN setcap "cap_net_bind_service=+ep" /usr/bin/php8.0 - -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.0/cli/conf.d/99-sail.ini -RUN chmod +x /usr/local/bin/start-container - -COPY scheduler /etc/cron.d/scheduler -RUN chmod +x /etc/cron.d/scheduler - -RUN crontab /etc/cron.d/scheduler - -EXPOSE 8000 - -ENTRYPOINT ["start-container"] diff --git a/docker/8.0/php.ini b/docker/8.0/php.ini deleted file mode 100644 index 66d04d5be..000000000 --- a/docker/8.0/php.ini +++ /dev/null @@ -1,4 +0,0 @@ -[PHP] -post_max_size = 100M -upload_max_filesize = 100M -variables_order = EGPCS diff --git a/docker/8.0/scheduler b/docker/8.0/scheduler deleted file mode 100644 index 69e95f100..000000000 --- a/docker/8.0/scheduler +++ /dev/null @@ -1 +0,0 @@ -* * * * * root cd /var/www/html && php artisan schedule:run >> /dev/null 2>&1 diff --git a/docker/8.0/start-container b/docker/8.0/start-container deleted file mode 100644 index b86439907..000000000 --- a/docker/8.0/start-container +++ /dev/null @@ -1,17 +0,0 @@ -#!/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/docker/8.0/supervisord.conf b/docker/8.0/supervisord.conf deleted file mode 100644 index a3b42f623..000000000 --- a/docker/8.0/supervisord.conf +++ /dev/null @@ -1,17 +0,0 @@ -[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 - -[include] -files=/var/www/html/supervisord/*.conf \ No newline at end of file diff --git a/docker/8.1/Dockerfile b/docker/8.1/Dockerfile deleted file mode 100644 index 3c055802a..000000000 --- a/docker/8.1/Dockerfile +++ /dev/null @@ -1,68 +0,0 @@ -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 - -COPY scheduler /etc/cron.d/scheduler -RUN chmod +x /etc/cron.d/scheduler - -RUN crontab /etc/cron.d/scheduler - -EXPOSE 8000 - -ENTRYPOINT ["start-container"] diff --git a/docker/8.1/php.ini b/docker/8.1/php.ini deleted file mode 100644 index 66d04d5be..000000000 --- a/docker/8.1/php.ini +++ /dev/null @@ -1,4 +0,0 @@ -[PHP] -post_max_size = 100M -upload_max_filesize = 100M -variables_order = EGPCS diff --git a/docker/8.1/scheduler b/docker/8.1/scheduler deleted file mode 100644 index 69e95f100..000000000 --- a/docker/8.1/scheduler +++ /dev/null @@ -1 +0,0 @@ -* * * * * root cd /var/www/html && php artisan schedule:run >> /dev/null 2>&1 diff --git a/docker/8.1/start-container b/docker/8.1/start-container deleted file mode 100644 index b86439907..000000000 --- a/docker/8.1/start-container +++ /dev/null @@ -1,17 +0,0 @@ -#!/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/docker/8.1/supervisord.conf b/docker/8.1/supervisord.conf deleted file mode 100644 index a3b42f623..000000000 --- a/docker/8.1/supervisord.conf +++ /dev/null @@ -1,17 +0,0 @@ -[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 - -[include] -files=/var/www/html/supervisord/*.conf \ No newline at end of file From 416eb290f50bcea050526b862e8733a0371b9e29 Mon Sep 17 00:00:00 2001 From: Mostafa Moradi Date: Wed, 15 Jun 2022 10:57:22 +0300 Subject: [PATCH 11/13] docker --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index d736f1e9f..b94e54e5a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,7 +7,7 @@ services: dockerfile: Dockerfile args: WWWGROUP: '${WWWGROUP}' - image: sail-7.4/drifter + image: sail-7.4/openclassify extra_hosts: - 'host.docker.internal:host-gateway' ports: From fe14276d7956d6a69260286561eced5a56984130 Mon Sep 17 00:00:00 2001 From: Mostafa Moradi Date: Wed, 15 Jun 2022 10:57:54 +0300 Subject: [PATCH 12/13] docker --- .../api_logger-module/src/ApiLogger.php | 213 ++++++++++++++++++ .../src/Contract/ApiLoggerInterface.php | 29 +++ 2 files changed, 242 insertions(+) create mode 100644 addons/default/visiosoft/api_logger-module/src/ApiLogger.php create mode 100644 addons/default/visiosoft/api_logger-module/src/Contract/ApiLoggerInterface.php diff --git a/addons/default/visiosoft/api_logger-module/src/ApiLogger.php b/addons/default/visiosoft/api_logger-module/src/ApiLogger.php new file mode 100644 index 000000000..b9842ce3b --- /dev/null +++ b/addons/default/visiosoft/api_logger-module/src/ApiLogger.php @@ -0,0 +1,213 @@ +logRepository = $logRepository; + } + + /** + * @param string $url + * @param array $headers + * @param array $data + * @param array $params + * @return array + */ + public function getRequest(string $url, array $headers, array $data, array $params = []) + { + $url = $this->retrieveUrl($url, $params); + $ch = curl_init($url); + curl_setopt_array($ch, [ + CURLOPT_CUSTOMREQUEST => "GET", + CURLOPT_RETURNTRANSFER => TRUE, + CURLOPT_HTTPHEADER => $headers + ]); + $http_response = curl_exec($ch); + $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); + if ($http_code != 200) { + return $this->error($http_response, $http_code); + } + return $this->response(true, json_decode($http_response, true)); + } + + /** + * @param string $url + * @param array $headers + * @param array $data + * @param array $params + * @return array + */ + public function postRequest(string $url, array $headers, array $data, array $params = []) + { + $url = $this->retrieveUrl($url, $params); + $ch = curl_init($url); + curl_setopt_array($ch, [ + CURLOPT_CUSTOMREQUEST => "POST", + CURLOPT_RETURNTRANSFER => TRUE, + CURLOPT_HTTPHEADER => $headers, + CURLOPT_POSTFIELDS => $data + ]); + $http_response = curl_exec($ch); + $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); + if ($http_code != 200) { + return $this->error($http_response, $http_code); + } + return $this->response(true, json_decode($http_response, true)); + } + + /** + * @param string $url + * @param array $headers + * @param array $data + * @param array $params + * @return array + */ + public function putRequest(string $url, array $headers, array $data, array $params = []) + { + $url = $this->retrieveUrl($url, $params); + $ch = curl_init($url); + curl_setopt_array($ch, [ + CURLOPT_CUSTOMREQUEST => "PUT", + CURLOPT_RETURNTRANSFER => TRUE, + CURLOPT_HTTPHEADER => $headers, + CURLOPT_POSTFIELDS => $data + ]); + $http_response = curl_exec($ch); + $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); + if ($http_code != 200) { + return $this->error($http_response, $http_code); + } + return $this->response(true, json_decode($http_response, true)); + } + + /** + * @param string $url + * @param array $headers + * @param array $params + * @return array|string + */ + public function get(string $namespace, string $keyword, string $url, array $headers, array $params, bool $cache = false) + { + if ($cache) { + if ($cacheData = $this->logRepository->where('namespace', $namespace)->where('keyword', $keyword)->first()) { + return $this->response(true, json_decode($cacheData->response, true)); + } + $data = $this->getRequest($url, $headers, $params); + if (!$data['success']) { + return $data; + } + $this->logRepository->create([ + 'namespace' => $namespace, + 'keyword' => $keyword, + 'url' => $url, + 'params' => json_encode($params), + 'data' => '', + 'response' => json_encode($data['data']) + ]); + return $data; + } + return $this->getRequest($url, $headers, $params); + } + + /** + * @param string $url + * @param array $headers + * @param array $data + * @param array $params + * @return array|string + */ + public function post(string $namespace, string $keyword, string $url, array $headers, array $data, array $params = [], bool $cache = false) + { + if ($cache) { + if ($cacheData = $this->logRepository->where('namespace', $namespace)->where('keyword', $keyword)->first()) { + return $this->response(true, json_decode($cacheData->response, true)); + } + $data = $this->postRequest($url, $headers, $data, $params); + if (!$data['success']) { + return $data; + } + $this->logRepository->create([ + 'namespace' => $namespace, + 'keyword' => $keyword, + 'url' => $url, + 'params' => json_encode($params), + 'data' => '', + 'response' => json_encode($data['data']) + ]); + return $data; + } + return $this->postRequest($url, $headers, $data, $params); + } + + /** + * @param string $url + * @param array $headers + * @param array $data + * @param array $params + * @return array|string + */ + public function put(string $namespace, string $keyword, string $url, array $headers, array $data, array $params = [], bool $cache = false) + { + if ($cache) { + if ($cacheData = $this->logRepository->where('namespace', $namespace)->where('keyword', $keyword)->first()) { + return $this->response(true, json_decode($cacheData->response, true)); + } + $data = $this->putRequest($url, $headers, $data, $params); + if (!$data['success']) { + return $data; + } + $this->logRepository->create([ + 'namespace' => $namespace, + 'keyword' => $keyword, + 'url' => $url, + 'params' => json_encode($params), + 'data' => '', + 'response' => json_encode($data['data']) + ]); + return $data; + } + return $this->putRequest($url, $headers, $data, $params); + } + + + public function response(bool $success, array $data, string $message = '', int $statusCode = 200): array + { + return [ + 'success' => $success, + 'data' => $data, + 'message' => $message, + 'status_code' => $statusCode + ]; + } + + public function Error(string $message, int $statusCode, array $data = []): array + { + return [ + 'success' => false, + 'data' => $data, + 'message' => $message, + 'status_code' => $statusCode + ]; + } + + public function exceptionError($e): string + { + return $e->getMessage . ' LINE: ' . $e->getLine(); + } + + public function retrieveUrl($url, $params): string + { + if (!empty($params)) { + $url = $url . '?' . http_build_query($params); + } + return $url; + } +} \ No newline at end of file diff --git a/addons/default/visiosoft/api_logger-module/src/Contract/ApiLoggerInterface.php b/addons/default/visiosoft/api_logger-module/src/Contract/ApiLoggerInterface.php new file mode 100644 index 000000000..d746066a8 --- /dev/null +++ b/addons/default/visiosoft/api_logger-module/src/Contract/ApiLoggerInterface.php @@ -0,0 +1,29 @@ + Date: Wed, 15 Jun 2022 11:04:25 +0300 Subject: [PATCH 13/13] docker --- .../api_logger-module/src/ApiLogger.php | 213 ------------------ .../src/Contract/ApiLoggerInterface.php | 29 --- 2 files changed, 242 deletions(-) delete mode 100644 addons/default/visiosoft/api_logger-module/src/ApiLogger.php delete mode 100644 addons/default/visiosoft/api_logger-module/src/Contract/ApiLoggerInterface.php diff --git a/addons/default/visiosoft/api_logger-module/src/ApiLogger.php b/addons/default/visiosoft/api_logger-module/src/ApiLogger.php deleted file mode 100644 index b9842ce3b..000000000 --- a/addons/default/visiosoft/api_logger-module/src/ApiLogger.php +++ /dev/null @@ -1,213 +0,0 @@ -logRepository = $logRepository; - } - - /** - * @param string $url - * @param array $headers - * @param array $data - * @param array $params - * @return array - */ - public function getRequest(string $url, array $headers, array $data, array $params = []) - { - $url = $this->retrieveUrl($url, $params); - $ch = curl_init($url); - curl_setopt_array($ch, [ - CURLOPT_CUSTOMREQUEST => "GET", - CURLOPT_RETURNTRANSFER => TRUE, - CURLOPT_HTTPHEADER => $headers - ]); - $http_response = curl_exec($ch); - $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); - if ($http_code != 200) { - return $this->error($http_response, $http_code); - } - return $this->response(true, json_decode($http_response, true)); - } - - /** - * @param string $url - * @param array $headers - * @param array $data - * @param array $params - * @return array - */ - public function postRequest(string $url, array $headers, array $data, array $params = []) - { - $url = $this->retrieveUrl($url, $params); - $ch = curl_init($url); - curl_setopt_array($ch, [ - CURLOPT_CUSTOMREQUEST => "POST", - CURLOPT_RETURNTRANSFER => TRUE, - CURLOPT_HTTPHEADER => $headers, - CURLOPT_POSTFIELDS => $data - ]); - $http_response = curl_exec($ch); - $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); - if ($http_code != 200) { - return $this->error($http_response, $http_code); - } - return $this->response(true, json_decode($http_response, true)); - } - - /** - * @param string $url - * @param array $headers - * @param array $data - * @param array $params - * @return array - */ - public function putRequest(string $url, array $headers, array $data, array $params = []) - { - $url = $this->retrieveUrl($url, $params); - $ch = curl_init($url); - curl_setopt_array($ch, [ - CURLOPT_CUSTOMREQUEST => "PUT", - CURLOPT_RETURNTRANSFER => TRUE, - CURLOPT_HTTPHEADER => $headers, - CURLOPT_POSTFIELDS => $data - ]); - $http_response = curl_exec($ch); - $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); - if ($http_code != 200) { - return $this->error($http_response, $http_code); - } - return $this->response(true, json_decode($http_response, true)); - } - - /** - * @param string $url - * @param array $headers - * @param array $params - * @return array|string - */ - public function get(string $namespace, string $keyword, string $url, array $headers, array $params, bool $cache = false) - { - if ($cache) { - if ($cacheData = $this->logRepository->where('namespace', $namespace)->where('keyword', $keyword)->first()) { - return $this->response(true, json_decode($cacheData->response, true)); - } - $data = $this->getRequest($url, $headers, $params); - if (!$data['success']) { - return $data; - } - $this->logRepository->create([ - 'namespace' => $namespace, - 'keyword' => $keyword, - 'url' => $url, - 'params' => json_encode($params), - 'data' => '', - 'response' => json_encode($data['data']) - ]); - return $data; - } - return $this->getRequest($url, $headers, $params); - } - - /** - * @param string $url - * @param array $headers - * @param array $data - * @param array $params - * @return array|string - */ - public function post(string $namespace, string $keyword, string $url, array $headers, array $data, array $params = [], bool $cache = false) - { - if ($cache) { - if ($cacheData = $this->logRepository->where('namespace', $namespace)->where('keyword', $keyword)->first()) { - return $this->response(true, json_decode($cacheData->response, true)); - } - $data = $this->postRequest($url, $headers, $data, $params); - if (!$data['success']) { - return $data; - } - $this->logRepository->create([ - 'namespace' => $namespace, - 'keyword' => $keyword, - 'url' => $url, - 'params' => json_encode($params), - 'data' => '', - 'response' => json_encode($data['data']) - ]); - return $data; - } - return $this->postRequest($url, $headers, $data, $params); - } - - /** - * @param string $url - * @param array $headers - * @param array $data - * @param array $params - * @return array|string - */ - public function put(string $namespace, string $keyword, string $url, array $headers, array $data, array $params = [], bool $cache = false) - { - if ($cache) { - if ($cacheData = $this->logRepository->where('namespace', $namespace)->where('keyword', $keyword)->first()) { - return $this->response(true, json_decode($cacheData->response, true)); - } - $data = $this->putRequest($url, $headers, $data, $params); - if (!$data['success']) { - return $data; - } - $this->logRepository->create([ - 'namespace' => $namespace, - 'keyword' => $keyword, - 'url' => $url, - 'params' => json_encode($params), - 'data' => '', - 'response' => json_encode($data['data']) - ]); - return $data; - } - return $this->putRequest($url, $headers, $data, $params); - } - - - public function response(bool $success, array $data, string $message = '', int $statusCode = 200): array - { - return [ - 'success' => $success, - 'data' => $data, - 'message' => $message, - 'status_code' => $statusCode - ]; - } - - public function Error(string $message, int $statusCode, array $data = []): array - { - return [ - 'success' => false, - 'data' => $data, - 'message' => $message, - 'status_code' => $statusCode - ]; - } - - public function exceptionError($e): string - { - return $e->getMessage . ' LINE: ' . $e->getLine(); - } - - public function retrieveUrl($url, $params): string - { - if (!empty($params)) { - $url = $url . '?' . http_build_query($params); - } - return $url; - } -} \ No newline at end of file diff --git a/addons/default/visiosoft/api_logger-module/src/Contract/ApiLoggerInterface.php b/addons/default/visiosoft/api_logger-module/src/Contract/ApiLoggerInterface.php deleted file mode 100644 index d746066a8..000000000 --- a/addons/default/visiosoft/api_logger-module/src/Contract/ApiLoggerInterface.php +++ /dev/null @@ -1,29 +0,0 @@ -