- 新增 src/version.ts: 从文件读取版本(APP_VERSION_FILE → /app/VERSION)
- main.ts 改为 import { VERSION } from './version'(不再读 package.json)
- Dockerfile 构建时 COPY VERSION 到 /app/VERSION
- 新增 build.sh: 一键读取VERSION→构建→打标签
- docker-compose.yml: 清理重复/损坏内容, 添加 pansou network-alias
- package.json version 设为 0.0.0 (不再作为真相来源)
- 清理 .env 和 compose 注释中的过期版本号
28 lines
733 B
TypeScript
28 lines
733 B
TypeScript
import fs from 'fs';
|
|
|
|
/**
|
|
* Read version from file. Order:
|
|
* 1. APP_VERSION_FILE env var (e.g. /data/VERSION from mounted volume)
|
|
* 2. /app/VERSION (built into Docker image)
|
|
* 3. Fallback hardcoded default
|
|
*/
|
|
function readVersionFromFile(): string {
|
|
const paths = [
|
|
process.env.APP_VERSION_FILE, // from env
|
|
'/app/VERSION', // built-in fallback
|
|
].filter(Boolean) as string[];
|
|
|
|
for (const p of paths) {
|
|
try {
|
|
const content = fs.readFileSync(p, 'utf-8').trim();
|
|
if (content) return content;
|
|
} catch {
|
|
// file doesn't exist, try next
|
|
}
|
|
}
|
|
|
|
return '0.0.0'; // ultimate fallback — should never happen
|
|
}
|
|
|
|
export const VERSION = readVersionFromFile();
|