-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdocker-compose.dev.yml
More file actions
86 lines (80 loc) · 2.36 KB
/
docker-compose.dev.yml
File metadata and controls
86 lines (80 loc) · 2.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# docker-compose.dev.yml
# Development Docker Compose with internal MySQL and Redis containers
# Comments in English only
name: livrolog_dev
services:
# MySQL Database (development)
mysql:
image: mysql:8.0
container_name: livrolog-mysql-dev
restart: always
environment:
MYSQL_ROOT_PASSWORD: 'rootpassword'
MYSQL_DATABASE: '${DB_DATABASE:-livrolog_dev}'
MYSQL_USER: '${DB_USERNAME:-livrolog}'
MYSQL_PASSWORD: '${DB_PASSWORD:-supersecret}'
ports:
- "127.0.0.1:3307:3306" # Different port to avoid conflicts
volumes:
- /var/www/livrolog-dev/shared/db:/var/lib/mysql
networks:
- livrolog-dev-net
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "livrolog", "-psupersecret"]
timeout: 5s
retries: 10
interval: 10s
start_period: 30s
# Redis Cache (development)
redis:
image: redis:7-alpine
container_name: livrolog-redis-dev
restart: always
ports:
- "127.0.0.1:6380:6379" # Different port to avoid conflicts
networks:
- livrolog-dev-net
# Laravel API with PHP-FPM
api:
image: ghcr.io/${GITHUB_REPOSITORY_OWNER:-owner}/livrolog-api:${TAG:-dev}
container_name: livrolog-api-dev
restart: always
env_file:
- /var/www/livrolog-dev/shared/.env.dev # Development env file
environment:
# Use containerized services
- DB_HOST=mysql
- DB_PORT=3306
- DB_DATABASE=${DB_DATABASE:-livrolog_dev}
- DB_USERNAME=${DB_USERNAME:-livrolog}
- DB_PASSWORD=${DB_PASSWORD:-supersecret}
- REDIS_HOST=redis
- REDIS_PORT=6379
ports:
- "127.0.0.1:8081:8080"
volumes:
# Mount shared storage from dev deployment
- /var/www/livrolog-dev/shared/storage:/var/www/html/storage
- /var/www/livrolog-dev/shared/.env.dev:/var/www/html/.env
networks:
- livrolog-dev-net
depends_on:
mysql:
condition: service_healthy
redis:
condition: service_started
# Vue/Quasar WebApp served by Nginx
web:
image: ghcr.io/${GITHUB_REPOSITORY_OWNER:-owner}/livrolog-web:${TAG:-dev}
container_name: livrolog-web-dev
restart: always
ports:
- "127.0.0.1:8080:80" # Development web port
depends_on:
- api
networks:
- livrolog-dev-net
networks:
livrolog-dev-net:
name: livrolog-dev-net
driver: bridge