-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathcompose.yaml
More file actions
97 lines (91 loc) · 2.78 KB
/
compose.yaml
File metadata and controls
97 lines (91 loc) · 2.78 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
services:
minio:
image: minio/minio
ports:
# TODO: change to 0.0.0.0 when attachments are ready to use
- "127.0.0.1:9000:9000"
volumes:
- minio-volume:/data
command: server --console-address ":9001" /data
environment:
MINIO_ROOT_USER: ${PLANTY_AWS_ACCESS_KEY_ID}
MINIO_ROOT_PASSWORD: ${PLANTY_AWS_SECRET_ACCESS_KEY}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 1s
timeout: 1s
retries: 5
start_period: 10s
minio-createbuckets:
image: minio/mc
depends_on:
minio:
condition: service_healthy
entrypoint: >
/bin/sh -c "
/usr/bin/mc alias set myminio http://minio:9000 ${PLANTY_AWS_ACCESS_KEY_ID} ${PLANTY_AWS_SECRET_ACCESS_KEY};
/usr/bin/mc mb myminio/${PLANTY_AWS_ATTACHMENTS_BUCKET};
/usr/bin/mc anonymous set download myminio/${PLANTY_AWS_ATTACHMENTS_BUCKET};
exit 0;
"
db:
image: postgres:16
restart: always
# ports:
# - ${PLANTY_DB_PORT}:5432
environment:
- POSTGRES_DB=${PLANTY_DB_NAME}
- POSTGRES_PASSWORD=${PLANTY_DB_PASS}
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 5s
timeout: 5s
retries: 5
volumes:
- postgres-volume:/var/lib/postgresql/data
- ./planty/tests/create_test_db.sql:/docker-entrypoint-initdb.d/create_test_db.sql
profiles: [with-postgres]
backend:
build:
context: .
dockerfile: Dockerfile.backend
environment:
- PLANTY_MODE=${PLANTY_MODE}
- PLANTY_DB_TYPE=${PLANTY_DB_TYPE}
- PLANTY_DB_HOST=${PLANTY_DB_HOST}
- PLANTY_DB_PORT=${PLANTY_DB_PORT}
- PLANTY_DB_USER=${PLANTY_DB_USER}
- PLANTY_DB_NAME=${PLANTY_DB_NAME}
- PLANTY_DB_PASS=${PLANTY_DB_PASS}
- PLANTY_TEST_DB_HOST=${PLANTY_TEST_DB_HOST}
- PLANTY_TEST_DB_PORT=${PLANTY_TEST_DB_PORT}
- PLANTY_TEST_DB_USER=${PLANTY_TEST_DB_USER}
- PLANTY_TEST_DB_NAME=${PLANTY_TEST_DB_NAME}
- PLANTY_TEST_DB_PASS=${PLANTY_TEST_DB_PASS}
- PLANTY_FASTAPI_PORT=${PLANTY_FASTAPI_PORT}
- PLANTY_AWS_URL=${PLANTY_AWS_URL}
- PLANTY_AWS_ACCESS_KEY_ID=${PLANTY_AWS_ACCESS_KEY_ID}
- PLANTY_AWS_SECRET_ACCESS_KEY=${PLANTY_AWS_SECRET_ACCESS_KEY}
- PLANTY_AWS_ATTACHMENTS_BUCKET=${PLANTY_AWS_ATTACHMENTS_BUCKET}
- PLANTY_AUTH_SECRET=${PLANTY_AUTH_SECRET}
volumes:
- ./planty.db:/app/planty.db
frontend:
build:
context: frontend
dockerfile: Dockerfile.frontend
caddy:
image: caddy:latest
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
depends_on:
- frontend
- backend
environment:
- DOMAIN=${CADDY_DOMAIN}
volumes:
postgres-volume:
minio-volume: