fix: correct purevpn-cli PATH (/opt/purevpn-cli/bin) and pre-install VPN deps

This commit is contained in:
2026-03-11 10:11:01 +01:00
parent ed4076abca
commit cf7cc642be
2 changed files with 11 additions and 26 deletions

View File

@@ -2,28 +2,28 @@ FROM debian:bookworm-slim
LABEL description="dante SOCKS5 + purevpn-cli exit node" LABEL description="dante SOCKS5 + purevpn-cli exit node"
# ── System dependencies ────────────────────────────────────────────────────── # ── System dependencies (all in one layer so apt cache is fresh for installer)
RUN apt-get update && apt-get install -y --no-install-recommends \ RUN apt-get update && apt-get install -y --no-install-recommends \
dante-server \ dante-server \
curl wget ca-certificates \ curl wget ca-certificates \
iproute2 iptables iputils-ping \ iproute2 iptables iputils-ping \
netcat-openbsd procps dnsutils \ netcat-openbsd procps dnsutils \
expect \ expect \
openvpn wireguard wireguard-tools \
net-tools openresolv \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
# ── Install purevpn-cli (official installer) ────────────────────────────────── # ── Install purevpn-cli ───────────────────────────────────────────────────────
# Running as root inside Docker — no sudo needed. # Pre-installing its dependencies above means the installer's own apt calls
# find everything already present and skip cleanly.
# Binary lands at /opt/purevpn-cli/bin/purevpn-cli
RUN curl -fsSL https://apps.purevpn-tools.com/cross-platform/linux-cli/production/cli-install.sh \ RUN curl -fsSL https://apps.purevpn-tools.com/cross-platform/linux-cli/production/cli-install.sh \
-o /tmp/cli-install.sh \ -o /tmp/cli-install.sh \
&& bash /tmp/cli-install.sh \ && bash /tmp/cli-install.sh \
&& rm -f /tmp/cli-install.sh \ && rm -f /tmp/cli-install.sh
&& echo ">>> purevpn-cli install search:" \
&& find / -maxdepth 8 -name "purevpn*" 2>/dev/null || true \
&& echo ">>> /etc/pure-linux-cli contents:" \
&& ls -la /etc/pure-linux-cli/ 2>/dev/null || echo "(directory not found)"
# ── Add purevpn-cli to PATH (as per official docs) ──────────────────────────── # ── PATH: installer puts binary in /opt/purevpn-cli/bin/ ─────────────────────
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/etc/pure-linux-cli/ ENV PATH=/opt/purevpn-cli/bin:/opt/purevpn-cli:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# ── Location list ───────────────────────────────────────────────────────────── # ── Location list ─────────────────────────────────────────────────────────────
COPY servers.txt /etc/vpndock/servers.txt COPY servers.txt /etc/vpndock/servers.txt

View File

@@ -4,22 +4,7 @@
# then starts dante SOCKS5 proxy bound to 0.0.0.0, routing out through tun0. # then starts dante SOCKS5 proxy bound to 0.0.0.0, routing out through tun0.
set -euo pipefail set -euo pipefail
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/etc/pure-linux-cli/ export PATH=/opt/purevpn-cli/bin:/opt/purevpn-cli:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# ── Locate purevpn-cli wherever the installer put it ─────────────────────────
if ! command -v purevpn-cli &>/dev/null; then
_bin=$(find / -maxdepth 8 -name "purevpn-cli" -type f 2>/dev/null | head -1)
if [[ -n "$_bin" ]]; then
export PATH="$(dirname "$_bin"):$PATH"
echo "[entrypoint] purevpn-cli found at $_bin — PATH updated"
else
echo "[entrypoint] FATAL: purevpn-cli not found anywhere on the filesystem"
echo "[entrypoint] All purevpn* files:"
find / -maxdepth 8 -name "purevpn*" 2>/dev/null || true
exit 1
fi
fi
echo "[entrypoint] Using purevpn-cli: $(command -v purevpn-cli)"
SOCKS5_PORT="${SOCKS5_INNER_PORT:-1080}" SOCKS5_PORT="${SOCKS5_INNER_PORT:-1080}"
VPN_IF="tun0" VPN_IF="tun0"