Repository navigation
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
61 lines (58 loc) · 1.88 KB
/
Copy pathdocker-compose.yml
File metadata and controls
61 lines (58 loc) · 1.88 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
services:
db:
image: mariadb:10.11
restart: unless-stopped
environment:
MARIADB_ROOT_PASSWORD: ${DB_ROOT_PASSWORD:-rootpassword}
MARIADB_DATABASE: ${DB_NAME:-makerspaceapi}
MARIADB_USER: ${DB_USER:-makerspace}
MARIADB_PASSWORD: ${DB_PASSWORD:-makerspace}
volumes:
- db_data:/var/lib/mysql
healthcheck:
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
app:
#build: . # For dev environment
image: ghcr.io/leinelab/makerspaceapi:latest
restart: unless-stopped
ports:
- "8000:8000"
env_file: .env
environment:
DATABASE_URL: mysql+pymysql://${DB_USER:-makerspace}:${DB_PASSWORD:-makerspace}@db:3306/${DB_NAME:-makerspaceapi}
TIMEZONE: ${TIMEZONE:-Europe/Berlin}
volumes:
- ./logo.svg:/app/statements/logo.svg
- ./fonts:/app/statements/fonts
depends_on:
db:
condition: service_healthy
command: >
sh -c "alembic upgrade head && uvicorn app.main:app --host 0.0.0.0 --port 8000"
# Periodic mariadb-dump of the database, gzip-compressed, into ./backups.
# BACKUP_INTERVAL_HOURS=0 (default) disables this - the container just idles.
# See scripts/backup.sh and scripts/restore_backup.sh, and the "Database
# backups" section in README.md.
backup:
image: mariadb:10.11
restart: unless-stopped
environment:
DB_HOST: db
DB_NAME: ${DB_NAME:-makerspaceapi}
DB_USER: ${DB_USER:-makerspace}
DB_PASSWORD: ${DB_PASSWORD:-makerspace}
BACKUP_INTERVAL_HOURS: ${BACKUP_INTERVAL_HOURS:-0}
BACKUP_RETENTION_DAYS: ${BACKUP_RETENTION_DAYS:-30}
volumes:
- ./backups:/backups
- ./scripts/backup.sh:/backup.sh:ro
depends_on:
db:
condition: service_healthy
entrypoint: ["sh", "/backup.sh"]
volumes:
db_data: