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.