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

更新 Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +12 -18
Dockerfile CHANGED
@@ -1,45 +1,40 @@
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
@@ -47,5 +42,4 @@ RUN chmod +x /usr/local/bin/openclaw-hf-sync && \
47
  ENV HOME=/home/user
48
  USER 1000:1000
49
 
50
- # 确保 ENTRYPOINT 指向正确的文件名
51
  ENTRYPOINT ["/usr/bin/tini", "--", "/usr/local/bin/openclaw-hf-sync"]
 
1
  # syntax=docker/dockerfile:1
2
 
 
3
  FROM rust:1.94.0-slim-bookworm AS builder
4
  WORKDIR /app
5
 
6
+ # 安装完整编译工具链
7
  RUN apt-get update && apt-get install -y --no-install-recommends \
8
+ pkg-config libssl-dev build-essential \
 
 
9
  && rm -rf /var/lib/apt/lists/*
10
 
11
+ # 1. 先拷贝 Cargo.toml
12
  COPY Cargo.toml ./
13
+ # 如果你有 Cargo.lock,取消下面一行的注释(这能极大提高构建成功率)
14
  # COPY Cargo.lock ./
15
 
16
+ # 2. 拷贝代码
17
  COPY src ./src
18
 
19
+ # 3. 编译并显示详细错误(如果失败,请查看 Build Logs 里的红色文字)
20
+ RUN cargo build --release || (echo "编译失败!请检查下方代码错误:" && cargo build --release --color never)
21
 
22
+ # --- 运行阶段 ---
23
  FROM mcr.microsoft.com/playwright:v1.51.0-jammy AS runtime
24
 
 
25
  RUN apt-get update && apt-get install -y --no-install-recommends \
26
+ ca-certificates tini libssl3 \
 
 
27
  && rm -rf /var/lib/apt/lists/*
28
 
29
+ # 兼容性处理用户
30
  RUN id -u user >/dev/null 2>&1 || useradd -m -u 1000 -s /bin/bash user
31
 
32
  WORKDIR /home/user/app
33
 
34
+ # 拷贝二进制文件
 
35
  COPY --from=builder /app/target/release/openclaw-hf-sync /usr/local/bin/
36
 
37
+ # 权限设置
38
  RUN chmod +x /usr/local/bin/openclaw-hf-sync && \
39
  mkdir -p /home/user/.openclaw/workspace && \
40
  chown -R 1000:1000 /home/user
 
42
  ENV HOME=/home/user
43
  USER 1000:1000
44
 
 
45
  ENTRYPOINT ["/usr/bin/tini", "--", "/usr/local/bin/openclaw-hf-sync"]