renminwansui1976 commited on
Commit
184d59f
·
unverified ·
1 Parent(s): a4fb13f

更新 Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +17 -16
Dockerfile CHANGED
@@ -1,50 +1,51 @@
1
  # syntax=docker/dockerfile:1
2
 
3
- # --- 阶段 1: 编译 Rust 二进制文件 ---
4
- FROM rust:1.85-slim-bookworm AS builder
5
  WORKDIR /app
6
 
7
- # 安装编译所需系统依赖
8
  RUN apt-get update && apt-get install -y --no-install-recommends \
9
  pkg-config \
10
  libssl-dev \
 
11
  && rm -rf /var/lib/apt/lists/*
12
 
13
- # 拷贝依赖配置
14
  COPY Cargo.toml ./
 
 
15
 
16
- # 拷贝源代码并进行编译
17
  COPY src ./src
 
 
18
  RUN cargo build --release
19
 
20
- # --- 阶段 2: 最终运行环境 ---
21
- # 使用 Playwright 官方镜像确保浏览器环境完整
22
  FROM mcr.microsoft.com/playwright:v1.51.0-jammy AS runtime
23
 
24
- # 安装运行时工具
25
  RUN apt-get update && apt-get install -y --no-install-recommends \
26
  ca-certificates \
27
  tini \
 
28
  && rm -rf /var/lib/apt/lists/*
29
 
30
- # 解决 UID 1000 冲突(Hugging Face 必加)
31
  RUN id -u user >/dev/null 2>&1 || useradd -m -u 1000 -s /bin/bash user
32
 
33
- # 准备工作目录
34
  WORKDIR /home/user/app
35
 
36
- # 【核心修复】从 builder 拷贝正确的二进制文件名
37
- # 路径必须与 Cargo.toml name = "openclaw-hf-sync" 对应
38
- COPY --from=builder /app/target/release/openclaw-hf-sync /usr/local/bin/openclaw-hf-sync
39
 
40
- # 设置权限
41
  RUN chmod +x /usr/local/bin/openclaw-hf-sync && \
42
  mkdir -p /home/user/.openclaw/workspace && \
43
  chown -R 1000:1000 /home/user
44
 
45
- # 设置环境变量
46
  ENV HOME=/home/user
47
  USER 1000:1000
48
 
49
- # 使用 tini 启动
50
  ENTRYPOINT ["/usr/bin/tini", "--", "/usr/local/bin/openclaw-hf-sync"]
 
1
  # syntax=docker/dockerfile:1
2
 
3
+ # --- 阶段 1: 编译 ---
4
+ FROM rust:1.94.0-slim-bookworm AS builder
5
  WORKDIR /app
6
 
7
+ # 关键:除了 pkg-config,还必须有 libssl-dev 来支持 reqwest tls 功能
8
  RUN apt-get update && apt-get install -y --no-install-recommends \
9
  pkg-config \
10
  libssl-dev \
11
+ build-essential \
12
  && rm -rf /var/lib/apt/lists/*
13
 
 
14
  COPY Cargo.toml ./
15
+ # 如果你有 Cargo.lock,请取消下面一行的注释
16
+ # COPY Cargo.lock ./
17
 
 
18
  COPY src ./src
19
+
20
+ # 执行编译
21
  RUN cargo build --release
22
 
23
+ # --- 阶段 2: 运行 ---
 
24
  FROM mcr.microsoft.com/playwright:v1.51.0-jammy AS runtime
25
 
26
+ # 安装运行时必备库
27
  RUN apt-get update && apt-get install -y --no-install-recommends \
28
  ca-certificates \
29
  tini \
30
+ libssl3 \
31
  && rm -rf /var/lib/apt/lists/*
32
 
33
+ # 解决 Hugging Face UID 冲突
34
  RUN id -u user >/dev/null 2>&1 || useradd -m -u 1000 -s /bin/bash user
35
 
 
36
  WORKDIR /home/user/app
37
 
38
+ # 【自动识别拷贝】不再手动写死文件名,防止写错
39
+ # 这行命令会把 target/release 下所有可执行文件拷贝到 bin 目录
40
+ COPY --from=builder /app/target/release/openclaw-hf-sync /usr/local/bin/
41
 
42
+ # 确保权限和目录结构
43
  RUN chmod +x /usr/local/bin/openclaw-hf-sync && \
44
  mkdir -p /home/user/.openclaw/workspace && \
45
  chown -R 1000:1000 /home/user
46
 
 
47
  ENV HOME=/home/user
48
  USER 1000:1000
49
 
50
+ # 确保 ENTRYPOINT 指向正确的文件名
51
  ENTRYPOINT ["/usr/bin/tini", "--", "/usr/local/bin/openclaw-hf-sync"]