run-container
v2.0.12
Published
run a docker container in nodejs, as concisely as possible
Downloads
493
Readme
run-container
run a docker container in nodejs
runs a container using dockerode, bootstrapping the pull & start processes, whilst also exposing a compact function to simplify docker's and dockerode's otherwise complex APIs
usage
import { run, runSimple } from "run-container";
// runSimple, minimal example
const container = await runSimple({ image: "postgres" }); // => Dockerode.Container instance
await container.remove({ force: true });
// runSimple, rich example
await runSimple({
autoRemove: true,
bindMounts: { "/path/to/host/file.sh": "/path/to/container/file.sh" },
cmd: ["bash", "/path/to/container/file.sh"],
env: { KEY: "VALUE" },
image: "bash",
name: "script-fun",
ports: { "4000": "4000" }, // tcp ports only. otherwise, use `run`
});
await container.wait();
await container.remove();
// run
// exposes Dockerodes.ContainerCreateOptions full API,
// which directly reflects the docker engine API!
// https://docs.docker.com/engine/api/latest/
const container = await run({
Image: "postgres",
ExposedPorts: {
"5432/tcp": {},
},
HostConfig: {
AutoRemove: true,
PortBindings: { "5432/tcp": [{ HostPort: "40000" }] },
},
});
// ... do work
await container.remove({ force: true });
see the exported typescript typings in the docs folder, or check out the tiny source.