1. 概述
本文介绍如何在 Docker 中安装部署 FineBI。
注:如需在docker容器上运行FineReport/FineBI,请确保内存大于8G。
2. Dockerfile 构建方式部署
2.1 前期准备
需要准备 Tomcat 和 JDK 的安装包。Tomcat 和 JDK 版本要求如下表所示:
Tomcat 版本 | JDK 版本 |
---|---|
8.0 (不支持 Tomcat 8.0.32 版本) | JDK 1.8 且小版本需在 JDK8u102 以上 |
9.0 注:不支持 Tomcat 10.0 版本 |
2.2 部署 Tomcat
本节步骤均在 Docker 所在服务器上进行。
2.2.1 新建 Dockerfile 文件
1)新建 mydocker 文件夹, 将 Tomcat 和 JDK 的安装包解压到该文件夹下。如下图所示:
2)在 mydocker 文件夹下新建 Dockerfile 文件。文件内容如下图所示:
注:下面代码中 Tomcat 和 JDK 的文件名根据实际情况修改。
FROM centos:7
MAINTAINER test
#设置系统编码,不然地图显示有问题
RUN yum install kde-l10n-Chinese -y
RUN yum install glibc-common -y
RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
#RUN export.UTF-8
#RUN echo "export.UTF-8" >> /etc/locale.conf
#ENV LANG zh_CN.UTF-8
ENV LC_ALL zh_CN.UTF-8
#切换镜像目录,进入/usr目录
WORKDIR /usr
#在/usr/下创建jdk目录,用来存放jdk文件
RUN mkdir jdk
#在/usr/下创建tomcat目录,用来存放tomcat
RUN mkdir tomcat
#将宿主机的jdk目录下的文件拷贝至镜像的/usr/jdk目录下
ADD jdk1.8.0_281 /usr/jdk/
#将宿主机的tomcat拷贝至镜像的/usr/tomcat目录下
ADD apache-tomcat-9.0.44/ /usr/tomcat/
#设置环境变量
ENV JAVA_HOME=/usr/jdk
ENV JRE_HOME=$JAVA_HOME/jre
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH=$JAVA_HOME/bin:$PATH
#拷贝jdk中的tools.jar到tomcat的lib中
ADD jdk1.8.0_281/lib/tools.jar /usr/tomcat/lib/
#暴露8080、48888端口,供容器外部连接使用
EXPOSE 8080
EXPOSE 48888
#赋予可执行权限
RUN chmod +x /usr/tomcat/bin/catalina.sh
#启动tomcat服务器
CMD ["/usr/tomcat/bin/catalina.sh","run"]
最终 mydocker 文件夹下,包含的内容如下图所示:
2.2.2 构建镜像
1)在 mydocker 目录下执行下面语句构建镜像:
docker build -t mydocker/tomcat:v1 .
2)使用docker images语句查看构建好的镜像。如下图所示:
3)通过创建好的镜像,启动一个容器。如下图所示:
docker run -d --name mydocker -p 8080:8080 mydocker/tomcat:v1
4)访问 Tomcat 地址:http://ip:8080。如下图所示:
注:本步骤为了检测未部署 webroot 时,Tomcat 能否启动成功。
5)关闭 Tomcat ,为下面部署 webroot 做准备。
docker ps -a #显示所有的容器,包括未运行的
docker stop 46e45b9d9fad #停止一个正在运行的容器
2.3 部署 webroot
1)Docker 所在服务器准备 webroot 文件夹,本文示例 webroot 文件夹在/home/zhongyao路径下。
注:建议将本地 webroot 文件夹压缩后再上传到 Docker 所在服务器上,再解压。
webroot 文件夹来源:
FineBI 安装 后,会在%FineBI_HOME%\webapps下生成 webroot 文件夹。用户可以重新下载 FineBI 获得 webroot 文件夹或者使用已有工程的 webroot 文件夹。
2)采用挂载方式部署 webroot:
注:该代码语句较长,建议用户复制到本地,根据实际情况修改路径。
docker run -it -d --name tomcat -p 8080:8080 -p 48888:48888 -v /home/zhongyao/webroot:/usr/tomcat/webapps/webroot mydocker/tomcat:v1
2.4 效果查看
访问http://ip:服务器端口号/工程名/decision,效果如下图所示: