-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
186 lines (174 loc) · 4.27 KB
/
Copy pathdocker-compose.yml
File metadata and controls
186 lines (174 loc) · 4.27 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
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
x-userdata-volume: &userdata-volume
type: bind
source: ${USERDATA_DIRECTORY:?USERDATA_DIRECTORY not set}
target: /userdata
x-comics-volume: &comics-volume
type: bind
source: ${COMICS_DIRECTORY:?COMICS_DIRECTORY not set}
target: /comics
services:
threetwo:
build:
context: https://github.com/rishighan/threetwo.git
dockerfile: Dockerfile
image: frishi/threetwo
container_name: threetwo-ui
env_file: docker-compose.env
restart: unless-stopped
ports:
- "5173:5173"
depends_on:
- core-services
- kafka1
- zoo1
- elasticsearch
- db
- redis
networks:
- proxy
metadata-service:
build:
context: https://github.com/rishighan/threetwo-metadata-service.git
image: frishi/threetwo-metadata-service
container_name: metadata-service
ports:
- "3080:3080"
environment:
SERVICES: api,comicvine
env_file: docker-compose.env
depends_on:
- redis
- kafka1
- zoo1
- elasticsearch
- db
volumes:
- *comics-volume
- *userdata-volume
networks:
- proxy
acquisition-service:
build:
context: https://github.com/rishighan/threetwo-acquisition-service.git
image: frishi/threetwo-acquisition-service
container_name: acquisition-service
ports:
- "3060:3060"
environment:
SERVICES: api,autodownload,comicProcessor,prowlarr,qbittorrent
env_file: docker-compose.env
depends_on:
- redis
- kafka1
- zoo1
- elasticsearch
- db
volumes:
- *comics-volume
- *userdata-volume
networks:
- proxy
core-services:
build:
context: https://github.com/rishighan/threetwo-core-service.git
image: frishi/threetwo-core-service
container_name: core-services
ports:
- "3000:3000"
- "3001:3001"
depends_on:
- db
- redis
- elasticsearch
- kafka1
- zoo1
environment:
name: core-services
SERVICES: api,library,importqueue,settings,search,socket,imagetransformation,opds
env_file: docker-compose.env
volumes:
- *comics-volume
- *userdata-volume
networks:
- proxy
db:
image: "arm64v8/mongo:latest"
container_name: database
networks:
- proxy
ports:
- "27017:27017"
volumes:
- "mongodb_data:/data/db"
redis:
image: "redis:6.2.6-alpine3.14" # ARM64 supported version
container_name: queue
environment:
ALLOW_EMPTY_PASSWORD: "yes"
networks:
- proxy
ports:
- "6379:6379"
zoo1:
image: "arm64v8/zookeeper:3.7.0"
hostname: zoo1
container_name: zoo1
ports:
- "2181:2181"
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_SERVER_ID: 1
ZOOKEEPER_SERVERS: zoo1:2888:3888
networks:
- proxy
kafka1:
image: bitnami/kafka:latest
hostname: kafka1
container_name: kafka1
ports:
- "9092:9092"
- "29092:29092"
- "9999:9999"
environment:
ALLOW_PLAINTEXT_LISTENER: "yes"
KAFKA_CFG_LISTENERS: PLAINTEXT://0.0.0.0:9092
KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
KAFKA_CFG_ZOOKEEPER_CONNECT: zoo1:2181
KAFKA_CFG_INTER_BROKER_LISTENER_NAME: PLAINTEXT
KAFKA_ZOOKEEPER_PROTOCOL: PLAINTEXT
KAFKA_CFG_BROKER_ID: 1
KAFKA_CFG_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_CFG_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
KAFKA_CFG_TRANSACTION_STATE_LOG_MIN_ISR: 1
KAFKA_CFG_LOG4J_LOGGERS: "kafka.controller=INFO,kafka.producer.async.DefaultEventHandler=INFO,state.change.logger=INFO"
KAFKA_CFG_JMX_PORT: 9999
depends_on:
- zoo1
networks:
- proxy
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.17.26-arm64
container_name: elasticsearch
environment:
- "discovery.type=single-node"
- "xpack.security.enabled=false"
- "xpack.security.authc.api_key.enabled=false"
- "ES_JAVA_OPTS="
ulimits:
memlock:
soft: -1
hard: -1
ports:
- "9200:9200"
volumes:
- "elasticsearch:/usr/share/elasticsearch/data"
networks:
- proxy
networks:
proxy:
driver: bridge
volumes:
mongodb_data:
driver: local
elasticsearch:
driver: local