app.portBindings and newManifest.tcpPorts may be null
This commit is contained in:
40
src/vbox.js
Normal file
40
src/vbox.js
Normal file
@@ -0,0 +1,40 @@
|
||||
'use strict';
|
||||
|
||||
// we can possibly remove this entire file and make our tests
|
||||
// smarter to just use the host interface provided by boot2docker
|
||||
// https://github.com/boot2docker/boot2docker#container-port-redirection
|
||||
// https://github.com/boot2docker/boot2docker/pull/93
|
||||
// https://github.com/docker/docker/issues/4007
|
||||
|
||||
exports = module.exports = {
|
||||
forwardFromHostToVirtualBox: forwardFromHostToVirtualBox,
|
||||
unforwardFromHostToVirtualBox: unforwardFromHostToVirtualBox
|
||||
};
|
||||
|
||||
var assert = require('assert'),
|
||||
child_process = require('child_process'),
|
||||
debug = require('debug')('box:vbox'),
|
||||
os = require('os');
|
||||
|
||||
|
||||
function forwardFromHostToVirtualBox(rulename, port) {
|
||||
assert.strictEqual(typeof rulename, 'string');
|
||||
assert.strictEqual(typeof port, 'number');
|
||||
|
||||
if (os.platform() === 'darwin') {
|
||||
debug('Setting up VirtualBox port forwarding for '+ rulename + ' at ' + port);
|
||||
child_process.exec(
|
||||
'VBoxManage controlvm boot2docker-vm natpf1 delete ' + rulename + ';' +
|
||||
'VBoxManage controlvm boot2docker-vm natpf1 ' + rulename + ',tcp,127.0.0.1,' + port + ',,' + port);
|
||||
}
|
||||
}
|
||||
|
||||
function unforwardFromHostToVirtualBox(rulename) {
|
||||
assert.strictEqual(typeof rulename, 'string');
|
||||
|
||||
if (os.platform() === 'darwin') {
|
||||
debug('Removing VirtualBox port forwarding for '+ rulename);
|
||||
child_process.exec('VBoxManage controlvm boot2docker-vm natpf1 delete ' + rulename);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user