From da0ebde816d4ddd15fed16f39221478d37558d66 Mon Sep 17 00:00:00 2001 From: abearxiong Date: Thu, 16 Oct 2025 03:27:40 +0800 Subject: [PATCH] update --- Dockerfile | 3 +++ compose.yml | 7 ++++--- package.json | 4 +++- server/package.json | 1 + server/src/index.ts | 1 + server/src/test/check-code.ts | 37 +++++++++++++++++++++++++++++++++++ 6 files changed, 49 insertions(+), 4 deletions(-) create mode 100644 server/src/test/check-code.ts diff --git a/Dockerfile b/Dockerfile index a9e652a..3ffa645 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,6 +9,9 @@ COPY server/package.json ./ # 复制源码 COPY ./server ./ +COPY ./server/code ./code-backup + +COPY ./web/dist ./demo/root/light-code-center RUN bun install # 构建(可选) diff --git a/compose.yml b/compose.yml index c30c37a..e614808 100644 --- a/compose.yml +++ b/compose.yml @@ -1,11 +1,12 @@ services: light-code: - image: 'kevisual/light-code:latest' + # image: 'kevisual/light-code:latest' + image: 'crpi-92z54xpbq1hzmdcz.cn-hangzhou.personal.cr.aliyuncs.com/kevisual/light-code:latest' user: root volumes: - ./data/code:/app/code ports: - - '3005:4005' + - '6005:4005' restart: always filebrowser: @@ -17,7 +18,7 @@ services: - ./data/config:/config restart: unless-stopped ports: - - '8080:80' + - '6006:80' environment: - PUID=1000 - PGID=1000 \ No newline at end of file diff --git a/package.json b/package.json index 14ce531..69d092d 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,9 @@ "dev": "pnpm run dev:server & pnpm run dev:web", "dev:server": "cd server && pnpm dev", "dev:web": "cd web && pnpm dev", - "docker:build": "docker build -t kevisual/light-code .", + "docker:build": "docker build -t kevisual/light-code:latest .", + "docker:aliyun": "docker build -t crpi-92z54xpbq1hzmdcz.cn-hangzhou.personal.cr.aliyuncs.com/kevisual/light-code .", + "docker:dev": "docker compose up", "build": "turbo build" }, "keywords": [], diff --git a/server/package.json b/server/package.json index f516205..abc6c5c 100644 --- a/server/package.json +++ b/server/package.json @@ -6,6 +6,7 @@ "scripts": { "dev": "bun run --watch --hot src/index.ts", "start": "bun run src/index.ts", + "prestart": "bun src/test/check-code.ts", "build": "NODE_ENV=production bun bun.config.ts" }, "keywords": [], diff --git a/server/src/index.ts b/server/src/index.ts index 1787d1c..a533ad0 100644 --- a/server/src/index.ts +++ b/server/src/index.ts @@ -3,6 +3,7 @@ import { proxyRoute, initProxy } from '@kevisual/local-proxy/proxy.ts'; initProxy({ pagesDir: './demo', watch: true, + home: '/root/light-code-center', }); import { app } from './app.ts' diff --git a/server/src/test/check-code.ts b/server/src/test/check-code.ts new file mode 100644 index 0000000..0e5b14b --- /dev/null +++ b/server/src/test/check-code.ts @@ -0,0 +1,37 @@ +import path from 'node:path' +import fs from 'node:fs' +const main = async () => { + const root = path.join(process.cwd(), 'code'); + const buckupRoot = path.join(process.cwd(), 'code-backup'); + + // 如果 code 文件夹不存在或文件夹列表长度等于0,则从 code-backup 复制 + let shouldCopy = false; + + if (!fs.existsSync(root)) { + console.log('code 文件夹不存在'); + shouldCopy = true; + } else { + // 检查 code 文件夹下的文件夹列表 + const items = await fs.promises.readdir(root, { withFileTypes: true }); + const folders = items.filter(item => item.isDirectory()); + + if (folders.length === 0) { + console.log('code 文件夹存在但为空(无子文件夹)'); + shouldCopy = true; + } else { + console.log(`code 文件夹已存在且包含 ${folders.length} 个子文件夹`); + } + } + + if (shouldCopy) { + if (fs.existsSync(buckupRoot)) { + console.log('正在从 code-backup 复制...'); + await fs.promises.cp(buckupRoot, root, { recursive: true }); + console.log('复制完成!'); + } else { + console.log('code-backup 文件夹不存在,无法复制'); + } + } +} + +main().catch(console.error) \ No newline at end of file