Docker Compose NoSQL
Docker Compose NoSQL
# Platform: default
# =====================================================
version: '3.0'
services:
# ================================== Zeppelin
========================================== #}
zeppelin:
image: trivadis/apache-zeppelin:0.8.2-spark2.4-hadoop2.8
container_name: zeppelin
hostname: zeppelin
labels:
com.mdps.service.webui.name: Apache Zeppelin UI
com.mdps.service.webui.url: http://${PUBLIC_IP}:28080
ports:
- 28080:8080
# - "4040:4040"
# - "42331:42331"
env_file:
- ./conf/hadoop.env
environment:
ZEPPELIN_ADDR: 0.0.0.0
ZEPPELIN_PORT: '8080'
ZEPPELIN_INTERPRETER_CONNECT_TIMEOUT: 120000
ZEPPELIN_INTERPRETER_DEP_MVNREPO: https://repo.maven.apache.org/maven2
SPARK_MASTER: spark://spark-master:7077
# set spark-master for Zeppelin interpreter
MASTER: spark://spark-master:7077
SPARK_DRIVER_HOST: zeppelin
SPARK_DRIVER_BINDADDRESS: 0.0.0.0
PYSPARK_PYTHON: python3
# no longer necessary with 0.8.2 of Zepplin
# - SPARK_SUBMIT_OPTIONS="--packages org.apache.commons:commons-lang3:3.5"
# enableV4 to make it work with AWS Frankfurt region
SPARK_SUBMIT_OPTIONS: --conf spark.driver.extraJavaOptions=-
Dcom.amazonaws.services.s3.enableV4 --conf spark.executor.extraJavaOptions=-
Dcom.amazonaws.services.s3.enableV4
volumes:
- ./conf/spark/spark-defaults-memory.conf:/spark/conf/spark-defaults.conf
- ./container-volume/spark/logs/:/var/log/spark/logs
- ./conf/s3cfg:/root/.s3cfg
- ./conf/zeppelin/shiro.ini:/opt/zeppelin/conf/shiro.ini
- ./conf/zeppelin/interpreter-
setting.json:/opt/zeppelin/interpreter/spark/interpreter-setting.json
- ./data-transfer:/data-transfer
restart: unless-stopped
# ================================== Jupyter
========================================== #}
jupyter:
image: jupyter/minimal-notebook:latest
container_name: jupyter
hostname: jupyter
labels:
com.mdps.service.webui.name: Jupyter UI
com.mdps.service.webui.url: http://${PUBLIC_IP}:28888
ports:
- 28888:8888
environment:
JUPYTER_ENABLE_LAB: 'true'
JUPYTER_TOKEN: abc123!
GRANT_SUDO: 'true'
TINI_SUBREAPER: 'true'
restart: unless-stopped
# ================================== Grafana
========================================== #}
grafana:
image: grafana/grafana:6.5.0
hostname: grafana
container_name: grafana
labels:
com.mdps.service.webui.name: Grafana UI
com.mdps.service.webui.url: http://${PUBLIC_IP}:3000
expose:
- 3000
ports:
- 3000:3000
environment:
- GF_SECURITY_ADMIN_USER=admin
- GF_SECURITY_ADMIN_PASSWORD=abc123!
volumes:
- ./plugins/grafana:/etc/grafana/provisioning
restart: unless-stopped
# ================================== Redis ==========================================
#}
redis:
container_name: redis
hostname: redis:latest
image: redis
ports:
- 6379:6379
restart: unless-stopped
redis-commander:
image: rediscommander/redis-commander:latest
container_name: redis-commander
hostname: redis-commander
labels:
com.mdps.service.webui.name: Redis Commander UI
com.mdps.service.webui.url: http://${PUBLIC_IP}:28119
ports:
- 28119:8081
environment:
- REDIS_HOSTS=local:redis:6379
restart: unless-stopped
# ================================== Cassandra
========================================== #}
cassandra-1:
image: cassandra:3
container_name: cassandra-1
hostname: cassandra-1
ports:
- 29042:9042
- 7199:7199
- 9160:9160
environment:
- CASSANDRA_SEEDS=cassandra-1
- CASSANDRA_CLUSTER_NAME="Test Cluster"
- CASSANDRA_DC=se1
- CASSANDRA_ENDPOINT_SNITCH=GossipingPropertyFileSnitch
restart: unless-stopped
cassandra-web:
image: trivadis/cassandra-web
container_name: cassandra-web
hostname: cassandra-web
labels:
com.mdps.service.webui.name: Cassandra Web UI
com.mdps.service.webui.url: http://${PUBLIC_IP}:28120
ports:
- 28120:3000
environment:
- CASSANDRA_HOSTNAME=cassandra-1
- CASSANDRA_PORT=9042
- CASSANDRA_USERNAME=cassandra
- CASSANDRA_PASSWORD=cassandra
restart: unless-stopped
# ================================== MongoDB
========================================== #}
mongo-1:
image: mongo:latest
container_name: mongo-1
hostname: mongo-1
ports:
- 27017:27017
environment:
- MONGO_INITDB_DATABASE=sample
- MONGO_INITDB_USERNAME=admin
- MONGO_INITDB_PASSWORD=admin
volumes:
# seeding scripts
- ./conf/mongo-entrypoint:/docker-entrypoint-initdb.d
restart: unless-stopped
mongo-express:
image: mongo-express:latest
container_name: mongo-express
hostname: mongo-express
labels:
com.mdps.service.webui.name: Cassandra Web UI
com.mdps.service.webui.url: http://${PUBLIC_IP}:28123
ports:
- 28123:8081
environment:
- ME_CONFIG_MONGODB_SERVER=mongo-1
restart: unless-stopped
admin-mongo:
image: adicom/admin-mongo:latest
container_name: admin-mongo
hostname: admin-mongo
labels:
com.mdps.service.webui.name: Admin Mongo UI
com.mdps.service.webui.url: http://${PUBLIC_IP}:28124
ports:
- 28124:1234
restart: unless-stopped
# ================================== Elasticsearch
========================================== #}
elasticsearch-1:
image: elasticsearch:6.7.0
hostname: elasticsearch-1
container_name: elasticsearch-1
labels:
com.mdps.service.restapi.name: Elasticsearch REST API
com.mdps.service.restapi.url: http://${PUBLIC_IP}:9200
ports:
- 9200:9200
- 9300:9300
environment:
XPACK_SECURITY_enabled: 'false'
xpack.monitoring.enabled: 'false'
http.cors.enabled: 'true'
http.cors.allow-origin:
http://dejavu:1358,http://dataplatform:28125,http://analyticsplatform:28125,http://${PUBL
IC_IP}:28125,http://${DOCKER_HOST_IP}:28125,http://127.0.0.1:1358
http.cors.allow-headers: X-Requested-With,X-Auth-Token,Content-Type,Content-
Length,Authorization
http.cors.allow-credentials: 'true'
restart: unless-stopped
# ================================== Kibana ==========================================
#}
kibana:
image: kibana:6.6.0
hostname: kibana
container_name: kibana
labels:
com.mdps.service.webui.name: Kibana UI
com.mdps.service.webui.url: http://${PUBLIC_IP}:5601
depends_on:
- elasticsearch-1
ports:
- 5601:5601
environment:
xpack.monitoring.enabled: 'false'
discovery.type: single-node
elasticsearch.url: http://elasticsearch-1:9200
server.host: 0.0.0.0
SERVER_HOST: 0.0.0.0
server.name: kibana
SERVER_NAME: kibana
XPACK_GRAPH_enabled: 'false'
XPACK_MONITORING_enabled: 'false'
XPACK_REPORTING_enabled: 'false'
XPACK_SECURITY_enabled: 'false'
command: [/bin/bash, -c, /usr/share/kibana/bin/kibana-plugin remove x-pack;
/usr/local/bin/kibana-docker]
restart: unless-stopped
# ================================== Neo4J ==========================================
#}
neo4j-1:
image: neo4j:latest
hostname: neo4j-1
container_name: neo4j-1
labels:
com.mdps.service.webui.name: Neo4J UI
com.mdps.service.webui.url: http://${PUBLIC_IP}:7474
ports:
- 7474:7474
- 7687:7687
environment:
- NEO4J_ACCEPT_LICENSE_AGREEMENT=yes
- NEO4J_HEAP_MEMORY=2048
- NEO4J_CACHE_MEMORY=1G
- NEO4J_AUTH=neo4j/abc123!
volumes:
# - "./conf/neo4j/neo4j.conf:/conf/neo4j.conf"
- ./plugins/neo4j/:/plugins
restart: unless-stopped
# ================================== InfluxData InfluxDB
========================================== #}
influxdb:
image: influxdb:latest
container_name: influxdb
hostname: influxdb
labels:
com.mdps.service.restapi.name: InfluxDB Rest API
com.mdps.service.restapi.url: http://${PUBLIC_IP}:8086
ports:
- 8086:8086
volumes:
- ./conf/influxdata/influxdb/influxdb.conf:/etc/influxdb/influxdb.conf
- ./data-transfer:/data-transfer
restart: unless-stopped
influxdb-ui:
image: timeseriesadmin/timeseriesadmin:latest
container_name: influxdb-ui
hostname: influxdb-ui
labels:
com.mdps.service.webui.name: InfluxDB UI
com.mdps.service.webui.url: http://${PUBLIC_IP}:28128
ports:
- 28128:80
restart: unless-stopped
# ================================== InfluxData Chronograf
========================================== #}
chronograf:
image: chronograf:latest
hostname: chronograf
container_name: chronograf
labels:
com.mdps.service.webui.name: Chronograf UI
com.mdps.service.webui.url: http://${PUBLIC_IP}:28129
ports:
- 28129:8888
environment:
RESOURCES_PATH: /usr/share/chronograf/resources
PORT: 8888
HOST: chronograf
INFLUXDB_URL: http://influxdb:8086
depends_on:
- influxdb
restart: unless-stopped
# ================================== InfluxData Telegraf
========================================== #}
telegraf:
image: telegraf:latest
container_name: telegraf
hostname: telegraf
environment:
HOSTNAME: telegraf
volumes:
- ./conf/influxdata/telegraf/telegraf.conf:/etc/telegraf/telegraf.conf
- ./data-transfer:/data-transfer
# Mount for Docker API access
- /var/run/docker.sock:/var/run/docker.sock
restart: unless-stopped
# ================================== PostgreSQL
========================================== #}
postgresql:
image: postgres:latest
container_name: postgresql
hostname: postgresql
environment:
- POSTGRES_PASSWORD=sample
- POSTGRES_USER=sample
- POSTGRES_DB=sample
- PGDATA=/var/lib/postgresql/data/pgdata
volumes:
- ./init/postgresql:/docker-entrypoint-initdb.d/
restart: unless-stopped
# ================================== Adminer
========================================== #}
adminer:
image: adminer:latest
container_name: adminer
hostname: adminer
labels:
com.mdps.service.webui.name: Adminer UI
com.mdps.service.webui.url: http://${PUBLIC_IP}:28131
ports:
- 28131:8080
restart: unless-stopped
# ================================== cAdvisor
========================================== #}
cadvisor:
image: google/cadvisor:latest
container_name: cadvisor
hostname: cadvisor
labels:
com.mdps.service.webui.name: cAdvisor UI
com.mdps.service.webui.url: http://${PUBLIC_IP}:28138
volumes:
- /:/rootfs:ro
- /var/run:/var/run:rw
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
ports:
- 28138:8080
restart: unless-stopped