Files
Virtnet.bond/docker-compose.dev.yml
2025-11-30 11:57:22 +01:00

103 lines
3.0 KiB
YAML

services:
app:
build:
context: .
target: base
dockerfile: Dockerfile.dev
container_name: paymenter_app
restart: unless-stopped
volumes:
- ./:/var/www/html
ports:
- "80:8080"
- "5173:5173"
networks:
- paymenter_network
task:
build:
context: .
target: base
dockerfile: Dockerfile.dev
container_name: paymenter_task
command: [ "php", "/var/www/html/artisan", "schedule:run" ]
restart: unless-stopped
volumes:
- ./:/var/www/html
stop_signal: SIGTERM
healthcheck:
# This is our native healthcheck script for the scheduler
test: [ "CMD", "healthcheck-schedule" ]
start_period: 10s
networks:
- paymenter_network
queue:
build:
context: .
target: base
dockerfile: Dockerfile.dev
container_name: paymenter_queue
command: ["php", "/var/www/html/artisan", "queue:work", "--tries=3"]
restart: unless-stopped
volumes:
- ./:/var/www/html
stop_signal: SIGTERM # Set this for graceful shutdown if you're using fpm-apache or fpm-nginx
healthcheck:
# This is our native healthcheck script for the queue
test: ["CMD", "healthcheck-queue"]
start_period: 10s
networks:
- paymenter_network
db:
image: mariadb:11 # Match the version target the guide
container_name: paymenter_db
restart: unless-stopped
environment:
MYSQL_DATABASE: ${DB_DATABASE:-paymenter}
MYSQL_USER: ${DB_USERNAME:-paymenter}
MYSQL_PASSWORD: ${DB_PASSWORD:-changeme} # Use a strong password
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD:-rootchangeme} # Use a strong root password
volumes:
# Persist database data
- paymenter_db_data:/var/lib/mysql
command: [ "--character-set-server=utf8mb4", "--collation-server=utf8mb4_unicode_ci" ]
networks:
- paymenter_network
# Redis Service
redis:
image: redis:alpine
container_name: paymenter_redis
restart: unless-stopped
volumes:
# Persist redis data
- paymenter_redis_data:/data
networks:
- paymenter_network
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
container_name: paymenter_phpmyadmin
restart: unless-stopped
depends_on:
- db
environment:
PMA_HOST: db
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD:-rootchangeme}
ports:
- "8124:80"
networks:
- paymenter_network
# Docker Networks
networks:
paymenter_network:
driver: bridge
# Docker Volumes
volumes:
paymenter_db_data:
driver: local
paymenter_redis_data:
driver: local