Files
Skycrate/docker-compose.yaml

155 lines
3.9 KiB
YAML

services:
namenode:
image: kshitijka/hadoop-namenode:3.4.1
container_name: skycrate-hadoop-namenode
restart: on-failure:5
ports:
- "9870:9870" # Web UI
#- "9000:9000" # Hadoop; No need to expose since backend will access internally
user: "hdoop:hdoop"
security_opt:
- no-new-privileges=true
networks:
- skycrate-internal
volumes:
- skycrate-hadoop_namenode:/hadoop/dfs/name
environment:
- CLUSTER_NAME=skycreate
env_file:
- ./hadoop.env
datanode:
image: kshitijka/hadoop-datanode:3.4.1
container_name: skycrate-hadoop-datanode-1
restart: on-failure:5
user: "hdoop:hdoop"
security_opt:
- no-new-privileges=true
networks:
- skycrate-internal
volumes:
- skycrate-hadoop_datanode:/hadoop/dfs/data
environment:
SERVICE_PRECONDITION: "namenode:9870"
env_file:
- ./hadoop.env
# healthcheck:
# disable: true
resourcemanager:
image: kshitijka/hadoop-resourcemanager:3.4.1
container_name: skycrate-hadoop-resourcemanager
restart: on-failure:10
user: "hdoop:hdoop"
security_opt:
- no-new-privileges=true
networks:
- skycrate-internal
environment:
SERVICE_PRECONDITION: "namenode:9000 namenode:9870 datanode:9864"
env_file:
- ./hadoop.env
# healthcheck:
# disable: true
nodemanager:
image: kshitijka/hadoop-nodemanager:3.4.1
container_name: skycrate-hadoop-nodemanager
restart: on-failure:5
user: "hdoop:hdoop"
security_opt:
- no-new-privileges=true
networks:
- skycrate-internal
environment:
SERVICE_PRECONDITION: "namenode:9000 namenode:9870 datanode:9864 resourcemanager:8088"
env_file:
- ./hadoop.env
# healthcheck:
# disable: true
historyserver:
image: kshitijka/hadoop-historyserver:3.4.1
container_name: skycrate-hadoop-historyserver
restart: on-failure:5
user: "hdoop:hdoop"
security_opt:
- no-new-privileges=true
networks:
- skycrate-internal
environment:
SERVICE_PRECONDITION: "namenode:9000 namenode:9870 datanode:9864 resourcemanager:8088"
volumes:
- skycrate-hadoop_historyserver:/hadoop/yarn/timeline
env_file:
- ./hadoop.env
# healthcheck:
# disable: true
db:
image: mysql:8
container_name: skycrate-db
restart: on-failure:5
user: "1000:1000"
security_opt:
- no-new-privileges=true
networks:
- skycrate-internal
environment:
- MYSQL_DATABASE=${DB_NAME}
- MYSQL_USER=${DB_USERNAME}
- MYSQL_PASSWORD=${DB_PASSWORD}
- MYSQL_RANDOM_ROOT_PASSWORD=yes
volumes:
- skycrate-db:/var/lib/mysql
env_file:
- .env
frontend:
image: kshitijka/skycrate-frontend:1.0
container_name: skycrate-frontend
restart: on-failure:5
user: "skycrateFront:skycrateFront"
security_opt:
- no-new-privileges=true
networks:
- skycrate-internal
ports:
- "80:8080"
depends_on:
- backend
backend:
image: kshitijka/skycrate-backend:1.5
container_name: skycrate-backend
restart: on-failure:5
user: "skycrateBack:skycrateBack"
security_opt:
- no-new-privileges=true
networks:
- skycrate-internal
ports:
- "8080:8080" # If you change, update in Frontend/.env file too and rebuild the image
environment:
- JWT_SECRET=${JWT_SECRET} # Eg. dO9Yl9NYJOODug8y9ciMVnVMoH44Q6mXilIlZ2LXXYY=
- DB_NAME=${DB_NAME}
- DB_URI=db:3306
- DB_USERNAME=${DB_USERNAME}
- DB_PASSWORD=${DB_PASSWORD}
- HDFS_URI=hdfs://namenode:9000
- HDFS_USER=hadoopuser
- SSL_PASSWORD=tempP@ass69 # Do not change for now. Future updates will allow you to change it.
env_file:
- .env
volumes:
skycrate-hadoop_namenode:
skycrate-hadoop_datanode:
skycrate-hadoop_historyserver:
skycrate-db:
networks:
skycrate-internal:
external: false
driver: bridge