-
Notifications
You must be signed in to change notification settings - Fork 18
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
126 lines (122 loc) · 4.73 KB
/
docker-compose.yml
File metadata and controls
126 lines (122 loc) · 4.73 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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
services:
app:
build:
context: .
dockerfile: Dockerfile
image: getfy_app:latest
restart: unless-stopped
ports:
- "${GETFY_HTTP_PORT:-80}:80"
healthcheck:
test: ["CMD-SHELL", "curl -fsS http://127.0.0.1/up >/dev/null || exit 1"]
interval: 15s
timeout: 5s
retries: 5
start_period: 120s
volumes:
# storage: cache, logs, uploads… | .docker: chaves + plugins instalados (ZIP/loja) — não apagar getfy_env nos updates
- getfy_storage:/var/www/html/storage
- getfy_env:/var/www/html/.docker
environment:
APP_ENV: ${GETFY_APP_ENV:-local}
APP_DEBUG: ${GETFY_APP_DEBUG:-true}
GETFY_APP_URL: ${GETFY_APP_URL:-http://localhost}
APP_INSTALLED: ${GETFY_APP_INSTALLED:-true}
APP_AUTO_MIGRATE: ${GETFY_APP_AUTO_MIGRATE:-false}
DB_CONNECTION: ${GETFY_DB_CONNECTION:-mysql}
DB_HOST: ${GETFY_DB_HOST:-mysql}
DB_PORT: ${GETFY_DB_PORT:-3306}
DB_DATABASE: ${GETFY_DB_DATABASE:-getfy}
DB_USERNAME: ${GETFY_DB_USERNAME:-getfy}
DB_PASSWORD: ${GETFY_DB_PASSWORD:-getfy}
REDIS_HOST: ${GETFY_REDIS_HOST:-redis}
REDIS_PORT: ${GETFY_REDIS_PORT:-6379}
CACHE_STORE: ${GETFY_CACHE_STORE:-redis}
QUEUE_CONNECTION: ${GETFY_QUEUE_CONNECTION:-redis}
SESSION_DRIVER: ${GETFY_SESSION_DRIVER:-file}
GETFY_DOCKER: "true"
GETFY_RUN_SETUP: "true"
depends_on:
mysql:
condition: service_healthy
redis:
condition: service_healthy
mysql:
image: mysql:8.0
restart: unless-stopped
command:
- "--innodb-buffer-pool-size=${GETFY_MYSQL_INNODB_BUFFER_POOL_SIZE:-256M}"
- "--innodb-log-file-size=${GETFY_MYSQL_INNODB_LOG_FILE_SIZE:-64M}"
- "--innodb-buffer-pool-instances=${GETFY_MYSQL_INNODB_BUFFER_POOL_INSTANCES:-1}"
- "--max-connections=${GETFY_MYSQL_MAX_CONNECTIONS:-50}"
- "--table-open-cache=${GETFY_MYSQL_TABLE_OPEN_CACHE:-200}"
- "--thread-cache-size=${GETFY_MYSQL_THREAD_CACHE_SIZE:-16}"
environment:
MYSQL_ROOT_PASSWORD: ${GETFY_MYSQL_ROOT_PASSWORD:-root}
MYSQL_DATABASE: ${GETFY_MYSQL_DATABASE:-${GETFY_DB_DATABASE:-getfy}}
MYSQL_USER: ${GETFY_MYSQL_USER:-${GETFY_DB_USERNAME:-getfy}}
MYSQL_PASSWORD: ${GETFY_MYSQL_PASSWORD:-${GETFY_DB_PASSWORD:-getfy}}
MYSQL_INITDB_SKIP_TZINFO: ${GETFY_MYSQL_SKIP_TZINFO:-1}
volumes:
- mysql_data:/var/lib/mysql
healthcheck:
test: ["CMD-SHELL", "mysqladmin ping -h 127.0.0.1 -u$$MYSQL_USER -p$$MYSQL_PASSWORD --silent"]
interval: 5s
timeout: 3s
retries: 30
redis:
image: redis:7-alpine
restart: unless-stopped
command:
- "redis-server"
- "--maxmemory"
- "${GETFY_REDIS_MAXMEMORY:-128mb}"
- "--maxmemory-policy"
- "${GETFY_REDIS_MAXMEMORY_POLICY:-allkeys-lru}"
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 3s
retries: 30
queue:
image: getfy_app:latest
restart: unless-stopped
command:
- "sh"
- "-lc"
- "set -e; php artisan queue:work --sleep=3 --tries=3 --timeout=0 --memory=${GETFY_QUEUE_WORKER_MEMORY:-128} --max-time=${GETFY_QUEUE_WORKER_MAX_TIME:-3600} --max-jobs=${GETFY_QUEUE_WORKER_MAX_JOBS:-1000} & Q=$$!; php artisan schedule:work & S=$$!; trap 'kill $$Q $$S 2>/dev/null || true' INT TERM; while kill -0 $$Q 2>/dev/null && kill -0 $$S 2>/dev/null; do sleep 5; done; kill $$Q $$S 2>/dev/null || true; wait $$Q 2>/dev/null || true; wait $$S 2>/dev/null || true; exit 1"
volumes:
# storage: cache, logs, uploads… | .docker: chaves + plugins instalados (ZIP/loja) — não apagar getfy_env nos updates
- getfy_storage:/var/www/html/storage
- getfy_env:/var/www/html/.docker
environment:
APP_ENV: ${GETFY_APP_ENV:-local}
APP_DEBUG: ${GETFY_APP_DEBUG:-true}
GETFY_APP_URL: ${GETFY_APP_URL:-http://localhost}
APP_INSTALLED: ${GETFY_APP_INSTALLED:-true}
APP_AUTO_MIGRATE: ${GETFY_APP_AUTO_MIGRATE:-false}
DB_CONNECTION: ${GETFY_DB_CONNECTION:-mysql}
DB_HOST: ${GETFY_DB_HOST:-mysql}
DB_PORT: ${GETFY_DB_PORT:-3306}
DB_DATABASE: ${GETFY_DB_DATABASE:-getfy}
DB_USERNAME: ${GETFY_DB_USERNAME:-getfy}
DB_PASSWORD: ${GETFY_DB_PASSWORD:-getfy}
REDIS_HOST: ${GETFY_REDIS_HOST:-redis}
REDIS_PORT: ${GETFY_REDIS_PORT:-6379}
CACHE_STORE: ${GETFY_CACHE_STORE:-redis}
QUEUE_CONNECTION: ${GETFY_QUEUE_CONNECTION:-redis}
SESSION_DRIVER: ${GETFY_SESSION_DRIVER:-file}
GETFY_DOCKER: "true"
GETFY_RUN_SETUP: "false"
depends_on:
mysql:
condition: service_healthy
redis:
condition: service_healthy
volumes:
mysql_data:
driver: local
getfy_storage:
driver: local
getfy_env:
driver: local