sterepando commited on
Commit
07da0f8
·
verified ·
1 Parent(s): e2c38e7

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +12 -6
Dockerfile CHANGED
@@ -1,14 +1,15 @@
1
  # --- START OF FILE Dockerfile ---
2
- FROM mattermost/golang-bullseye
 
3
 
4
- # Установка зависимостей
5
  RUN apt-get update && apt-get install -y wget unzip git build-essential python3
6
 
7
  # Настройка переменных Android NDK
8
  ENV ANDROID_NDK_HOME /opt/android-ndk
9
  ENV ANDROID_NDK_VERSION r25c
10
 
11
- # Скачивание и распаковка NDK
12
  RUN wget -q https://dl.google.com/android/repository/android-ndk-${ANDROID_NDK_VERSION}-linux.zip && \
13
  unzip -q android-ndk-${ANDROID_NDK_VERSION}-linux.zip && \
14
  mv android-ndk-${ANDROID_NDK_VERSION} /opt/android-ndk && \
@@ -21,9 +22,12 @@ ENV PATH ${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH
21
  WORKDIR /app
22
 
23
  # Инициализация Go модуля
 
 
24
  RUN go mod init vless-client
25
 
26
  # Создание Go кода (Main Wrapper)
 
27
  RUN cat <<EOF > main.go
28
  package main
29
 
@@ -55,7 +59,7 @@ func StartCore(configContent *C.char) *C.char {
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())
@@ -104,11 +108,13 @@ func Base64Decode(str *C.char) *C.char {
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 \
@@ -118,7 +124,7 @@ RUN CGO_ENABLED=1 \
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 ---
 
1
  # --- START OF FILE Dockerfile ---
2
+ # Используем latest, так как xray-core требует свежий Go (>= 1.25.6 в 2026 году)
3
+ FROM golang:latest
4
 
5
+ # Обновляем систему и ставим зависимости
6
  RUN apt-get update && apt-get install -y wget unzip git build-essential python3
7
 
8
  # Настройка переменных Android NDK
9
  ENV ANDROID_NDK_HOME /opt/android-ndk
10
  ENV ANDROID_NDK_VERSION r25c
11
 
12
+ # Скачивание и распаковка NDK (версия r25c стабильна для кросс-компиляции)
13
  RUN wget -q https://dl.google.com/android/repository/android-ndk-${ANDROID_NDK_VERSION}-linux.zip && \
14
  unzip -q android-ndk-${ANDROID_NDK_VERSION}-linux.zip && \
15
  mv android-ndk-${ANDROID_NDK_VERSION} /opt/android-ndk && \
 
22
  WORKDIR /app
23
 
24
  # Инициализация Go модуля
25
+ # Включаем автоматическое обновление тулчейна
26
+ ENV GOTOOLCHAIN=auto
27
  RUN go mod init vless-client
28
 
29
  # Создание Go кода (Main Wrapper)
30
+ # Обертка для запуска Xray ядра из Android
31
  RUN cat <<EOF > main.go
32
  package main
33
 
 
59
 
60
  configStr := C.GoString(configContent)
61
 
62
+ // Декодируем JSON конфиг в формат Xray (Protobuf)
63
  config, err := serial.DecodeJSONConfig(strings.NewReader(configStr))
64
  if err != nil {
65
  return C.CString("Config decode error: " + err.Error())
 
108
  func main() {}
109
  EOF
110
 
111
+ # Скачивание зависимостей
112
+ # Используем @latest для получения самой свежей версии ядра
113
  RUN go get -u github.com/xtls/xray-core@latest
114
  RUN go mod tidy
115
 
116
  # Компиляция Shared Library (.so) для Android ARM64
117
+ # Используем NDK clang для компиляции C-части (cgo)
118
  RUN CGO_ENABLED=1 \
119
  GOOS=android \
120
  GOARCH=arm64 \
 
124
  # Подготовка к раздаче
125
  RUN mkdir /output && mv libvless.so /output/
126
 
127
+ # Запуск простого HTTP сервера для скачивания файла
128
  WORKDIR /output
129
  CMD ["python3", "-m", "http.server", "7860"]
130
  # --- END OF FILE Dockerfile ---