tap-vsockd: add tap-vsockd service to bring up eth1

The tap-vsockd service is started from eth1's pre-up script.

On the Mac: the bind of the AF_HYPERV socket fails, and eth1 is skipped.
On Windows: if there is no database then eth1 is skipped.
On Windows: if the database has network=native then eth1 is brought up.

Signed-off-by: David Scott <dave.scott@docker.com>
This commit is contained in:
David Scott 2016-05-21 21:56:32 +01:00
parent 49ca65ede8
commit da954e93e3
3 changed files with 46 additions and 0 deletions

View File

@ -41,6 +41,7 @@ COPY packages/proxy/etc /etc/
COPY packages/transfused/transfused /sbin/
COPY packages/transfused/etc /etc/
COPY packages/tap-vsockd/tap-vsockd /sbin/
COPY packages/tap-vsockd/etc /etc/
COPY packages/llmnrd/llmnrd /sbin/
COPY packages/llmnrd/etc /etc/
COPY packages/llmnrd/llmnrd.tar.gz /usr/share/src/

View File

@ -9,3 +9,5 @@ auto eth1
iface eth1 inet dhcp
udhcpc_opts -T 1 -A 3
metric 199
pre-up service tap-vsockd start
post-down service tap-vsockd stop

View File

@ -0,0 +1,43 @@
#!/sbin/openrc-run
description="VPN proxy"
depend()
{
before networking
}
start()
{
if mobyconfig exists network
then
NETWORK_MODE="$(mobyconfig get network | tr -d '[[:space:]]')"
if [ "${NETWORK_MODE}" = "hybrid" ]; then
ebegin "Starting VPN proxy"
PIDFILE=/var/run/tap-vsockd.pid
start-stop-daemon --start --quiet \
--exec /sbin/tap-vsockd \
--pidfile ${PIDFILE} \
-- \
--daemon \
--pidfile "${PIDFILE}" \
--listen
eend $? "Failed to start VPN proxy"
fi
fi
}
stop()
{
ebegin "Stopping VPN proxy"
PIDFILE=/var/run/tap-vsockd.pid
start-stop-daemon --stop --quiet \
--pidfile "${PIDFILE}"
eend $? "Failed to stop VPN proxy"
}