1 | const Docker = require('dockerode')
|
2 |
|
3 | const docker = new Docker({
|
4 | socketPath: '/var/run/docker.sock'
|
5 | })
|
6 |
|
7 | class Network {
|
8 | constructor (appId) {
|
9 | this.id = `noop/${appId}`
|
10 | this.dockerNetwork = docker.getNetwork(this.id)
|
11 | }
|
12 |
|
13 | ensure (done) {
|
14 | this.dockerNetwork.inspect((err) => {
|
15 | if (err && err.statusCode === 404) {
|
16 | this.create(done)
|
17 | } else {
|
18 | done(err)
|
19 | }
|
20 | })
|
21 | }
|
22 |
|
23 | create (done) {
|
24 | const opts = {
|
25 | Name: this.id,
|
26 | CheckDuplicate: true
|
27 | }
|
28 | docker.createNetwork(opts, done)
|
29 | }
|
30 |
|
31 | attachContainer (containerId, done) {
|
32 | this.dockerNetwork.connect({Container: containerId}, done)
|
33 | }
|
34 | }
|
35 |
|
36 | module.exports = Network
|