-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathdocker-compose.yml
129 lines (120 loc) · 3.63 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
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
x-spotrix-image: &spotrix-image spotrix:latest-dev
x-spotrix-user: &spotrix-user root
x-spotrix-depends-on: &spotrix-depends-on
- db
- redis
x-spotrix-volumes: &spotrix-volumes
# /app/pythonpath_docker will be appended to the PYTHONPATH in the final container
- ./docker:/app/docker
- ./spotrix:/app/spotrix
- ./spotrix-frontend:/app/spotrix-frontend
- spotrix_home:/app/spotrix_home
- ./tests:/app/tests
version: "3.7"
services:
redis:
image: redis:latest
container_name: spotrix_cache
restart: unless-stopped
ports:
- "127.0.0.1:6379:6379"
volumes:
- redis:/data
db:
env_file: docker/.env
image: postgres:10
container_name: spotrix_db
restart: unless-stopped
ports:
- "127.0.0.1:5432:5432"
volumes:
- db_home:/var/lib/postgresql/data
spotrix:
env_file: docker/.env
image: *spotrix-image
container_name: spotrix_app
command: ["/app/docker/docker-bootstrap.sh", "app"]
restart: unless-stopped
ports:
- 8088:8088
user: *spotrix-user
depends_on: *spotrix-depends-on
volumes: *spotrix-volumes
environment:
CYPRESS_CONFIG: "${CYPRESS_CONFIG}"
spotrix-init:
image: *spotrix-image
container_name: spotrix_init
command: ["/app/docker/docker-init.sh"]
env_file: docker/.env
depends_on: *spotrix-depends-on
user: *spotrix-user
volumes: *spotrix-volumes
environment:
CYPRESS_CONFIG: "${CYPRESS_CONFIG}"
spotrix-node:
image: node:14
container_name: spotrix_node
command: ["/app/docker/docker-frontend.sh"]
env_file: docker/.env
depends_on: *spotrix-depends-on
volumes: *spotrix-volumes
spotrix-worker:
image: *spotrix-image
container_name: spotrix_worker
command: ["/app/docker/docker-bootstrap.sh", "worker"]
env_file: docker/.env
restart: unless-stopped
depends_on: *spotrix-depends-on
user: *spotrix-user
volumes: *spotrix-volumes
# Bump memory limit if processing selenium / thumbails on spotrix-worker
# mem_limit: 2038m
# mem_reservation: 128M
spotrix-worker-beat:
image: *spotrix-image
container_name: spotrix_worker_beat
command: ["/app/docker/docker-bootstrap.sh", "beat"]
env_file: docker/.env
restart: unless-stopped
depends_on: *spotrix-depends-on
user: *spotrix-user
volumes: *spotrix-volumes
spotrix-tests-worker:
image: *spotrix-image
container_name: spotrix_tests_worker
command: ["/app/docker/docker-bootstrap.sh", "worker"]
env_file: docker/.env
environment:
DATABASE_HOST: localhost
DATABASE_DB: test
REDIS_CELERY_DB: 2
REDIS_RESULTS_DB: 3
REDIS_HOST: localhost
network_mode: host
depends_on: *spotrix-depends-on
user: *spotrix-user
volumes: *spotrix-volumes
volumes:
spotrix_home:
external: false
db_home:
external: false
redis:
external: false