Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@nodesuite/docker

nodesuite48ISC0.3.32TypeScript support: included

Manage docker containers from NodeJS.

container-management, containers, docker, docker-management, nodesuite

readme

nodesuite

@nodesuite/docker

Manage Docker containers as child processes.

Installation

npm install @nodesuite/docker

Overview

  • Handles container and child process lifecycle events with locking and automatic de-registration via a provided @nodesuite/registry instance.
  • Define a docker run as a convenient configuration object.
  • Push internal messages as events from container as events.

Usage

import type { ContainerOptions, Containers } from "@nodesuite/docker"
import { ContainerRegistry } from "@nodesuite/docker"

const registry: Containers = new ContainerRegistry()

const example = async () => {
    const options: ContainerOptions = {
        image: `ghcr.io/<my-org>/<my-container>`, // Hostname of image.
        name: `my-unique-name`, // Unique name, existing containers sharing name will be killed.
        tag: `latest`,
        user: `root`, // Internal user to execute from.
        entrypoint: `./boot.sh`, // Resolved from home directory.
        command: `/usr/bin/bash`, // Resolve from absolute path.
        ports: [
            [3000, 3000], // External + internal ports to expose.
            [9222, 19222]
        ],
        env: {
            NODE_ENV: `development`, // Any environment variables to inject.
            FOO: `foo`
        },
        volumes: [
            [`./app`, `./app`], // Resolved from cwd and home directory.
            [`/some/absolute/local/path`, `/opt/mount`] // Resolved from external and internal absolute paths.
        ],
        cwd: path.resolve(`./some/local/path`) // Custom cwd for local path resolution.
    }

    // Option 1: Create and lock container name without trigger a full spawn / ready state.
    const container1 = await registry.create(options)
    // Spawn some time later in application:
    await container1.run()
    await container1.waitForServer(9222)

    // Option 2: Create, lock and spawn container immediately.
    const container2: Container = await registry.resolve(options)
    await container2.waitForServer(new URL(`http://localhost:3000/my-endpoint`))
}

changelog

Change Log - @nodesuite/docker

This log was last generated on Wed, 15 Feb 2023 00:52:39 GMT and should not be manually modified.

0.3.32

Wed, 15 Feb 2023 00:52:39 GMT

Version update only

0.3.31

Mon, 13 Feb 2023 02:09:05 GMT

Version update only

0.3.30

Fri, 10 Feb 2023 04:45:35 GMT

Version update only

0.3.29

Thu, 09 Feb 2023 22:12:26 GMT

Version update only

0.3.28

Sat, 28 Jan 2023 02:36:35 GMT

Version update only

0.3.27

Sat, 28 Jan 2023 01:11:23 GMT

Version update only

0.3.26

Thu, 05 Jan 2023 03:17:01 GMT

Version update only

0.3.25

Thu, 05 Jan 2023 02:46:46 GMT

Version update only

0.3.24

Thu, 05 Jan 2023 02:38:12 GMT

Version update only

0.3.23

Tue, 03 Jan 2023 00:06:34 GMT

Version update only

0.3.22

Mon, 02 Jan 2023 23:43:56 GMT

Version update only

0.3.21

Mon, 02 Jan 2023 23:19:28 GMT

Version update only

0.3.20

Mon, 02 Jan 2023 21:50:32 GMT

Version update only

0.3.19

Sun, 01 Jan 2023 06:01:08 GMT

Version update only

0.3.18

Sun, 01 Jan 2023 05:57:42 GMT

Version update only

0.3.17

Sun, 01 Jan 2023 05:51:02 GMT

Version update only

0.3.16

Sun, 01 Jan 2023 05:30:26 GMT

Version update only

0.3.15

Sun, 01 Jan 2023 05:26:09 GMT

Version update only

0.3.14

Sun, 01 Jan 2023 04:39:20 GMT

Initial release