103 lines
3.0 KiB
YAML
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
|