Gatsby Plugin sharp 在 MacOS 上构建良好但在 Debian 容器上失败

Gatsby Plugin sharp builds fine on MacOS but fails on Debian container

我正在将 Gatsby Plugin sharp 与其他插件一起用于备注图像。下面提供的包 json。

奇怪的是,构建在 MacOS 上运行良好,但在 Debian docker 容器内失败,同时尝试获取 PNG 图像的元数据。 gatsby-plugin-sharp

面临这个错误

package.json - 仅包含依赖项

"dependencies": {
    "@buzz/as-components": "^1.0.3",
    "@dx/continuum-footer": "^1.5.1",
    "@marcom/ac-sasskit": "^7.3.0",
    "gatsby": "^2.26.1",
    "gatsby-plugin-emotion": "^5.2.0",
    "gatsby-plugin-flexsearch": "^1.0.3",
    "gatsby-plugin-manifest": "^2.6.1",
    "gatsby-plugin-offline": "^3.4.0",
    "gatsby-plugin-react-helmet": "^3.4.0",
    "gatsby-plugin-sass": "^3.0.0",
    "gatsby-plugin-sharp": "^2.14.1",
    "gatsby-remark-autolink-headers": "^2.10.0",
    "gatsby-remark-code-buttons": "^2.0.4",
    "gatsby-remark-images-anywhere": "^1.3.0",
    "gatsby-remark-prismjs": "^3.13.0",
    "gatsby-source-filesystem": "^2.5.0",
    "gatsby-transformer-remark": "^2.16.0",
    "gatsby-transformer-sharp": "^2.12.0",
    "prismjs": "^1.23.0",
    "prop-types": "^15.7.2",
    "react": "^16.13.1",
    "react-dom": "^16.12.0",
    "react-helmet": "^6.1.0",
    "react-multilevel-sidebar": "^1.0.4",
    "remark-grid-tables": "^2.1.1",
    "sass": "^1.32.4"
  },
  "engines": {
    "node": ">=15.0.0 <=15.8.0"
  },
  "devDependencies": {
    "node-sass": "^5.0.0",
    "prettier": "2.2.1"
  }

我遇到的错误:

/app/src/blog/2019-02-19-gridsome-05/plugins.png
 

  Error: Input file contains unsupported image format

关于该错误的详细信息不多 - 如果您能提供帮助,我们将不胜感激。我觉得这可能是一个 C 库问题,因为 Gatsby 插件是动态构建的并利用了 C/CPP 个库。

最终解决了这个问题 - 在这里留下问题的原因,以便它可以帮助其他人 - 我使用的是 NodeJS - 15.8.0-slim 基础镜像。 Gatsby Plugin Sharp 依赖于幕后的 C 库和二进制文件,这些库和二进制文件并未真正包含在 Slim 基础映像中。我使用的是 15.8.0-buster 镜像,一切正常。

该日志极具误导性,最终浪费了我很多时间。希望这可以节省其他人的时间。