-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose.yml
152 lines (141 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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
version: '3.4'
volumes:
fcrepo:
solr:
db:
redis:
zk1:
zkconf:
app:
assets:
cache:
networks:
internal:
services:
app: &app
build:
context: .
dockerfile: Dockerfile
target: development_image
image: hyku-api/development_image:latest
environment: &web_environment
HOST: "0.0.0.0" # Docker cannot forward to a containers localhost, so we need to use this IP instead
DATABASE_ADAPTER: postgresql
DATABASE_NAME: hyku
DATABASE_HOST: db
DATABASE_PASSWORD: DatabaseFTW
DATABASE_USER: postgres
DATABASE_TEST_NAME: hyku_test
FEDORA_URL: http://fcrepo:8080/fcrepo/rest
LD_LIBRARY_PATH: /opt/fits/tools/mediainfo/linux
RAILS_LOG_TO_STDOUT: "true"
REDIS_HOST: redis
SECRET_KEY_BASE: asdf
SETTINGS__SOLR__URL: http://solr:8983/solr/
SETTINGS__ZOOKEEPER__CONNECTION_STR: zookeeper_cluster:2181/configs
SOLR_URL: http://solr:8983/solr/
PASSENGER_APP_ENV: development
CHROME_HOSTNAME: chrome # Required for specs setup inside internal_hyku_test rails_helper
IN_DOCKER: "true" # Required by internal_test_hyku specs
RUBYOPT: "-W:no-deprecated -W:no-experimental" # Turn off Ruby 3.0 deprecation warnings
REDIS_NAMESPACE_QUIET: "true" # Turn off Gem deprecations warnings
volumes:
- app:/home/app/spec/internal_test_hyku/tmp/uploads
- assets:/home/app/spec/internal_test_hyku/public/assets
- cache:/home/app/spec/internal_test_hyku/tmp/cache
- .:/home/app
networks:
internal:
web:
<<: *app
environment:
<<: *web_environment
# NOTE: We are using Puma (default Rails server) as Passenger doesn't allow byebug/webconsole to be run in dev.
command: bash -c "rm -f ./spec/internal_test_hyku/tmp/pids/server.pid && bundle install && bundle exec rails s"
stdin_open: true
tty: true
ports:
- "3000:3000"
depends_on:
- db
- solr
- fcrepo
- redis
- zoo1
- initialize_app
- db_migrate
initialize_app:
<<: *app
command: bundle exec rails app:zookeeper:upload
depends_on:
- zoo1
db_migrate:
<<: *app
command: bundle exec rails app:db:migrate app:db:test:prepare
depends_on:
- db
db: &db
image: postgres:10-alpine
env_file:
- ./spec/internal_test_hyku/.env
environment: &db_environment
PGDATA: /data
POSTGRES_PASSWORD: DatabaseFTW
POSTGRES_USER: postgres
POSTGRES_MULTIPLE_DATABASES: hyku,hyku_test
volumes:
- ./.docker-postgres:/docker-entrypoint-initdb.d
- db:/data
ports:
- "5432:5432"
networks:
internal:
redis: &redis
image: redis:4
command: redis-server
volumes:
- redis:/data
networks:
internal:
expose:
- 6379
zoo1: &zoo1
image: zookeeper:3.4
environment:
ZOO_MY_ID: 1
ZOO_SERVERS=server.1: zoo1:2888:3888
expose:
- 2181
- 2888
- 3888
volumes:
- zk1:/data
- zkconf:/conf
networks:
internal:
aliases:
- zookeeper_cluster
solr: &solr
image: solr:7.5
command: solr -c -f -z zoo1:2181
depends_on:
- zoo1
expose:
- 8983
volumes:
- ./spec/internal_test_hyku:/app
- solr:/opt/solr/server/solr
networks:
internal:
fcrepo: &fcrepo
image: cbeer/fcrepo4:4.7
env_file:
- ./spec/internal_test_hyku/.env
expose:
- 8080
volumes:
- fcrepo:/data
environment:
JAVA_OPTS: '${JAVA_OPTS} -Dfcrepo.modeshape.configuration="classpath:/config/file-simple/repository.json" -Dfcrepo.object.directory="/data/objects" -Dfcrepo.binary.directory="/data/binaries"'
networks:
internal: