renminwansui1976 commited on
Commit
00411f6
·
unverified ·
1 Parent(s): 99d192d

更新 Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +22 -11
Dockerfile CHANGED
@@ -3,6 +3,10 @@
3
  FROM rust:1.94.0-slim AS builder
4
  WORKDIR /build
5
 
 
 
 
 
6
  COPY Cargo.toml ./
7
  COPY src ./src
8
  RUN cargo build --release
@@ -10,27 +14,34 @@ RUN cargo build --release
10
  FROM node:20-bookworm-slim AS runtime
11
 
12
  ENV DEBIAN_FRONTEND=noninteractive
 
 
13
  RUN apt-get update && apt-get install -y --no-install-recommends \
14
- ca-certificates curl unzip \
15
  libnss3 libatk-bridge2.0-0 libxkbcommon0 libxcomposite1 libxdamage1 libxfixes3 \
16
  libxrandr2 libgbm1 libasound2 libatk1.0-0 libcups2 libdrm2 libdbus-1-3 libgtk-3-0 \
17
  libx11-xcb1 libxshmfence1 libxext6 libx11-6 fonts-liberation \
18
  && rm -rf /var/lib/apt/lists/*
19
 
20
- RUN useradd -m -u 1000 -s /bin/bash user
 
 
 
 
 
 
 
 
 
 
 
21
  USER user
22
  WORKDIR /home/user/app
23
 
24
  ENV HOME=/home/user
25
  ENV PLAYWRIGHT_BROWSERS_PATH=/home/user/.cache/ms-playwright
26
- RUN npx playwright install chromium
27
 
28
- USER root
29
- COPY --from=builder /build/target/release/openclaw-hf-sync /usr/local/bin/openclaw-hf-sync
30
- RUN chmod +x /usr/local/bin/openclaw-hf-sync \
31
- && mkdir -p /home/user/.openclaw/workspace /home/user/app \
32
- && chown -R user:user /home/user
33
 
34
- USER user
35
- WORKDIR /home/user/app
36
- ENTRYPOINT ["/usr/local/bin/openclaw-hf-sync"]
 
3
  FROM rust:1.94.0-slim AS builder
4
  WORKDIR /build
5
 
6
+ RUN apt-get update && apt-get install -y --no-install-recommends \
7
+ pkg-config libssl-dev \
8
+ && rm -rf /var/lib/apt/lists/*
9
+
10
  COPY Cargo.toml ./
11
  COPY src ./src
12
  RUN cargo build --release
 
14
  FROM node:20-bookworm-slim AS runtime
15
 
16
  ENV DEBIAN_FRONTEND=noninteractive
17
+
18
+ # 1. 安装系统底层依赖
19
  RUN apt-get update && apt-get install -y --no-install-recommends \
20
+ ca-certificates curl unzip libssl3 \
21
  libnss3 libatk-bridge2.0-0 libxkbcommon0 libxcomposite1 libxdamage1 libxfixes3 \
22
  libxrandr2 libgbm1 libasound2 libatk1.0-0 libcups2 libdrm2 libdbus-1-3 libgtk-3-0 \
23
  libx11-xcb1 libxshmfence1 libxext6 libx11-6 fonts-liberation \
24
  && rm -rf /var/lib/apt/lists/*
25
 
26
+ # 2. 兼容性处理用户(避免 UID 1000 冲突导致 exit code 4)
27
+ RUN id -u user >/dev/null 2>&1 || useradd -m -u 1000 -s /bin/bash user
28
+
29
+ # 3. 准备目录并设置权限
30
+ RUN mkdir -p /home/user/.openclaw/workspace /home/user/app /home/user/.cache \
31
+ && chown -R 1000:1000 /home/user
32
+
33
+ # 4. 拷贝 Rust 编译产物
34
+ COPY --from=builder /build/target/release/openclaw-hf-sync /usr/local/bin/openclaw-hf-sync
35
+ RUN chmod +x /usr/local/bin/openclaw-hf-sync
36
+
37
+ # 5. 切换到用户权限后安装 Playwright
38
  USER user
39
  WORKDIR /home/user/app
40
 
41
  ENV HOME=/home/user
42
  ENV PLAYWRIGHT_BROWSERS_PATH=/home/user/.cache/ms-playwright
43
+ ENV PATH="/home/user/.npm-global/bin:${PATH}"
44
 
45
+ RUN npx playwright install chromium
 
 
 
 
46
 
47
+ ENTRYPOINT ["/usr/local/bin/openclaw-hf-sync"]