Pentaho 8.0 BI Server CE Docker部署:连接等文件存储位置咨询
我帮你梳理下Pentaho 8.0 BI Server CE在Docker里的这些配置存储位置,以及怎么挂载卷来实现持久化:
Pentaho 8.0 BI Server CE 连接/数据源/模式的存储位置
首先得区分两种常见的数据源配置方式,它们的存储位置不一样:
- JNDI 数据源配置:如果你是通过JNDI方式配置的应用服务器级别数据源,相关配置文件存在
${PENTAHO_HOME}/pentaho-solutions/system/simple-jndi目录下,一般是jdbc.properties或者你自定义的.properties文件,这里面是JDBC连接的详细参数。 - BI Server界面创建的连接/数据源/模式:你在Pentaho界面里通过向导创建的数据源连接、Mondrian数据模式等内容,默认是存在Pentaho的内容仓库(Jackrabbit)里。这个仓库的文件系统存储目录是
${PENTAHO_HOME}/pentaho-solutions/system/jackrabbit/repository。另外,Pentaho内置的HSQLDB(用来存储BI Server的元数据,比如用户、角色、数据源的基础信息)的文件存在${PENTAHO_HOME}/pentaho-solutions/system/hsqldb下,包含mydb.script、mydb.data这类文件。
如何挂载到Docker卷实现持久化
首先你得确认容器里的 PENTAHO_HOME 路径,默认一般是 /opt/pentaho 或者 /home/pentaho,可以进容器执行 echo $PENTAHO_HOME 确认。接下来就可以通过Docker卷或者本地目录挂载来持久化这些关键目录:
- 用Docker卷挂载的示例命令(假设PENTAHO_HOME是/opt/pentaho):
docker run -d \ -p 8080:8080 \ -v pentaho-jndi:/opt/pentaho/pentaho-solutions/system/simple-jndi \ -v pentaho-jackrabbit:/opt/pentaho/pentaho-solutions/system/jackrabbit/repository \ -v pentaho-hsqldb:/opt/pentaho/pentaho-solutions/system/hsqldb \ your-pentaho-image:8.0-ce
- 如果想用本地目录挂载,把卷名换成宿主机的路径就行:
docker run -d \ -p 8080:8080 \ -v /your/local/path/simple-jndi:/opt/pentaho/pentaho-solutions/system/simple-jndi \ -v /your/local/path/jackrabbit-repo:/opt/pentaho/pentaho-solutions/system/jackrabbit/repository \ -v /your/local/path/hsqldb:/opt/pentaho/pentaho-solutions/system/hsqldb \ your-pentaho-image:8.0-ce
关键注意事项
- 第一次挂载前,建议先从正在运行的容器里把这些目录的初始内容复制到宿主机或者卷里,避免容器启动时因为目录为空报错。比如复制simple-jndi目录的命令:
docker cp your-running-container-name:/opt/pentaho/pentaho-solutions/system/simple-jndi /your/local/path/
- 如果你之后打算切换到外部数据库(比如MySQL、PostgreSQL)来存储Pentaho的元数据,那
hsqldb目录就不需要挂载了,此时要确保外部数据库本身的数据是持久化的。 - 你手动上传的Mondrian模式文件(.xml)也会存在Jackrabbit仓库里,所以挂载
jackrabbit/repository就能包含这些文件。
内容的提问来源于stack exchange,提问作者Omar Alves
相关产品推荐
相关产品推荐

