| ADD alpine-minirootfs-20260127-x86_64.tar.gz / # buildkit |
| CMD ["/bin/sh"] |
| LABEL maintainer=socksify description=OpenVPN → SOCKS5 (GOST only, virtual chain → tun) |
| ARG TARGETARCH=amd64 |
| RUN |1 TARGETARCH=amd64 /bin/sh -c apk add --no-cache bash ca-certificates curl iproute2 jq netcat-openbsd openresolv openvpn tini # buildkit |
| RUN |1 TARGETARCH=amd64 /bin/sh -c set -eux; ver=3.2.6; case "${TARGETARCH:-amd64}" in amd64) garch=amd64 ;; arm64) garch=arm64 ;; *) echo >&2 "unsupported TARGETARCH=${TARGETARCH}"; exit 1 ;; esac; curl -fsSL -o /tmp/gost.tgz "https://github.com/go-gost/gost/releases/download/v${ver}/gost_${ver}_linux_${garch}.tar.gz"; tar -xzf /tmp/gost.tgz -C /usr/local/bin gost; chmod +x /usr/local/bin/gost; rm /tmp/gost.tgz # buildkit |
| RUN |1 TARGETARCH=amd64 /bin/sh -c mkdir -p /run/openvpn # buildkit |
| COPY assets/openvpn-up.sh /usr/local/bin/openvpn-up.sh # buildkit |
| COPY assets/openvpn-down.sh /usr/local/bin/openvpn-down.sh # buildkit |
| COPY assets/start-openvpn.sh /usr/local/bin/start-openvpn.sh # buildkit |
| RUN |1 TARGETARCH=amd64 /bin/sh -c chmod +x /usr/local/bin/openvpn-up.sh /usr/local/bin/openvpn-down.sh /usr/local/bin/start-openvpn.sh # buildkit |
| EXPOSE [1080/tcp] |
| ENTRYPOINT ["/sbin/tini" "--"] |
| CMD ["/usr/local/bin/start-openvpn.sh"] |
| HEALTHCHECK &{["CMD-SHELL" "nc -z 127.0.0.1 1080 || exit 1"] "30s" "10s" "3m0s" "0s" '\x03'} |