docker部署Calibre-Web书库

docker部署Calibre-Web书库

janeczku/calibre-web: Web app for browsing, reading and downloading eBooks stored in a Calibre database (github.com)

docker镜像这个是第三方的镜像(不使用官方的)

Calibre- web是一个web应用程序,使用有效的Calibre数据库,为浏览、阅读和下载电子书提供了一个干净的界面。

docker run -d --name=calibre-web -p 8083:8083 -v D:\project\dockerProject\calibreWeb\config:/config  -v D:\project\dockerProject\calibreWeb\library:/library -v D:\project\dockerProject\calibreWeb\autoaddbooks:/autoaddbooks -e UID=1000 -e GID=1000 -e CALIBRE_SERVER_USER=zsq -e CALIBRE_SERVER_PASSWORD=zsqyyds --restart unless-stopped johngong/calibre-web:latest

变量:

参数说明
--name=calibre-web容器名
-p 8083:8083calibre-web web访问端口,默认用户名: admin 默认密码: admin123
-p 8080:8080calibre-server web访问端口
-v /配置文件位置:/configcalibre-web与calibre-server配置位置文件
-v /书库:/librarycalibre-web与calibre-server书库默认位置
-v /自动添加文件夹:/autoaddbookscalibre自动添加图书文件夹位置
-e UID=1000uid设置,默认为1000
-e GID=1000gid设置,默认为1000
-e ENABLE_CALIBRE_SERVER=true(true|false)设定开启calibre-server,默认开启
-e ENABLE_CALIBRE_SERVER_OPDS=false(true|false)开启calibre-server的OPDS功能,默认不开启,arm可能不可用
-e CALIBRE_SERVER_USER=用户名calibre-server 用户名
-e CALIBRE_SERVER_PASSWORD=用户密码calibre-server 用户密码
-e CALIBRE_SERVER_WEB_LANGUAGE=zh_CNcalibre-server web界面语言,默认中文,详见calibre-server其它语言
-e CALIBRE_ASCII_FILENAME=true(true|false)设定false时calibre支持中文目录
-e CALIBRE_WEB_LANGUAGE=zh_Hans_CN(zh_Hans_CN|en)calibre-web初始界面语言,详见calibre-web其它语言
-e TZ=Asia/Shanghai系统时区设置,默认为Asia/Shanghai
-e CALIBREDB_OTHER_OPTION=为自动添加脚本中calibredb命令添加其它参数,例如:duplicates命令[-d]
-e ENABLE_DOUBAN_SEARCH=false(true|false)设定开启豆瓣搜索,默认不开启
-e DISABLE_GOOGLE_SEARCH=false(true|false)设定禁用google搜索,默认不开启
-e DISABLE_SCHOLAR_SEARCH=false(true|false)设定禁用scholar搜索,默认不开启

注意登陆时的用户名为admin密码为admin123不是我们刚才自己写的那个,那个是server端的,我们没有开启。

image-20220718175102852

编辑配置

image-20220718180227384

image-20220718180325756

<think>好的,用户现在遇到了在Docker中运行Calibre-Web时出现bus错误的问题,需要找到解决方法。首先,我需要理解bus错误通常指的是什么。在计算机系统中,bus错误通常与内存访问有关,比如程序试图访问未对齐的内存地址或者访问已经被释放的内存区域。这种情况下,程序会崩溃并显示“bus error”信息。 接下来,我需要考虑在Docker环境中运行Calibre-Web可能导致这种错误的原因。可能的因素包括:容器内存不足、文件权限问题、挂载的卷配置错误、Calibre-Web数据库的兼容性问题,或者使用的镜像本身存在缺陷。 根据用户提供的引用资料,特别是引用[3]提到TestContainers可以用于提供临时数据库实例,这可能与数据库配置有关。虽然直接引用可能不适用,但可以推测数据库配置或存储路径的问题可能是一个因素。此外,引用[5]中的Apache PDFBox等工具可能涉及文件处理,如果在Calibre-Web中处理PDF时出现错误,可能需要检查相关依赖或文件权限。 可能的解决步骤包括: 1. 检查Docker容器的内存和资源限制,确保足够的内存分配。 2. 验证挂载卷的权限是否正确,确保Calibre-Web有读写权限。 3. 确认数据库配置是否正确,特别是如果使用SQLite或其他数据库时的路径和权限。 4. 更新或更换Calibre-WebDocker镜像,确保使用的是最新或稳定版本。 5. 查看Docker日志,获取更详细的错误信息,帮助定位问题。 需要进一步确认用户的具体环境设置,如使用的镜像、挂载卷的配置、Docker版本等,这些信息有助于缩小问题范围。例如,如果用户使用的是特定版本的Calibre-Web镜像,可能存在已知的兼容性问题。另外,检查是否有其他服务占用相同端口,或者网络配置导致的问题。 总结来说,解决步骤应从资源分配、权限检查、配置验证、镜像更新和日志分析入手,逐步排查可能的原因。</think>### 解决DockerCalibre-Web出现"bus错误"的步骤 #### 1. 检查容器资源限制 - **内存不足**可能导致进程异常终止。通过以下命令调整内存限制: ```bash docker run -d --name calibre-web --memory=2g -p 8083:8083 ... [镜像名] ``` 若问题消失,说明需为容器分配更多内存[^3]。 #### 2. 验证文件权限与挂载配置 - **挂载目录权限问题**是常见原因。确保宿主机目录权限允许容器用户读写: ```bash chmod -R 755 /path/to/calibre/library ``` - 检查Docker命令中的`-v`参数是否正确映射路径: ```bash -v /host/path:/config # 配置目录 -v /host/path:/books # 书籍目录 ``` #### 3. 数据库兼容性检查 - 若使用**SQLite数据库**,确认文件路径有效性: ```bash docker exec -it calibre-web ls /config/metadata.db ``` 若文件损坏,尝试重建数据库或检查文件系统完整性。 #### 4. 更新或更换镜像 - 使用官方镜像或更新到最新版本: ```bash docker pull linuxserver/calibre-web:latest ``` 若使用第三方镜像,可尝试替换为`technosoft2000/calibre-web`等社区验证版本。 #### 5. 分析容器日志定位问题 - 通过日志获取具体错误信息: ```bash docker logs --tail=100 calibre-web ``` 若日志显示`SIGBUS`信号,通常与内存或文件系统问题相关。 #### 6. 其他潜在原因 - **内核版本兼容性**:某些旧内核可能无法正确处理容器虚拟化,升级宿主机内核至4.x以上版本。 - **SELinux/AppArmor限制**:临时禁用安全模块测试是否冲突: ```bash setenforce 0 # SELinux systemctl stop apparmor # AppArmor ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值