-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdocker-compose.prod.yml
More file actions
84 lines (81 loc) · 2.18 KB
/
docker-compose.prod.yml
File metadata and controls
84 lines (81 loc) · 2.18 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
services:
app:
build:
context: .
dockerfile: Prod.Dockerfile
image: laravel-app
container_name: laravel-app
restart: unless-stopped
tty: true
env_file:
- .env
working_dir: /var/www
volumes:
# Use Docker volumes for persistent storage (better permissions)
- app-storage:/var/www/storage
- app-cache:/var/www/bootstrap/cache
- ./deployment/php/local.ini:/usr/local/etc/php/conf.d/local.ini
depends_on:
- pgsql
networks:
- default
worker:
image: laravel-app
container_name: laravel-worker
restart: unless-stopped
env_file:
- .env
working_dir: /var/www
volumes:
# Use same volumes as app container
- app-storage:/var/www/storage
- app-cache:/var/www/bootstrap/cache
command: [ "php", "artisan", "queue:work", "--tries=3" ]
networks:
- default
depends_on:
- pgsql
webserver:
build:
context: .
dockerfile: Prod.Nginx.Dockerfile
container_name: nginx-webserver
restart: unless-stopped
ports:
- "2053:2053"
environment:
- SSL_CERT_NAME=${SSL_CERT_NAME:-cloudflare-paroquia-piox.app.br}
volumes:
- ./deployment/nginx:/etc/nginx/conf.d/
- ./deployment/nginx/certs:/etc/nginx/certs
networks:
- default
depends_on:
- app
pgsql:
image: 'postgres:13'
ports:
- '${FORWARD_DB_PORT:-5432}:5432'
environment:
PGPASSWORD: '${DB_PASSWORD:-secret}'
POSTGRES_DB: '${DB_DATABASE}'
POSTGRES_USER: '${DB_USERNAME}'
POSTGRES_PASSWORD: '${DB_PASSWORD:-secret}'
volumes:
- 'pgsql:/var/lib/postgresql/data'
networks:
- default
healthcheck:
test: [ "CMD", "pg_isready", "-q", "-d", "${DB_DATABASE}", "-U", "${DB_USERNAME}" ]
retries: 3
timeout: 5s
networks:
default:
driver: bridge
volumes:
pgsql:
driver: local
app-storage:
driver: local
app-cache:
driver: local