mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-02-18 17:00:17 +00:00
Add Docker image and build script for DSM 7
This commit is contained in:
parent
3c59de7c00
commit
8ee8870c27
@ -1,3 +1,5 @@
|
||||
# vim: ft=dockerfile
|
||||
|
||||
FROM debian:buster
|
||||
|
||||
ENV LANG C.UTF-8
|
||||
|
@ -1,6 +1,7 @@
|
||||
## Synology
|
||||
## Package for Synology's DSM 6
|
||||
|
||||
Documentation and downloads: [docs.zerotier.com/devices/synology](https://docs.zerotier.com/devices/synology)
|
||||
|
||||
### DSM 6 Packaging procedure
|
||||
|
||||
```
|
||||
./build.sh build
|
||||
|
32
synology/dsm7-docker/Dockerfile
Normal file
32
synology/dsm7-docker/Dockerfile
Normal file
@ -0,0 +1,32 @@
|
||||
# vim: ft=dockerfile
|
||||
|
||||
FROM alpine:latest as builder
|
||||
|
||||
ARG COMMIT=04b77773c4cd384c359e3a48f40307b288233194
|
||||
|
||||
RUN apk add --no-cache rust cargo
|
||||
RUN apk add openssl-dev
|
||||
|
||||
RUN apk add --update alpine-sdk linux-headers \
|
||||
&& git clone --quiet https://github.com/zerotier/ZeroTierOne.git /src \
|
||||
&& git -C src reset --quiet --hard ${COMMIT} \
|
||||
&& cd /src \
|
||||
&& make -f make-linux.mk
|
||||
|
||||
FROM alpine:latest
|
||||
LABEL version="1.8.7"
|
||||
LABEL description="ZeroTier One docker image for Synology NAS"
|
||||
|
||||
RUN apk add --update --no-cache bash jq libc6-compat libstdc++
|
||||
|
||||
EXPOSE 9993/udp
|
||||
|
||||
COPY --from=builder /src/zerotier-one /usr/sbin/
|
||||
RUN mkdir -p /var/lib/zerotier-one \
|
||||
&& ln -s /usr/sbin/zerotier-one /usr/sbin/zerotier-idtool \
|
||||
&& ln -s /usr/sbin/zerotier-one /usr/sbin/zerotier-cli
|
||||
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
RUN chmod 755 /entrypoint.sh
|
||||
|
||||
ENTRYPOINT ["/entrypoint.sh"]
|
3
synology/dsm7-docker/README.md
Normal file
3
synology/dsm7-docker/README.md
Normal file
@ -0,0 +1,3 @@
|
||||
## Docker image for Synology's DSM7
|
||||
|
||||
Documentation: [docs.zerotier.com/devices/synology](https://docs.zerotier.com/devices/synology)
|
20
synology/dsm7-docker/build.sh
Executable file
20
synology/dsm7-docker/build.sh
Executable file
@ -0,0 +1,20 @@
|
||||
#!/bin/bash
|
||||
|
||||
ZTO_VER=$(jq -r '.version' ../config.json)
|
||||
|
||||
build()
|
||||
{
|
||||
sudo docker build --load --rm -t zerotier-synology .
|
||||
LATEST_DOCKER_IMAGE_HASH=$(sudo docker images -q zerotier-synology)
|
||||
sudo docker tag ${LATEST_DOCKER_IMAGE_HASH} zerotier/zerotier-synology:${ZTO_VER}
|
||||
sudo docker tag ${LATEST_DOCKER_IMAGE_HASH} zerotier/zerotier-synology:latest
|
||||
}
|
||||
|
||||
push()
|
||||
{
|
||||
sudo docker login --username=${DOCKERHUB_USERNAME}
|
||||
sudo docker push zerotier/zerotier-synology:${ZTO_VER}
|
||||
sudo docker push zerotier/zerotier-synology:latest
|
||||
}
|
||||
|
||||
"$@"
|
29
synology/dsm7-docker/entrypoint.sh
Executable file
29
synology/dsm7-docker/entrypoint.sh
Executable file
@ -0,0 +1,29 @@
|
||||
#!/bin/bash
|
||||
|
||||
zerotier-one -d
|
||||
|
||||
# Wait for ZT service to come online before attempting queries
|
||||
sleep 15
|
||||
|
||||
while true
|
||||
do
|
||||
NETWORK_COUNT=$(zerotier-cli -j listnetworks | jq -r '. | length')
|
||||
if [ "$NETWORK_COUNT" -gt 0 ]; then
|
||||
for ((j=0; j<=$((NETWORK_COUNT-1)); j++))
|
||||
do
|
||||
ROUTE_COUNT=$(zerotier-cli -j listnetworks | jq -r '.['$j'].routes | length')
|
||||
for ((k=0; k<=$((ROUTE_COUNT-1)); k++))
|
||||
do
|
||||
ROUTE=$(zerotier-cli -j listnetworks | jq -r '.['$j'].routes['$k'].target')
|
||||
EXIST=$(ip route show $ROUTE | wc -l)
|
||||
if [ $EXIST -eq 0 ];
|
||||
then
|
||||
IFNAME=$(zerotier-cli -j listnetworks | jq -r '.['$j'] | .portDeviceName')
|
||||
ip route add $ROUTE dev $IFNAME
|
||||
# Routes will be deleted when ZT brings the interface down
|
||||
fi
|
||||
done
|
||||
done
|
||||
sleep 15
|
||||
fi
|
||||
done
|
Loading…
x
Reference in New Issue
Block a user