diff --git a/alpine/Dockerfile b/alpine/Dockerfile index 07b26450c..3c32b0529 100644 --- a/alpine/Dockerfile +++ b/alpine/Dockerfile @@ -35,10 +35,12 @@ RUN \ rc-update add localmount && \ rc-update add klogd && \ rc-update add docker default && \ + rc-update add 9pinit default && \ + rc-update add 9pudc default && \ + rc-update add mdnstool default && \ ln -s /bin/busybox /init -# docker mac specific, and should be moved anyway -RUN mkdir /Mac /Socket +# docker mac specific, should be packages COPY packages/9pudc/9pudc packages/mdnstool/mdnstool /sbin/ CMD ["/bin/sh"] diff --git a/alpine/Makefile b/alpine/Makefile index f0c38ccbe..a3897adfd 100644 --- a/alpine/Makefile +++ b/alpine/Makefile @@ -2,7 +2,7 @@ all: initrd.img ETCFILES=etc/issue etc/motd etc/inittab etc/network/interfaces ETCFILES+=etc/hostname- etc/resolv.conf- etc/hosts- -ETCFILES+=etc/init.d/chronyd +ETCFILES+=etc/init.d/chronyd etc/init.d/9pinit etc/init.d/9pudc etc/init.d/mdnstool initrd.img: Dockerfile mkinitrd.sh repositories $(ETCFILES) rm -f initrd.img diff --git a/alpine/etc/fstab b/alpine/etc/fstab deleted file mode 100644 index aca9fd8e7..000000000 --- a/alpine/etc/fstab +++ /dev/null @@ -1,2 +0,0 @@ -socket /Socket 9p trans=virtio,dfltuid=1001,dfltgid=50,version=9p2000 0 0 -plan9 /Mac 9p trans=virtio,dfltuid=1001,dfltgid=50,version=9p2000 0 0 diff --git a/alpine/etc/init.d/9pinit b/alpine/etc/init.d/9pinit new file mode 100755 index 000000000..f87f75a48 --- /dev/null +++ b/alpine/etc/init.d/9pinit @@ -0,0 +1,11 @@ +#!/sbin/openrc-run + +start() +{ + ebegin "Mounting 9p sockets" + mkdir -p /Socket + mount -t 9p -o trans=virtio,dfltuid=1001,dfltgid=50,version=9p2000 socket /Socket + mkdir -p /Mac + mount -t 9p -o trans=virtio,dfltuid=1001,dfltgid=50,version=9p2000.u plan9 /Mac + eend 0 +} diff --git a/alpine/etc/init.d/9pudc b/alpine/etc/init.d/9pudc new file mode 100755 index 000000000..1c50bab56 --- /dev/null +++ b/alpine/etc/init.d/9pudc @@ -0,0 +1,32 @@ +#!/sbin/openrc-run + +description="9p socket proxy client" + +depend() +{ + need 9pinit +} + +start() +{ + ebegin "Starting docker socket passthrough" + + [ -n "${PIDFILE}" ] || PIDFILE=/var/run/9pudc.pid + + start-stop-daemon --start --quiet \ + --exec /sbin/9pudc \ + --pidfile "${PIDFILE}" \ + -- -path /Socket -sock /var/run/docker.sock -detach + eend $? "Failed to start 9pudc" +} + +stop() +{ + ebegin "Stopping docker socket passthrough" + + [ -n "${PIDFILE}" ] || PIDFILE=/var/run/9pudc.pid + + start-stop-daemon --stop --quiet \ + --pidfile "${PIDFILE}" + eend $? "Failed to stop 9pudc" +} diff --git a/alpine/etc/init.d/mdnstool b/alpine/etc/init.d/mdnstool new file mode 100755 index 000000000..37e1db8ea --- /dev/null +++ b/alpine/etc/init.d/mdnstool @@ -0,0 +1,33 @@ +#!/sbin/openrc-run + +description="mDNS server" + +depend() +{ + need 9pinit net + after firewall +} + +start() +{ + ebegin "Starting mDNS serevr" + + [ -n "${PIDFILE}" ] || PIDFILE=/var/run/mdnstool.pid + + start-stop-daemon --start --quiet \ + --exec /sbin/mdnstool \ + --pidfile "${PIDFILE}" \ + -- if eth0 -detach + eend $? "Failed to start mDNS server" +} + +stop() +{ + ebegin "Stopping mDNS server" + + [ -n "${PIDFILE}" ] || PIDFILE=/var/run/mdnstool.pid + + start-stop-daemon --stop --quiet \ + --pidfile "${PIDFILE}" + eend $? "Failed to stop mDNS server" +} diff --git a/alpine/packages/9pudc/Makefile b/alpine/packages/9pudc/Makefile index a4cf3f501..c0fc174d0 100644 --- a/alpine/packages/9pudc/Makefile +++ b/alpine/packages/9pudc/Makefile @@ -3,6 +3,7 @@ all: 9pudc 9pudc: Dockerfile main.go docker build -t 9pudc:test . docker run 9pudc:test cat /go/bin/9pudc > 9pudc + chmod 555 9pudc clean: rm -f 9pudc diff --git a/alpine/packages/mdnstool/Makefile b/alpine/packages/mdnstool/Makefile index 1b56f4bc4..00c8b0fae 100644 --- a/alpine/packages/mdnstool/Makefile +++ b/alpine/packages/mdnstool/Makefile @@ -3,6 +3,7 @@ all: mdnstool mdnstool: Dockerfile mdnstool.go mdnsmon/mdnsmon.go docker build -t mdnstool:test . docker run mdnstool:test cat /go/bin/mdnstool > mdnstool + chmod 555 mdnstool clean: rm -f mdnstool