seel
TypeScript icon, indicating that this package has built-in type declarations

1.0.0-beta.3 • Public • Published

seel

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.

screencast

Table of Contents

Install

npm

$ 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

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

Usage

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.

CLI

Options

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. https://myregistry.example.com. 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.

API

import { buildImage, BuildImageOptions } from "seel";
 
const options: BuildImageOptions = {
  entrypoint?: string;
  extraFiles?: string[];
  name?: string;
  ports?: string[];
  tags?: string[];
  labels?: {
    [keystring]: string
  };
  pkgRegistryAuth?: {
    urlstring;
    tokenstring
  };
};
 
buildImage("/usr/app", options)
  .then(stream => stream
    .once("error", () => {
      console.log(err);
      process.exit(1);
    })
    .pipe(process.stdout)
  )
  .catch(err => {
    console.log(err);
    process.exit(2);
  });

Examples

  • 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.

Contributing

Contributions are welcome!

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

Check out the contribution guidelines.

License

MIT © kevinpollet

Package Sidebar

Install

npm i seel

Weekly Downloads

0

Version

1.0.0-beta.3

License

MIT

Unpacked Size

37.1 kB

Total Files

41

Last publish

Collaborators

  • kevinpollet