forked from ESGF/esgf-docker
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose-data-node.yml
115 lines (105 loc) · 3.07 KB
/
docker-compose-data-node.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
# required env variables:
#
# ESGF_CONFIG : points to the root ESGF configuration directory
# example: export ESGF_CONFIG=/Users/cinquini/ESGF_CONFIG
# ESGF_HOSTNAME: HostName or IP address for apache httpd front-end server
# example: export ESGF_HOSTNAME=my.esgf.node
# example: export ESGF_HOSTNAME=`docker-machine ip`
# ESGF_DATA_DIR: root of ESGF data directories
# ESGF_VERSION: version of ESGF/Docker distribution
# example: export ESGF_VERSION=1.0
version: '2'
networks:
# network to keep postgres database isolated
dbnetwork:
services:
esgf-data-node:
image: esgfhub/esgf-data-node:${ESGF_VERSION}
container_name: data-node
expose:
- "8080"
- "8443"
ports:
- "8080:8080"
- "8443:8443"
networks:
- default
- dbnetwork
volumes:
- tds_data:/esg/content/thredds
- $ESGF_CONFIG/webapps/thredds/WEB-INF/web.xml:/usr/local/tomcat/webapps/thredds/WEB-INF/web.xml
- $ESGF_DATA_DIR:/esg/data
- $ESGF_CONFIG/grid-security/certificates/:/etc/grid-security/certificates/
- $ESGF_CONFIG/globus/certificate-file:/root/.globus/certificate-file
volumes_from:
- esgf-config
environment:
- ESGF_HOSTNAME
depends_on:
- esgf-postgres
# data container holding site-specific ESGF configuration
esgf-config:
image: centos:6
container_name: esgf-config
volumes:
- $ESGF_CONFIG/httpd/certs/:/etc/certs/
- $ESGF_CONFIG/httpd/conf/esgf-httpd.conf:/etc/httpd/conf.d/esgf-httpd.conf
- $ESGF_CONFIG/grid-security/certificates/:/etc/grid-security/certificates/
- $ESGF_CONFIG/esg/config/:/esg/config/
- $ESGF_CONFIG/esg/config/tomcat/esg-truststore.ts:/usr/java/latest/jre/lib/security/jssecacerts
esgf-postgres:
image: esgfhub/esgf-postgres:${ESGF_VERSION}
expose:
- "5432"
ports:
- "5432:5432"
container_name: postgres
networks:
- dbnetwork
esgf-httpd:
image: esgfhub/esgf-httpd:${ESGF_VERSION}
container_name: httpd
entrypoint: /usr/local/bin/docker-entrypoint.sh
volumes_from:
- esgf-config
- esgf-node-manager
ports:
- "80:80"
- "443:443"
# httpd URLs must use hostname=$ESGF_HOSTNAME
networks:
default:
aliases:
- "${ESGF_HOSTNAME}"
dbnetwork: {}
esgf-node-manager:
image: esgfhub/esgf-node-manager:${ESGF_VERSION}
container_name: node-manager
volumes_from:
- esgf-config
environment:
- SSL_CERT_DIR=/etc/grid-security/certificates
- ESGF_HOSTNAME
depends_on:
- esgf-postgres
networks:
default: {}
dbnetwork: {}
# FTP server
esgf-ftp:
image: esgfhub/esgf-vsftp:${ESGF_VERSION}
container_name: ftp
ports:
- "20:20"
- "21:21"
- "12020-12025:12020-12025"
networks:
- default
volumes:
- $ESGF_DATA_DIR:/var/ftp/pub
# use Docker volumes to store persistent data
# (which survives when the containers are removed)
volumes:
# contains TDS configuration, catalogs, cache, and logs
# (directory below -Dtds.content.root.path=/esg/content)
tds_data: