Browse Source

增加 dockerfile

liuyuqi-cnb 1 week ago
parent
commit
a72aec4a4a
2 changed files with 55 additions and 0 deletions
  1. 36 0
      Dockerfile
  2. 19 0
      docker-compose.yml

+ 36 - 0
Dockerfile

@@ -0,0 +1,36 @@
+FROM node:22-trixie as builder
+
+RUN apt-get update && \
+    DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends git curl jq && \
+    apt-get clean && \
+    rm -rf /var/lib/apt/lists/* /var/cache/apt/archives/*
+
+# 复制项目配置文件
+COPY ui/package.json ./ui/package.json
+COPY package.json pnpm-lock.yaml pnpm-workspace.yaml .npmrc ./
+COPY scripts ./scripts
+COPY patches ./patches
+
+# 安装项目依赖
+RUN pnpm install --frozen-lockfile
+
+# 复制所有源码
+COPY . .
+
+# 构建项目
+RUN OPENCLAW_A2UI_SKIP_MISSING=1 pnpm build
+ENV OPENCLAW_PREFER_PNPM=1
+RUN pnpm ui:build
+
+# 生产环境镜像
+FROM node:22-trixie-slim
+WORKDIR /app
+COPY --from=builder /app /app
+
+ENV NODE_ENV=production
+RUN chown -R root:root /app
+RUN rm -rf /app/extensions/feishu
+EXPOSE 18789
+USER root
+# VOLUME [ "/data" ]
+CMD ["node", "dist/index.js", "gateway"]

+ 19 - 0
docker-compose.yml

@@ -0,0 +1,19 @@
+version: '3.8'
+services:
+  openclaw:
+    image: jianboy/openclaw:latest
+    container_name: openclaw-prod
+    restart: unless-stopped
+    ports:
+      - "18789:18789"
+    env_file:
+      - ./.env
+    environment:
+      TZ: Asia/Shanghai
+      HOME: /root
+      TERM: xterm-256color
+    volumes:
+      - ./openclaw-data:/root
+      - ./openclaw-logs:/tmp/openclaw
+    command: ["node", "dist/index.js", "gateway", "--port", "18789"]
+