diff options
Diffstat (limited to 'services/docker/v2ray')
-rw-r--r-- | services/docker/v2ray/Dockerfile | 6 | ||||
-rw-r--r-- | services/docker/v2ray/config.json.template | 29 | ||||
-rwxr-xr-x | services/docker/v2ray/v2ray-wrapper.sh | 17 |
3 files changed, 50 insertions, 2 deletions
diff --git a/services/docker/v2ray/Dockerfile b/services/docker/v2ray/Dockerfile index 250a6b8..9d11474 100644 --- a/services/docker/v2ray/Dockerfile +++ b/services/docker/v2ray/Dockerfile @@ -1,5 +1,7 @@ FROM alpine:edge -RUN apk add --no-cache v2ray +RUN apk add --no-cache tini v2ray -ENTRYPOINT [ "/usr/bin/v2ray" ] +ADD config.json.template v2ray-wrapper.sh /app/ + +CMD [ "tini", "--", "/app/v2ray-wrapper.sh" ] diff --git a/services/docker/v2ray/config.json.template b/services/docker/v2ray/config.json.template new file mode 100644 index 0000000..c10eac2 --- /dev/null +++ b/services/docker/v2ray/config.json.template @@ -0,0 +1,29 @@ +{ + "inbounds": [ + { + "port": 10000, + "listen": "0.0.0.0", + "protocol": "vmess", + "settings": { + "clients": [ + { + "id": "@@CRUPEST_V2RAY_TOKEN@@", + "alterId": 0 + } + ] + }, + "streamSettings": { + "network": "ws", + "wsSettings": { + "path": "/_@@CRUPEST_V2RAY_PATH@@" + } + } + } + ], + "outbounds": [ + { + "protocol": "freedom", + "settings": {} + } + ] +}
\ No newline at end of file diff --git a/services/docker/v2ray/v2ray-wrapper.sh b/services/docker/v2ray/v2ray-wrapper.sh new file mode 100755 index 0000000..3887a0e --- /dev/null +++ b/services/docker/v2ray/v2ray-wrapper.sh @@ -0,0 +1,17 @@ +#!/bin/sh + +set -e + +die() { + echo "$@" >&2 + exit 1 +} + +[ -n "$CRUPEST_V2RAY_TOKEN" ] || die "CRUPEST_V2RAY_TOKEN is not set. It is used as password of v2ray tunnel." +[ -n "$CRUPEST_V2RAY_PATH" ] || die "CRUPEST_V2RAY_PATH is not set. It is used as the http endpoint." + +sed -e "s|@@CRUPEST_V2RAY_TOKEN@@|$CRUPEST_V2RAY_TOKEN|" \ + -e "s|@@CRUPEST_V2RAY_PATH@@|$CRUPEST_V2RAY_PATH|" \ + "/app/config.json.template" > /app/config.json + +exec /usr/bin/v2ray run -c /app/config.json |