sterepando commited on
Commit
62d1865
·
verified ·
1 Parent(s): f7b0db6

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +9 -14
Dockerfile CHANGED
@@ -1,5 +1,5 @@
1
  # --- START OF FILE Dockerfile ---
2
- FROM golang:1.21-bullseye
3
 
4
  # Установка зависимостей
5
  RUN apt-get update && apt-get install -y wget unzip git build-essential python3
@@ -24,18 +24,15 @@ WORKDIR /app
24
  RUN go mod init vless-client
25
 
26
  # Создание Go кода (Main Wrapper)
27
- # Мы используем Xray-Core как библиотеку для поддержки Reality/VLESS/XTLS
28
  RUN cat <<EOF > main.go
29
  package main
30
 
31
  import "C"
32
 
33
  import (
34
- "context"
35
- "fmt"
36
  "sync"
37
- "encoding/base64"
38
- "strings"
39
 
40
  "github.com/xtls/xray-core/core"
41
  "github.com/xtls/xray-core/infra/conf/serial"
@@ -58,7 +55,7 @@ func StartCore(configContent *C.char) *C.char {
58
 
59
  configStr := C.GoString(configContent)
60
 
61
- // Конвертация JSON конфига в Protobuf для ядра
62
  config, err := serial.DecodeJSONConfig(strings.NewReader(configStr))
63
  if err != nil {
64
  return C.CString("Config decode error: " + err.Error())
@@ -74,7 +71,7 @@ func StartCore(configContent *C.char) *C.char {
74
  }
75
 
76
  instance = coreInstance
77
- return C.CString("") // Пустая строка = успех
78
  }
79
 
80
  //export StopCore
@@ -91,7 +88,6 @@ func StopCore() {
91
  //export Base64Decode
92
  func Base64Decode(str *C.char) *C.char {
93
  data := C.GoString(str)
94
- // Fix padding
95
  if l := len(data) % 4; l > 0 {
96
  data += strings.Repeat("=", 4-l)
97
  }
@@ -108,22 +104,21 @@ func Base64Decode(str *C.char) *C.char {
108
  func main() {}
109
  EOF
110
 
111
- # Скачивание зависимостей
112
- RUN go get github.com/xtls/xray-core
113
  RUN go mod tidy
114
 
115
  # Компиляция Shared Library (.so) для Android ARM64
116
- # CC указывает на C-компилятор из NDK
117
  RUN CGO_ENABLED=1 \
118
  GOOS=android \
119
  GOARCH=arm64 \
120
  CC=aarch64-linux-android33-clang \
121
  go build -buildmode=c-shared -o libvless.so main.go
122
 
123
- # Подготовка к раздаче файла
124
  RUN mkdir /output && mv libvless.so /output/
125
 
126
- # Запуск простого HTTP сервера чтобы отдать файл
127
  WORKDIR /output
128
  CMD ["python3", "-m", "http.server", "7860"]
129
  # --- END OF FILE Dockerfile ---
 
1
  # --- START OF FILE Dockerfile ---
2
+ FROM golang:1.24-bullseye
3
 
4
  # Установка зависимостей
5
  RUN apt-get update && apt-get install -y wget unzip git build-essential python3
 
24
  RUN go mod init vless-client
25
 
26
  # Создание Go кода (Main Wrapper)
 
27
  RUN cat <<EOF > main.go
28
  package main
29
 
30
  import "C"
31
 
32
  import (
33
+ "encoding/base64"
34
+ "strings"
35
  "sync"
 
 
36
 
37
  "github.com/xtls/xray-core/core"
38
  "github.com/xtls/xray-core/infra/conf/serial"
 
55
 
56
  configStr := C.GoString(configContent)
57
 
58
+ // Декодируем JSON конфиг в формат, понятный ядру
59
  config, err := serial.DecodeJSONConfig(strings.NewReader(configStr))
60
  if err != nil {
61
  return C.CString("Config decode error: " + err.Error())
 
71
  }
72
 
73
  instance = coreInstance
74
+ return C.CString("")
75
  }
76
 
77
  //export StopCore
 
88
  //export Base64Decode
89
  func Base64Decode(str *C.char) *C.char {
90
  data := C.GoString(str)
 
91
  if l := len(data) % 4; l > 0 {
92
  data += strings.Repeat("=", 4-l)
93
  }
 
104
  func main() {}
105
  EOF
106
 
107
+ # Скачивание зависимостей (используем latest для совместимости)
108
+ RUN go get -u github.com/xtls/xray-core@latest
109
  RUN go mod tidy
110
 
111
  # Компиляция Shared Library (.so) для Android ARM64
 
112
  RUN CGO_ENABLED=1 \
113
  GOOS=android \
114
  GOARCH=arm64 \
115
  CC=aarch64-linux-android33-clang \
116
  go build -buildmode=c-shared -o libvless.so main.go
117
 
118
+ # Подготовка к раздаче
119
  RUN mkdir /output && mv libvless.so /output/
120
 
121
+ # Запуск сервера
122
  WORKDIR /output
123
  CMD ["python3", "-m", "http.server", "7860"]
124
  # --- END OF FILE Dockerfile ---