diff --git a/docker-compose.yml b/docker-compose.yml index 6e32d09..0a052a0 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -46,7 +46,6 @@ services: working_dir: /application environment: - TZ=Europe/Moscow - command: ["/usr/bin/supervisord"] depends_on: - mysql networks: @@ -55,7 +54,42 @@ services: volumes: - "./app:/application" - "./phpdocker/php-fpm/php-ini-overrides.ini:/etc/php/8.2/fpm/conf.d/99-overrides.ini" - - "./phpdocker/php-fpm/laravel-worker.conf:/etc/supervisor/conf.d/laravel-worker.conf" + labels: + - "traefik.enable=false" + restart: always + + frontend: + build: phpdocker/front-end + command: "npm run watch" + working_dir: /application + environment: + - TZ=Europe/Moscow + depends_on: + - mysql + - php-fpm + networks: + - ns-eatvio + volumes: + - "./app:/application" + labels: + - "traefik.enable=false" + restart: always + + worker: + build: phpdocker/worker + working_dir: /application + environment: + - TZ=Europe/Moscow + command: "service supervisor start" + depends_on: + - mysql + - php-fpm + networks: + - ns-eatvio + volumes: + - "./app:/application" + - "./phpdocker/worker/php-ini-overrides.ini:/etc/php/8.2/fpm/conf.d/99-overrides.ini" + - "./phpdocker/worker/laravel-worker.conf:/etc/supervisor/conf.d/laravel-worker.conf" labels: - "traefik.enable=false" restart: always diff --git a/phpdocker/front-end/Dockerfile b/phpdocker/front-end/Dockerfile new file mode 100644 index 0000000..95fc7c4 --- /dev/null +++ b/phpdocker/front-end/Dockerfile @@ -0,0 +1,16 @@ +FROM phpdockerio/php:8.2-fpm +WORKDIR "/application" + +RUN curl -sL https://deb.nodesource.com/setup_20.x | bash - +RUN apt-get update && \ + apt-get -y --no-install-recommends install \ + git \ + php8.2-gd \ + php8.2-mysql \ + php8.2-sqlite3 \ + php8.2-pgsql \ + nodejs && npm install -g npm@10.1.0 \ + apt-get clean; \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* + +ENV PATH=node_modules/.bin:$PATH diff --git a/phpdocker/front-end/laravel-worker.conf b/phpdocker/front-end/laravel-worker.conf new file mode 100644 index 0000000..3826cdc --- /dev/null +++ b/phpdocker/front-end/laravel-worker.conf @@ -0,0 +1,23 @@ +[supervisord] +nodaemon=true + +[program:laravel-worker] +process_name=%(program_name)s_%(process_num)02d +command=php /application/artisan queue:work --sleep=3 --tries=3 --max-time=3600 +autostart=true +autorestart=true +stopasgroup=true +killasgroup=true +user=www-data +numprocs=2 +redirect_stderr=true +stdout_logfile=/application/storage/logs/worker.log +stopwaitsecs=3600 + +[program:php-fpm] +command=php-fpm8.2 -F +process_name=%(program_name)s_%(process_num)02d +stdout_logfile=/dev/stdout +stdout_logfile_maxbytes=0 +stdderr_logfile=/dev/stderr +stderr_logfile_maxbytes=0 diff --git a/phpdocker/front-end/php-ini-overrides.ini b/phpdocker/front-end/php-ini-overrides.ini new file mode 100644 index 0000000..850ae11 --- /dev/null +++ b/phpdocker/front-end/php-ini-overrides.ini @@ -0,0 +1,2 @@ +upload_max_filesize = 100M +post_max_size = 108M diff --git a/phpdocker/php-fpm/laravel-worker.conf b/phpdocker/php-fpm/laravel-worker.conf index 7a15976..3826cdc 100644 --- a/phpdocker/php-fpm/laravel-worker.conf +++ b/phpdocker/php-fpm/laravel-worker.conf @@ -9,7 +9,7 @@ autorestart=true stopasgroup=true killasgroup=true user=www-data -numprocs=4 +numprocs=2 redirect_stderr=true stdout_logfile=/application/storage/logs/worker.log stopwaitsecs=3600 diff --git a/phpdocker/worker/Dockerfile b/phpdocker/worker/Dockerfile new file mode 100644 index 0000000..59fe028 --- /dev/null +++ b/phpdocker/worker/Dockerfile @@ -0,0 +1,9 @@ +FROM phpdockerio/php:8.2-fpm +WORKDIR "/application" + +RUN apt-get update && \ + apt-get -y --no-install-recommends install git \ + php8.2-gd php8.2-mysql php8.2-sqlite3 php8.2-pgsql \ + python3-pkg-resources supervisor && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* diff --git a/phpdocker/worker/laravel-worker.conf b/phpdocker/worker/laravel-worker.conf new file mode 100644 index 0000000..cd2a642 --- /dev/null +++ b/phpdocker/worker/laravel-worker.conf @@ -0,0 +1,15 @@ +[supervisord] +nodaemon=true + +[program:laravel-worker] +process_name=%(program_name)s_%(process_num)02d +command=php /application/artisan queue:work --sleep=3 --tries=3 --max-time=3600 +autostart=true +autorestart=true +stopasgroup=true +killasgroup=true +user=www-data +numprocs=2 +redirect_stderr=true +stdout_logfile=/application/storage/logs/worker.log +stopwaitsecs=3600 diff --git a/phpdocker/worker/php-ini-overrides.ini b/phpdocker/worker/php-ini-overrides.ini new file mode 100644 index 0000000..850ae11 --- /dev/null +++ b/phpdocker/worker/php-ini-overrides.ini @@ -0,0 +1,2 @@ +upload_max_filesize = 100M +post_max_size = 108M