tree: fc46c0066e0e8b7cf583f9998af6f98e9b60d591 [path history] [tgz]
  1. config/
  2. dist/
  3. downloads/
  4. patches/
  5. scripts/
  6. .dockerignore
  7. .env
  8. .gitignore
  9. docker-compose.ranger-base-ubi.yml
  10. docker-compose.ranger-base.yml
  11. docker-compose.ranger-build.yml
  12. docker-compose.ranger-hadoop.yml
  13. docker-compose.ranger-hbase.yml
  14. docker-compose.ranger-hive.yml
  15. docker-compose.ranger-kafka.yml
  16. docker-compose.ranger-kms.yml
  17. docker-compose.ranger-knox.yml
  18. docker-compose.ranger-mysql.yml
  19. docker-compose.ranger-oracle.yml
  20. docker-compose.ranger-ozone.yml
  21. docker-compose.ranger-postgres-mounted.yml
  22. docker-compose.ranger-postgres.yml
  23. docker-compose.ranger-tagsync.yml
  24. docker-compose.ranger-trino.yml
  25. docker-compose.ranger-usersync.yml
  26. docker-compose.ranger.yml
  27. Dockerfile.ranger
  28. Dockerfile.ranger-base
  29. Dockerfile.ranger-base-ubi
  30. Dockerfile.ranger-build
  31. Dockerfile.ranger-hadoop
  32. Dockerfile.ranger-hbase
  33. Dockerfile.ranger-hive
  34. Dockerfile.ranger-kafka
  35. Dockerfile.ranger-kms
  36. Dockerfile.ranger-knox
  37. Dockerfile.ranger-mysql
  38. Dockerfile.ranger-oracle
  39. Dockerfile.ranger-ozone
  40. Dockerfile.ranger-postgres
  41. Dockerfile.ranger-solr
  42. Dockerfile.ranger-tagsync
  43. Dockerfile.ranger-trino
  44. Dockerfile.ranger-usersync
  45. Dockerfile.ranger-zk
  46. download-archives.sh
  47. README.md
dev-support/ranger-docker/README.md

Overview

Use Dockerfiles in this directory to create docker images and run them to build Apache Ranger, deploy Apache Ranger and dependent services in containers.

Environment Setup

  • 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
    

Apache Ranger Build

In containers using docker-compose

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.

OR

Regular build

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

Docker Image Build

Prerequisite: ranger-base image build

# 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

Bring up ranger, usersync and tagsync containers

# 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!)

Bring up hive container

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

Bring up hbase container

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

Bring up ozone containers

./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

Bring up trino container (requires docker build with jdk 11):

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.

Bring up all containers

./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

To rebuild specific images and start containers with the new image:

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>