You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker/Portainer部署email2pdf时,WKHTMLTOPDF_OPTIONS配置报错求助

解决email2pdf项目中WKHTMLTOPDF_OPTIONS环境变量配置问题

问题根源

你的核心问题是YAML解析规则与JSON格式的冲突:

  1. 直接写WKHTMLTOPDF_OPTIONS: {"load-media-error-handling":"ignore"}时,YAML会将大括号解析为映射结构,但环境变量要求值为字符串/数字等基础类型,因此触发类型错误。
  2. 用单引号包裹后出现YAML语法错误,是因为数组式环境变量的解析规则对单引号的处理存在兼容性问题(尤其是Portainer的YAML解析器),最终导致传递给容器的JSON字符串格式无效,触发JSONDecodeError。

正确配置方案

方案1:调整docker-compose.yml的环境变量写法

将数组式环境变量改为映射式(更稳定,YAML解析逻辑更清晰),同时确保JSON字符串格式正确:

version: "3.8"

services:
  email2pdf:
    image: ghcr.io/rob-luke/emails-html-to-pdf:latest
    restart: always
    container_name: email2pdf
    environment:
      IMAP_URL: imap.gmx.net
      IMAP_USERNAME: example.gmx.net
      IMAP_PASSWORD: 12345
      IMAP_FOLDER: Inbox
      SMTP_URL: mail.gmx.net
      MAIL_SENDER: Example.gmx.net
      MAIL_DESTINATION: Example.gmx.net
      INTER_RUN_INTERVAL: 60
      HOSTS: "127.0.0.1 tracking.paypal.com"
      WKHTMLTOPDF_OPTIONS: '{"enable-local-file-access":"true","load-media-error-handling":"ignore"}'

如果坚持使用数组式写法,需转义内部双引号:

# 数组式写法示例
environment:
  - IMAP_URL=imap.gmx.net
  # ... 其他变量省略
  - WKHTMLTOPDF_OPTIONS="{\"enable-local-file-access\":\"true\",\"load-media-error-handling\":\"ignore\"}"

方案2:Portainer Web界面直接配置

如果是在Portainer中手动添加环境变量,无需添加任何引号,直接输入:

  • 键:WKHTMLTOPDF_OPTIONS
  • 值:{"enable-local-file-access":"true","load-media-error-handling":"ignore"}

验证配置有效性

部署完成后,可进入容器检查环境变量是否正确传递:

docker exec -it email2pdf echo $WKHTMLTOPDF_OPTIONS

输出应为完整的JSON字符串,无多余引号或转义错误。

内容的提问来源于stack exchange,提问作者nikiloe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 23:47:18