mirror of
https://github.com/Cheviiot/Sphera.git
synced 2026-08-03 15:57:21 +00:00
Polish store and v2rayA app for release
- Redesign store README as a minimal storefront - Refine app README and remove technical clutter - Update Sphera icon with refined vector styling - Use original v2rayA app icon - Use raw GitHub URL for v2rayA icon per Umbrel Community Store spec - Add custom v2rayA image build for UmbrelOS nf_tables iptables
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
FROM mzz2017/v2raya:v2.4.9@sha256:47f9acf99b23f19d804ab15303e8a7df7f66913d14c5ce0b39936d036dbb8500
|
||||
|
||||
USER root
|
||||
|
||||
# v2rayA inside Docker hard-codes "iptables-legacy" and "ip6tables-legacy".
|
||||
# UmbrelOS ships iptables 1.8.x with nf_tables backend, and v2rayA's redirect
|
||||
# mode emits REDIRECT rules without a protocol (-p), which both backends reject.
|
||||
# Replace the legacy binaries with small wrappers that forward to the modern
|
||||
# iptables and patch the problematic REDIRECT rule on the fly.
|
||||
RUN set -eux; \
|
||||
rm -f /sbin/iptables-legacy /usr/sbin/iptables-legacy \
|
||||
/sbin/ip6tables-legacy /usr/sbin/ip6tables-legacy; \
|
||||
printf '%s\n' \
|
||||
'#!/bin/sh' \
|
||||
'has_redirect=0' \
|
||||
'has_proto=0' \
|
||||
'for arg in "$@"; do' \
|
||||
' case "$arg" in' \
|
||||
' -j) next_is_target=1 ;;' \
|
||||
' REDIRECT) if [ "$next_is_target" = 1 ]; then has_redirect=1; fi; next_is_target=0 ;;' \
|
||||
' -p) has_proto=1 ;;' \
|
||||
' esac' \
|
||||
'done' \
|
||||
'if [ "$has_redirect" = 1 ] && [ "$has_proto" = 0 ]; then' \
|
||||
' new_args=""' \
|
||||
' inserted=0' \
|
||||
' for arg in "$@"; do' \
|
||||
' if [ "$inserted" = 0 ] && [ "$arg" = "-j" ]; then' \
|
||||
' new_args="$new_args -p tcp"' \
|
||||
' inserted=1' \
|
||||
' fi' \
|
||||
' new_args="$new_args $arg"' \
|
||||
' done' \
|
||||
' set -- $new_args' \
|
||||
'fi' \
|
||||
'exec iptables "$@"' \
|
||||
> /sbin/iptables-legacy; \
|
||||
printf '%s\n' \
|
||||
'#!/bin/sh' \
|
||||
'has_redirect=0' \
|
||||
'has_proto=0' \
|
||||
'for arg in "$@"; do' \
|
||||
' case "$arg" in' \
|
||||
' -j) next_is_target=1 ;;' \
|
||||
' REDIRECT) if [ "$next_is_target" = 1 ]; then has_redirect=1; fi; next_is_target=0 ;;' \
|
||||
' -p) has_proto=1 ;;' \
|
||||
' esac' \
|
||||
'done' \
|
||||
'if [ "$has_redirect" = 1 ] && [ "$has_proto" = 0 ]; then' \
|
||||
' new_args=""' \
|
||||
' inserted=0' \
|
||||
' for arg in "$@"; do' \
|
||||
' if [ "$inserted" = 0 ] && [ "$arg" = "-j" ]; then' \
|
||||
' new_args="$new_args -p tcp"' \
|
||||
' inserted=1' \
|
||||
' fi' \
|
||||
' new_args="$new_args $arg"' \
|
||||
' done' \
|
||||
' set -- $new_args' \
|
||||
'fi' \
|
||||
'exec ip6tables "$@"' \
|
||||
> /sbin/ip6tables-legacy; \
|
||||
chmod +x /sbin/iptables-legacy /sbin/ip6tables-legacy; \
|
||||
ln -s /sbin/iptables-legacy /usr/sbin/iptables-legacy 2>/dev/null || true; \
|
||||
ln -s /sbin/ip6tables-legacy /usr/sbin/ip6tables-legacy 2>/dev/null || true
|
||||
|
||||
ENTRYPOINT ["v2raya"]
|
||||
Reference in New Issue
Block a user