为了方便服务的维护和扩展,我们使用容器化的方式部署ranger。
前提条件
1 创建base镜像
目的:保存你所需特定版本的ranger和mysql文件,可以作为一个公共服务的镜像;
在linux机器上执行下列命令
- mkdir ranger-docker-base
- cp ranger-2.1.0-admin.tar.gz ranger-docker-base
- cp mysql-connector-java-8.0.29.jar ranger-docker-base
- cd ranger-docker-base/
- vi Dockerfile
Dockerfile的内容
FROM maven:3.6.2-jdk-8
LABEL version=2.1.0
ARG RANGER_VERSION=2.1.0
COPY mysql-connector-java-8.0.29.jar /opt
COPY ranger-2.1.0-admin.tar.gz /opt
WORKDIR /opt
RUN apt-get -q update && tar zxvf ranger-2.1.0-admin.tar.gz
编译命令
- docker build --network host -t xxxxxx/your_base_image_name:v1 .
本地运行,查看/opt路径下文件ranger和mysql文件是否存在。无误后,可以推送到远程仓库(具体命令不提供)
- docker run -it xxxxxx/your_base_image_name:v1 /bin/bash
2 创建Ranger服务镜像
目的:在base镜像的基础上,增加服务所需的各种配置,一般是提交到私有仓库
准备好ranger-entrypoint.sh和install.propertites(简单的配置可以见Apache Ranger系列一)两个配置文件,执行以下命令
- mkdir ranger-docker
- cp ranger-entrypoint.sh ranger-docker
- cp install.propertites ranger-docker
- cd ranger-docker
- vi Dockerfile
其中ranger-entrypoint.sh的内容
#!/bin/sh
sleep 10
ls /opt
cd $RANGER_HOME
./setup.sh
ranger-admin start
# Keep the container running
tail -f /dev/null
Dockerfile的内容,其中From的是刚创建的base镜像
FROM xxxxxx/your_base_image_name:v1
LABEL version=2.1.0
ARG RANGER_VERSION=2.1.0
COPY data/ranger-entrypoint.sh /opt
WORKDIR /opt
ENV JAVA_HOME=/usr/local/openjdk-8/
ENV RANGER_HOME=/opt/ranger-${RANGER_VERSION}-admin
COPY data/install.properties ${RANGER_HOME}
EXPOSE 6080
ENTRYPOINT ["/opt/ranger-entrypoint.sh"]
构建 image
- docker build --network host -t xxxxxx/ranger-server-2.1:v1 .
本地运行,查看服务是否正常。无误后,可以推送到私有库(具体命令不提供)
- docker run --network host --name ranger-server xxxxxx/ranger-server-2.1:v1