-
Notifications
You must be signed in to change notification settings - Fork 46
/
docker-compose.dev.yaml
138 lines (132 loc) · 3.47 KB
/
docker-compose.dev.yaml
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
127
128
129
130
131
132
133
134
135
136
137
138
# Don't deploy this in production!
version: '3.7'
services:
postgres:
image: postgres:14.6-alpine
restart: unless-stopped
environment:
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=${POSTGRES_DB}
ports:
- 5432:5432
volumes:
- ${POSTGRES_DATA_PATH}:/var/lib/postgresql/data
networks:
- app_network
healthcheck:
test: [ "CMD-SHELL", "pg_isready -U postgres" ]
interval: 5s
timeout: 5s
retries: 10
neo4j:
image: neo4j:4.4.14-community
restart: unless-stopped
ports:
- 7474:7474
- 7687:7687
volumes:
- ./.compose/neo4j/conf:/conf
- ./.compose/neo4j/data:/data
- ./.compose/neo4j/import:/import
- ./.compose/neo4j/logs:/logs
- ./.compose/neo4j/plugins:/plugins
environment:
# Raise memory limits:
- NEO4J_dbms_memory_pagecache_size=250m
- NEO4J_dbms.memory.heap.initial_size=250m
- NEO4J_dbms_memory_heap_max__size=250m
# Auth:
- NEO4J_AUTH=none
# Add APOC and GDS:
- apoc.export.file.enabled=true
- apoc.import.file.enabled=true
- apoc.import.file.use_neo4j_config=true
- NEO4JLABS_PLUGINS=["graph-data-science", "apoc"]
- NEO4J_dbms_security_procedures_allowlist=gds.*, apoc.*
- NEO4J_dbms_security_procedures_unrestricted=gds.*, apoc.*
# Networking:
- dbms.connector.bolt.listen_address=0.0.0.0:7687
networks:
- app_network
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:7474"]
interval: 5s
timeout: 5s
retries: 10
cartography:
build:
context: ./cartography
dockerfile: ./Dockerfile.dev
entrypoint: ["gunicorn", "--bind=0.0.0.0:6000", "cartography.wsgi:app"]
environment:
- CARTOGRAPHY_NEO4J_URI=${NEO4J_URI}
- CARTOGRAPHY_VERBOSE=True
- CARTOGRAPHY_IAMSPY_DIRECTORY=/root/iamspy
networks:
- app_network
init: true
restart: on-failure
depends_on:
- neo4j
ports:
- 6000:6000
volumes:
- ${AWS_DIRECTORY}:/root/.aws
- ./.compose/cartography/iamspy:/root/iamspy
frontend:
build:
context: ./frontend
dockerfile: ./Dockerfile.dev
# If you add any environment variable here, you must add a row to
# frontend/.env
environment:
- REACT_APP_API_DOMAIN=${REACT_APP_API_DOMAIN}
- REACT_APP_ENVIRONMENT=${MODE}
- REACT_APP_POSTHOG_API_KEY=${POSTHOG_API_KEY}
- REACT_APP_POSTHOG_HOST=${POSTHOG_HOST}
- REACT_APP_TELEMETRY_ENABLED=${TELEMETRY_ENABLED}
volumes:
- ./frontend:/usr/src/app
networks:
- app_network
depends_on:
- backend
ports:
- 3000:3000
backend:
build:
context: ./backend
dockerfile: ./Dockerfile
environment:
- WEBSITE_DOMAIN=${WEBSITE_DOMAIN}
- NEO4J_URI=${NEO4J_URI}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=${POSTGRES_DB}
- POSTGRES_HOST=postgres
- POSTGRES_PORT=5432
- CARTOGRAPHY_URI=${CARTOGRAPHY_URI}
- MODE=${MODE}
networks:
- app_network
depends_on:
- postgres
- neo4j
- cartography
ports:
- 8080:8080
proxy:
build:
context: ./zeus-proxy
dockerfile: ./Dockerfile
depends_on:
- backend
- frontend
networks:
- app_network
ports:
- 80:80
networks:
app_network:
driver: bridge