diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100755 index 0000000..64d11bf --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,34 @@ +FROM rust:alpine AS builder + +RUN \ + apk -U add musl-dev git file make && \ + git clone --depth=1 https://github.com/rustdesk/rustdesk-server.git /src && \ + cd /src && \ + cargo build -r --manifest-path /src/Cargo.toml + +FROM busybox:stable + +ARG S6_OVERLAY_VERSION=3.1.0.1 +ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-noarch.tar.xz /tmp +ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-x86_64.tar.xz /tmp +RUN \ + tar -C / -Jxpf /tmp/s6-overlay-noarch.tar.xz && \ + tar -C / -Jxpf /tmp/s6-overlay-x86_64.tar.xz && \ + rm /tmp/s6-overlay*.tar.xz + +COPY rootfs / +COPY --from=builder /src/target/release/hbbr /usr/bin/hbbr +COPY --from=builder /src/target/release/hbbs /usr/bin/hbbs +COPY healthcheck.sh /usr/bin/healthcheck.sh + +ENV RELAY relay.example.com + +EXPOSE 21115 21116 21116/udp 21117 21118 21119 + +HEALTHCHECK --interval=10s --timeout=5s CMD /usr/bin/healthcheck.sh + +WORKDIR /data + +VOLUME /data + +ENTRYPOINT ["/init"] diff --git a/docker/healthcheck.sh b/docker/healthcheck.sh new file mode 100755 index 0000000..f7ae0d7 --- /dev/null +++ b/docker/healthcheck.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +/package/admin/s6/command/s6-svstat /run/s6-rc/servicedirs/hbbr || exit 1 +/package/admin/s6/command/s6-svstat /run/s6-rc/servicedirs/hbbs || exit 1 diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/hbbr/run b/docker/rootfs/etc/s6-overlay/s6-rc.d/hbbr/run new file mode 100755 index 0000000..eae3611 --- /dev/null +++ b/docker/rootfs/etc/s6-overlay/s6-rc.d/hbbr/run @@ -0,0 +1,3 @@ +#!/command/execlineb -P +posix-cd /data +/usr/bin/hbbr diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/hbbr/type b/docker/rootfs/etc/s6-overlay/s6-rc.d/hbbr/type new file mode 100755 index 0000000..5883cff --- /dev/null +++ b/docker/rootfs/etc/s6-overlay/s6-rc.d/hbbr/type @@ -0,0 +1 @@ +longrun diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/hbbs/run b/docker/rootfs/etc/s6-overlay/s6-rc.d/hbbs/run new file mode 100755 index 0000000..ae3b02a --- /dev/null +++ b/docker/rootfs/etc/s6-overlay/s6-rc.d/hbbs/run @@ -0,0 +1,3 @@ +#!/command/execlineb -P +posix-cd /data +/usr/bin/hbbs -r $RELAY diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/hbbs/type b/docker/rootfs/etc/s6-overlay/s6-rc.d/hbbs/type new file mode 100755 index 0000000..5883cff --- /dev/null +++ b/docker/rootfs/etc/s6-overlay/s6-rc.d/hbbs/type @@ -0,0 +1 @@ +longrun diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/hbbr b/docker/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/hbbr new file mode 100755 index 0000000..e69de29 diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/hbbs b/docker/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/hbbs new file mode 100755 index 0000000..e69de29