Files
ntspi-app/docker-compose.yml
T
F4ilji cc98d509e5 fix: add Docker CLI to PHP container for deploy script
- Install docker-ce-cli + docker-compose-plugin in Dockerfile
- Mount Docker socket in docker-compose.yml
- Add www-data to docker group for socket access
2026-07-02 01:50:40 +05:00

110 lines
2.3 KiB
YAML
Executable File

services:
webserver:
image: nginx:1.27.2
volumes:
- ./:/var/www
- ./_docker/nginx/${NGINX_ENV}/conf.d/:/etc/nginx/conf.d/
- /etc/letsencrypt:/etc/letsencrypt
- /var/www/certbot:/var/www/certbot
ports:
- "80:80"
- "443:443"
container_name: ntspi-nginx
restart: always
depends_on:
- app
env_file:
- .env
networks:
- app-network
certbot:
image: certbot/certbot
container_name: ntspi-certbot
volumes:
- /etc/letsencrypt:/etc/letsencrypt
- /var/www/certbot:/var/www/certbot
entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h & wait $${!}; done;'"
depends_on:
- webserver
networks:
- app-network
app:
build:
context: .
dockerfile: _docker/app/Dockerfile
volumes:
- ./:/var/www
- /var/run/docker.sock:/var/run/docker.sock
container_name: ntspi-php
restart: always
ports:
- "5173"
depends_on:
db:
condition: service_healthy
networks:
- app-network
dns:
- 8.8.8.8 # Google DNS
- 1.1.1.1 # Cloudflare DNS
php-queue-worker:
restart: always
build:
context: .
dockerfile: _docker/app/Dockerfile
volumes:
- ./:/var/www
container_name: ntspi-php-queue
command: php artisan queue:work --tries=3 --timeout=90 --sleep=3
depends_on:
db:
condition: service_healthy
networks:
- app-network
dns:
- 8.8.8.8 # Google DNS
- 1.1.1.1 # Cloudflare DNS
db:
image: mysql:8.0
restart: always
container_name: ntspi-db
volumes:
- "./sourcefiles/mysql:/var/lib/mysql"
environment:
- MYSQL_ROOT_PASSWORD=secret
- MYSQL_DATABASE=ntspi_db
- MYSQL_USER=admin
- MYSQL_PASSWORD=secret
ports:
- "3306:3306"
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 5s
timeout: 10s
retries: 10
networks:
- app-network
redis-cache:
image: redis:7.4.2
restart: always
container_name: ntspi-cache-service
ports:
- "6379:6379"
command: redis-server --save 20 1 --loglevel warning
volumes:
- cache:/data
networks:
- app-network
volumes:
cache:
driver: local
networks:
app-network:
driver: bridge