历史版本2 :Docker 部署 FineBI 返回文档
编辑时间:
内容长度:图片数:目录数:
修改原因:
1、描述编辑
操作场景:此文档指导安装工程师在docker中安装部署FineBI;
前提条件:已经成功部署Docker,可参考Docker简介和部署;
部署概要:本文提供两种部署方式:1)docker pull tomcat方式部署;2)通过 Dockerfile 构建方式部署;
2、拉取镜像方式部署编辑
2.1 安装Tomcat
使用如下命令,拉取Tomcat的镜像;
docker pull tomcat
等待下载完成后,我们就可以在本地镜像列表里查到REPOSITORY为tomcat的镜像。
docker images | grep tomcat
2.2 部署webroot
由于直接把webroot拷贝至容器中的tomcat/webapps/下面,重启容器的话,配置都会丢失掉,所以这里使用挂载的方式部署webroot。(即需要在宿主机上放置要部署的webroot,使用如下命令)
docker run -it -d --name tomcat -p 7899:8080 -p 48888:48888 -v /opt/tomcat8/webapps/webroot:/usr/local/tomcat/webapps/webroot tomcat
输入如下命令进入docker容器:
docker exec -it tomcat /bin/bash
给tomcat的lib里面放入FineBI需要的tools.jar:
cp /usr/local/openjdk-8/lib/tools.jar /usr/local/tomcat/lib/
重启容器(tomcat):
docker restart 容器ID
至此FineBI部署完成,重启的话,可以选择进入容器重启tomcat,也可以选择重启容器;
3、Dockerfile 构建部署编辑
3.1 部署Tomcat
新建文件夹test,将需要使用的tomcat还有jdk放到新建的文件夹中,如下图:
在该目录下新建Dockerfile文件:
touch Dockerfile
Dockerfile文件内容如下所示:
FROM centos
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_131 /usr/jdk/
#将宿主机的tomcat拷贝至镜像的/usr/tomcat目录下
ADD tomcat8/ /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_131/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"]在test目录执行如下命令构建镜像:
docker build -t test/tomcat:v1 .
查看创建好的镜像:
docker images
通过创建好的镜像,启动容器:
docker run -d --name test -p 8080:8080 test/tomcat:v1
访问tomcat地址,如下图:
3.2 部署webroot
采用挂载方式部署webroot:
docker run -it -d --name tomcat -p 8080:8080 -p 48888:48888 -v /opt/tomcat8/webapps/webroot:/usr/tomcat/webapps/webroot test/tomcat:v1
重启容器(tomcat):
docker restart 容器ID