-
Notifications
You must be signed in to change notification settings - Fork 102
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
136 lines (129 loc) · 4.5 KB
/
Copy pathdocker-compose.yml
File metadata and controls
136 lines (129 loc) · 4.5 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
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
services:
xnat-web:
container_name: xnat-web
hostname: xnat-web-1
image: xnat-web:${XNAT_VERSION}
build:
context: ./xnat
args:
XNAT_VERSION: ${XNAT_VERSION}
XNAT_SMTP_ENABLED: ${XNAT_SMTP_ENABLED}
XNAT_SMTP_HOSTNAME: ${XNAT_SMTP_HOSTNAME}
XNAT_SMTP_PORT: ${XNAT_SMTP_PORT}
XNAT_SMTP_AUTH: ${XNAT_SMTP_AUTH}
XNAT_SMTP_USERNAME: ${XNAT_SMTP_USERNAME}
XNAT_SMTP_PASSWORD: ${XNAT_SMTP_PASSWORD}
XNAT_SMTP_START_TLS: ${XNAT_SMTP_START_TLS}
XNAT_DATASOURCE_DRIVER: ${XNAT_DATASOURCE_DRIVER}
XNAT_DATASOURCE_URL: ${XNAT_DATASOURCE_URL}
XNAT_DATASOURCE_USERNAME: ${XNAT_DATASOURCE_USERNAME}
XNAT_DATASOURCE_PASSWORD: ${XNAT_DATASOURCE_PASSWORD}
XNAT_ACTIVEMQ_URL: ${XNAT_ACTIVEMQ_URL}
XNAT_ACTIVEMQ_USERNAME: ${XNAT_ACTIVEMQ_USERNAME}
XNAT_ACTIVEMQ_PASSWORD: ${XNAT_ACTIVEMQ_PASSWORD}
TOMCAT_XNAT_FOLDER: ${TOMCAT_XNAT_FOLDER}
XNAT_ROOT: ${XNAT_ROOT}
XNAT_HOME: ${XNAT_HOME}
XNAT_EMAIL: ${XNAT_EMAIL}
ports:
- 8104:8104
networks:
- xnat-network
volumes:
- ./xnat/plugins:${XNAT_HOME}/plugins
- ./xnat/node-conf/node1.properties:${XNAT_HOME}/config/node-conf.properties
- ./xnat-data/home/logs:${XNAT_HOME}/logs
- ./xnat-data/archive:${XNAT_ROOT}/archive
- ./xnat-data/build:${XNAT_ROOT}/build
- ./xnat-data/cache:${XNAT_ROOT}/cache
- ./xnat-data/prearchive:${XNAT_ROOT}/prearchive
- /var/run/docker.sock:/var/run/docker.sock
depends_on:
- xnat-db
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:8080/ || exit 1"]
interval: 15s
timeout: 10s
retries: 20
start_period: 180s
environment:
- CATALINA_OPTS=-Xms${XNAT_MIN_HEAP} -Xmx${XNAT_MAX_HEAP} -Dxnat.home=${XNAT_HOME}
- XNAT_HOME=${XNAT_HOME}
# Second XNAT web node — enabled only with the "multinode" profile
# (COMPOSE_PROFILES=multinode). Reuses the image built by xnat-web.
xnat-web-2:
container_name: xnat-web-2
hostname: xnat-web-2
image: xnat-web:${XNAT_VERSION}
profiles: ["multinode"]
networks:
- xnat-network
volumes:
- ./xnat/plugins:${XNAT_HOME}/plugins
- ./xnat/node-conf/node2.properties:${XNAT_HOME}/config/node-conf.properties
- ./xnat-data/home2/logs:${XNAT_HOME}/logs
- ./xnat-data/archive:${XNAT_ROOT}/archive
- ./xnat-data/build:${XNAT_ROOT}/build
- ./xnat-data/cache:${XNAT_ROOT}/cache
- ./xnat-data/prearchive:${XNAT_ROOT}/prearchive
- /var/run/docker.sock:/var/run/docker.sock
depends_on:
xnat-db:
condition: service_started
xnat-activemq:
condition: service_started
xnat-web:
condition: service_healthy
environment:
- CATALINA_OPTS=-Xms${XNAT_MIN_HEAP} -Xmx${XNAT_MAX_HEAP} -Dxnat.home=${XNAT_HOME}
- XNAT_HOME=${XNAT_HOME}
# External ActiveMQ broker — enabled only with the "multinode" profile.
xnat-activemq:
container_name: xnat-activemq
image: apache/activemq-classic:${ACTIVEMQ_VERSION}
profiles: ["multinode"]
expose:
- 61616
ports:
- 8161:8161
networks:
- xnat-network
xnat-db:
container_name: xnat-db
image: postgres:${PG_VERSION}
expose:
- 5432
networks:
- xnat-network
volumes:
- ./postgres-data:/var/lib/postgresql/data
- ./postgres:/docker-entrypoint-initdb.d
environment:
- POSTGRES_PASSWORD=${XNAT_DATASOURCE_ADMIN_PASSWORD}
- POSTGRES_DB=${XNAT_DATASOURCE_NAME}
# variables for the sql script
- XNAT_DATASOURCE_USERNAME=${XNAT_DATASOURCE_USERNAME}
- XNAT_DATASOURCE_PASSWORD=${XNAT_DATASOURCE_PASSWORD}
xnat-nginx:
container_name: xnat-nginx
image: nginx:${NGINX_VERSION}
# NGINX_CONF selects the routing config: nginx.conf (single node, default) or
# nginx-multinode.conf (load-balances xnat-web + xnat-web-2).
volumes:
- ./nginx/${NGINX_CONF:-nginx.conf}:/etc/nginx/nginx.conf
ports:
- 80:80
networks:
- xnat-network
# restart handles the multi-node startup race: the upstream resolves xnat-web-2
# at config load, so nginx may exit if it boots first; the restart recovers once
# the second node exists. (A non-profiled service can't cleanly depend on a
# profile-gated one, so we don't add xnat-web-2 to depends_on.)
restart: unless-stopped
depends_on:
- xnat-web
links:
- xnat-web
networks:
xnat-network:
name: xnat-network