007 / Dockerfile
dfghfhgfg's picture
Update Dockerfile
fa0cd64 verified
# ==========================
# 构建阶段
# ==========================
FROM rust:1.90.0-trixie AS builder
WORKDIR /build
COPY . .
RUN apt-get update && apt-get install -y gcc && \
gcc -std=c99 -shared -fPIC -o libsymbols.so symbols.c && \
cargo build --release
# ==========================
# 运行阶段(Hugging Face)
# ==========================
FROM debian:trixie-slim
WORKDIR /app
# 安装必要依赖
RUN apt-get update && apt-get install -y --no-install-recommends \
nodejs npm ca-certificates wget patchelf xz-utils zstd binutils libc6 libgcc1 libstdc++6 \
&& rm -rf /var/lib/apt/lists/*
# ---------- 自动提取 wrapper.node ----------
RUN wget -O linuxqq.deb https://dldir1v6.qq.com/qqfile/qq/QQNT/Linux/QQ_3.2.19_250904_amd64_01.deb && \
ar x linuxqq.deb && \
DATA_TAR=$(ls data.tar.*) && \
echo "Extracting $DATA_TAR ..." && \
tar --use-compress-program=unzstd -xvf "$DATA_TAR" ./opt/QQ/resources/app/wrapper.node -O > wrapper.node 2>/dev/null || \
tar -xJf "$DATA_TAR" ./opt/QQ/resources/app/wrapper.node -O > wrapper.node && \
rm -f linuxqq.deb data.tar.* control.tar.* debian-binary && \
patchelf \
--remove-needed libbugly.so \
--remove-needed libX11.so.6 \
--remove-needed libX11-xcb.so.1 \
--remove-needed libXext.so.6 \
--remove-needed libvips-cpp.so.42 \
--add-needed libstdc++.so.6 \
--add-needed libsymbols.so \
wrapper.node
# ---------- 复制构建产物 ----------
COPY --from=builder /build/libsymbols.so /usr/local/lib/libsymbols.so
COPY --from=builder /build/target/release/sign /usr/local/bin/sign
COPY sign.config.toml /app/
# ---------- 配置 ----------
RUN sed -i 's/127\.0\.0\.1/0.0.0.0/g' /app/sign.config.toml || true && \
sed -i 's/8080/7860/g' /app/sign.config.toml || true && \
ldconfig
EXPOSE 7860
ENTRYPOINT ["/bin/sh", "-c", "echo '🚀 Sign Server started successfully on 0.0.0.0:7860 with patched wrapper.node'; exec /usr/local/bin/sign"]