Sign inSign up

catbee/node

By catbee

Updated about 17 hours ago

Node Alpine base image bundled with Sharp (linux-musl) and font support using libvips and DejaVu.

Image
Developer tools
0

1.0K

catbee/node repository overview

Node.js Alpine with Sharp

Node.js Alpine images with Sharp and the required image-processing, font-rendering, and text-layout dependencies.

Available Versions

Node.js VersionImage
18catbee/node:18
20catbee/node:20
22catbee/node:22
24catbee/node:24
26catbee/node:26

All versions are based on the corresponding official Node.js Alpine image.

Features

  • Node.js Alpine
  • Sharp pre-installed
  • libvips image processing support
  • Fontconfig for font discovery
  • FreeType font rendering
  • DejaVu TrueType fonts
  • Pango text layout and rendering
  • Sharp rebuilt for Alpine compatibility
  • Lightweight Alpine-based runtime

Quick Start

Run the latest available version:

docker run -it --rm catbee/node:26

Run a specific Node.js version:

docker run -it --rm catbee/node:24
docker run -it --rm catbee/node:22
docker run -it --rm catbee/node:20
docker run -it --rm catbee/node:18

Verify Node.js

docker run --rm catbee/node:26 node --version

Example:

v26.x.x

Verify Sharp

Sharp is installed globally in the image and can be loaded directly from Node.js:

docker run --rm catbee/node:26 \
  node -e "console.log(require('sharp').versions)"

Image Processing Dependencies

The image includes the following system packages:

PackagePurpose
vipsCore image processing library used by Sharp
fontconfigFont discovery and configuration
freetypeFont rendering
ttf-dejavuTrueType fonts for image and text rendering
pangoText layout and rendering

These dependencies are particularly useful for applications that generate or process images containing text, SVGs, and custom fonts.

Using Sharp

Example:

const sharp = require('sharp');

sharp('input.jpg')
  .resize(800)
  .jpeg()
  .toFile('output.jpg')
  .then(() => {
    console.log('Image processed successfully');
  });

Using the Image in a Node.js Application

Example Dockerfile:

FROM catbee/node:26

WORKDIR /app

COPY package*.json ./

RUN npm install

COPY . .

CMD ["node", "index.js"]

Build the application:

docker build -t my-node-app .

Run it:

docker run --rm my-node-app

Tags

Use the Node.js major version that matches your application:

catbee/node:18
catbee/node:20
catbee/node:22
catbee/node:24
catbee/node:26

For example:

docker pull catbee/node:26

Base Images

Each image uses the corresponding official Node.js Alpine base image:

node:18-alpine
node:20-alpine
node:22-alpine
node:24-alpine
node:26-alpine

Default Configuration

The image uses:

WORKDIR /app

The default command is:

node

Therefore:

docker run -it --rm catbee/node:26

starts the Node.js runtime.

Commands can also be passed directly:

docker run --rm catbee/node:26 node --version

Sharp Installation

Sharp is installed during image creation with optional dependencies enabled:

npm install sharp --include=optional
npm rebuild sharp

This allows Sharp to be installed and rebuilt against the Alpine environment.

Image Details

PropertyValue
RuntimeNode.js
BaseAlpine Linux
SharpPre-installed
Image processinglibvips
Font renderingFreeType
Font discoveryFontconfig
Text renderingPango
Included fontsDejaVu
Working directory/app
Default commandnode

Pull an Image

Node.js 26:

docker pull catbee/node:26

Node.js 24:

docker pull catbee/node:24

Node.js 22:

docker pull catbee/node:22

Node.js 20:

docker pull catbee/node:20

Node.js 18:

docker pull catbee/node:18

License

This image contains software distributed under the licenses of Node.js, Sharp, libvips, and the included Alpine Linux packages.

Refer to the respective upstream projects for complete licensing information.

Tag summary

Content type

Image

Digest

sha256:fe825de37

Size

109.1 MB

Last updated

about 17 hours ago

docker pull catbee/node:26