1
0

DockerInit.sh 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #!/bin/sh
  2. set -e
  3. case $1 in
  4. amd64)
  5. ARCH="64"
  6. FNAME="amd64"
  7. ;;
  8. i386)
  9. ARCH="32"
  10. FNAME="i386"
  11. ;;
  12. armv8 | arm64 | aarch64)
  13. ARCH="arm64-v8a"
  14. FNAME="arm64"
  15. ;;
  16. armv7 | arm | arm32)
  17. ARCH="arm32-v7a"
  18. FNAME="arm32"
  19. ;;
  20. armv6)
  21. ARCH="arm32-v6"
  22. FNAME="armv6"
  23. ;;
  24. *)
  25. ARCH="64"
  26. FNAME="amd64"
  27. ;;
  28. esac
  29. MTG_MULTI_VER=$(curl -sfL "https://api.github.com/repos/mhsanaei/mtg-multi/releases/latest" | sed -n 's/.*"tag_name": *"\([^"]*\)".*/\1/p' | head -n 1)
  30. if [ -z "$MTG_MULTI_VER" ]; then
  31. echo "DockerInit: could not resolve the latest mtg-multi release tag" >&2
  32. exit 1
  33. fi
  34. mkdir -p build/bin
  35. cd build/bin
  36. curl -sfLRO "https://github.com/XTLS/Xray-core/releases/download/v26.9.9/Xray-linux-${ARCH}.zip"
  37. unzip "Xray-linux-${ARCH}.zip"
  38. rm -f "Xray-linux-${ARCH}.zip" geoip.dat geosite.dat
  39. mv xray "xray-linux-${FNAME}"
  40. # mtg-multi (MTProto sidecar) ships prebuilt release binaries for every target
  41. # we package, so download and unpack the matching one instead of compiling.
  42. case $FNAME in
  43. i386) MTGARCH="386" ;;
  44. arm32) MTGARCH="armv7" ;;
  45. *) MTGARCH="$FNAME" ;;
  46. esac
  47. MTG_PKG="mtg-multi-${MTG_MULTI_VER#v}-linux-${MTGARCH}"
  48. curl -sfLRO "https://github.com/mhsanaei/mtg-multi/releases/download/${MTG_MULTI_VER}/${MTG_PKG}.tar.gz"
  49. tar -xzf "${MTG_PKG}.tar.gz"
  50. mv "${MTG_PKG}/mtg-multi" "mtg-linux-${FNAME}"
  51. rm -rf "${MTG_PKG}" "${MTG_PKG}.tar.gz"
  52. chmod +x "mtg-linux-${FNAME}"
  53. case $FNAME in
  54. amd64)
  55. curl -sfLRo "tuic-server" "https://github.com/EAimTY/tuic/releases/download/tuic-server-1.0.0/tuic-server-1.0.0-x86_64-unknown-linux-musl"
  56. ;;
  57. arm64)
  58. curl -sfLRo "tuic-server" "https://github.com/EAimTY/tuic/releases/download/tuic-server-1.0.0/tuic-server-1.0.0-aarch64-unknown-linux-musl"
  59. ;;
  60. arm32)
  61. curl -sfLRo "tuic-server" "https://github.com/EAimTY/tuic/releases/download/tuic-server-1.0.0/tuic-server-1.0.0-armv7-unknown-linux-musleabihf"
  62. ;;
  63. i386)
  64. curl -sfLRo "tuic-server" "https://github.com/EAimTY/tuic/releases/download/tuic-server-1.0.0/tuic-server-1.0.0-i686-unknown-linux-musl"
  65. ;;
  66. esac
  67. if [ -f "tuic-server" ]; then
  68. if [ ! -s "tuic-server" ]; then
  69. echo "DockerInit: tuic-server download was empty" >&2
  70. exit 1
  71. fi
  72. chmod +x "tuic-server"
  73. fi
  74. curl -sfLRO https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geoip.dat
  75. curl -sfLRO https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat
  76. curl -sfLRo geoip_IR.dat https://github.com/chocolate4u/Iran-v2ray-rules/releases/latest/download/geoip.dat
  77. curl -sfLRo geosite_IR.dat https://github.com/chocolate4u/Iran-v2ray-rules/releases/latest/download/geosite.dat
  78. curl -sfLRo geoip_RU.dat https://github.com/runetfreedom/russia-v2ray-rules-dat/releases/latest/download/geoip.dat
  79. curl -sfLRo geosite_RU.dat https://github.com/runetfreedom/russia-v2ray-rules-dat/releases/latest/download/geosite.dat
  80. cd ../../