diff --git a/docker/Dockerfile b/docker/Dockerfile index 0e22b4c..5a72f8a 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,11 +1,8 @@ FROM docker.io/golang:alpine AS build RUN mkdir -p /opt/zoraxy/source/ &&\ - mkdir -p /opt/zoraxy/config/ &&\ mkdir -p /usr/local/bin/ -RUN chmod -R 770 /opt/zoraxy/ - # If you build it yourself, you will need to add the src directory into the docker directory. COPY ./src/ /opt/zoraxy/source/ @@ -13,23 +10,27 @@ WORKDIR /opt/zoraxy/source/ RUN go mod tidy &&\ go build -o /usr/local/bin/zoraxy &&\ - rm -r /opt/zoraxy/source/ - -RUN chmod 755 /usr/local/bin/zoraxy &&\ - chmod +x /usr/local/bin/zoraxy + chmod 755 /usr/local/bin/zoraxy FROM docker.io/alpine:latest -RUN apk add --no-cache bash netcat-openbsd sudo +WORKDIR /opt/zoraxy/source/ + +RUN apk add --no-cache bash netcat-openbsd sudo &&\ + wget https://dl-cdn.alpinelinux.org/alpine/v3.17/community/x86_64/zerotier-one-1.10.2-r0.apk &&\ + apk add --no-cache zerotier-one-1.10.2-r0.apk &&\ + rm -r /opt/zoraxy/source/ COPY --from=build /usr/local/bin/zoraxy /usr/local/bin/zoraxy -COPY --from=build /opt/zoraxy/config/ /opt/zoraxy/config - -VOLUME [ "/opt/zoraxy/config/" ] +COPY --chmod=700 ./entrypoint.sh /opt/zoraxy/ WORKDIR /opt/zoraxy/config/ +ENV ZEROTIER="false" + ENV AUTORENEW="86400" +ENV CFGUPGRADE="true" +ENV DOCKER="true" ENV EARLYRENEW="30" ENV FASTGEOIP="false" ENV MDNS="true" @@ -40,9 +41,12 @@ ENV SSHLB="false" ENV VERSION="false" ENV WEBFM="true" ENV WEBROOT="./www" -ENV ZTAUTH="''" +ENV ZTAUTH="" ENV ZTPORT="9993" -ENTRYPOINT "zoraxy" "-docker=true" "-autorenew=${AUTORENEW}" "-earlyrenew=${EARLYRENEW}" "-fastgeoip=${FASTGEOIP}" "-mdns=${MDNS}" "-mdnsname=${MDNSNAME}" "-noauth=${NOAUTH}" "-port=:${PORT}" "-sshlb=${SSHLB}" "-version=${VERSION}" "-webfm=${WEBFM}" "-webroot=${WEBROOT}" "-ztauth=${ZTAUTH}" "-ztport=${ZTPORT}" +VOLUME [ "/opt/zoraxy/config/", "/var/lib/zerotier-one/" ] + +ENTRYPOINT [ "/opt/zoraxy/entrypoint.sh" ] HEALTHCHECK --interval=15s --timeout=5s --start-period=10s --retries=3 CMD nc -vz 127.0.0.1 $PORT || exit 1 + diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh new file mode 100644 index 0000000..72f3de9 --- /dev/null +++ b/docker/entrypoint.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash + +if [ "$ZEROTIER" = "true" ]; then + echo "Starting ZeroTier daemon..." + zerotier-one -d +fi + +echo "Starting Zoraxy..." +exec zoraxy \ + -autorenew="$AUTORENEW" \ + -cfgupgrade="$CFGUPGRADE" \ + -docker="$DOCKER" \ + -earlyrenew="$EARLYRENEW" \ + -fastgeoip="$FASTGEOIP" \ + -mdns="$MDNS" \ + -mdnsname="$MDNSNAME" \ + -noauth="$NOAUTH" \ + -port=:"$PORT" \ + -sshlb="$SSHLB" \ + -version="$VERSION" \ + -webfm="$WEBFM" \ + -webroot="$WEBROOT" \ + -ztauth="$ZTAUTH" \ + -ztport="$ZTPORT" +