This commit is contained in:
2025-10-16 03:27:40 +08:00
parent 5a3d11c6bc
commit da0ebde816
6 changed files with 49 additions and 4 deletions

View File

@@ -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
# 构建(可选)

View File

@@ -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

View File

@@ -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": [],

View File

@@ -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": [],

View File

@@ -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'

View File

@@ -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)