Skip to content

Issues with the "sharp" package #1380

@derwaldgeist

Description

@derwaldgeist

I'm using the sharp package for image processing, which is a transitive dependency of the "@gltf-transform/functions package.

It works fine on my local macOS machine.

However, when trying to deploy this to my EC2 instance, the "Verify Deployment" step fails with an error (see logs below).

I first thought this was because of a missing compiler toolchain, so I added these build instuctions to mup.js:

docker: {
      image: 'zodern/meteor:root',
      stopAppDuringPrepareBundle: false,
      buildInstructions: [
        'RUN apt-get update && apt-get install -y --no-install-recommends python3 make g++',
        'RUN rm -rf /var/lib/apt/lists/*'
      ]
    }

but this did not help either. How can I ensure that sharp can use the binaries it needs on Linux x64?

------------------------------------STDERR------------------------------------
	      1 (-> v22.13.1 *)
	=> Starting meteor app on port 3000
	(node:514) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
	(Use `node --trace-deprecation ...` to show where the warning was created)
	packages/core-runtime.js:189
	            throw error;
	            ^
	
	Error: Could not load the "sharp" module using the linux-x64 runtime
	Possible solutions:
	- Ensure optional dependencies can be installed:
	    npm install --include=optional sharp
	- Ensure your package manager supports multi-platform installation:
	    See https://sharp.pixelplumbing.com/install#cross-platform
	- Add platform-specific dependencies:
	    npm install --os=linux --cpu=x64 sharp
	- Consult the installation documentation:
	    See https://sharp.pixelplumbing.com/install
	    at Object.<anonymous> (/built_app/programs/server/npm/node_modules/sharp/lib/sharp.js:120:9)
	    at Module.<anonymous> (node:internal/modules/cjs/loader:1562:14)
	    at Module.Mp._compile (/tools/static-assets/server/runtime.js:78:21)
	    at Object..js (node:internal/modules/cjs/loader:1699:10)
	    at Module.<anonymous> (node:internal/modules/cjs/loader:1313:32)
	    at Module.Mp.load (/tools/static-assets/server/runtime.js:35:31)
	    at Function._load (node:internal/modules/cjs/loader:1123:12)
	    at TracingChannel.traceSync (node:diagnostics_channel:322:14)
	    at wrapModuleLoad (node:internal/modules/cjs/loader:217:24)
	    at Module.<anonymous> (node:internal/modules/cjs/loader:1335:12)
	    at Module.mod.require (/built_app/programs/server/node_modules/@meteorjs/reify/lib/runtime/index.js:30:33)
	    at require (node:internal/modules/helpers:136:16)
	    at Object.<anonymous> (/built_app/programs/server/npm/node_modules/sharp/lib/constructor.js:10:1)
	    at Module.<anonymous> (node:internal/modules/cjs/loader:1562:14)
	    at Module.Mp._compile (/tools/static-assets/server/runtime.js:78:21)
	    at Object..js (node:internal/modules/cjs/loader:1699:10)
	
	Node.js v22.13.1
	=> Setting node version
	NODE_VERSION=22.13.1
	Node: 22.13.1 (parsed: 22.13.1)
	Using NVM
	v22.13.1 is already installed.
	Now using node v22.13.1 (npm v10.9.2)
	default -> 22.13.1 (-> v22.13.1 *)
	=> Starting meteor app on port 3000
	(node:513) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
	(Use `node --trace-deprecation ...` to show where the warning was created)
	packages/core-runtime.js:189
	            throw error;
	            ^
	
	Error: Could not load the "sharp" module using the linux-x64 runtime
	Possible solutions:
	- Ensure optional dependencies can be installed:
	    npm install --include=optional sharp
	- Ensure your package manager supports multi-platform installation:
	    See https://sharp.pixelplumbing.com/install#cross-platform
	- Add platform-specific dependencies:
	    npm install --os=linux --cpu=x64 sharp
	- Consult the installation documentation:
	    See https://sharp.pixelplumbing.com/install
	    at Object.<anonymous> (/built_app/programs/server/npm/node_modules/sharp/lib/sharp.js:120:9)
	    at Module.<anonymous> (node:internal/modules/cjs/loader:1562:14)
	    at Module.Mp._compile (/tools/static-assets/server/runtime.js:78:21)
	    at Object..js (node:internal/modules/cjs/loader:1699:10)
	    at Module.<anonymous> (node:internal/modules/cjs/loader:1313:32)
	    at Module.Mp.load (/tools/static-assets/server/runtime.js:35:31)
	    at Function._load (node:internal/modules/cjs/loader:1123:12)
	    at TracingChannel.traceSync (node:diagnostics_channel:322:14)
	    at wrapModuleLoad (node:internal/modules/cjs/loader:217:24)
	    at Module.<anonymous> (node:internal/modules/cjs/loader:1335:12)
	    at Module.mod.require (/built_app/programs/server/node_modules/@meteorjs/reify/lib/runtime/index.js:30:33)
	    at require (node:internal/modules/helpers:136:16)
	    at Object.<anonymous> (/built_app/programs/server/npm/node_modules/sharp/lib/constructor.js:10:1)
	    at Module.<anonymous> (node:internal/modules/cjs/loader:1562:14)
	    at Module.Mp._compile (/tools/static-assets/server/runtime.js:78:21)
	    at Object..js (node:internal/modules/cjs/loader:1699:10)
	
	Node.js v22.13.1
	 
	=> Redeploying previous version of the app

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions