-
Notifications
You must be signed in to change notification settings - Fork 0
/
docker-compose.yml
200 lines (182 loc) · 7.96 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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
version: '3'
#### docker-compose up -d;
### Migration (in development)
#Define our services.
services:
# PHPMyAdmin is a MySQL administration GUI. It's helpful for me! https://www.phpmyadmin.net/
# Connect to this container @ http://<hostip>:8084 - the sql host is "mysql" and user is "root" with password set in the mysql service ENV.
myadmin:
image: phpmyadmin/phpmyadmin:latest
container_name: phpmyadmin
environment:
- PMA_ARBITRARY=1
networks:
- isleinternal
ports:
- 8084:80
volumes:
- /sessions
depends_on:
- mysql
restart: no ## other options are "no" "unless-stopped" "on-failure". We need a health check for the latter most option.
isle-portainer: ## Renamed to avoid conflicts on systems/servers with portainer already running.
image: portainer/portainer
container_name: isle-portainer
command: -H unix:///var/run/docker.sock
networks:
- isle-internal
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
labels:
- traefik.enable=true
- traefik.port=9000
- traefik.backend=port-isle
- "traefik.frontend.rule=Host:portainer.isle.localdomain;"
mysql:
# build:
# context: ./images/mysql
image: islandoracollabgroup/isle-mysql:latest
container_name: isle-mysql-ld
environment:
- MYSQL_ROOT_PASSWORD=vassar123 # This is for development; on production the root password will not be stored in the compose.
networks:
- isle-internal
volumes:
- ./vassar/mysql/data:/sql_databases_for_import # Place SQL dump files here
# A note about the line above. Once your data is imported it is placed into the volume called "db_data" described next.
- db_data:/var/lib/mysql
# The above data volume WILL persist across containers - you are NOT required to repopulate your DBs if you stop or rm the container.
- ./data/mysql/log:/var/log/mysql
labels:
- traefik.enable=false
fedora:
# build:
# context: ./images/isle-fedora
image: benjaminrosner/isle-fedora:development
container_name: isle-fedora-ld
networks:
- isle-internal
ports:
- "8081:8080"
tty: true
depends_on:
- mysql
- solr
volumes:
## Fedora datastore!
- /dg03-data/fedora.nfs/data.dg01:/usr/local/fedora/data # Vassar's Fedora data folder and all subfolders from bare metal instance. (old database for testing)
## Fedora config
- ./vassar/fedora/config/fedora.fcfg:/usr/local/fedora/server/config/fedora.fcfg # Make sure your jbdc mysql string is correct: username, password, and database name.
- ./vassar/fedora/config/fedora-users.xml:/usr/local/fedora/server/config/fedora-users.xml # Our Fedora Users
- ./vassar/fedora/config/filter-drupal.xml:/usr/local/fedora/server/config/filter-drupal.xml # hostname for mysql server is "mysql"
## FGS config
- ./vassar/fedoragsearch/config/fgsconfigFinal/fedoragsearch.properties:/usr/local/tomcat/webapps/fedoragsearch/WEB-INF/classes/fgsconfigFinal/fedoragsearch.properties
- ./vassar/fedoragsearch/config/fgsconfigFinal/fgsconfigObjects.properties:/usr/local/tomcat/webapps/fedoragsearch/WEB-INF/classes/fgsconfigFinal/fgsconfigObjects.properties
- ./vassar/fedoragsearch/config/fgsconfigFinal/index/FgsIndex/index.properties:/usr/local/tomcat/webapps/fedoragsearch/WEB-INF/classes/fgsconfigFinal/index/FgsIndex/index.properties
- ./vassar/fedoragsearch/config/fgsconfigFinal/repository/FgsRepos/repository.properties:/usr/local/tomcat/webapps/fedoragsearch/WEB-INF/classes/fgsconfigFinal/repository/FgsRepos/repository.properties
- /dev/null:/usr/local/tomcat/webapps/fedoragsearch/WEB-INF/lib/log4j-over-slf4j-1.5.10.jar # This is a hack that is likely deprecated and uneeded. It's also funny because why not just create a blank file?
command: /usr/local/tomcat/bin/catalina.sh run # deprecate and stop apache from loading on this container until it is removed at a later date!
labels:
- traefik.enable=true
- traefik.port=8080
- traefik.backend=fedora
- "traefik.frontend.rule=Host:isle.localdomain; PathPrefix: /fedora"
solr:
# build:
# context: ./images/isle-solr
image: benjaminrosner/isle-solr:development
container_name: isle-solr-ld
networks:
- isle-internal
ports:
- "8082:8080"
tty: true
depends_on:
- mysql
volumes:
# A COMPLETE OVERWRITE WITH VC'S DATA
- /dg03-data/fedora/solr/collection1/data:/usr/local/solr/collection1/data
# A COMPLETE OVERWRITE WITH VC'S DATA
- /dg03-data/fedora/solr/collection1/conf/schema.xml:/usr/local/solr/collection1/conf/schema.xml
labels:
- traefik.enable=true
- traefik.port=8080
- traefik.backend=solr
- "traefik.frontend.rule=Host:isle.localdomain; PathPrefix: /solr"
image-services:
# build:
# context: ./images/isle-imageservices
image: benjaminrosner/isle-imageservices:development
container_name: isle-images
networks:
- isle-internal
depends_on:
- apache
- fedora
ports:
- "8083:8080"
volumes:
- ./data/img/logs:/usr/local/tomcat/logs
labels:
- traefik.enable=true
- traefik.port=8080
- traefik.backend=isle-images
- "traefik.frontend.headers.customResponseHeaders=Access-Control-Allow-Origin: *" # Debug
- "traefik.frontend.headers.customRequestHeaders=Access-Control-Allow-Origin: *" # Debug
- "traefik.frontend.rule=Host:isle.localdomain,images.isle.localdomain; PathPrefix: /adore-djatoka, /cantaloupe"
apache:
# build:
# context: ./images/isle-apache
image: benjaminrosner/isle-apache:development
container_name: isle-apache-ld
networks:
- isle-internal
tty: true
depends_on:
- mysql
- fedora
- solr
- traefik
volumes:
- ./vassar/apache/conf/sites-enabled:/etc/apache2/sites-enabled # sites-available now part of rootfs but not sites-enabled; was in proxy, not in traefik, should we bake it into apache?
- ./vassar/apache/conf/certs:/certs:ro # SNAKEOIL Certificate DIR. This container is only on the INTERNAL NETWORK.
- /dg03-data/www/html:/var/www/html
labels:
- traefik.enable=true
- traefik.port=80
- traefik.backend=web
- traefik.frontend.rule=Host:isle.localdomain;
- "traefik.frontend.headers.customResponseHeaders=Access-Control-Allow-Origin: *" # Debug
- "traefik.frontend.headers.customRequestHeaders=Access-Control-Allow-Origin: *" # Debug
traefik:
image: traefik:latest
container_name: isle-proxy
networks:
isle-internal:
aliases:
- isle.vassar
ports:
- "80:80"
- "443:443"
- "8080:8080"
volumes:
### END USER - playing around w/ post-traefik changes
- /vassar/traefik/docker.sock:/var/run/docker.sock
- /vassar/traefik/traefik.toml:/traefik.toml
- /vassar/traefik/isle.vassar:/certs/isle.vassar
# - ./bcol/proxy/config/nginx.conf:/etc/nginx/nginx.conf:ro # Global configuration that has been cleaned - good for main image. BAKE, please.
# - ./bcol/proxy/certs:/certs:ro # Certs! Oh nom nom. - For the image we'll create self-signed certs - we'll need to disable stapling - isle.localdomain certs aqui
# - ./bcol/proxy/config/conf.d:/etc/nginx/conf.d # Folder for global nginx configuration (pls bake: proxy-global, compression_and_cache-control - leave an example of COMPRESSION conf for end-user review, but not proxy-glob)
# - ./bcol/proxy/config/upstreams.d:/etc/nginx/upstreams.d # folder for defining upstreams (upstream defines: devel, stage, production, etc. - bake one upstream for ILD)
# - ./bcol/proxy/config/sites-enabled:/etc/nginx/sites-enabled # folder for vhosts (similar to Apache - bake isle.localdomain from belle, turn of OSCP / HSTS)
# Defined networks
networks:
isle-internal:
# isle-external:
volumes:
db-data-ld:
fed-data-ld:
solr-data-ld:
apache-data-ld:
portainer_data: