Build container images for your Node.js applications
Last updated 7 months ago by kevinpollet .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install seel 
SYNC missed versions from official npm registry.


Build Status npm Latest Version npm Downloads Conventional Commits Code Style: Prettier License

seel is a command-line tool that facilitates the build of container image for your Node.js applications. You don't need to master container best practices or write a Dockerfile to build a container image, it's just as simple as invoking a command from your shell or npm script.


Table of Contents



$ npx seel                      # Run it once.
$ npm install --global seel     # Install globally.
$ npm install --save-dev seel   # Install locally to use it in npm scripts.


$ yarn global add seel          # Install globally.
$ yarn add seel --dev           # Install locally to use it in npm scripts.


seel uses the Docker daemon to build the container image for your Node.js application. When you invoke the seel command, the Docker daemon must be running and accessible through the /var/run/docker.sock socket.



Name Description
‑v, ‑‑version Print version.
‑h, ‑‑help Print usage information.
‑‑cwd Define the current working directory, defaults to ..
‑‑entrypoint Define the app entrypoint, defaults to bin or main script defined in package.json. The given path must be relative to the cwd.
‑‑extra‑files Define the extra files to include in the container image with a glob pattern, e.g. --extra-files 'public/**'.
‑‑label Define the container image label, e.g. --label key=value --label key2=value2. By default, the version, description and maintainer labels are added to the container image.
‑‑name Define the container image name, defaults to the app name defined in package.json.
‑‑pkg‑registry‑auth‑url Set-up authentication for the given package registry base URL, e.g. If the authentication token is not defined with ‑‑pkg‑registry‑auth‑token the environment variable AUTH_TOKEN will be used to read the authentication token.
‑‑pkg‑registry‑auth‑token Define the authentication token for the package registry base URL previously configured.
‑‑port Define the port that the container exposes at runtime, e.g. --port 3000 --port 4000/udp.
‑‑tag Define the container image tag, e.g. --tag latest --tag 1.0.0. By default, the Semantic Versioning strategy is used to define the container image tags.


import { buildImage, BuildImageOptions } from "seel";

const options: BuildImageOptions = {
  entrypoint?: string;
  extraFiles?: string[];
  name?: string;
  ports?: string[];
  tags?: string[];
  labels?: {
    [key: string]: string
  pkgRegistryAuth?: {
    url: string;
    token: string

buildImage("/usr/app", options)
  .then(stream => stream
    .once("error", () => {
  .catch(err => {


  • cli - A command-line app that outputs Hello, World! or greets the name passed as an argument.

  • express - An Express app that responds {"message":"Hello, World!"} to HTTP GET / requests or greets the name passed as query param.

  • express-static - An Express app that serves the static files stored in the public directory.


Contributions are welcome!

Want to file a bug, request a feature or contribute some code?

Check out the contribution guidelines.


MIT © kevinpollet

Current Tags

  • 1.0.0-beta.3                                ...           latest (7 months ago)

5 Versions

  • 1.0.0-beta.3                                ...           7 months ago
  • 1.0.0-beta.2                                ...           8 months ago
  • 1.0.0-beta.1                                ...           8 months ago
  • 1.0.0-beta.0                                ...           8 months ago
  • 0.1.0                                ...           4 years ago
Maintainers (1)
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 0
Dependencies (10)
Dependents (0)

Copyright 2014 - 2016 © |