Last active
March 18, 2020 13:50
-
-
Save david-botelho-mariano/f66703e9583ccc92949ccde19c69c29c to your computer and use it in GitHub Desktop.
flask, kibana, elastic search e apm server no docker
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
version: '3' | |
services: | |
apm-server: | |
#define as configuracoes do servidor apm (igual a documentacao oficial) | |
image: docker.elastic.co/apm/apm-server:7.6.1 | |
#link da imagem docker que sera baixado | |
depends_on: | |
- elasticsearch | |
- kibana | |
cap_add: ["CHOWN", "DAC_OVERRIDE", "SETGID", "SETUID"] | |
cap_drop: ["ALL"] | |
ports: | |
- 8200:8200 | |
#porta que sera exposta | |
networks: | |
- elastic | |
#subnet que sera utilizada | |
deploy: | |
mode: replicated | |
replicas: 2 | |
#quantidade de copias da aplicacao | |
command: > | |
apm-server -e | |
-E apm-server.rum.enabled=true | |
-E setup.kibana.host=kibana:5601 | |
-E setup.template.settings.index.number_of_replicas=0 | |
-E apm-server.kibana.enabled=true | |
-E apm-server.kibana.host=kibana:5601 | |
-E output.elasticsearch.hosts=["elasticsearch:9200"] | |
healthcheck: | |
#faz testes periodicos para ver se o servico esta funcionando | |
interval: 10s | |
retries: 12 | |
test: curl --write-out 'HTTP %{http_code}' --fail --silent --output /dev/null http://localhost:8200/ | |
elasticsearch: | |
#define as configuracoes do elastic search (igual a documentacao oficial) | |
image: docker.elastic.co/elasticsearch/elasticsearch:7.6.1 | |
environment: | |
- bootstrap.memory_lock=true | |
- cluster.name=docker-cluster | |
- cluster.routing.allocation.disk.threshold_enabled=false | |
- discovery.type=single-node | |
- ES_JAVA_OPTS=-XX:UseAVX=2 -Xms1g -Xmx1g | |
ulimits: | |
memlock: | |
hard: -1 | |
soft: -1 | |
volumes: | |
- esdata:/usr/share/elasticsearch/data | |
#define o driver de volume que será utilizado | |
ports: | |
- 9200:9200 | |
#portas que serao expostas | |
networks: | |
- elastic | |
#subnet que sera utilizada | |
deploy: | |
mode: replicated | |
replicas: 1 | |
#quantidade de copias do servico | |
healthcheck: | |
#faz testes periodicos para ver se o servico esta funcionando | |
interval: 20s | |
retries: 10 | |
test: curl -s http://localhost:9200/_cluster/health | grep -vq '"status":"red"' | |
kibana: | |
#configuracao do kibana | |
image: docker.elastic.co/kibana/kibana:7.6.1 | |
#link da imagem docker do kibana | |
depends_on: | |
- elasticsearch | |
environment: | |
#definicao de variaveis do ambiente | |
ELASTICSEARCH_URL: http://elasticsearch:9200 | |
ELASTICSEARCH_HOSTS: http://elasticsearch:9200 | |
ports: | |
- 5601:5601 | |
#portas que serao expostas | |
networks: | |
- elastic | |
deploy: | |
mode: replicated | |
replicas: 2 | |
#quantidade de replicas do servico | |
healthcheck: | |
#faz testes periodicos para ver se o servico esta funcionando | |
interval: 10s | |
retries: 20 | |
test: curl --write-out 'HTTP %{http_code}' --fail --silent --output /dev/null http://localhost:5601/api/status | |
flask: | |
#define as configuracoes do servidor flask | |
build: . | |
#build utilizando o DockerFile como referencia | |
image: flask-escalavel_flask | |
#nome da imagem que sera utilizada no docker swarm | |
ports: | |
- 5000:5000 | |
#portas que precisam ser abertar | |
networks: | |
- elastic | |
#nome da subnet que sera utilizada | |
deploy: | |
mode: replicated | |
replicas: 2 | |
#define a quantidade de replicas | |
volumes: | |
#define o driver de volume que sera utilizado | |
esdata: | |
driver: local | |
networks: | |
#define o driver de rede que sera utilizado | |
elastic: | |
driver: overlay |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment