dataloft_test/docker-compose.yml
2026-04-05 18:17:09 +07:00

104 lines
2.0 KiB
YAML

services:
nginx:
image: nginx:1.27-alpine
ports:
- "${HTTP_PORT:-8080}:80"
volumes:
- .:/var/www/html:ro
- ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
depends_on:
php:
condition: service_started
phpmyadmin:
condition: service_started
networks:
- app
php:
build:
context: .
dockerfile: docker/php/Dockerfile
volumes:
- .:/var/www/html
- laravel_vendor:/var/www/html/vendor
env_file:
- docker/app.env
environment:
APP_ENV: "${APP_ENV:-local}"
depends_on:
mysql:
condition: service_healthy
redis:
condition: service_started
networks:
- app
queue:
build:
context: .
dockerfile: docker/php/Dockerfile
command: >
php artisan queue:work redis
--sleep=3
--tries=3
--max-time=3600
volumes:
- .:/var/www/html
- laravel_vendor:/var/www/html/vendor
env_file:
- docker/app.env
depends_on:
php:
condition: service_started
mysql:
condition: service_healthy
redis:
condition: service_started
networks:
- app
restart: unless-stopped
mysql:
image: mysql:8.0
env_file:
- docker/app.env
volumes:
- mysql_data:/var/lib/mysql
healthcheck:
test: ["CMD-SHELL", "mysqladmin ping -h 127.0.0.1 -uroot -p\"$$MYSQL_ROOT_PASSWORD\" || exit 1"]
interval: 5s
timeout: 5s
retries: 15
start_period: 30s
networks:
- app
redis:
image: redis:7-alpine
command: redis-server --appendonly yes
volumes:
- redis_data:/data
networks:
- app
phpmyadmin:
image: phpmyadmin:5-apache
env_file:
- docker/app.env
environment:
PMA_HOST: mysql
depends_on:
mysql:
condition: service_healthy
networks:
- app
volumes:
laravel_vendor:
mysql_data:
redis_data:
networks:
app:
driver: bridge