laravel_initial/docker-compose.yml

104 lines
2.4 KiB
YAML

services:
mysql:
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: laravel_db
volumes:
- mysql-data:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "-uroot", "-prootpassword"]
interval: 10s
timeout: 5s
retries: 5
restart: unless-stopped
laravel:
build:
context: .
dockerfile: Dockerfile
depends_on:
mysql:
condition: service_healthy
volumes:
- ./laravel:/var/www/html
environment:
- DB_HOST=mysql
- DB_PORT=3306
- DB_DATABASE=laravel_db
- DB_USERNAME=root
- DB_PASSWORD=rootpassword
healthcheck:
test: ["CMD", "pgrep", "php-fpm"] # Corrected to check PHP-FPM instead of relying on Nginx
interval: 10s
timeout: 5s
retries: 5
restart: unless-stopped
nginx:
image: nginx:latest
depends_on:
laravel:
condition: service_healthy
ports:
- "80:80" # Ensure Laravel is accessible on port 80
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf
- ./laravel:/var/www/html
restart: unless-stopped
volumes:
mysql-data:
# services:
# mysql:
# image: mysql:latest
# environment:
# MYSQL_ROOT_PASSWORD: rootpassword
# MYSQL_DATABASE: laravel_db
# volumes:
# - mysql-data:/var/lib/mysql
# healthcheck:
# test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
# interval: 10s
# timeout: 5s
# retries: 5
# restart: unless-stopped
# laravel:
# build:
# context: .
# dockerfile: Dockerfile
# depends_on:
# mysql:
# condition: service_healthy
# volumes:
# - ./laravel:/var/www/html
# environment:
# - DB_HOST=mysql
# - DB_PORT=3306
# - DB_DATABASE=laravel_db
# - DB_USERNAME=root
# - DB_PASSWORD=rootpassword
# healthcheck:
# test: ["CMD", "pgrep", "php-fpm"]
# interval: 10s
# timeout: 5s
# retries: 5
# restart: unless-stopped
# nginx:
# image: nginx:latest
# depends_on:
# laravel:
# condition: service_healthy
# ports:
# - "8080:80"
# volumes:
# - ./nginx.conf:/etc/nginx/conf.d/default.conf
# - ./laravel:/var/www/html
# restart: unless-stopped
# volumes:
# mysql-data: