-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
90 lines (85 loc) · 2.3 KB
/
docker-compose.yml
File metadata and controls
90 lines (85 loc) · 2.3 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
services:
pdfbro-dev:
build:
context: .
dockerfile: Dockerfile.dev
target: pdfbro-dev
ports:
- "${API_PORT:-3000}:3000"
environment:
- RUST_LOG=${LOG_LEVEL:-debug},chromiumoxide::handler=error
- CHROME_PATH=/usr/bin/chromium
- RUST_BACKTRACE=1
volumes:
# Mount source code for hot reload
- ./crates:/app/crates:cached
- ./Cargo.toml:/app/Cargo.toml:cached
- ./Cargo.lock:/app/Cargo.lock:cached
# Cache build artifacts for faster rebuilds
- cargo-target:/app/target
- cargo-registry:/usr/local/cargo/registry
tty: true
stdin_open: true
profiles: [dev]
pdfbro-dev-chromium:
build:
context: .
dockerfile: Dockerfile.dev
target: dev-chromium
ports:
- "${API_PORT:-3000}:3000"
environment:
- RUST_LOG=${LOG_LEVEL:-debug},chromiumoxide::handler=error
- CHROME_PATH=/usr/bin/chromium
- RUST_BACKTRACE=1
volumes:
- ./crates:/app/crates:cached
- ./Cargo.toml:/app/Cargo.toml:cached
- ./Cargo.lock:/app/Cargo.lock:cached
- cargo-target:/app/target
- cargo-registry:/usr/local/cargo/registry
tty: true
stdin_open: true
command: ["cargo", "watch", "--poll", "-x", "run -p server -- serve --port 3000 --host 0.0.0.0 --no-default-features --features chromium"]
profiles: [dev-chromium]
pdfbro:
build:
context: .
dockerfile: Dockerfile
target: pdfbro
ports:
- "${API_PORT:-3000}:3000"
environment:
- RUST_LOG=${LOG_LEVEL:-info},chromiumoxide::handler=error
tty: true
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 15s
pdfbro-chromium:
build:
context: .
dockerfile: Dockerfile
target: pdfbro-chromium
ports:
- "${API_PORT:-3000}:3000"
environment:
- RUST_LOG=${LOG_LEVEL:-info},chromiumoxide::handler=error
tty: true
profiles: [chromium]
pdfbro-libreoffice:
build:
context: .
dockerfile: Dockerfile
target: pdfbro-libreoffice
ports:
- "${API_PORT:-3000}:3000"
environment:
- RUST_LOG=${LOG_LEVEL:-info}
tty: true
profiles: [libreoffice]
volumes:
cargo-target:
cargo-registry: