You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ma...@apache.org on 2020/09/28 21:46:34 UTC
[ranger] branch ranger-2.1 updated: RANGER-3012: Dockerfile -
updated default to build from local repo (instead of from github)
This is an automated email from the ASF dual-hosted git repository.
madhan pushed a commit to branch ranger-2.1
in repository https://gitbox.apache.org/repos/asf/ranger.git
The following commit(s) were added to refs/heads/ranger-2.1 by this push:
new e1871ed RANGER-3012: Dockerfile - updated default to build from local repo (instead of from github)
e1871ed is described below
commit e1871ed16669875c1ce2fa200af8b4bc9c0b1114
Author: Madhan Neethiraj <ma...@apache.org>
AuthorDate: Thu Sep 24 12:24:47 2020 -0700
RANGER-3012: Dockerfile - updated default to build from local repo (instead of from github)
(cherry picked from commit b444fd9928fd6a7178214ce592b0f10aaf8936ad)
---
dev-support/ranger-docker/.env | 11 ++++
dev-support/ranger-docker/Dockerfile.ranger | 1 +
dev-support/ranger-docker/Dockerfile.ranger-base | 6 ---
dev-support/ranger-docker/Dockerfile.ranger-build | 9 ++--
dev-support/ranger-docker/Dockerfile.ranger-hadoop | 3 ++
dev-support/ranger-docker/Dockerfile.ranger-hbase | 3 ++
dev-support/ranger-docker/Dockerfile.ranger-kafka | 3 ++
dev-support/ranger-docker/README.md | 62 +++++++++++-----------
.../ranger-docker/docker-compose.ranger-base.yml | 2 +
.../ranger-docker/docker-compose.ranger-build.yml | 12 +++--
.../ranger-docker/docker-compose.ranger-hadoop.yml | 6 +++
.../ranger-docker/docker-compose.ranger-hbase.yml | 6 +++
.../ranger-docker/docker-compose.ranger-kafka.yml | 6 +++
.../ranger-docker/docker-compose.ranger.yml | 4 ++
dev-support/ranger-docker/patches/.gitignore | 1 +
dev-support/ranger-docker/scripts/ranger-build.sh | 51 ++++++++++++++++--
16 files changed, 138 insertions(+), 48 deletions(-)
diff --git a/dev-support/ranger-docker/.env b/dev-support/ranger-docker/.env
new file mode 100644
index 0000000..cd8de95
--- /dev/null
+++ b/dev-support/ranger-docker/.env
@@ -0,0 +1,11 @@
+BUILD_HOST_SRC=true
+SKIPTESTS=true
+GIT_URL=https://github.com/apache/ranger.git
+BRANCH=ranger-2.1
+
+POSTGRES_PASSWORD=rangerR0cks!
+
+RANGER_VERSION=2.1.0
+HADOOP_VERSION=3.1.1
+HBASE_VERSION=2.0.3
+KAFKA_VERSION=2.4.0
diff --git a/dev-support/ranger-docker/Dockerfile.ranger b/dev-support/ranger-docker/Dockerfile.ranger
index d414592..6225595 100644
--- a/dev-support/ranger-docker/Dockerfile.ranger
+++ b/dev-support/ranger-docker/Dockerfile.ranger
@@ -16,6 +16,7 @@
FROM ranger-base:latest
+ARG RANGER_VERSION
COPY ./dist/version ${RANGER_DIST}/
COPY ./scripts/ranger.sh ${RANGER_SCRIPTS}/
diff --git a/dev-support/ranger-docker/Dockerfile.ranger-base b/dev-support/ranger-docker/Dockerfile.ranger-base
index 4d47a37..a09fbda 100644
--- a/dev-support/ranger-docker/Dockerfile.ranger-base
+++ b/dev-support/ranger-docker/Dockerfile.ranger-base
@@ -17,12 +17,6 @@
FROM ubuntu:20.04
-ENV RANGER_VERSION 2.1.0
-ENV HADOOP_VERSION 3.1.1
-ENV HIVE_VERSION 3.1.2
-ENV HBASE_VERSION 2.0.3
-ENV KAFKA_VERSION 2.4.0
-
# Install curl, wget, tzdata, Python, Java, python-requests
RUN apt-get update && \
DEBIAN_FRONTEND="noninteractive" apt-get -y install curl wget tzdata \
diff --git a/dev-support/ranger-docker/Dockerfile.ranger-build b/dev-support/ranger-docker/Dockerfile.ranger-build
index 56c6d5d..ef9b002 100644
--- a/dev-support/ranger-docker/Dockerfile.ranger-build
+++ b/dev-support/ranger-docker/Dockerfile.ranger-build
@@ -31,13 +31,12 @@ RUN mkdir -p /home/ranger/git && \
COPY ./scripts/ranger-build.sh /home/ranger/scripts/
-VOLUME /home/ranger/dist
VOLUME /home/ranger/.m2
+VOLUME /home/ranger/scripts
+VOLUME /home/ranger/patches
+VOLUME /home/ranger/dist
+VOLUME /home/ranger/src
USER ranger
-WORKDIR /home/ranger/git
-
-RUN git clone https://github.com/apache/ranger.git
-
ENTRYPOINT [ "/home/ranger/scripts/ranger-build.sh" ]
diff --git a/dev-support/ranger-docker/Dockerfile.ranger-hadoop b/dev-support/ranger-docker/Dockerfile.ranger-hadoop
index 6f1e89f..c9513b6 100644
--- a/dev-support/ranger-docker/Dockerfile.ranger-hadoop
+++ b/dev-support/ranger-docker/Dockerfile.ranger-hadoop
@@ -16,6 +16,9 @@
FROM ranger-base:latest
+ARG HADOOP_VERSION
+ARG RANGER_VERSION
+
COPY ./dist/version /home/ranger/dist/
COPY ./dist/ranger-${RANGER_VERSION}-hdfs-plugin.tar.gz /home/ranger/dist/
diff --git a/dev-support/ranger-docker/Dockerfile.ranger-hbase b/dev-support/ranger-docker/Dockerfile.ranger-hbase
index a995250..5dea37a 100644
--- a/dev-support/ranger-docker/Dockerfile.ranger-hbase
+++ b/dev-support/ranger-docker/Dockerfile.ranger-hbase
@@ -16,6 +16,9 @@
FROM ranger-base:latest
+ARG HBASE_VERSION
+ARG RANGER_VERSION
+
COPY ./dist/version /home/ranger/dist/
COPY ./dist/ranger-${RANGER_VERSION}-hbase-plugin.tar.gz /home/ranger/dist/
diff --git a/dev-support/ranger-docker/Dockerfile.ranger-kafka b/dev-support/ranger-docker/Dockerfile.ranger-kafka
index 42fb90f..72610d5 100644
--- a/dev-support/ranger-docker/Dockerfile.ranger-kafka
+++ b/dev-support/ranger-docker/Dockerfile.ranger-kafka
@@ -16,6 +16,9 @@
FROM ranger-base:latest
+ARG KAFKA_VERSION
+ARG RANGER_VERSION
+
COPY ./dist/version /home/ranger/dist/
COPY ./dist/ranger-${RANGER_VERSION}-kafka-plugin.tar.gz /home/ranger/dist/
diff --git a/dev-support/ranger-docker/README.md b/dev-support/ranger-docker/README.md
index 3f82db6..190b6db 100644
--- a/dev-support/ranger-docker/README.md
+++ b/dev-support/ranger-docker/README.md
@@ -27,94 +27,96 @@ Docker files in this folder create docker images and run them to build Apache Ra
2. Set this folder as your working directory.
-3. Using docker-compose is the simpler way to build and deploy Apache Ranger in containers.
+3. Update environment variables in .env file, if necessary
- 3.1. Execute following command to build Apache Ranger:
+4. Using docker-compose is the simpler way to build and deploy Apache Ranger in containers.
- docker-compose -f docker-compose.ranger-base.yml -f docker-compose.ranger-build.yml up --remove-orphans
+ 4.1. 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.
- 3.2. Execute following command to start Ranger, Ranger enabled HDFS/YARN/HBase/Kafka and dependent services (Solr, DB) in containers:
+ 4.2. Execute following command to start Ranger, Ranger enabled HDFS/YARN/HBase/Kafka and dependent services (Solr, DB) in containers:
docker-compose -f docker-compose.ranger-base.yml -f docker-compose.ranger.yml -f docker-compose.ranger-hadoop.yml -f docker-compose.ranger-hbase.yml -f docker-compose.ranger-kafka.yml up -d
-4. Alternatively docker command can be used to build and deploy Apache Ranger.
+5. Alternatively docker command can be used to build and deploy Apache Ranger.
- 4.1. Execute following command to build Docker image **ranger-base**:
+ 5.1. Execute following command to build Docker image **ranger-base**:
docker build -f Dockerfile.ranger-base -t ranger-base .
This might take about 10 minutes to complete.
- 4.2. Execute following command to build Docker image **ranger-build**:
+ 5.2. Execute following command to build Docker image **ranger-build**:
docker build -f Dockerfile.ranger-build -t ranger-build .
- 4.3. Build Apache Ranger in a container with the following command:
+ 5.3. Build Apache Ranger in a container with the following command:
- docker run -it --rm -v ${HOME}/.m2:/home/ranger/.m2 -v $(pwd)/dist:/home/ranger/dist -e BRANCH=ranger-2.1 -e PROFILE=all -e SKIPTESTS=true ranger-build
+ docker run -it --rm -v ${HOME}/.m2:/home/ranger/.m2:delegated -v $(pwd)/scripts:/home/ranger/scripts -v $(pwd)/../..:/home/ranger/src:delegated -v $(pwd)/dist:/home/ranger/dist --env-file ./.env ranger-build
Time taken to complete the build might vary (upto an hour), depending on status of ${HOME}/.m2 directory cache.
- 4.4. Execute following command to build Docker image **ranger**:
+ 5.4. Execute following command to build Docker image **ranger**:
- docker build -f Dockerfile.ranger -t ranger .
+ docker build -f Dockerfile.ranger --build-arg RANGER_VERSION=`cat dist/version` -t ranger .
This might take about 10 minutes to complete.
- 4.5. Execute following command to build a Docker image **ranger-solr**:
+ 5.5. Execute following command to build a Docker image **ranger-solr**:
docker build -f Dockerfile.ranger-solr -t ranger-solr .
- 4.6. Execute following command to start a container that runs database for use by Ranger Admin:
+ 5.6. Execute following command to start a container that runs database for use by Ranger Admin:
- docker run --name ranger-db --hostname ranger-db.example.com -e POSTGRES_PASSWORD='rangerR0cks!' -d postgres:12
+ docker run --name ranger-db --hostname ranger-db.example.com --env-file ./.env -d postgres:12
- 4.7. Execute following command to start a container that runs Solr for use by Ranger Admin:
+ 5.7. Execute following command to start a container that runs Solr for use by Ranger Admin:
docker run --name ranger-solr --hostname ranger-solr.example.com -p 8983:8983 -d ranger-solr solr-precreate ranger_audits /opt/solr/server/solr/configsets/ranger_audits/
- 4.8. Execute following command to install and run Ranger services in a container:
+ 5.8. Execute following command to install and run Ranger services in a container:
- docker run -it -d --name ranger --hostname ranger.example.com -p 6080:6080 --link ranger-db:ranger-db --link ranger-solr:ranger-solr ranger
+ docker run -it -d --name ranger --hostname ranger.example.com -p 6080:6080 --link ranger-db:ranger-db --link ranger-solr:ranger-solr --env-file ./.env ranger
This might take few minutes to complete.
- 4.9. Execute following command to build Docker image **ranger-hadoop**:
+ 5.9. Execute following command to build Docker image **ranger-hadoop**:
- docker build -f Dockerfile.ranger-hadoop -t ranger-hadoop .
+ docker build -f Dockerfile.ranger-hadoop --build-arg RANGER_VERSION=`cat dist/version` --build-arg HADOOP_VERSION=3.1.1 -t ranger-hadoop .
This step includes downloading of Hadoop tar balls, and can take a while to complete.
- 4.10. Execute following command to install and run Ranger enabled HDFS in a container:
+ 5.10. Execute following command to install and run Ranger enabled HDFS in a container:
- docker run -it -d --name ranger-hadoop --hostname ranger-hadoop.example.com -p 9000:9000 -p 8088:8088 --link ranger:ranger --link ranger-solr:ranger-solr ranger-hadoop
+ docker run -it -d --name ranger-hadoop --hostname ranger-hadoop.example.com -p 9000:9000 -p 8088:8088 --link ranger:ranger --link ranger-solr:ranger-solr --env-file ./.env ranger-hadoop
This might take few minutes to complete.
- 4.11. Execute following command to build Docker image **ranger-hbase**:
+ 5.11. Execute following command to build Docker image **ranger-hbase**:
- docker build -f Dockerfile.ranger-hbase -t ranger-hbase .
+ docker build -f Dockerfile.ranger-hbase --build-arg RANGER_VERSION=`cat dist/version` --build-arg HBASE_VERSION=2.0.3 -t ranger-hbase .
This step includes downloading of HBase tar ball, and can take a while to complete.
- 4.12. Execute following command to install and run Ranger enabled HBase in a container:
+ 5.12. Execute following command to install and run Ranger enabled HBase in a container:
- docker run -it -d --name ranger-hbase --hostname ranger-hbase.example.com --link ranger-hadoop:ranger-hadoop --link ranger:ranger --link ranger-solr:ranger-solr ranger-hbase
+ docker run -it -d --name ranger-hbase --hostname ranger-hbase.example.com --link ranger-hadoop:ranger-hadoop --link ranger:ranger --link ranger-solr:ranger-solr --env-file ./.env ranger-hbase
This might take few minutes to complete.
- 4.13. Execute following command to build Docker image **ranger-kafka**:
+ 5.13. Execute following command to build Docker image **ranger-kafka**:
- docker build -f Dockerfile.ranger-kafka -t ranger-kafka .
+ docker build -f Dockerfile.ranger-kafka --build-arg RANGER_VERSION=`cat dist/version` --build-arg KAFKA_VERSION=2.4.0 -t ranger-kafka .
This step includes downloading of Kafka tar ball, and can take a while to complete.
- 4.12. Execute following command to install and run Ranger enabled Kafka in a container:
+ 5.14. Execute following command to install and run Ranger enabled Kafka in a container:
- docker run -it -d --name ranger-kafka --hostname ranger-kafka.example.com --link ranger-hadoop:ranger-hadoop --link ranger:ranger --link ranger-solr:ranger-solr ranger-kafka
+ docker run -it -d --name ranger-kafka --hostname ranger-kafka.example.com --link ranger-hadoop:ranger-hadoop --link ranger:ranger --link ranger-solr:ranger-solr --env-file ./.env ranger-kafka
This might take few minutes to complete.
-5. Ranger Admin can be accessed at http://localhost:6080 (admin/rangerR0cks!)
+6. Ranger Admin can be accessed at http://localhost:6080 (admin/rangerR0cks!)
diff --git a/dev-support/ranger-docker/docker-compose.ranger-base.yml b/dev-support/ranger-docker/docker-compose.ranger-base.yml
index 18e78db..614c5d3 100644
--- a/dev-support/ranger-docker/docker-compose.ranger-base.yml
+++ b/dev-support/ranger-docker/docker-compose.ranger-base.yml
@@ -7,6 +7,8 @@ services:
image: ranger-base
networks:
- ranger
+ environment:
+ - RANGER_VERSION
networks:
ranger:
diff --git a/dev-support/ranger-docker/docker-compose.ranger-build.yml b/dev-support/ranger-docker/docker-compose.ranger-build.yml
index 48decd5..50ef383 100644
--- a/dev-support/ranger-docker/docker-compose.ranger-build.yml
+++ b/dev-support/ranger-docker/docker-compose.ranger-build.yml
@@ -10,13 +10,19 @@ services:
networks:
- ranger
volumes:
- - ~/.m2:/home/ranger/.m2
+ - ~/.m2:/home/ranger/.m2:delegated
+ - ./scripts:/home/ranger/scripts
+ - ./patches:/home/ranger/patches
- ./dist:/home/ranger/dist
+ - ./../../:/home/ranger/src:delegated
depends_on:
- ranger-base
environment:
- BRANCH: 'ranger-2.1'
- SKIPTESTS: 'true'
+ - BRANCH
+ - BUILD_HOST_SRC
+ - GIT_URL
+ - RANGER_VERSION
+ - SKIPTESTS
networks:
ranger:
diff --git a/dev-support/ranger-docker/docker-compose.ranger-hadoop.yml b/dev-support/ranger-docker/docker-compose.ranger-hadoop.yml
index e521345..54e5cb5 100644
--- a/dev-support/ranger-docker/docker-compose.ranger-hadoop.yml
+++ b/dev-support/ranger-docker/docker-compose.ranger-hadoop.yml
@@ -4,6 +4,9 @@ services:
build:
context: .
dockerfile: Dockerfile.ranger-hadoop
+ args:
+ - HADOOP_VERSION=${HADOOP_VERSION}
+ - RANGER_VERSION=${RANGER_VERSION}
image: ranger-hadoop
container_name: ranger-hadoop
hostname: ranger-hadoop.example.com
@@ -16,6 +19,9 @@ services:
- "8088:8088"
depends_on:
- ranger
+ environment:
+ - HADOOP_VERSION
+ - RANGER_VERSION
networks:
ranger:
diff --git a/dev-support/ranger-docker/docker-compose.ranger-hbase.yml b/dev-support/ranger-docker/docker-compose.ranger-hbase.yml
index 81804aa..46a9fee 100644
--- a/dev-support/ranger-docker/docker-compose.ranger-hbase.yml
+++ b/dev-support/ranger-docker/docker-compose.ranger-hbase.yml
@@ -4,6 +4,9 @@ services:
build:
context: .
dockerfile: Dockerfile.ranger-hbase
+ args:
+ - HBASE_VERSION=${HBASE_VERSION}
+ - RANGER_VERSION=${RANGER_VERSION}
image: ranger-hbase
container_name: ranger-hbase
hostname: ranger-hbase.example.com
@@ -17,6 +20,9 @@ services:
- "16020:16020"
depends_on:
- ranger-hadoop
+ environment:
+ - HBASE_VERSION
+ - RANGER_VERSION
networks:
ranger:
diff --git a/dev-support/ranger-docker/docker-compose.ranger-kafka.yml b/dev-support/ranger-docker/docker-compose.ranger-kafka.yml
index 1d14f1b..5cf0b9a 100644
--- a/dev-support/ranger-docker/docker-compose.ranger-kafka.yml
+++ b/dev-support/ranger-docker/docker-compose.ranger-kafka.yml
@@ -4,6 +4,9 @@ services:
build:
context: .
dockerfile: Dockerfile.ranger-kafka
+ args:
+ - KAFKA_VERSION=${KAFKA_VERSION}
+ - RANGER_VERSION=${RANGER_VERSION}
image: ranger-kafka
container_name: ranger-kafka
hostname: ranger-kafka.example.com
@@ -13,6 +16,9 @@ services:
- ranger
depends_on:
- ranger
+ environment:
+ - KAFKA_VERSION
+ - RANGER_VERSION
networks:
ranger:
diff --git a/dev-support/ranger-docker/docker-compose.ranger.yml b/dev-support/ranger-docker/docker-compose.ranger.yml
index 787c2ef..089a51b 100644
--- a/dev-support/ranger-docker/docker-compose.ranger.yml
+++ b/dev-support/ranger-docker/docker-compose.ranger.yml
@@ -4,6 +4,8 @@ services:
build:
context: .
dockerfile: Dockerfile.ranger
+ args:
+ - RANGER_VERSION=${RANGER_VERSION}
image: ranger:latest
container_name: ranger
hostname: ranger.example.com
@@ -17,6 +19,8 @@ services:
- ranger-base
- ranger-db
- ranger-solr
+ environment:
+ - RANGER_VERSION
command:
- /home/ranger/scripts/ranger.sh
diff --git a/dev-support/ranger-docker/patches/.gitignore b/dev-support/ranger-docker/patches/.gitignore
new file mode 100644
index 0000000..72e8ffc
--- /dev/null
+++ b/dev-support/ranger-docker/patches/.gitignore
@@ -0,0 +1 @@
+*
diff --git a/dev-support/ranger-docker/scripts/ranger-build.sh b/dev-support/ranger-docker/scripts/ranger-build.sh
index 92d2e07..569df3b 100755
--- a/dev-support/ranger-docker/scripts/ranger-build.sh
+++ b/dev-support/ranger-docker/scripts/ranger-build.sh
@@ -16,14 +16,20 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+
if [ "${BRANCH}" == "" ]
then
BRANCH=ranger-2.1
fi
+if [ "${GIT_URL}" == "" ]
+then
+ GIT_URL=https://github.com/apache/ranger.git
+fi
+
if [ "${PROFILE}" != "" ]
then
- ARG_PROFILES="-P ${PROFILE}"
+ ARG_PROFILES="-P${PROFILE}"
fi
if [ "${SKIPTESTS}" == "" ]
@@ -33,13 +39,50 @@ else
ARG_SKIPTESTS="-DskipTests=${SKIPTESTS}"
fi
+if [ "${BUILD_HOST_SRC}" == "" ]
+then
+ BUILD_HOST_SRC=true
+fi
+
export MAVEN_OPTS="-Xms2g -Xmx2g"
export M2=/home/ranger/.m2
-cd /home/ranger/git/ranger
-git checkout ${BRANCH}
-git pull
+if [ "${BUILD_HOST_SRC}" == "true" ]
+then
+ if [ ! -f /home/ranger/src/pom.xml ]
+ then
+ echo "ERROR: BUILD_HOST_SRC=${BUILD_HOST_SRC}, but /home/ranger/src/pom.xml is not found "
+ exit 1
+ fi
+
+ echo "Building from /home/ranger/src"
+
+ cd /home/ranger/src
+else
+ echo "Building ${BRANCH} branch from ${GIT_URL}"
+
+ cd /home/ranger/git
+
+ if [ -d ranger ]
+ then
+ renamedDir=ranger-`date +"%Y%m%d-%H%M%S"`
+
+ echo "Renaming existing directory `pwd`/ranger to ${renamedDir}"
+
+ mv ranger $renamedDir
+ fi
+
+ git clone --single-branch --branch ${BRANCH} ${GIT_URL}
+
+ cd /home/ranger/git/ranger
+
+ for patch in `ls -1 /home/ranger/patches | sort`
+ do
+ echo "applying patch /home/ranger/patches/${patch}"
+ git apply /home/ranger/patches/${patch}
+ done
+fi
mvn ${ARG_PROFILES} ${ARG_SKIPTESTS} -DskipDocs clean package