【问题标题】:Installing wkpdtothtml on Google Gloud Platform在谷歌云平台上安装 wkpdtothtml
【发布时间】:2018-06-19 21:04:21
【问题描述】:

我创建了一个 node express 应用程序,它基于 wkhtmltopdf 插件充当打印 api。

我正在尝试将其部署到 Google Cloud Platform,但我需要先在 Google Cloud Platform 上安装 wkhtmltopdf 二进制文件。

我该怎么做?我正在使用 Google App Engine 服务。

【问题讨论】:

  • 我知道这是一种不好的做法,但为了快速解决问题,您可以将 wkhtmltopdf 的分发嵌入到您的代码库中,并使用它的相对路径调用其可执行文件。
  • @serifcetiner 我实际上是在尝试使用下面的代码来做到这一点: // import wkhtmltopdf var wkhtmltopdf = require('wkhtmltopdf'); wkhtmltopdf.command = "/home/mikeaxle2006/wkhtlmtox/bin/wkhtmltopdf";但我仍然得到这个“错误:错误:/bin/bash:wkhtmltopdf:找不到命令。”我做错了什么?
  • 因为它没有安装到你的系统,这个包说“首先,你需要在你的系统上安装 wkhtmltopdf 命令行工具。”然后你需要从wkhtmltopdf.org/downloads.html下载它;以您喜欢的路径打开它。在包代码库中有: wkhtmltopdf.command = 'wkhtmltopdf'; wkhtmltopdf.shell = '/bin/bash';使用两者来构建你的路径

标签: javascript node.js google-app-engine google-cloud-platform


【解决方案1】:

您将需要构建一个自定义运行时。来自About Custom Runtimes

自定义运行时允许您定义新的运行时环境, 可能包括其他组件,例如语言解释器或 应用服务器。

来自Building Custom Runtimes(您可能应该阅读整个文档):

要创建您需要的自定义运行时:

  • 描述应用程序运行时配置的app.yaml 文件。
  • 配置运行时环境的Dockerfile。在许多情况下,这可能只是指定基本图像的一行。
  • 确保您的应用程序正在侦听端口 8080 并具有响应生命周期事件的请求处理程序,例如启动、停止和 运行状况检查请求。

【讨论】:

    【解决方案2】:

    使用自定义运行时创建 app.yaml 文件,如下所示:

    runtime: custom
    env: flex
    

    创建一个 Dockerfile 来安装一些第三方服务。示例 nginx 图片如下:

    # Debian-based Linux operating system based on free software.
    FROM ubuntu
    
    # Install wkhtmltopdf
    WORKDIR ~
    RUN wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.3/wkhtmltox-0.12.3_linux-generic-amd64.tar.xz
    RUN tar vxf wkhtmltox-0.12.3_linux-generic-amd64.tar.xz 
    RUN cp wkhtmltox/bin/wk* /usr/local/bin/
    

    【讨论】:

      猜你喜欢
      • 2020-10-03
      • 1970-01-01
      • 2020-03-31
      • 1970-01-01
      • 2021-07-22
      • 1970-01-01
      • 1970-01-01
      • 2017-08-28
      • 2020-06-02
      相关资源
      最近更新 更多