openBinaryFile:在 Gitlab CI bash 脚本中执行 pandoc 时不存在

Fin*_*eur 7 bash pandoc docker gitlab-ci

我收到此错误:

pandoc: sh: openBinaryFile: does not exist (No such file or directory)

尝试在 Gitlab CI bash 脚本中使用 Pandoc 构建一些资产时。

我有一个存储库 Finnito/Science,它使用 Hugo 为 Gitlab Pages 站点提供服务。我正在尝试设置一个 Gitlab CI 管道,以便在提交到 repo 时从我的 Markdown 源构建我的 HTML 幻灯片和 PDF 文档,这样我就不必在本地构建它们。

我一直在尝试 pandoc 的不同 Docker 映像,但我认为pandoc/latex是我最好的选择,因为它是“官方的”并且建立在 Alpine 上,它既漂亮又轻巧。但我似乎无法对这个错误做出正面或反面。

我为 pandoc 尝试了各种不同的咒语,但它们似乎不起作用。

我的 Gitlab CI 作业如下所示:

assets:
  image: pandoc/latex
  script:
    - chmod +x ci-build.sh
    - sh ci-build.sh
Run Code Online (Sandbox Code Playgroud)

我的ci-build.sh脚本如下所示:

assets:
  image: pandoc/latex
  script:
    - chmod +x ci-build.sh
    - sh ci-build.sh
Run Code Online (Sandbox Code Playgroud)

老实说,我对如何在 Docker 容器中成功调用 pandoc 感到非常迷茫。我对此很陌生,这一切都毫无意义!

非常感激任何的帮助!

tar*_*leb 6

图像已/usr/bin/pandoc设置为入口点。这意味着pandoc在运行容器时不必指定命令;提供命令将导致 pandoc 尝试读取具有给定命令名称的输入文件,这会导致您看到的错误。

有一段时间,图像使用自定义入口点脚本来尝试检测是否应执行不同的二进制文件。但由于事实证明它不可靠且令人困惑,因此这被恢复了。

  • 说实话,IDK:到目前为止我还没有真正使用过 gitlab ci。您可能可以尝试将图像定义为“image: {name: pandoc/latex, entrypoint: ["/bin/sh", "-c"]}` (3认同)
  • 啊,绝对是这样。```资产:阶段:部署映像:名称:pandoc/latex:2.6 入口点:["/bin/sh", "-c"] 脚本: - apk add bash - apk add zip - chmod +x ci-build。 sh - ./ci-build.sh ``` (2认同)