docker-exec-websocket-server

A server that serves the results of docker exec over websockets.

Showing:

Popularity

Downloads/wk

114

GitHub Stars

18

Maintenance

Last Commit

1yr ago

Contributors

9

Package

Dependencies

5

Size (min+gzip)

135.6KB

License

MPL-2.0

Type Definitions

Tree-Shakeable

No?

Categories

Readme

docker-exec-websocket-server

Build Status

Purpose

A server that serves the results of docker exec over websockets.

See docker-exec-websocket-client for a client that communicates with this server.

Usage

Server:

var DockerServer = require('../lib/server.js');
var dockerServer = new DockerServer({
  port:8080, //automatically creates http server
  //OR
  server: //http.Serv object, can also be https, should already be listening

  path: '/'+slugid.v4(),    //Path to WebSocket
  containerId: 'servertest',  //Container to inject exec proccess into
  dockerSocket: '/var/run/docker.sock' //location of docker remote API socket
  maxSessions: 10 //maximum number of connected sessions
});
await dockerServer.execute();

By default, uses /var/run/docker.sock to communicate with Docker.

Message Types

Messages are prepended with a single byte which contains information about the encoded message. The payload is a Buffer in node, or a UInt8Array in browserify.

// stream related message types (carries a payload)
stdin: 0,
stdout: 1,
stderr: 2,
// data-flow related message types (carries no payload)
resume: 100, // Process is now ready to receive data
pause: 101, // Process is processing current data, don't send more right now
// resolution related message types
stopped: 200, // Process exited, payload is single byte exit code
shutdown: 201, // Server shut down
error: 202 // Some internal error occurred, expect undefined behaviour

Testing

Docker 1.6.1 or above must be installed with a container named servertest running with cat and /bin/bash capabilities to inject the exec process into. From there, npm test will carry out the test.

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100
No reviews found
Be the first to rate

Alternatives

No alternatives found

Tutorials

No tutorials found
Add a tutorial