Use Dockerfiles in this directory to create docker images and run them to build Apache Ranger, deploy Apache Ranger and dependent services in containers.
Ensure that you have recent version of Docker installed from docker.io (as of this writing: Engine 20.10.5, Compose 1.28.5). Make sure to configure docker with at least 6gb of memory.
Update environment variables in .env file, if necessary
Set dev-support/ranger-docker as your working directory.
Execute following command to download necessary archives to setup Ranger/HDFS/Hive/HBase/Kafka/Knox/Ozone services:
chmod +x download-archives.sh # use a subset of the below to download specific services ./download-archives.sh hadoop hive hbase kafka knox ozone
Execute following commands to set environment variables to build Apache Ranger docker containers:
export DOCKER_BUILDKIT=1 export COMPOSE_DOCKER_CLI_BUILD=1 export RANGER_DB_TYPE=postgres
Execute following command to build Apache Ranger:
docker-compose -f docker-compose.ranger-base.yml -f docker-compose.ranger-build.yml up
Time taken to complete the build might vary (upto an hour), depending on status of ${HOME}/.m2 directory cache.
cd ./../../ mvn clean package -DskipTests cp target/ranger-* dev-support/ranger-docker/dist/ cp target/version dev-support/ranger-docker/dist/ cd dev-support/ranger-docker
# ubuntu base image: docker-compose -f docker-compose.ranger-base.yml build --no-cache # OR # ubi base image: docker-compose -f docker-compose.ranger-base-ubi.yml build --no-cache
# To enable file based sync source for usersync do:
# export ENABLE_FILE_SYNC_SOURCE=true
# valid values for RANGER_DB_TYPE: mysql/postgres/oracle
docker-compose -f docker-compose.ranger.yml -f docker-compose.ranger-${RANGER_DB_TYPE}.yml -f docker-compose.ranger-usersync.yml -f docker-compose.ranger-tagsync.yml up -d
# Ranger Admin can be accessed at http://localhost:6080 (admin/rangerR0cks!)
docker-compose -f docker-compose.ranger.yml -f docker-compose.ranger-${RANGER_DB_TYPE}.yml -f docker-compose.ranger-hadoop.yml -f docker-compose.ranger-hive.yml up -d
docker-compose -f docker-compose.ranger.yml -f docker-compose.ranger-${RANGER_DB_TYPE}.yml -f docker-compose.ranger-hadoop.yml -f docker-compose.ranger-hbase.yml up -d
./scripts/ozone-plugin-docker-setup.sh
docker-compose -f docker-compose.ranger.yml -f docker-compose.ranger-${RANGER_DB_TYPE}.yml -f docker-compose.ranger-ozone.yml up -d
docker-compose -f docker-compose.ranger.yml -f docker-compose.ranger-${RANGER_DB_TYPE}.yml -f docker-compose.ranger-trino.yml up -d
Similarly, check the depends section of the docker-compose.ranger-service.yaml file and add docker-compose files for these services when trying to bring up the service container.
./scripts/ozone-plugin-docker-setup.sh
docker compose -f docker-compose.ranger-${RANGER_DB_TYPE}.yml -f docker-compose.ranger.yml -f docker-compose.ranger-usersync.yml -f docker-compose.ranger-tagsync.yml -f docker-compose.ranger-kms.yml -f docker-compose.ranger-hadoop.yml -f docker-compose.ranger-hbase.yml -f docker-compose.ranger-kafka.yml -f docker-compose.ranger-hive.yml -f docker-compose.ranger-knox.yml -f docker-compose.ranger-ozone.yml up -d
docker-compose -f docker-compose.ranger.yml -f docker-compose.ranger-usersync.yml -f docker-compose.ranger-tagsync.yml -f docker-compose.ranger-kms.yml -f docker-compose.ranger-hadoop.yml -f docker-compose.ranger-hbase.yml -f docker-compose.ranger-kafka.yml -f docker-compose.ranger-hive.yml -f docker-compose.ranger-trino.yml -f docker-compose.ranger-knox.yml up -d --no-deps --force-recreate --build <service-1> <service-2>