Fix: Versionsanzeige im Footer - Git-Tags während Docker-Build verfügbar machen und Fallbacks hinzufügen
This commit is contained in:
@@ -14,9 +14,9 @@ build
|
||||
.env.local
|
||||
.env*.local
|
||||
|
||||
# Git
|
||||
.git
|
||||
.gitignore
|
||||
# Git (NICHT ausschließen - wird für Version-Extraktion benötigt!)
|
||||
# .git wird benötigt für: git describe --tags --always
|
||||
# .gitignore
|
||||
|
||||
# IDE
|
||||
.vscode
|
||||
|
||||
@@ -23,11 +23,13 @@ RUN apk add --no-cache git
|
||||
COPY --from=deps /app/node_modules ./node_modules
|
||||
COPY . .
|
||||
|
||||
# Extract version: use build arg if provided, otherwise get from git
|
||||
# Extract version: use build arg if provided, otherwise get from git, fallback to package.json
|
||||
RUN if [ -n "$APP_VERSION" ]; then \
|
||||
echo "$APP_VERSION" > /tmp/version.txt; \
|
||||
else \
|
||||
git describe --tags --always 2>/dev/null > /tmp/version.txt || echo "unknown" > /tmp/version.txt; \
|
||||
(git describe --tags --always 2>/dev/null || \
|
||||
(grep -o '"version": "[^"]*"' package.json 2>/dev/null | cut -d'"' -f4 | sed 's/^/v/') || \
|
||||
echo "dev") > /tmp/version.txt; \
|
||||
fi && \
|
||||
echo "Building version: $(cat /tmp/version.txt)"
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ export async function GET() {
|
||||
for (const versionFilePath of versionPaths) {
|
||||
if (existsSync(versionFilePath)) {
|
||||
const version = readFileSync(versionFilePath, 'utf-8').trim();
|
||||
if (version && version !== 'unknown') {
|
||||
if (version && version !== 'unknown' && version !== '') {
|
||||
return NextResponse.json({ version });
|
||||
}
|
||||
}
|
||||
@@ -26,6 +26,19 @@ export async function GET() {
|
||||
return NextResponse.json({ version: process.env.APP_VERSION });
|
||||
}
|
||||
|
||||
// Fallback: check package.json
|
||||
try {
|
||||
const packageJsonPath = join(process.cwd(), 'package.json');
|
||||
if (existsSync(packageJsonPath)) {
|
||||
const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
|
||||
if (packageJson.version) {
|
||||
return NextResponse.json({ version: `v${packageJson.version}` });
|
||||
}
|
||||
}
|
||||
} catch {
|
||||
// Ignore package.json read errors
|
||||
}
|
||||
|
||||
// Fallback: try to get from git (local development)
|
||||
let version = 'dev';
|
||||
|
||||
|
||||
Reference in New Issue
Block a user