Skip to content

Instantly share code, notes, and snippets.

@hongaar
Created January 4, 2019 11:03
Show Gist options
  • Save hongaar/d30fb88b937fe322b6a36f744c3e14a7 to your computer and use it in GitHub Desktop.
Save hongaar/d30fb88b937fe322b6a36f744c3e14a7 to your computer and use it in GitHub Desktop.
docker-proxy
const net = require('net')
const port = process.env['PORT'] || 5000
function log (...args) {
// console.log(...args)
}
function onConnect (socket) {
log('new connection')
const upstream = net.connect('\\\\.\\pipe\\docker_engine')
upstream.on('connect', function () {
log('upstream connnected')
socket.resume()
})
// Socket (HTTP connection)
socket.on('data', function (data) {
log('socket data:', data.length, 'bytes')
upstream.write(data)
})
socket.on('end', function () {
log('socket end')
upstream.end()
})
// Upstream (docker)
upstream.on('data', function (data) {
log('upstream data:', data.length, 'bytes')
socket.write(data)
})
upstream.on('end', function () {
log('upstream end')
})
}
net.createServer({
allowHalfOpen: false,
pauseOnConnect: true
}, onConnect).listen(port)
console.log('listening on', port)
@hongaar
Copy link
Author

hongaar commented Jan 4, 2019

Workaround for issue with Docker Desktop for Windows: docker/for-win#3163

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment