From a0e7ada889baa6a391f285b494b2996ebc0c3f98 Mon Sep 17 00:00:00 2001 From: alex-chevski Date: Fri, 9 Feb 2024 13:21:39 +0300 Subject: [PATCH 01/14] refactor(makefile): replace phpunit with parates --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 0298109..a47ca4a 100644 --- a/Makefile +++ b/Makefile @@ -69,7 +69,7 @@ node-frontend-deps: docker-compose exec php-fpm npm i --legacy-peer-deps test: - docker-compose exec php-fpm vendor/bin/phpunit + docker-compose exec php-fpm vendor/bin/paratest fix-insights: docker-compose exec php-fpm ./artisan insights --fix From 84b33683a17602cc755281bb45606e468f3e0d0c Mon Sep 17 00:00:00 2001 From: Anatoliy Date: Tue, 13 Feb 2024 13:12:36 +0300 Subject: [PATCH 02/14] ci(phpmnd) --- Makefile | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 0298109..696bea0 100644 --- a/Makefile +++ b/Makefile @@ -69,7 +69,7 @@ node-frontend-deps: docker-compose exec php-fpm npm i --legacy-peer-deps test: - docker-compose exec php-fpm vendor/bin/phpunit + docker-compose exec php-fpm vendor/bin/paratest fix-insights: docker-compose exec php-fpm ./artisan insights --fix @@ -81,9 +81,12 @@ rector: docker-compose exec php-fpm vendor/bin/rector process --dry-run static-analysis: - docker-compose exec php-fpm composer static-analysis + docker-compose exec php-fpm composer static-analysis -ci: test rector insights static-analysis +find-magic-numbers: + docker-compose exec php-fpm vendor/bin/phpmnd app/ tests/ + +ci: find-magic-numbers test rector insights static-analysis init: clone copy-infra-env restart setup-laravel-packages copy-laravel-env setup-laravel-key run-migrations node-frontend-deps build-frontend-prod fix-permissions make-storage-link From 66ddcd81450b33be43602965c437a19e77fbb037 Mon Sep 17 00:00:00 2001 From: Anatoliy Poloz Date: Wed, 14 Feb 2024 00:49:28 +0300 Subject: [PATCH 03/14] ci(make): reset db added --- Makefile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 696bea0..0d64fb7 100644 --- a/Makefile +++ b/Makefile @@ -20,6 +20,9 @@ bash: tinker: docker-compose exec php-fpm ./artisan tinker +reseed-db: + docker-compose exec php-fpm bash -c "./artisan migrate:refresh; ./artisan db:seed" + setup-laravel-key: docker-compose exec php-fpm php /application/artisan key:generate @@ -86,7 +89,7 @@ static-analysis: find-magic-numbers: docker-compose exec php-fpm vendor/bin/phpmnd app/ tests/ -ci: find-magic-numbers test rector insights static-analysis +ci: find-magic-numbers test rector insights static-analysis init: clone copy-infra-env restart setup-laravel-packages copy-laravel-env setup-laravel-key run-migrations node-frontend-deps build-frontend-prod fix-permissions make-storage-link From db6728bbf1a1203fdf9ba8f2f4bff161309ff189 Mon Sep 17 00:00:00 2001 From: Anatoliy Poloz Date: Fri, 16 Feb 2024 02:09:07 +0300 Subject: [PATCH 04/14] refactor(make) --- Makefile | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 0298109..8e0234b 100644 --- a/Makefile +++ b/Makefile @@ -69,7 +69,7 @@ node-frontend-deps: docker-compose exec php-fpm npm i --legacy-peer-deps test: - docker-compose exec php-fpm vendor/bin/phpunit + docker-compose exec php-fpm vendor/bin/paratest fix-insights: docker-compose exec php-fpm ./artisan insights --fix @@ -81,9 +81,14 @@ rector: docker-compose exec php-fpm vendor/bin/rector process --dry-run static-analysis: - docker-compose exec php-fpm composer static-analysis + docker-compose exec php-fpm composer static-analysis -ci: test rector insights static-analysis +detect-magic-numbers: + docker-compose exec php-fpm vendor/bin/phpmnd app/ tests/ + +ci: fix-code-style detect-magic-numbers test rector insights static-analysis +local-ci: + docker-compose exec -T php-fpm composer ci init: clone copy-infra-env restart setup-laravel-packages copy-laravel-env setup-laravel-key run-migrations node-frontend-deps build-frontend-prod fix-permissions make-storage-link From 66626a6a018b04531f97f92f40620b6d48e158f4 Mon Sep 17 00:00:00 2001 From: Anatoliy Poloz Date: Wed, 28 Feb 2024 11:42:27 +0300 Subject: [PATCH 05/14] supervisord added for laravel queue --- docker-compose.yml | 176 ++++++++++++++------------ phpdocker/php-fpm/Dockerfile | 21 +-- phpdocker/php-fpm/laravel-worker.conf | 23 ++++ 3 files changed, 127 insertions(+), 93 deletions(-) create mode 100644 phpdocker/php-fpm/laravel-worker.conf diff --git a/docker-compose.yml b/docker-compose.yml index 1486c25..6e32d09 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,90 +1,100 @@ --- -version: '3.1' +version: "3.1" services: - soketi: - image: 'quay.io/soketi/soketi:latest-16-alpine' - environment: - SOKETI_DEBUG: ${SOKETI_DEBUG} - SOKETI_METRICS_SERVER_PORT: ${SOKETI_METRICS_SERVER_PORT} - SOKETI_DEFAULT_APP_ID: ${SOKETI_DEFAULT_APP_ID} - SOKETI_DEFAULT_APP_KEY: ${SOKETI_DEFAULT_APP_KEY} - SOKETI_DEFAULT_APP_SECRET: ${SOKETI_DEFAULT_APP_SECRET} - SOKETI_DEFAULT_APP_ENABLE_CLIENT_MESSAGES: ${SOKETI_DEFAULT_APP_ENABLE_CLIENT_MESSAGES} - SOKETI_DEFAULT_APP_USER_AUTHENTICATION: ${SOKETI_DEFAULT_APP_USER_AUTHENTICATION} - ports: - - '${SOKETI_PORT:-6001}:6001' - - '${SOKETI_METRICS_SERVER_PORT:-9601}:9601' - networks: - ns-eatvio: - ipv4_address: 172.118.0.5 - labels: - - "traefik.enable=false" - restart: always + soketi: + image: "quay.io/soketi/soketi:latest-16-alpine" + environment: + SOKETI_DEBUG: ${SOKETI_DEBUG} + SOKETI_METRICS_SERVER_PORT: ${SOKETI_METRICS_SERVER_PORT} + SOKETI_DEFAULT_APP_ID: ${SOKETI_DEFAULT_APP_ID} + SOKETI_DEFAULT_APP_KEY: ${SOKETI_DEFAULT_APP_KEY} + SOKETI_DEFAULT_APP_SECRET: ${SOKETI_DEFAULT_APP_SECRET} + SOKETI_DEFAULT_APP_ENABLE_CLIENT_MESSAGES: ${SOKETI_DEFAULT_APP_ENABLE_CLIENT_MESSAGES} + SOKETI_DEFAULT_APP_USER_AUTHENTICATION: ${SOKETI_DEFAULT_APP_USER_AUTHENTICATION} + ports: + - "${SOKETI_PORT:-6001}:6001" + - "${SOKETI_METRICS_SERVER_PORT:-9601}:9601" + networks: + ns-eatvio: + ipv4_address: 172.118.0.5 + labels: + - "traefik.enable=false" + restart: always - mysql: - image: 'mysql:8.0' - working_dir: /application - networks: - ns-eatvio: - ipv4_address: 172.118.0.3 - volumes: - - '.:/application' - - './mysql_data:/var/lib/mysql' - environment: - MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} - MYSQL_DATABASE: ${MYSQL_DATABASE} - MYSQL_USER: ${MYSQL_USER} - MYSQL_PASSWORD: ${MYSQL_PASSWORD} - ports: - - '1094:3306' - labels: - - "traefik.enable=false" - restart: always + mysql: + image: "mysql:8.0" + working_dir: /application + networks: + ns-eatvio: + ipv4_address: 172.118.0.3 + volumes: + - ".:/application" + - "./mysql_data:/var/lib/mysql" + environment: + MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} + MYSQL_DATABASE: ${MYSQL_DATABASE} + MYSQL_USER: ${MYSQL_USER} + MYSQL_PASSWORD: ${MYSQL_PASSWORD} + ports: + - "1094:3306" + labels: + - "traefik.enable=false" + restart: always - php-fpm: - build: phpdocker/php-fpm - working_dir: /application - networks: - ns-eatvio: - ipv4_address: 172.118.0.2 - volumes: - - './app:/application' - - './phpdocker/php-fpm/php-ini-overrides.ini:/etc/php/8.2/fpm/conf.d/99-overrides.ini' - labels: - - "traefik.enable=false" - restart: always - webserver: - image: 'nginx:alpine' - working_dir: /application - restart: always - volumes: - - './app:/application' - - './phpdocker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf' - ports: - - '1092:80' - networks: - - web - - ns-eatvio - labels: - - "traefik.docker.network=web" - - "traefik.enable=true" - - "traefik.frontend.rule=Host:dev2.eatvio.com,socket.eatvio.com" - - "traefik.port=80" - - "traefik.protocol=http" + php-fpm: + build: phpdocker/php-fpm + working_dir: /application + environment: + - TZ=Europe/Moscow + command: ["/usr/bin/supervisord"] + depends_on: + - mysql + networks: + ns-eatvio: + ipv4_address: 172.118.0.2 + 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 - mailhog: - image: 'mailhog/mailhog' - ports: - - '8082:8025' - networks: - ns-eatvio: - ipv4_address: 172.118.0.4 + webserver: + image: "nginx:alpine" + working_dir: /application + restart: always + depends_on: + - php-fpm + - soketi + volumes: + - "./app:/application" + - "./phpdocker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf" + ports: + - "1092:80" + networks: + - web + - ns-eatvio + labels: + - "traefik.docker.network=web" + - "traefik.enable=true" + - "traefik.frontend.rule=Host:dev2.eatvio.com,socket.eatvio.com" + - "traefik.port=80" + - "traefik.protocol=http" + + mailhog: + image: "mailhog/mailhog" + ports: + - "8082:8025" + networks: + ns-eatvio: + ipv4_address: 172.118.0.4 networks: - web: - external: true - ns-eatvio: - external: false - ipam: - config: - - subnet: 172.118.0.0/28 + web: + external: true + ns-eatvio: + external: false + ipam: + config: + - subnet: 172.118.0.0/28 diff --git a/phpdocker/php-fpm/Dockerfile b/phpdocker/php-fpm/Dockerfile index edaf199..dff8736 100644 --- a/phpdocker/php-fpm/Dockerfile +++ b/phpdocker/php-fpm/Dockerfile @@ -2,15 +2,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 \ - nodejs \ - php8.2-pgsql && npm install -g npm@10.1.0 \ - apt-get clean; \ - rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* +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 \ + 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/php-fpm/laravel-worker.conf b/phpdocker/php-fpm/laravel-worker.conf new file mode 100644 index 0000000..7a15976 --- /dev/null +++ b/phpdocker/php-fpm/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=4 +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 From 7e4da4b574967fc86f412e534bde95fa0a6157f1 Mon Sep 17 00:00:00 2001 From: Anatoliy Poloz Date: Fri, 1 Mar 2024 10:47:20 +0300 Subject: [PATCH 06/14] doc(clear-images): clear-images command added --- Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Makefile b/Makefile index 35aebc0..66f8a6b 100644 --- a/Makefile +++ b/Makefile @@ -17,6 +17,9 @@ status: bash: docker-compose exec php-fpm bash +clear-images: + docker-compose exec php-fpm ./artisan clear:orphaned-images + tinker: docker-compose exec php-fpm ./artisan tinker From 81d7132a4f2ae44dd02bb21908e05582a332575b Mon Sep 17 00:00:00 2001 From: Anatoliy Poloz Date: Tue, 5 Mar 2024 09:57:23 +0300 Subject: [PATCH 07/14] ci(queue): separate worker, fornt-end and php --- docker-compose.yml | 38 +++++++++++++++++++++-- phpdocker/front-end/Dockerfile | 16 ++++++++++ phpdocker/front-end/laravel-worker.conf | 23 ++++++++++++++ phpdocker/front-end/php-ini-overrides.ini | 2 ++ phpdocker/php-fpm/laravel-worker.conf | 2 +- phpdocker/worker/Dockerfile | 9 ++++++ phpdocker/worker/laravel-worker.conf | 15 +++++++++ phpdocker/worker/php-ini-overrides.ini | 2 ++ 8 files changed, 104 insertions(+), 3 deletions(-) create mode 100644 phpdocker/front-end/Dockerfile create mode 100644 phpdocker/front-end/laravel-worker.conf create mode 100644 phpdocker/front-end/php-ini-overrides.ini create mode 100644 phpdocker/worker/Dockerfile create mode 100644 phpdocker/worker/laravel-worker.conf create mode 100644 phpdocker/worker/php-ini-overrides.ini 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 From 5d1c488e75d427e1170b2a2178fd60acf48e0faa Mon Sep 17 00:00:00 2001 From: Anatoliy Poloz Date: Tue, 5 Mar 2024 10:06:07 +0300 Subject: [PATCH 08/14] feat(ci): worker-restart command added to Makefile --- Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Makefile b/Makefile index 66f8a6b..ae492c3 100644 --- a/Makefile +++ b/Makefile @@ -17,6 +17,9 @@ status: bash: docker-compose exec php-fpm bash +worker-restart: + docker-compose exec worker supervisorctl restart laravel-worker:* + clear-images: docker-compose exec php-fpm ./artisan clear:orphaned-images From 944484713c87047afa0b64c5fbb393b3829b7b28 Mon Sep 17 00:00:00 2001 From: alex-chevski Date: Fri, 29 Mar 2024 13:45:03 +0300 Subject: [PATCH 09/14] feat(ffmpeg): add ffmpeg to php-fpm docker container --- phpdocker/php-fpm/Dockerfile | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/phpdocker/php-fpm/Dockerfile b/phpdocker/php-fpm/Dockerfile index dff8736..9a2084b 100644 --- a/phpdocker/php-fpm/Dockerfile +++ b/phpdocker/php-fpm/Dockerfile @@ -14,4 +14,9 @@ RUN apt-get update && \ apt-get clean; \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* +RUN apt-get update && \ + apt-get install -y ffmpeg && \ + apt-get clean; \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* + ENV PATH=node_modules/.bin:$PATH From eb4072916cc64edb51cf0cf0db94e81b3905ae11 Mon Sep 17 00:00:00 2001 From: alex-chevski Date: Wed, 10 Apr 2024 00:34:00 +0300 Subject: [PATCH 10/14] feat(crontab): install cron in php-fpm container --- Makefile | 3 +++ phpdocker/php-fpm/Dockerfile | 12 ++++++++++++ 2 files changed, 15 insertions(+) diff --git a/Makefile b/Makefile index ae492c3..71d10cd 100644 --- a/Makefile +++ b/Makefile @@ -23,6 +23,9 @@ worker-restart: clear-images: docker-compose exec php-fpm ./artisan clear:orphaned-images +links-images: + jdupes -r -1 -l app/storage/app + tinker: docker-compose exec php-fpm ./artisan tinker diff --git a/phpdocker/php-fpm/Dockerfile b/phpdocker/php-fpm/Dockerfile index 9a2084b..71892e2 100644 --- a/phpdocker/php-fpm/Dockerfile +++ b/phpdocker/php-fpm/Dockerfile @@ -1,6 +1,10 @@ FROM phpdockerio/php:8.2-fpm WORKDIR "/application" +ENV SUPERCRONIC_URL=https://github.com/aptible/supercronic/releases/download/v0.2.29/supercronic-linux-amd64 \ + SUPERCRONIC=supercronic-linux-amd64 \ + SUPERCRONIC_SHA1SUM=cd48d45c4b10f3f0bfdd3a57d054cd05ac96812b + RUN curl -sL https://deb.nodesource.com/setup_20.x | bash - RUN apt-get update && \ apt-get -y --no-install-recommends install \ @@ -14,9 +18,17 @@ RUN apt-get update && \ apt-get clean; \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* +RUN curl -fsSLO "$SUPERCRONIC_URL" \ + && echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - \ + && chmod +x "$SUPERCRONIC" \ + && mv "$SUPERCRONIC" "/usr/local/bin/${SUPERCRONIC}" \ + && ln -s "/usr/local/bin/${SUPERCRONIC}" /usr/local/bin/supercronic + RUN apt-get update && \ apt-get install -y ffmpeg && \ apt-get clean; \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* ENV PATH=node_modules/.bin:$PATH + +CMD ["supercronic", "/application/crontab"] From 89c55403a18f425a77a8d4efb7bcb5a46f4c8821 Mon Sep 17 00:00:00 2001 From: alex-chevski Date: Wed, 15 May 2024 14:49:39 +0300 Subject: [PATCH 11/14] feat(typesense): added service typesense for fuzzy search --- .gitignore | 1 + docker-compose.yml | 9 +++++++++ phpdocker/php-fpm/Dockerfile | 20 +++++++++++--------- 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 6a783ee..b020775 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .env app/ mysql_data/ +typesense-data/ diff --git a/docker-compose.yml b/docker-compose.yml index 0a052a0..e312660 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -124,6 +124,15 @@ services: ns-eatvio: ipv4_address: 172.118.0.4 + typesense: + image: typesense/typesense:26.0 + restart: on-failure + ports: + - "8108:8108" + volumes: + - ./typesense-data:/data + command: "--data-dir /data --api-key=xyz --enable-cors" + networks: web: external: true diff --git a/phpdocker/php-fpm/Dockerfile b/phpdocker/php-fpm/Dockerfile index 71892e2..b8041fa 100644 --- a/phpdocker/php-fpm/Dockerfile +++ b/phpdocker/php-fpm/Dockerfile @@ -1,9 +1,9 @@ FROM phpdockerio/php:8.2-fpm WORKDIR "/application" -ENV SUPERCRONIC_URL=https://github.com/aptible/supercronic/releases/download/v0.2.29/supercronic-linux-amd64 \ - SUPERCRONIC=supercronic-linux-amd64 \ - SUPERCRONIC_SHA1SUM=cd48d45c4b10f3f0bfdd3a57d054cd05ac96812b +# ENV SUPERCRONIC_URL=https://github.com/aptible/supercronic/releases/download/v0.2.29/supercronic-linux-amd64 \ +# SUPERCRONIC=supercronic-linux-amd64 \ +# SUPERCRONIC_SHA1SUM=cd48d45c4b10f3f0bfdd3a57d054cd05ac96812b RUN curl -sL https://deb.nodesource.com/setup_20.x | bash - RUN apt-get update && \ @@ -12,17 +12,19 @@ RUN apt-get update && \ php8.2-gd \ php8.2-mysql \ php8.2-sqlite3 \ + php8.2-intl \ php8.2-pgsql \ python3-pkg-resources supervisor \ nodejs && npm install -g npm@10.1.0 \ apt-get clean; \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* -RUN curl -fsSLO "$SUPERCRONIC_URL" \ - && echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - \ - && chmod +x "$SUPERCRONIC" \ - && mv "$SUPERCRONIC" "/usr/local/bin/${SUPERCRONIC}" \ - && ln -s "/usr/local/bin/${SUPERCRONIC}" /usr/local/bin/supercronic +# RUN curl -fsSLO "$SUPERCRONIC_URL" \ +# && echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - \ +# && chmod +x "$SUPERCRONIC" \ +# && mv "$SUPERCRONIC" "/usr/local/bin/${SUPERCRONIC}" \ +# && ln -s "/usr/local/bin/${SUPERCRONIC}" /usr/local/bin/supercronic + RUN apt-get update && \ apt-get install -y ffmpeg && \ @@ -31,4 +33,4 @@ RUN apt-get update && \ ENV PATH=node_modules/.bin:$PATH -CMD ["supercronic", "/application/crontab"] +# CMD ["supercronic", "/application/crontab"] From 3f91456643a7b8b055f2c601dd98eb7d3e16b2ce Mon Sep 17 00:00:00 2001 From: alex-chevski Date: Fri, 17 May 2024 12:29:12 +0300 Subject: [PATCH 12/14] fix(docker-file): added local network to service typesense --- docker-compose.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index e312660..9a456d9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -127,8 +127,9 @@ services: typesense: image: typesense/typesense:26.0 restart: on-failure - ports: - - "8108:8108" + networks: + ns-eatvio: + ipv4_address: 172.118.0.6 volumes: - ./typesense-data:/data command: "--data-dir /data --api-key=xyz --enable-cors" From 6662f8040221600f951f4800eec05d39b2d429d9 Mon Sep 17 00:00:00 2001 From: alex-chevski Date: Tue, 21 May 2024 14:39:51 +0300 Subject: [PATCH 13/14] fix(docker-file): change api-key typesense --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 9a456d9..7c4ce54 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -132,7 +132,7 @@ services: ipv4_address: 172.118.0.6 volumes: - ./typesense-data:/data - command: "--data-dir /data --api-key=xyz --enable-cors" + command: "--data-dir /data --api-key=typesense --enable-cors" networks: web: From 46e065ca29b5010301018308ee4923947e2253b3 Mon Sep 17 00:00:00 2001 From: alex-chevski Date: Mon, 14 Oct 2024 11:13:49 +0300 Subject: [PATCH 14/14] feat(jpegoptim): added new apt package jpegoptim --- docker-compose.yml | 31 +++++++++++++++---------------- phpdocker/php-fpm/Dockerfile | 12 +++--------- phpdocker/worker/Dockerfile | 7 +++++++ 3 files changed, 25 insertions(+), 25 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 7c4ce54..f43dfdb 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -15,8 +15,7 @@ services: - "${SOKETI_PORT:-6001}:6001" - "${SOKETI_METRICS_SERVER_PORT:-9601}:9601" networks: - ns-eatvio: - ipv4_address: 172.118.0.5 + - ns-eatvio labels: - "traefik.enable=false" restart: always @@ -25,8 +24,7 @@ services: image: "mysql:8.0" working_dir: /application networks: - ns-eatvio: - ipv4_address: 172.118.0.3 + - ns-eatvio volumes: - ".:/application" - "./mysql_data:/var/lib/mysql" @@ -49,8 +47,7 @@ services: depends_on: - mysql networks: - ns-eatvio: - ipv4_address: 172.118.0.2 + - ns-eatvio volumes: - "./app:/application" - "./phpdocker/php-fpm/php-ini-overrides.ini:/etc/php/8.2/fpm/conf.d/99-overrides.ini" @@ -104,32 +101,34 @@ services: volumes: - "./app:/application" - "./phpdocker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf" + - "./phpdocker/nginx/alex.eatvio.local+4.pem:/etc/nginx/alex.eatvio.local+4.pem" + - "./phpdocker/nginx/alex.eatvio.local+4-key.pem:/etc/nginx/alex.eatvio.local+4-key.pem" + - "./phpdocker/nginx/socket.alex.eatvio.local+4.pem:/etc/nginx/socket.alex.eatvio.local+4.pem" + - "./phpdocker/nginx/socket.alex.eatvio.local+4-key.pem:/etc/nginx/socket.alex.eatvio.local+4-key.pem" ports: - "1092:80" + - "10443:5000" networks: - web - ns-eatvio - labels: - - "traefik.docker.network=web" - - "traefik.enable=true" - - "traefik.frontend.rule=Host:dev2.eatvio.com,socket.eatvio.com" - - "traefik.port=80" - - "traefik.protocol=http" mailhog: image: "mailhog/mailhog" ports: - "8082:8025" networks: - ns-eatvio: - ipv4_address: 172.118.0.4 + - ns-eatvio typesense: image: typesense/typesense:26.0 restart: on-failure + expose: + - 8108 + ports: + - 8108:8108 networks: - ns-eatvio: - ipv4_address: 172.118.0.6 + - ns-eatvio + - web volumes: - ./typesense-data:/data command: "--data-dir /data --api-key=typesense --enable-cors" diff --git a/phpdocker/php-fpm/Dockerfile b/phpdocker/php-fpm/Dockerfile index b8041fa..7739cf8 100644 --- a/phpdocker/php-fpm/Dockerfile +++ b/phpdocker/php-fpm/Dockerfile @@ -19,18 +19,12 @@ RUN apt-get update && \ apt-get clean; \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* -# RUN curl -fsSLO "$SUPERCRONIC_URL" \ -# && echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - \ -# && chmod +x "$SUPERCRONIC" \ -# && mv "$SUPERCRONIC" "/usr/local/bin/${SUPERCRONIC}" \ -# && ln -s "/usr/local/bin/${SUPERCRONIC}" /usr/local/bin/supercronic - RUN apt-get update && \ - apt-get install -y ffmpeg && \ + apt-get install -y \ + ffmpeg \ + jpegoptim && \ apt-get clean; \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* ENV PATH=node_modules/.bin:$PATH - -# CMD ["supercronic", "/application/crontab"] diff --git a/phpdocker/worker/Dockerfile b/phpdocker/worker/Dockerfile index 59fe028..c5e636a 100644 --- a/phpdocker/worker/Dockerfile +++ b/phpdocker/worker/Dockerfile @@ -7,3 +7,10 @@ RUN apt-get update && \ python3-pkg-resources supervisor && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* + +RUN apt-get update && \ + apt-get install -y \ + ffmpeg \ + jpegoptim && \ + apt-get clean; \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*