diff --git a/Dockerfile b/Dockerfile index a1c678f..95023b9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -22,10 +22,6 @@ LABEL description="Docker image for AIClient2API server" # 安装必要的系统工具(tar 用于更新功能,git 用于版本检查) RUN apk add --no-cache tar git -# 从 sidecar 构建阶段复制二进制 -COPY --from=sidecar-builder /build/tls-sidecar /app/tls-sidecar/tls-sidecar -RUN chmod +x /app/tls-sidecar/tls-sidecar - # 设置工作目录 WORKDIR /app @@ -40,6 +36,11 @@ RUN npm install # 复制源代码 COPY . . +# 从 sidecar 构建阶段复制二进制 +# 放在 COPY . . 之后是为了确保不会被本地的空目录或旧二进制文件覆盖 +COPY --from=sidecar-builder /build/tls-sidecar /app/tls-sidecar/tls-sidecar +RUN chmod +x /app/tls-sidecar/tls-sidecar + USER root # 创建目录用于存储日志和系统提示文件 @@ -55,4 +56,4 @@ HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \ # 设置启动命令 # 使用默认配置启动服务器,支持通过环境变量配置 # 通过环境变量传递参数,例如:docker run -e ARGS="--api-key mykey --port 8080" ... -CMD ["sh", "-c", "node src/core/master.js $ARGS"] \ No newline at end of file +CMD ["sh", "-c", "node src/core/master.js $ARGS"] diff --git a/VERSION b/VERSION index 3f7f1ca..efa8f5a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.10.3.2 +2.10.3.3 diff --git a/src/utils/tls-sidecar.js b/src/utils/tls-sidecar.js index 53f064f..9a6f879 100644 --- a/src/utils/tls-sidecar.js +++ b/src/utils/tls-sidecar.js @@ -60,6 +60,15 @@ class TLSSidecar { logger.info(`[TLS-Sidecar] Starting: ${binaryPath} on port ${this.port}`); try { + // 确保 Linux/macOS 下有执行权限 + if (process.platform !== 'win32') { + try { + fs.chmodSync(binaryPath, 0o755); + } catch (e) { + logger.warn(`[TLS-Sidecar] Failed to chmod binary: ${e.message}`); + } + } + this.process = spawn(binaryPath, [], { env: { ...process.env, @@ -211,7 +220,7 @@ class TLSSidecar { for (const p of candidates) { try { - if (fs.existsSync(p)) { + if (fs.existsSync(p) && fs.statSync(p).isFile()) { return p; } } catch { /* ignore */ }