-
Notifications
You must be signed in to change notification settings - Fork 0
/
docker-compose.elk.yaml
135 lines (126 loc) · 3.84 KB
/
docker-compose.elk.yaml
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
version: '3.6'
services:
postgres:
image: postgres:12
restart: always
volumes:
- db_data:/var/lib/postgresql/data
env_file: .env
environment:
- POSTGRES_PASSWORD=$POSTGRES_PASSWORD
hasura:
image: hasura/graphql-engine:v2.0.0-alpha.5
ports:
- "8080:8080"
depends_on:
- "postgres"
restart: always
env_file: .env
environment:
- HASURA_GRAPHQL_DATABASE_URL=$HASURA_GRAPHQL_DATABASE_URL
## enable the console served by server
- HASURA_GRAPHQL_ENABLE_CONSOLE=$HASURA_GRAPHQL_ENABLE_CONSOLE # set to "false" to disable console
## enable debugging mode. It is recommended to disable this in production
- HASURA_GRAPHQL_DEV_MODE=$HASURA_GRAPHQL_DEV_MODE
- HASURA_GRAPHQL_ENABLED_LOG_TYPES=$HASURA_GRAPHQL_ENABLED_LOG_TYPES
## uncomment next line to set an admin secret
- HASURA_GRAPHQL_ADMIN_SECRET=$HASURA_GRAPHQL_ADMIN_SECRET
zarya:
build:
context: ./zarya
dockerfile: Dockerfile
args:
- HASURA_GRAPHQL_ADMIN_SECRET=$HASURA_GRAPHQL_ADMIN_SECRET
- ENCRYPTION_KEY=$ENCRYPTION_KEY
- HASURA_APP_URL=$HASURA_APP_URL
ports:
- "3000:3000"
volumes:
- ./zarya:/app
- ./error.log:/usr/src/app/error.log
env_file: .env
environment:
- HASURA_GRAPHQL_ADMIN_SECRET=$HASURA_GRAPHQL_ADMIN_SECRET
- ENCRYPTION_KEY=$ENCRYPTION_KEY
- HASURA_APP_URL=$HASURA_APP_URL
depends_on:
- 'hasura'
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.12.0
ports:
- "9200:9200"
- "9300:9300"
configs:
- source: elastic_config
target: /usr/share/elasticsearch/config/elasticsearch.yml
environment:
ES_JAVA_OPTS: "-Xmx256m -Xms256m"
ELASTIC_PASSWORD: changeme
# Use single node discovery in order to disable production mode and avoid bootstrap checks.
# see: https://www.elastic.co/guide/en/elasticsearch/reference/current/bootstrap-checks.html
discovery.type: single-node
# Force publishing on the 'elk' overlay.
network.publish_host: _eth0_
deploy:
mode: replicated
replicas: 1
logstash:
image: docker.elastic.co/logstash/logstash:7.12.0
ports:
- "5044:5044"
- "5000:5000"
- "9600:9600"
configs:
- source: logstash_config
target: /usr/share/logstash/config/logstash.yml
- source: logstash_pipeline
target: /usr/share/logstash/pipeline/logstash.conf
environment:
LS_JAVA_OPTS: "-Xmx256m -Xms256m"
deploy:
mode: replicated
replicas: 1
kibana:
image: docker.elastic.co/kibana/kibana:7.12.0
ports:
- "5601:5601"
configs:
- source: kibana_config
target: /usr/share/kibana/config/kibana.yml
deploy:
mode: replicated
replicas: 1
filebeat:
hostname: filebeat
image: docker.elastic.co/beats/filebeat:7.12.0
deploy:
mode: global
restart_policy:
condition: on-failure
configs:
- source: filebeat_config
target: /usr/share/filebeat/config/filebeat.yml
volumes:
# needed to persist filebeat tracking data :
- "filebeat_data:/usr/share/filebeat/data:rw"
# needed to access all docker logs (read only) :
- "/var/lib/docker/containers:/usr/share/dockerlogs/data:ro"
# needed to access additional informations about containers
- "/var/run/docker.sock:/var/run/docker.sock"
configs:
elastic_config:
file: ./devops/elasticsearch/config/elasticsearch.yml
logstash_config:
file: ./devops/logstash/config/logstash.yml
logstash_pipeline:
file: ./devops/logstash/pipeline/logstash.conf
kibana_config:
file: ./devops/kibana/config/kibana.yml
filebeat_config:
file: ./devops/filebeat/config/filebeat.yml
volumes:
db_data:
driver: local
elasticsearch:
driver: local
filebeat_data: