forked from eatvio/eatvio-infra
Compare commits
105 Commits
eatvio-inf
...
feat-livek
| Author | SHA1 | Date | |
|---|---|---|---|
| 0333a65c35 | |||
| 9d0f270ad4 | |||
| 1f9c764935 | |||
| da67c3a394 | |||
| 1f87549cc7 | |||
| e42992f982 | |||
| 791e12dc7b | |||
| 7d9cc1fd33 | |||
| fa01eb6032 | |||
| e67ab0366f | |||
| ac1294d4b7 | |||
| 3d36a33485 | |||
| 5dfb903a93 | |||
| dfed48a607 | |||
| 0d8b3242a0 | |||
| e9f42b83da | |||
| d5c27da68a | |||
| e681536a23 | |||
| e7cb197e68 | |||
| bd498cedae | |||
| af781ca708 | |||
| 6f6145e423 | |||
| 392ec6b589 | |||
| 5bb41ee525 | |||
|
|
823e81c8c9 | ||
| a437620a80 | |||
| 867b714748 | |||
|
|
f05219d249 | ||
| 412b413d6b | |||
| ef11d9ca1a | |||
|
|
87e50f1ede | ||
|
|
1a96231959 | ||
| 9510ba1054 | |||
| c59731d756 | |||
| 5de2064003 | |||
| 0edc827a0f | |||
| 5d4ae88f4b | |||
| 1edcf15008 | |||
| 0568dca39b | |||
| 0171918a40 | |||
| d33a6d16d8 | |||
| ad45cccf66 | |||
| 8f446edc47 | |||
| 3e479e347d | |||
|
|
2fd47cd342 | ||
|
|
a3002c9da5 | ||
|
|
368b173464 | ||
|
|
19d427b34d | ||
|
|
79c98d52fc | ||
|
|
101f1c670d | ||
|
|
76e5e84573 | ||
|
|
e88413f3d8 | ||
|
|
04d2e8b75d | ||
|
|
988496a490 | ||
|
|
74f8c69d3c | ||
|
|
148da23e80 | ||
|
|
9e2d930b7c | ||
|
|
09f95788bf | ||
|
|
02726200c1 | ||
|
|
6d9ee3cccc | ||
|
|
43428aab4c | ||
|
|
d5b01ad23c | ||
|
|
cddb338baf | ||
|
|
3b3966f3e8 | ||
|
|
7557c00b28 | ||
|
|
6633541661 | ||
|
|
473591668c | ||
|
|
f1619fee9f | ||
|
|
851349814c | ||
|
|
dfff2abb65 | ||
|
|
59b36f1390 | ||
|
|
8ddb03cd30 | ||
|
|
2939bfe4e9 | ||
|
|
d401f64f1b | ||
|
|
40de7ed07e | ||
|
|
ee459376bd | ||
|
|
1b0efb8cc4 | ||
|
|
040f958978 | ||
|
|
ece73cafe0 | ||
|
|
4746ececb4 | ||
|
|
2bd55c1f49 | ||
|
|
029b9b3cba | ||
|
|
ff9e94094b | ||
|
|
483f037f55 | ||
|
|
9d6ea54266 | ||
|
|
0c145255ad | ||
|
|
716d0a1b80 | ||
|
|
53d304d64f | ||
|
|
1c7d529531 | ||
|
|
d37f9f1fdc | ||
|
|
9d5bb53cb4 | ||
|
|
2f53541cff | ||
|
|
0ac4690746 | ||
|
|
68ec6eeb9d | ||
|
|
2e6fb5f9e1 | ||
|
|
47f47cc630 | ||
|
|
565b759715 | ||
|
|
42e272b015 | ||
|
|
2257d9d5a8 | ||
|
|
c9063a027b | ||
|
|
edf0499f3d | ||
|
|
008b8e657a | ||
|
|
90ab8ba88a | ||
|
|
2d2d1b7056 | ||
| 1a716c0d8a |
@@ -11,4 +11,17 @@ MYSQL_ROOT_PASSWORD="nhbnhb22"
|
||||
MYSQL_DATABASE="eatvio"
|
||||
MYSQL_USER="eatvio_user"
|
||||
MYSQL_PASSWORD="eatvio_pass_nhbnhb22"
|
||||
PROD_DB_USER=some_user
|
||||
PROD_DB_PASS=strong_pass
|
||||
PROD_DB_FILE="latest-prod-db.sql"
|
||||
PROD_DB_HOST="10.nn.n.n"
|
||||
PROD_DB_PORT="10nn"
|
||||
MY_APP_GIT_URL="ssh://git@10.55.5.123:222/eatvio/eatvio.git"
|
||||
LIVEKIT_URL="livekit.eatv.io"
|
||||
LIVEKIT_WS_URL="livekit.eatv.io"
|
||||
LIVEKIT_TURN_DOMAIN="turn.eatv.io"
|
||||
LIVEKIT_API_KEY=APITRajpYFYdtk9
|
||||
LIVEKIT_API_SECRET=VKCfO954C3OU0IeeXxZ1fiUDx9ZmWtvNNp9fCHRfO2JH
|
||||
LIVEKIT_PORT=7880
|
||||
LIVEKIT_RTC_TCP_PORT=7881
|
||||
LIVEKIT_TURN_UDP_PORT=3478
|
||||
|
||||
38
.gitea/workflows/test_infra.yaml
Normal file
38
.gitea/workflows/test_infra.yaml
Normal file
@@ -0,0 +1,38 @@
|
||||
name: "infra 0.0.0.1"
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- main-ci
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
name: Test
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Add the SSH key to known_hosts
|
||||
env:
|
||||
SSH_AUTH_SOCK: /tmp/ssh_agent.sock
|
||||
run: |
|
||||
ssh-agent -a $SSH_AUTH_SOCK > /dev/null
|
||||
mkdir -p ~/.ssh
|
||||
ssh-add - <<< "${{ vars.SSH_PRIVATE_KEY }}" || true
|
||||
ssh-keyscan -p 222 10.55.5.123 >> ~/.ssh/known_hosts || true
|
||||
chmod 644 ~/.ssh/known_hosts || true
|
||||
chmod 700 ~/.ssh || true
|
||||
|
||||
- name: init containers
|
||||
env:
|
||||
SSH_AUTH_SOCK: /tmp/ssh_agent.sock
|
||||
run: |
|
||||
apt-get update
|
||||
apt-get install -y apt-transport-https ca-certificates curl software-properties-common docker.io
|
||||
curl -L "https://github.com/docker/compose/releases/download/v2.17.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
|
||||
chmod +x /usr/local/bin/docker-compose
|
||||
docker-compose --version
|
||||
make init
|
||||
|
||||
- name: run CI
|
||||
run: make ci
|
||||
|
||||
147
Makefile
147
Makefile
@@ -1,107 +1,186 @@
|
||||
include .env.infra-example
|
||||
include .env
|
||||
|
||||
clone:
|
||||
git clone ${MY_APP_GIT_URL} app
|
||||
|
||||
rm-promo-image-assets:
|
||||
docker compose exec php-fpm rm -rf application/database/assets/images
|
||||
|
||||
clone-promo-image:
|
||||
git clone http://gitea.office.local:3000/alex_chevski/eatvio_images_assets app/database/assets/images
|
||||
|
||||
reinit-promo-images: rm-promo-image-assets clone-promo-image
|
||||
|
||||
start:
|
||||
docker-compose up -d
|
||||
docker compose up -d
|
||||
|
||||
stop:
|
||||
docker-compose down --remove-orphans -v
|
||||
docker compose down
|
||||
|
||||
restart: stop start
|
||||
|
||||
status:
|
||||
docker-compose ps
|
||||
docker compose ps
|
||||
|
||||
rm-promo-image-assets:
|
||||
rm -rf app/database/assets/images
|
||||
|
||||
clone-promo-image:
|
||||
git clone http://gitea.office.local:3000/alex_chevski/eatvio_images_assets app/database/assets/images
|
||||
|
||||
reinit-promo-images: rm-promo-image-assets clone-promo-image
|
||||
|
||||
bash:
|
||||
docker-compose exec php-fpm bash
|
||||
docker compose exec php-fpm bash
|
||||
|
||||
worker-restart:
|
||||
docker-compose exec worker supervisorctl restart laravel-worker:*
|
||||
docker compose exec worker supervisorctl restart laravel-worker:*
|
||||
|
||||
clear-images:
|
||||
docker-compose exec php-fpm ./artisan clear:orphaned-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
|
||||
docker compose exec php-fpm ./artisan tinker
|
||||
|
||||
reseed-db:
|
||||
docker-compose exec php-fpm bash -c "./artisan migrate:refresh; ./artisan db:seed"
|
||||
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
|
||||
docker compose exec php-fpm php /application/artisan key:generate
|
||||
|
||||
setup-laravel-packages:
|
||||
docker-compose exec php-fpm composer install
|
||||
docker compose exec php-fpm composer install
|
||||
|
||||
copy-laravel-env:
|
||||
docker-compose exec php-fpm cp /application/.env.example /application/.env
|
||||
docker compose exec php-fpm cp /application/.env.example /application/.env
|
||||
|
||||
copy-infra-env:
|
||||
cp .env.infra-example .env
|
||||
|
||||
run-migrations:
|
||||
docker-compose exec php-fpm ./artisan migrate
|
||||
docker compose exec php-fpm ./artisan migrate
|
||||
|
||||
run-plan-seed:
|
||||
docker-compose exec php-fpm ./artisan db:seed --class=PlanSeeder
|
||||
docker compose exec php-fpm ./artisan db:seed --class=PlanSeeder
|
||||
|
||||
run-user-seed:
|
||||
docker-compose exec php-fpm ./artisan db:seed --class=UserSeeder
|
||||
docker compose exec php-fpm ./artisan db:seed --class=UserSeeder
|
||||
|
||||
seed-db:
|
||||
docker-compose exec php-fpm ./artisan db:seed
|
||||
docker compose exec php-fpm ./artisan db:seed
|
||||
|
||||
fix-permissions:
|
||||
docker-compose exec php-fpm chown -R www-data:www-data storage
|
||||
docker compose exec php-fpm chown -R www-data:www-data storage
|
||||
|
||||
fix-code-style:
|
||||
docker-compose exec php-fpm vendor/bin/pint
|
||||
docker compose exec -T php-fpm bash -c "vendor/bin/pint --parallel; composer run fix-blade-fomatting"
|
||||
|
||||
fix-blade-formatting:
|
||||
docker compose exec -T php-fpm composer run test-blade-formatting
|
||||
|
||||
artisan:
|
||||
docker-compose exec php-fpm ./artisan $(ARGS)
|
||||
docker compose exec php-fpm ./artisan $(ARGS)
|
||||
|
||||
mysql-console:
|
||||
docker-compose exec mysql mysql -u${MYSQL_USER} -p${MYSQL_PASSWORD} ${MYSQL_DATABASE}
|
||||
docker compose exec mysql mysql -u${MYSQL_USER} -p${MYSQL_PASSWORD} ${MYSQL_DATABASE}
|
||||
|
||||
mysql-dump-local:
|
||||
docker compose exec mysql mysqldump --single-transaction --skip-opt -u${MYSQL_USER} -p${MYSQL_PASSWORD} ${MYSQL_DATABASE}
|
||||
|
||||
mysql-restore:
|
||||
docker compose exec mysql bash -c "mysql -u${MYSQL_USER} -p${MYSQL_PASSWORD} ${MYSQL_DATABASE} < /application/eatvio-restore.sql"
|
||||
|
||||
mysql-save-prod-db:
|
||||
mysqldump --single-transaction -u${PROD_DB_USER} -p${PROD_DB_PASS} -h${PROD_DB_HOST} -P${PROD_DB_PORT} eatvio > ${PROD_DB_FILE}
|
||||
|
||||
mysql-restore-saved-from-prod-db:
|
||||
docker compose exec mysql bash -c "cat ./${PROD_DB_FILE} | mysql -u${MYSQL_USER} -p${MYSQL_PASSWORD} ${MYSQL_DATABASE}"
|
||||
|
||||
mysql-remove-latest-prod-db:
|
||||
rm -f ${PROD_DB_FILE}
|
||||
|
||||
mysql-import-db-from-prod: mysql-save-prod-db mysql-restore-saved-from-prod-db mysql-remove-latest-prod-db
|
||||
|
||||
start-frontend:
|
||||
docker-compose exec php-fpm npm run watch
|
||||
docker compose exec frontend npm run watch
|
||||
|
||||
build-frontend-prod:
|
||||
docker-compose exec php-fpm npm run production
|
||||
docker compose exec php-fpm bash -c "npm install -g npm@latest; npm run production"
|
||||
|
||||
make-storage-link:
|
||||
docker-compose exec php-fpm ./artisan storage:link
|
||||
docker compose exec php-fpm ./artisan storage:link
|
||||
|
||||
node-frontend-deps:
|
||||
docker-compose exec php-fpm npm i --legacy-peer-deps
|
||||
docker compose exec php-fpm npm i --legacy-peer-deps
|
||||
|
||||
test:
|
||||
docker-compose exec php-fpm vendor/bin/paratest
|
||||
paratest-bin:
|
||||
docker compose exec -u www-data php-fpm vendor/bin/paratest
|
||||
|
||||
paratest-artisan:
|
||||
docker compose exec -u www-data -T php-fpm ./artisan test --parallel --stop-on-failure --env=testing
|
||||
|
||||
fix-insights:
|
||||
docker-compose exec php-fpm ./artisan insights --fix
|
||||
docker compose exec php-fpm vendor/bin/phpinsights --fix --config-path=./config/insights.php --no-interaction --min-quality=80 --min-complexity=90 --min-architecture=75 --min-style=95
|
||||
|
||||
insights:
|
||||
docker-compose exec php-fpm vendor/bin/phpinsights --config-path=./config/insights.php --no-interaction --min-quality=80 --min-complexity=90 --min-architecture=75 --min-style=95
|
||||
docker compose exec -T php-fpm vendor/bin/phpinsights --config-path=./config/insights.php --no-interaction --min-quality=80 --min-complexity=90 --min-architecture=75 --min-style=95 --flush-cache
|
||||
|
||||
rector:
|
||||
docker-compose exec php-fpm vendor/bin/rector process --dry-run
|
||||
docker compose exec -T php-fpm vendor/bin/rector process --dry-run
|
||||
|
||||
static-analysis:
|
||||
docker-compose exec php-fpm composer static-analysis
|
||||
docker compose exec -T php-fpm composer static-analysis
|
||||
|
||||
detect-magic-numbers:
|
||||
docker-compose exec php-fpm vendor/bin/phpmnd app/ tests/
|
||||
docker compose exec -u www-data -T php-fpm vendor/bin/phpmnd app/ tests/
|
||||
|
||||
ci: fix-code-style detect-magic-numbers test rector insights static-analysis
|
||||
fix-web-permissions:
|
||||
docker compose exec -T php-fpm chown -R www-data:www-data bootstrap/cache storage
|
||||
|
||||
local-ci:
|
||||
docker-compose exec -T php-fpm composer ci
|
||||
clear-app-cache:
|
||||
docker compose exec php-fpm ./artisan optimize:clear
|
||||
|
||||
build-front:
|
||||
docker compose exec php-fpm bash -c "npm install -g npm@latest;npm run production"
|
||||
|
||||
reindex-search:
|
||||
docker compose exec php-fpm ./artisan search:init
|
||||
|
||||
composer-do:
|
||||
docker compose exec php-fpm composer dump-auto
|
||||
|
||||
run-once-oprations:
|
||||
docker compose exec php-fpm bash -c "./artisan operations:process"
|
||||
|
||||
reload-wokers:
|
||||
docker-compose exec worker ./artisan queue:restart
|
||||
|
||||
after-deploy-light: composer-do run-migrations run-once-oprations clear-app-cache build-front fix-permissions reload-wokers
|
||||
|
||||
after-deploy: composer-do clear-app-cache run-migrations run-once-oprations build-front fix-permissions reload-wokers reindex-search
|
||||
|
||||
# ci: fix-web-permissions fix-code-style detect-magic-numbers test rector insights static-analysis fix-web-permissions
|
||||
ci: fix-web-permissions detect-magic-numbers test rector insights static-analysis fix-web-permissions
|
||||
|
||||
local-composer-ci:
|
||||
docker compose exec php-fpm composer ci
|
||||
|
||||
test: fix-web-permissions paratest-artisan
|
||||
|
||||
test-file-by-path:
|
||||
docker compose exec php-fpm ./artisan test --env=testing $(ARGS)
|
||||
|
||||
local-ci: fix-web-permissions local-composer-ci fix-web-permissions
|
||||
|
||||
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
|
||||
|
||||
rebuild-services:
|
||||
docker compose build --no-cache
|
||||
|
||||
pull-services:
|
||||
docker compose pull
|
||||
|
||||
force-rebuild-services: stop rebuild-services pull-services start
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
---
|
||||
version: "3.1"
|
||||
services:
|
||||
soketi:
|
||||
image: "quay.io/soketi/soketi:latest-16-alpine"
|
||||
@@ -20,6 +18,14 @@ services:
|
||||
- "traefik.enable=false"
|
||||
restart: always
|
||||
|
||||
memcached:
|
||||
image: "memcached:alpine"
|
||||
networks:
|
||||
- ns-eatvio
|
||||
restart: always
|
||||
labels:
|
||||
- "traefik.enable=false"
|
||||
|
||||
mysql:
|
||||
image: "mysql:8.0"
|
||||
working_dir: /application
|
||||
@@ -33,6 +39,7 @@ services:
|
||||
MYSQL_DATABASE: ${MYSQL_DATABASE}
|
||||
MYSQL_USER: ${MYSQL_USER}
|
||||
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
|
||||
TZ: "Evrope/Moscow"
|
||||
ports:
|
||||
- "1094:3306"
|
||||
labels:
|
||||
@@ -46,31 +53,35 @@ services:
|
||||
- TZ=Europe/Moscow
|
||||
depends_on:
|
||||
- mysql
|
||||
- worker
|
||||
- frontend
|
||||
- memcached
|
||||
- typesense
|
||||
networks:
|
||||
- ns-eatvio
|
||||
volumes:
|
||||
- "./app:/application"
|
||||
- "./phpdocker/php-fpm/php-ini-overrides.ini:/etc/php/8.2/fpm/conf.d/99-overrides.ini"
|
||||
- "./phpdocker/php-fpm/php-ini-overrides.ini:/etc/php/8.4/fpm/conf.d/99-overrides.ini"
|
||||
- "./tbank_certs:/tbank_certs"
|
||||
# - "./eatvio-3467b-firebase-adminsdk-fbsvc-6e149b2a5a.json:/eatvio-3467b-firebase-adminsdk-fbsvc-6e149b2a5a.json"
|
||||
labels:
|
||||
- "traefik.enable=false"
|
||||
restart: always
|
||||
|
||||
frontend:
|
||||
build: phpdocker/front-end
|
||||
command: "npm run watch"
|
||||
command: "npm run dev"
|
||||
working_dir: /application
|
||||
environment:
|
||||
- TZ=Europe/Moscow
|
||||
depends_on:
|
||||
- mysql
|
||||
- php-fpm
|
||||
#- CHOKIDAR_USEPOLLING=true
|
||||
networks:
|
||||
- ns-eatvio
|
||||
volumes:
|
||||
- "./app:/application"
|
||||
labels:
|
||||
- "traefik.enable=false"
|
||||
restart: always
|
||||
restart: unless-stopped
|
||||
|
||||
worker:
|
||||
build: phpdocker/worker
|
||||
@@ -80,13 +91,14 @@ services:
|
||||
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/php-ini-overrides.ini:/etc/php/8.4/fpm/conf.d/99-overrides.ini"
|
||||
- "./phpdocker/worker/laravel-worker.conf:/etc/supervisor/conf.d/laravel-worker.conf"
|
||||
- "./tbank_certs:/tbank_certs"
|
||||
# - "./eatvio-3467b-firebase-adminsdk-fbsvc-6e149b2a5a.json:/eatvio-3467b-firebase-adminsdk-fbsvc-6e149b2a5a.json"
|
||||
labels:
|
||||
- "traefik.enable=false"
|
||||
restart: always
|
||||
@@ -101,16 +113,18 @@ 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"
|
||||
- "1092:80"
|
||||
networks:
|
||||
- web
|
||||
- ns-eatvio
|
||||
labels:
|
||||
- "traefik.docker.network=web"
|
||||
- "traefik.enable=true"
|
||||
- "traefik.frontend.rule=Host:wstesting.eatv.io,testing.eatv.io"
|
||||
- "traefik.port=80"
|
||||
- "traefik.protocol=http"
|
||||
|
||||
mailhog:
|
||||
image: "mailhog/mailhog"
|
||||
@@ -120,24 +134,79 @@ services:
|
||||
- ns-eatvio
|
||||
|
||||
typesense:
|
||||
image: typesense/typesense:26.0
|
||||
restart: on-failure
|
||||
expose:
|
||||
- 8108
|
||||
ports:
|
||||
- 8108:8108
|
||||
build: ./phpdocker/typesense
|
||||
restart: always
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:8108/health"]
|
||||
networks:
|
||||
- ns-eatvio
|
||||
- web
|
||||
volumes:
|
||||
- ./typesense-data:/data
|
||||
command: "--data-dir /data --api-key=typesense --enable-cors"
|
||||
|
||||
livekit-redis:
|
||||
image: redis:7-alpine
|
||||
command:
|
||||
[
|
||||
"redis-server",
|
||||
"--appendonly",
|
||||
"no",
|
||||
"--maxmemory",
|
||||
"500mb",
|
||||
"--maxmemory-policy",
|
||||
"allkeys-lru",
|
||||
]
|
||||
networks:
|
||||
- ns-eatvio
|
||||
volumes:
|
||||
- livekit_redis_data:/data
|
||||
restart: always
|
||||
labels:
|
||||
- "traefik.enable=false"
|
||||
|
||||
livekit:
|
||||
image: livekit/livekit-server:latest
|
||||
depends_on:
|
||||
- livekit-redis
|
||||
networks:
|
||||
- ns-eatvio
|
||||
- web
|
||||
ports:
|
||||
- "${LIVEKIT_PORT:-7880}:7880"
|
||||
- "${LIVEKIT_RTC_TCP_PORT:-7881}:7881"
|
||||
- "50000-50100:50000-50100/udp"
|
||||
- "${LIVEKIT_TURN_UDP_PORT:-3478}:3478/udp"
|
||||
environment:
|
||||
LIVEKIT_CONFIG: |
|
||||
port: 7880
|
||||
log_level: info
|
||||
rtc:
|
||||
tcp_port: 7881
|
||||
port_range_start: 50000
|
||||
port_range_end: 50100
|
||||
use_external_ip: true
|
||||
redis:
|
||||
address: livekit-redis:6379
|
||||
keys:
|
||||
${LIVEKIT_API_KEY}: ${LIVEKIT_API_SECRET}
|
||||
turn:
|
||||
enabled: true
|
||||
domain: ${LIVEKIT_TURN_DOMAIN}
|
||||
udp_port: 3478
|
||||
# tls_port: 5349
|
||||
restart: always
|
||||
labels:
|
||||
- "traefik.docker.network=web"
|
||||
- "traefik.enable=true"
|
||||
- "traefik.frontend.rule=Host:turn.eatv.io,livekit.eatv.io"
|
||||
- "traefik.port=${LIVEKIT_PORT:-7880}"
|
||||
- "traefik.protocol=http"
|
||||
|
||||
networks:
|
||||
web:
|
||||
external: true
|
||||
ns-eatvio:
|
||||
external: false
|
||||
ipam:
|
||||
config:
|
||||
- subnet: 172.118.0.0/28
|
||||
|
||||
volumes:
|
||||
livekit_redis_data:
|
||||
|
||||
@@ -1,208 +1,232 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>PHPDocker.io Readme</title>
|
||||
<link rel="stylesheet" href="http://yui.yahooapis.com/pure/0.6.0/pure-min.css">
|
||||
|
||||
<style>
|
||||
code {
|
||||
background-color : #ddd;
|
||||
padding : 2px 5px;
|
||||
font-family : monospace;
|
||||
font-size : 16px;
|
||||
}
|
||||
</style>
|
||||
<head>
|
||||
<title>PHPDocker.io Readme</title>
|
||||
<link rel="stylesheet" href="http://yui.yahooapis.com/pure/0.6.0/pure-min.css">
|
||||
|
||||
<style>
|
||||
code {
|
||||
background-color: #ddd;
|
||||
padding: 2px 5px;
|
||||
font-family: monospace;
|
||||
font-size: 16px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div class="pure-g">
|
||||
<div class="pure-g">
|
||||
<div class="pure-u-1-24"></div>
|
||||
<div class="pure-u-22-24">
|
||||
<h1>PHPDocker.io generated environment</h1>
|
||||
<h1>PHPDocker.io generated environment</h1>
|
||||
|
||||
<h1>Add to your project</h1>
|
||||
<h1>Add to your project</h1>
|
||||
|
||||
<p>Simply, unzip the file into your project, this will create <code>docker-compose.yml</code> on the root of your project and a folder
|
||||
named <code>phpdocker</code> containing nginx and php-fpm config for it.</p>
|
||||
<p>Simply, unzip the file into your project, this will create <code>docker-compose.yml</code> on the root of your
|
||||
project and a folder
|
||||
named <code>phpdocker</code> containing nginx and php-fpm config for it.</p>
|
||||
|
||||
<p>Ensure the webserver config on <code>phpdocker/nginx/nginx.conf</code> is correct for your project. PHPDocker.io will have
|
||||
customised this file according to the front controller location relative to the docker-compose file you chose on the
|
||||
generator (by default <code>public/index.php</code>).</p>
|
||||
<p>Ensure the webserver config on <code>phpdocker/nginx/nginx.conf</code> is correct for your project.
|
||||
PHPDocker.io will have
|
||||
customised this file according to the front controller location relative to the docker-compose file you chose on
|
||||
the
|
||||
generator (by default <code>public/index.php</code>).</p>
|
||||
|
||||
<p>Note: you may place the files elsewhere in your project. Make sure you modify the locations for the php-fpm dockerfile,
|
||||
the php.ini overrides and nginx config on <code>docker-compose.yml</code> if you do so.</p>
|
||||
<p>Note: you may place the files elsewhere in your project. Make sure you modify the locations for the php-fpm
|
||||
dockerfile,
|
||||
the php.ini overrides and nginx config on <code>docker-compose.yml</code> if you do so.</p>
|
||||
|
||||
<h1>How to run</h1>
|
||||
<h1>How to run</h1>
|
||||
|
||||
<p>Dependencies:</p>
|
||||
<p>Dependencies:</p>
|
||||
|
||||
<ul>
|
||||
<li>docker. See <a href="https://docs.docker.com/engine/installation">https://docs.docker.com/engine/installation</a></li>
|
||||
<li>docker-compose. See <a href="https://docs.docker.com/compose/install/">docs.docker.com/compose/install</a></li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>docker. See <a
|
||||
href="https://docs.docker.com/engine/installation">https://docs.docker.com/engine/installation</a></li>
|
||||
<li>docker-compose. See <a href="https://docs.docker.com/compose/install/">docs.docker.com/compose/install</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>Once you're done, simply <code>cd</code> to your project and run <code>docker-compose up -d</code>. This will initialise and start all the
|
||||
containers, then leave them running in the background.</p>
|
||||
<p>Once you're done, simply <code>cd</code> to your project and run <code>docker-compose up -d</code>. This will
|
||||
initialise and start all the
|
||||
containers, then leave them running in the background.</p>
|
||||
|
||||
<h2>Services exposed outside your environment</h2>
|
||||
<h2>Services exposed outside your environment</h2>
|
||||
|
||||
<p>You can access your application via <strong><code>localhost</code></strong>. Mailhog and nginx both respond to any hostname, in case you want to
|
||||
add your own hostname on your <code>/etc/hosts</code></p>
|
||||
<p>You can access your application via <strong><code>localhost</code></strong>. Mailhog and nginx both respond to
|
||||
any hostname, in case you want to
|
||||
add your own hostname on your <code>/etc/hosts</code></p>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Service</th>
|
||||
<th>Address outside containers</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Webserver</td>
|
||||
<td><a href="http://localhost:1092">localhost:1092</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>MySQL</td>
|
||||
<td><strong>host:</strong> <code>localhost</code>; <strong>port:</strong> <code>1094</code></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Service</th>
|
||||
<th>Address outside containers</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Webserver</td>
|
||||
<td><a href="http://localhost:1092">localhost:1092</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>MySQL</td>
|
||||
<td><strong>host:</strong> <code>localhost</code>; <strong>port:</strong> <code>1094</code></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h2>Hosts within your environment</h2>
|
||||
<h2>Hosts within your environment</h2>
|
||||
|
||||
<p>You'll need to configure your application to use any services you enabled:</p>
|
||||
<p>You'll need to configure your application to use any services you enabled:</p>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Service</th>
|
||||
<th>Hostname</th>
|
||||
<th>Port number</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>php-fpm</td>
|
||||
<td>php-fpm</td>
|
||||
<td>9000</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>MySQL</td>
|
||||
<td>mysql</td>
|
||||
<td>3306 (default)</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Service</th>
|
||||
<th>Hostname</th>
|
||||
<th>Port number</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>php-fpm</td>
|
||||
<td>php-fpm</td>
|
||||
<td>9000</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>MySQL</td>
|
||||
<td>mysql</td>
|
||||
<td>3306 (default)</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h1>Docker compose cheatsheet</h1>
|
||||
<h1>Docker compose cheatsheet</h1>
|
||||
|
||||
<p><strong>Note:</strong> you need to cd first to where your docker-compose.yml file lives.</p>
|
||||
<p><strong>Note:</strong> you need to cd first to where your docker-compose.yml file lives.</p>
|
||||
|
||||
<ul>
|
||||
<li>Start containers in the background: <code>docker-compose up -d</code></li>
|
||||
<li>Start containers on the foreground: <code>docker-compose up</code>. You will see a stream of logs for every container running.
|
||||
ctrl+c stops containers.</li>
|
||||
<li>Stop containers: <code>docker-compose stop</code></li>
|
||||
<li>Kill containers: <code>docker-compose kill</code></li>
|
||||
<li>View container logs: <code>docker-compose logs</code> for all containers or <code>docker-compose logs SERVICE_NAME</code> for the logs of
|
||||
all containers in <code>SERVICE_NAME</code>.</li>
|
||||
<li>Execute command inside of container: <code>docker-compose exec SERVICE_NAME COMMAND</code> where <code>COMMAND</code> is whatever you want
|
||||
to run. Examples:
|
||||
<ul>
|
||||
<li>Start containers in the background: <code>docker-compose up -d</code></li>
|
||||
<li>Start containers on the foreground: <code>docker-compose up</code>. You will see a stream of logs for every
|
||||
container running.
|
||||
ctrl+c stops containers.</li>
|
||||
<li>Stop containers: <code>docker-compose stop</code></li>
|
||||
<li>Kill containers: <code>docker-compose kill</code></li>
|
||||
<li>View container logs: <code>docker-compose logs</code> for all containers or <code>docker-compose logs
|
||||
SERVICE_NAME</code> for the logs of
|
||||
all containers in <code>SERVICE_NAME</code>.</li>
|
||||
<li>Execute command inside of container: <code>docker-compose exec SERVICE_NAME COMMAND</code> where
|
||||
<code>COMMAND</code> is whatever you want
|
||||
to run. Examples:
|
||||
|
||||
<ul>
|
||||
<li>Shell into the PHP container, <code>docker-compose exec php-fpm bash</code></li>
|
||||
<li>Run symfony console, <code>docker-compose exec php-fpm bin/console</code></li>
|
||||
<li>Open a mysql shell, <code>docker-compose exec mysql mysql -uroot -pCHOSEN_ROOT_PASSWORD</code></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>Shell into the PHP container, <code>docker-compose exec php-fpm bash</code></li>
|
||||
<li>Run symfony console, <code>docker-compose exec php-fpm bin/console</code></li>
|
||||
<li>Open a mysql shell, <code>docker-compose exec mysql mysql -uroot -pCHOSEN_ROOT_PASSWORD</code></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h1>Application file permissions</h1>
|
||||
<h1>Application file permissions</h1>
|
||||
|
||||
<p>As in all server environments, your application needs the correct file permissions to work properly. You can change the
|
||||
files throughout the container, so you won't care if the user exists or has the same ID on your host.</p>
|
||||
<p>As in all server environments, your application needs the correct file permissions to work properly. You can
|
||||
change the
|
||||
files throughout the container, so you won't care if the user exists or has the same ID on your host.</p>
|
||||
|
||||
<p><code>docker-compose exec php-fpm chown -R www-data:www-data /application/public</code></p>
|
||||
<p><code>docker-compose exec php-fpm chown -R www-data:www-data /application/public</code></p>
|
||||
|
||||
<h1>Recommendations</h1>
|
||||
<h1>Recommendations</h1>
|
||||
|
||||
<p>It's hard to avoid file permission issues when fiddling about with containers due to the fact that, from your OS point
|
||||
of view, any files created within the container are owned by the process that runs the docker engine (this is usually
|
||||
root). Different OS will also have different problems, for instance you can run stuff in containers
|
||||
using <code>docker exec -it -u $(id -u):$(id -g) CONTAINER_NAME COMMAND</code> to force your current user ID into the process, but
|
||||
this will only work if your host OS is Linux, not mac. Follow a couple of simple rules and save yourself a world of
|
||||
hurt.</p>
|
||||
<p>It's hard to avoid file permission issues when fiddling about with containers due to the fact that, from your
|
||||
OS point
|
||||
of view, any files created within the container are owned by the process that runs the docker engine (this is
|
||||
usually
|
||||
root). Different OS will also have different problems, for instance you can run stuff in containers
|
||||
using <code>docker exec -it -u $(id -u):$(id -g) CONTAINER_NAME COMMAND</code> to force your current user ID
|
||||
into the process, but
|
||||
this will only work if your host OS is Linux, not mac. Follow a couple of simple rules and save yourself a world
|
||||
of
|
||||
hurt.</p>
|
||||
|
||||
<ul>
|
||||
<li>Run composer outside of the php container, as doing so would install all your dependencies owned by <code>root</code> within your
|
||||
vendor folder.</li>
|
||||
<li>Run commands (ie Symfony's console, or Laravel's artisan) straight inside of your container. You can easily open a
|
||||
shell as described above and do your thing from there.</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>Run composer outside of the php container, as doing so would install all your dependencies owned by
|
||||
<code>root</code> within your
|
||||
vendor folder.</li>
|
||||
<li>Run commands (ie Symfony's console, or Laravel's artisan) straight inside of your container. You can easily
|
||||
open a
|
||||
shell as described above and do your thing from there.</li>
|
||||
</ul>
|
||||
|
||||
<h1>Simple basic Xdebug configuration with integration to PHPStorm</h1>
|
||||
<h1>Simple basic Xdebug configuration with integration to PHPStorm</h1>
|
||||
|
||||
<h2>Xdebug 2</h2>
|
||||
<h2>Xdebug 2</h2>
|
||||
|
||||
<p>To configure <strong>Xdebug 2</strong> you need add these lines in php-fpm/php-ini-overrides.ini:</p>
|
||||
<p>To configure <strong>Xdebug 2</strong> you need add these lines in php-fpm/php-ini-overrides.ini:</p>
|
||||
|
||||
<h3>For linux:</h3>
|
||||
<h3>For linux:</h3>
|
||||
|
||||
<pre><code>xdebug.remote_enable = 1
|
||||
xdebug.remote_connect_back = 1
|
||||
xdebug.remote_autostart = 1
|
||||
</code></pre>
|
||||
<pre><code>xdebug.remote_enable = 1
|
||||
xdebug.remote_connect_back = 1
|
||||
xdebug.remote_autostart = 1
|
||||
</code></pre>
|
||||
|
||||
<h3>For macOS and Windows:</h3>
|
||||
<h3>For macOS and Windows:</h3>
|
||||
|
||||
<pre><code>xdebug.remote_enable = 1
|
||||
xdebug.remote_host = host.docker.internal
|
||||
xdebug.remote_autostart = 1
|
||||
</code></pre>
|
||||
<pre><code>xdebug.remote_enable = 1
|
||||
xdebug.remote_host = host.docker.internal
|
||||
xdebug.remote_autostart = 1
|
||||
</code></pre>
|
||||
|
||||
<h2>Xdebug 3</h2>
|
||||
<h2>Xdebug 3</h2>
|
||||
|
||||
<p>To configure <strong>Xdebug 3</strong> you need add these lines in php-fpm/php-ini-overrides.ini:</p>
|
||||
<p>To configure <strong>Xdebug 3</strong> you need add these lines in php-fpm/php-ini-overrides.ini:</p>
|
||||
|
||||
<h3>For linux:</h3>
|
||||
<h3>For linux:</h3>
|
||||
|
||||
<pre><code>xdebug.mode = debug
|
||||
xdebug.remote_connect_back = true
|
||||
xdebug.start_with_request = yes
|
||||
</code></pre>
|
||||
<pre><code>xdebug.mode = debug
|
||||
xdebug.remote_connect_back = true
|
||||
xdebug.start_with_request = yes
|
||||
</code></pre>
|
||||
|
||||
<h3>For macOS and Windows:</h3>
|
||||
<h3>For macOS and Windows:</h3>
|
||||
|
||||
<pre><code>xdebug.mode = debug
|
||||
xdebug.remote_host = host.docker.internal
|
||||
xdebug.start_with_request = yes
|
||||
</code></pre>
|
||||
<pre><code>xdebug.mode = debug
|
||||
xdebug.remote_host = host.docker.internal
|
||||
xdebug.start_with_request = yes
|
||||
</code></pre>
|
||||
|
||||
<h2>Add the section “environment” to the php-fpm service in docker-compose.yml:</h2>
|
||||
<h2>Add the section “environment” to the php-fpm service in docker-compose.yml:</h2>
|
||||
|
||||
<pre><code>environment:
|
||||
PHP_IDE_CONFIG: "serverName=Docker"
|
||||
</code></pre>
|
||||
<pre><code>environment:
|
||||
PHP_IDE_CONFIG: "serverName=Docker"
|
||||
</code></pre>
|
||||
|
||||
<h3>Create a server configuration in PHPStorm:</h3>
|
||||
<h3>Create a server configuration in PHPStorm:</h3>
|
||||
|
||||
<ul>
|
||||
<li>In PHPStorm open Preferences | Languages & Frameworks | PHP | Servers</li>
|
||||
<li>Add new server</li>
|
||||
<li>The “Name” field should be the same as the parameter “serverName” value in “environment” in docker-compose.yml (i.e. *
|
||||
Docker* in the example above)</li>
|
||||
<li>A value of the "port" field should be the same as first port(before a colon) in "webserver" service in
|
||||
docker-compose.yml</li>
|
||||
<li>Select "Use path mappings" and set mappings between a path to your project on a host system and the Docker container.</li>
|
||||
<li>Finally, add “Xdebug helper” extension in your browser, set breakpoints and start debugging</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>In PHPStorm open Preferences | Languages & Frameworks | PHP | Servers</li>
|
||||
<li>Add new server</li>
|
||||
<li>The “Name” field should be the same as the parameter “serverName” value in “environment” in
|
||||
docker-compose.yml (i.e. *
|
||||
Docker* in the example above)</li>
|
||||
<li>A value of the "port" field should be the same as first port(before a colon) in "webserver" service in
|
||||
docker-compose.yml</li>
|
||||
<li>Select "Use path mappings" and set mappings between a path to your project on a host system and the Docker
|
||||
container.</li>
|
||||
<li>Finally, add “Xdebug helper” extension in your browser, set breakpoints and start debugging</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="pure-u-1-24"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var tables = document.getElementsByTagName('table')
|
||||
for (var i = 0; i < tables.length; i++) {
|
||||
tables[i].className = 'pure-table'
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
var tables = document.getElementsByTagName('table')
|
||||
for (var i = 0; i < tables.length; i++) {
|
||||
tables[i].className = 'pure-table'
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
@@ -139,6 +139,3 @@ environment:
|
||||
docker-compose.yml
|
||||
* Select "Use path mappings" and set mappings between a path to your project on a host system and the Docker container.
|
||||
* Finally, add “Xdebug helper” extension in your browser, set breakpoints and start debugging
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
FROM phpdockerio/php:8.2-fpm
|
||||
FROM phpdockerio/php:8.4-fpm
|
||||
WORKDIR "/application"
|
||||
|
||||
RUN curl -sL https://deb.nodesource.com/setup_20.x | bash -
|
||||
RUN curl -sL https://deb.nodesource.com/setup_24.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 \
|
||||
php8.4-gd \
|
||||
php8.4-mysql \
|
||||
php8.4-sqlite3 \
|
||||
php8.4-pgsql \
|
||||
nodejs && npm install -g npm@latest \
|
||||
apt-get clean; \
|
||||
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*
|
||||
|
||||
|
||||
@@ -2,29 +2,62 @@ upstream phpupstream {
|
||||
server php-fpm:9000 fail_timeout=5s max_fails=5;
|
||||
}
|
||||
|
||||
resolver 127.0.0.11 ipv6=off;
|
||||
|
||||
map $http_upgrade $connection_upgrade {
|
||||
default upgrade;
|
||||
'' close;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
server_name dev2.eatvio.com;
|
||||
server_name my-dev.eatvio.test; # change me
|
||||
|
||||
client_max_body_size 108M;
|
||||
rewrite_log on;
|
||||
|
||||
# access_log /var/log/nginx/application.access.log;
|
||||
|
||||
access_log /dev/stdout;
|
||||
error_log /dev/stdout info;
|
||||
|
||||
root /application/public;
|
||||
index index.php;
|
||||
|
||||
# Vite HMR WebSocket and assets
|
||||
location /_vite {
|
||||
proxy_pass http://frontend:5173;
|
||||
proxy_http_version 1.1;
|
||||
|
||||
# WebSocket support
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection $connection_upgrade;
|
||||
|
||||
# Headers
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header X-Forwarded-Host $host;
|
||||
|
||||
# Timeouts
|
||||
proxy_connect_timeout 7d;
|
||||
proxy_send_timeout 7d;
|
||||
proxy_read_timeout 7d;
|
||||
}
|
||||
|
||||
# Production build assets
|
||||
location /build {
|
||||
try_files $uri $uri/ =404;
|
||||
expires 1y;
|
||||
add_header Cache-Control "public, immutable";
|
||||
}
|
||||
|
||||
# try to serve file directly, fallback to index.php
|
||||
location / {
|
||||
try_files $uri /index.php$is_args$args;
|
||||
}
|
||||
|
||||
if (!-e $request_filename) {
|
||||
rewrite ^.*$ /index.php last;
|
||||
}
|
||||
|
||||
|
||||
location ~ \.php$ {
|
||||
#resolver 127.0.0.11;
|
||||
#set $upstream php-fpm:9000;
|
||||
@@ -39,12 +72,13 @@ server {
|
||||
include fastcgi_params;
|
||||
}
|
||||
}
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
server_name socket.eatvio.com;
|
||||
server_name ws-my-dev.eatvio.test; # change me
|
||||
|
||||
location / {
|
||||
proxy_pass http://172.118.0.5:6001;
|
||||
proxy_pass http://soketi:6001;
|
||||
proxy_read_timeout 60;
|
||||
proxy_connect_timeout 60;
|
||||
proxy_redirect off;
|
||||
|
||||
@@ -1,29 +1,20 @@
|
||||
FROM phpdockerio/php:8.2-fpm
|
||||
FROM phpdockerio/php:8.4-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 curl -sL https://deb.nodesource.com/setup_24.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-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 apt-get update && \
|
||||
apt-get install -y \
|
||||
ffmpeg \
|
||||
jpegoptim && \
|
||||
imagemagick php8.4-imagick \
|
||||
php8.4-gd \
|
||||
php8.4-mysql \
|
||||
php8.4-sqlite3 \
|
||||
php8.4-intl \
|
||||
php8.4-memcached \
|
||||
php8.4-pgsql \
|
||||
php8.4-xdebug \
|
||||
python3-pkg-resources supervisor ffmpeg jpegoptim \
|
||||
nodejs && npm install -g npm@latest \
|
||||
apt-get clean; \
|
||||
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*
|
||||
|
||||
|
||||
3
phpdocker/typesense/Dockerfile
Executable file
3
phpdocker/typesense/Dockerfile
Executable file
@@ -0,0 +1,3 @@
|
||||
FROM typesense/typesense:29.0
|
||||
USER root
|
||||
RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/*
|
||||
@@ -1,16 +1,12 @@
|
||||
FROM phpdockerio/php:8.2-fpm
|
||||
FROM phpdockerio/php:8.4-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 \
|
||||
php8.4-gd php8.4-mysql php8.4-sqlite3 php8.4-pgsql ffmpeg jpegoptim \
|
||||
php8.4-intl \
|
||||
php8.4-memcached \
|
||||
imagemagick php8.4-imagick \
|
||||
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/*
|
||||
|
||||
@@ -13,3 +13,43 @@ numprocs=2
|
||||
redirect_stderr=true
|
||||
stdout_logfile=/application/storage/logs/worker.log
|
||||
stopwaitsecs=3600
|
||||
|
||||
[program:laravel-schedule]
|
||||
process_name=%(program_name)s_%(process_num)02d
|
||||
command=php /application/artisan schedule:work
|
||||
directory=/application
|
||||
autostart=true
|
||||
autorestart=true
|
||||
stopasgroup=true
|
||||
killasgroup=true
|
||||
user=www-data
|
||||
numprocs=1
|
||||
redirect_stderr=true
|
||||
stdout_logfile=/application/storage/logs/schedule.log
|
||||
stopwaitsecs=3600
|
||||
|
||||
[program:laravel-feed-generation-worker]
|
||||
process_name=%(program_name)s_%(process_num)02d
|
||||
command=php /application/artisan queue:work --queue=feed-generation --sleep=1 --tries=3 --timeout=1800 --max-time=3600
|
||||
autostart=true
|
||||
autorestart=true
|
||||
stopasgroup=true
|
||||
killasgroup=true
|
||||
user=www-data
|
||||
numprocs=8
|
||||
redirect_stderr=true
|
||||
stdout_logfile=/application/storage/logs/feed-generation-worker.log
|
||||
stopwaitsecs=3600
|
||||
|
||||
[program:laravel-scout-worker]
|
||||
process_name=%(program_name)s_%(process_num)02d
|
||||
command=php /application/artisan queue:work --queue=scout --sleep=1 --tries=3 --timeout=300 --max-time=3600
|
||||
autostart=true
|
||||
autorestart=true
|
||||
stopasgroup=true
|
||||
killasgroup=true
|
||||
user=www-data
|
||||
numprocs=8
|
||||
redirect_stderr=true
|
||||
stdout_logfile=/application/storage/logs/scout-worker.log
|
||||
stopwaitsecs=3600
|
||||
|
||||
Reference in New Issue
Block a user