DataHub Generalized Metadata Store (GMS) Docker Image
Refer to DataHub GMS Service to have a quick understanding of the architecture and responsibility of this service for the DataHub.
Build
docker image build -t keremsahin/datahub-gms -f docker/gms/Dockerfile .
This command will build and deploy the image in your local store.
Run container
cd docker/gms && docker-compose pull && docker-compose up
This command will start the container. If you have the image available in your local store, this image will be used
for the container otherwise it will download the latest
image from Docker Hub and then start that.
Container configuration
External Port
If you need to configure default configurations for your container such as the exposed port, you will do that in
docker-compose.yml
file. Refer to this link to understand
how to change your exposed port settings.
ports:
- "8080:8080"
Docker Network
All Docker containers for DataHub are supposed to be on the same Docker network which is datahub_network
.
If you change this, you will need to change this for all other Docker containers as well.
networks:
default:
name: datahub_network
MySQL, Elasticsearch and Kafka Containers
Before starting datahub-gms
container, mysql
, elasticsearch
and kafka
containers should already be up and running.
These connections are configured via environment variables in docker-compose.yml
:
environment:
- EBEAN_DATASOURCE_USERNAME=datahub
- EBEAN_DATASOURCE_PASSWORD=datahub
- EBEAN_DATASOURCE_HOST=mysql:3306
- EBEAN_DATASOURCE_URL=jdbc:mysql://mysql:3306/datahub
- EBEAN_DATASOURCE_DRIVER=com.mysql.jdbc.Driver
The value of EBEAN_DATASOURCE_HOST
variable should be set to the host name of the mysql
container within the Docker network.
environment:
- KAFKA_BOOTSTRAP_SERVER=broker:29092
- KAFKA_SCHEMAREGISTRY_URL=http://schema-registry:8081
The value of KAFKA_BOOTSTRAP_SERVER
variable should be set to the host name of the kafka broker
container within the Docker network.
The value of KAFKA_SCHEMAREGISTRY_URL
variable should be set to the host name of the kafka schema registry
container within the Docker network.
environment:
- ELASTICSEARCH_HOST=elasticsearch
- ELASTICSEARCH_PORT=9200
The value of ELASTICSEARCH_HOST
variable should be set to the host name of the elasticsearch
container within the Docker network.