UNPKG

1.09 kBJavaScriptView Raw
1const Container = require('./container')
2const tarfs = require('tar-fs')
3const async = require('async')
4const path = require('path')
5const Docker = require('dockerode')
6const chalk = require('chalk')
7
8const docker = new Docker({
9 socketPath: '/var/run/docker.sock'
10})
11
12class RouterContainer extends Container {
13 constructor (devServer) {
14 super(devServer, 'localapp', 'router')
15 }
16
17 getImage() {
18 return 'noop/router'
19 }
20
21 getEnv() {
22 return {
23 ROUTES: JSON.stringify(this.devServer.app.routes.map((route) => {
24 return {
25 method: route.method,
26 pattern: route.pattern,
27 componentName: route.component.name,
28 hostname: `noop-${route.component.app.id}-component-${route.component.name}`,
29 port: route.component.port
30 }
31 }))
32 }
33 }
34
35 build (done) {
36 const pack = tarfs.pack(path.join(__dirname, '/../router'))
37 docker.buildImage(pack, {t: 'noop/router'}, (err, output) => {
38 if (err) return done(err)
39 docker.modem.followProgress(output, done)
40 })
41 }
42}
43
44module.exports = RouterContainer