-
Notifications
You must be signed in to change notification settings - Fork 11
/
docker-compose.yml
130 lines (123 loc) · 3.71 KB
/
docker-compose.yml
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
---
# You typically create .env file to populate the
# sensitive variables for the backend deployment.
# Then bring the containers up with: -
# docker-compose up -d
# Then enter the backend container with: -
# docker-compose exec backend bash
# Where you should then find the back end at http://localhost:8080/api/
# and logs in /code/logs/backend.log and on your local machine in ../data/logs/backend.log
version: '3'
services:
# The database
database:
image: postgres:12.16-alpine3.18
container_name: database
volumes:
- ./data/postgresql/data:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: fragalysis
POSTGRES_DB: frag
PGDATA: /var/lib/postgresql/data/pgdata
ports:
- "5432:5432"
healthcheck:
test: pg_isready -U postgres -d frag
interval: 10s
timeout: 2s
retries: 5
start_period: 10s
# Redis (Celery/Worker Broker)
redis:
image: redis:7.2.3-alpine3.18
container_name: redis
volumes:
- ./data/redis/data:/data
ports:
- "6379:6379"
healthcheck:
test: redis-cli ping
interval: 10s
timeout: 2s
retries: 5
start_period: 10s
# The graph
graph:
image: neo4j:4.4.2
container_name: graph
ports:
# These are not used in production
- "7474:7474"
- "7687:7687"
ulimits:
nofile:
soft: 40000
hard: 40000
volumes:
- ./data/neo4j/data:/data
- ./data/neo4j/logs:/logs
environment:
- NEO4J_AUTH=none
- NEO4J_dbms_memory_pagecache_size=4G
healthcheck:
test: wget http://localhost:7474 || exit 1
interval: 10s
timeout: 10s
retries: 20
start_period: 10s
# The stack backend
backend:
image: ${BE_NAMESPACE:-xchem}/fragalysis-backend:${BE_IMAGE_TAG:-latest}
container_name: backend
build:
context: .
dockerfile: Dockerfile
command: /bin/bash /code/launch-stack.sh
volumes:
- ./data/logs:/code/logs/
- ./data/media:/code/media/
- .:/code/
env_file:
- .env
environment:
AUTHENTICATE_UPLOAD: ${AUTHENTICATE_UPLOAD:-True}
DEPLOYMENT_MODE: 'development'
POSTGRESQL_USER: postgres
# Comma-separated dforced errors (infections?)
INFECTIONS: ''
# Celery tasks need to run synchronously
CELERY_TASK_ALWAYS_EAGER: 'True'
# Error reporting and default/root log-level
FRAGALYSIS_BACKEND_SENTRY_DNS: ${FRAGALYSIS_BACKEND_SENTRY_DNS}
LOGGING_FRAMEWORK_ROOT_LEVEL: ${LOGGING_FRAMEWORK_ROOT_LEVEL:-INFO}
# Keycloak configuration
OIDC_KEYCLOAK_REALM: ${OIDC_KEYCLOAK_REALM}
OIDC_RP_CLIENT_ID: ${OIDC_RP_CLIENT_ID:-fragalysis-local}
OIDC_RP_CLIENT_SECRET: ${OIDC_RP_CLIENT_SECRET}
OIDC_AS_CLIENT_ID: ${OIDC_AS_CLIENT_ID:-account-server-api}
OIDC_DM_CLIENT_ID: ${OIDC_DM_CLIENT_ID:-data-manager-api}
OIDC_RENEW_ID_TOKEN_EXPIRY_MINUTES: '210'
# Public target access strings?
# A comma-separated list of Project titles.
PUBLIC_TAS: ${PUBLIC_TAS:-lb18145-1}
# Squonk configuration
SQUONK2_VERIFY_CERTIFICATES: 'No'
SQUONK2_UNIT_BILLING_DAY: 3
SQUONK2_PRODUCT_FLAVOUR: BRONZE
SQUONK2_SLUG: fs-local
SQUONK2_ORG_OWNER: ${SQUONK2_ORG_OWNER}
SQUONK2_ORG_OWNER_PASSWORD: ${SQUONK2_ORG_OWNER_PASSWORD}
SQUONK2_ORG_UUID: ${SQUONK2_ORG_UUID}
SQUONK2_UI_URL: ${SQUONK2_UI_URL}
SQUONK2_DMAPI_URL: ${SQUONK2_DMAPI_URL}
SQUONK2_ASAPI_URL: ${SQUONK2_ASAPI_URL}
PROXY_FORWARDED_PROTO_HEADER: ${PROXY_FORWARDED_PROTO_HEADER:-http}
ports:
- "8080:80"
depends_on:
database:
condition: service_healthy
redis:
condition: service_healthy
graph:
condition: service_healthy