-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
67 lines (64 loc) · 2.46 KB
/
Copy pathdocker-compose.yml
File metadata and controls
67 lines (64 loc) · 2.46 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
services:
# ----------------------------------------------------
# 1. WorkFlow Web Application Service (Apache + PHP 8.2)
# ----------------------------------------------------
app:
build:
context: .
dockerfile: Dockerfile
container_name: workflow_app
restart: unless-stopped
ports:
- "8080:80" # Access WorkFlow at http://localhost:8080/
depends_on:
- db
volumes:
# Mount codebase for instant development feedback and persistent config/uploads
- ./:/var/www/html
- workflow_uploads:/var/www/html/uploads
environment:
- APACHE_DOCUMENT_ROOT=/var/www/html
# Read by config.php via getenv() -- no DB password ever needs to be a
# literal in a PHP file. Values come from .env (copy .env.example first).
- DB_HOST=db
- DB_DATABASE=workflow_platform
- DB_USERNAME=workflow
- DB_PASSWORD=${WORKFLOW_DB_PASSWORD:?Set WORKFLOW_DB_PASSWORD in .env -- see .env.example}
- WORKFLOW_ENCRYPTION_KEY=${WORKFLOW_ENCRYPTION_KEY:-}
# ----------------------------------------------------
# 2. Database Service (MariaDB 10.11 / MySQL compatible)
# ----------------------------------------------------
db:
image: mariadb:10.11
container_name: workflow_db
restart: unless-stopped
ports:
- "3306:3306" # Optional: Access MySQL from host tools like DBeaver or HeidiSQL
environment:
MYSQL_ROOT_PASSWORD: ${WORKFLOW_DB_ROOT_PASSWORD:?Set WORKFLOW_DB_ROOT_PASSWORD in .env -- see .env.example}
MYSQL_DATABASE: workflow_platform
MYSQL_USER: workflow
MYSQL_PASSWORD: ${WORKFLOW_DB_PASSWORD:?Set WORKFLOW_DB_PASSWORD in .env -- see .env.example}
volumes:
- workflow_db_data:/var/lib/mysql
command: --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci
# ----------------------------------------------------
# 3. phpMyAdmin Service (Optional Database GUI)
# ----------------------------------------------------
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
container_name: workflow_pma
restart: unless-stopped
ports:
- "8081:80" # Access phpMyAdmin at http://localhost:8081/
environment:
PMA_HOST: db
PMA_USER: workflow
PMA_PASSWORD: ${WORKFLOW_DB_PASSWORD:?Set WORKFLOW_DB_PASSWORD in .env -- see .env.example}
depends_on:
- db
volumes:
workflow_db_data:
driver: local
workflow_uploads:
driver: local