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

更新 Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +11 -36
Dockerfile CHANGED
@@ -1,47 +1,22 @@
1
  # syntax=docker/dockerfile:1
2
 
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
13
 
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"]
 
 
 
1
  # syntax=docker/dockerfile:1
2
 
3
+ FROM rust:1.77-bookworm AS builder
4
+ WORKDIR /app
 
 
 
 
 
5
  COPY Cargo.toml ./
6
  COPY src ./src
7
  RUN cargo build --release
8
 
9
+ FROM mcr.microsoft.com/playwright:v1.51.0-jammy AS runtime
 
 
10
 
11
+ RUN apt-get update \
12
+ && apt-get install -y --no-install-recommends ca-certificates tini \
 
 
 
 
13
  && rm -rf /var/lib/apt/lists/*
14
 
15
+ RUN useradd -m -u 1000 -s /bin/bash user
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
 
17
+ WORKDIR /home/user
18
+ COPY --from=builder /app/target/release/openclaw-entrypoint /usr/local/bin/openclaw-entrypoint
19
 
20
+ USER 1000:1000
21
+ ENTRYPOINT ["/usr/bin/tini", "--", "/usr/local/bin/openclaw-entrypoint"]
22
+ CMD ["bash"]