From 0d567644c8c924f60f2d01daa8e1dc3dc17febe0 Mon Sep 17 00:00:00 2001 From: Huarch Date: Thu, 30 Apr 2026 15:14:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=AB=AF=E5=8F=A3=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E4=B8=BA8787=EF=BC=8C=E6=96=B0=E5=A2=9E=20.dockerigno?= =?UTF-8?q?re=20=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .dockerignore | 8 +++++++ .opencode/tools/dynamic_http_call.ts | 2 +- Dockerfile | 33 ++++++++++++++++++++++++++++ src/config.ts | 2 +- 4 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 .dockerignore create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..9b6cca3 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,8 @@ +.git +.gitignore +node_modules +.opencode/node_modules +.local.env +dist +.vscode +*.log diff --git a/.opencode/tools/dynamic_http_call.ts b/.opencode/tools/dynamic_http_call.ts index 0a58559..f78e9e6 100644 --- a/.opencode/tools/dynamic_http_call.ts +++ b/.opencode/tools/dynamic_http_call.ts @@ -1,6 +1,6 @@ import { tool } from "@opencode-ai/plugin"; -const internalBaseUrl = process.env.TJWATER_AGENT_INTERNAL_BASE_URL ?? "http://127.0.0.1:8788"; +const internalBaseUrl = process.env.TJWATER_AGENT_INTERNAL_BASE_URL ?? "http://127.0.0.1:8787"; const internalToken = process.env.TJWATER_AGENT_INTERNAL_TOKEN ?? ""; export default tool({ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..b688e46 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,33 @@ +# syntax=docker/dockerfile:1.7 + +FROM oven/bun:1.3.13 AS deps +WORKDIR /app + +COPY package.json bun.lock ./ +COPY .opencode/package.json .opencode/bun.lock ./.opencode/ +RUN bun install --frozen-lockfile + +FROM deps AS build +WORKDIR /app + +COPY tsconfig.json opencode.json README.md ./ +COPY src ./src +COPY .opencode ./.opencode +RUN bun run check + +FROM oven/bun:1.3.13 AS runner +WORKDIR /app + +ENV NODE_ENV=production +ENV HOST=0.0.0.0 +ENV PORT=8787 + +COPY --from=deps /app/node_modules ./node_modules +COPY --from=deps /app/.opencode/node_modules ./.opencode/node_modules +COPY package.json bun.lock ./ +COPY tsconfig.json opencode.json ./ +COPY src ./src +COPY .opencode ./.opencode + +EXPOSE 8787 +CMD ["bun", "src/server.ts"] diff --git a/src/config.ts b/src/config.ts index e8fd3ea..59211c8 100644 --- a/src/config.ts +++ b/src/config.ts @@ -7,7 +7,7 @@ dotenv.config({ path: ".local.env", override: false }); // 统一在启动时解析环境变量,避免业务代码里散落字符串默认值。 const envSchema = z.object({ NODE_ENV: z.string().default("development"), - PORT: z.coerce.number().int().positive().default(8788), + PORT: z.coerce.number().int().positive().default(8787), HOST: z.string().default("0.0.0.0"), LOG_LEVEL: z.string().default("info"), AGENT_INTERNAL_TOKEN: z.string().optional(),