feat: 兼容 armv7 docker 镜像构建

This commit is contained in:
Baobhan Sith
2025-05-02 20:53:04 +08:00
parent 4b2978346e
commit 2abc81dbc7
5 changed files with 30 additions and 24 deletions
+11 -12
View File
@@ -2029,6 +2029,15 @@
"node": ">=10.0.0"
}
},
"node_modules/@xterm/addon-fit": {
"version": "0.10.0",
"resolved": "https://registry.npmjs.org/@xterm/addon-fit/-/addon-fit-0.10.0.tgz",
"integrity": "sha512-UFYkDm4HUahf2lnEyHvio51TNGiLK66mqP2JoATy7hRZeXaGMRDr00JiSF7m63vR5WKATF605yEggJKsw0JpMQ==",
"license": "MIT",
"peerDependencies": {
"@xterm/xterm": "^5.0.0"
}
},
"node_modules/@xterm/addon-search": {
"version": "0.15.0",
"resolved": "https://registry.npmjs.org/@xterm/addon-search/-/addon-search-0.15.0.tgz",
@@ -8638,16 +8647,6 @@
"deprecated": "This package is now deprecated. Move to @xterm/xterm instead.",
"license": "MIT"
},
"node_modules/xterm-addon-fit": {
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/xterm-addon-fit/-/xterm-addon-fit-0.8.0.tgz",
"integrity": "sha512-yj3Np7XlvxxhYF/EJ7p3KHaMt6OdwQ+HDu573Vx1lRXsVxOcnVJs51RgjZOouIZOczTsskaS+CpXspK81/DLqw==",
"deprecated": "This package is now deprecated. Move to @xterm/addon-fit instead.",
"license": "MIT",
"peerDependencies": {
"xterm": "^5.0.0"
}
},
"node_modules/xterm-addon-web-links": {
"version": "0.9.0",
"resolved": "https://registry.npmjs.org/xterm-addon-web-links/-/xterm-addon-web-links-0.9.0.tgz",
@@ -8832,11 +8831,12 @@
},
"packages/frontend": {
"name": "@nexus-terminal/frontend",
"version": "0.2",
"version": "0.2.2",
"dependencies": {
"@fortawesome/fontawesome-free": "^6.7.2",
"@hcaptcha/vue3-hcaptcha": "^1.3.0",
"@tailwindcss/vite": "^4.1.4",
"@xterm/addon-fit": "^0.10.0",
"@xterm/addon-search": "^0.15.0",
"axios": "^1.8.4",
"date-fns": "^4.1.0",
@@ -8853,7 +8853,6 @@
"vue3-recaptcha2": "^1.8.0",
"vuedraggable": "^4.1.0",
"xterm": "^5.3.0",
"xterm-addon-fit": "^0.8.0",
"xterm-addon-web-links": "^0.9.0"
},
"devDependencies": {
+9 -6
View File
@@ -1,16 +1,18 @@
FROM node:20-alpine AS builder
FROM node:20 AS builder
WORKDIR /app
COPY package.json package-lock.json* ./
# Copy root package files including the lock file
COPY package.json package-lock.json ./
# Copy workspace package.json files to ensure npm ci works correctly in monorepo
COPY packages/backend/package.json ./packages/backend/
COPY packages/frontend/package.json ./packages/frontend/
COPY packages/rdp/package.json ./packages/rdp/
RUN npm ci
# Install dependencies (using install instead of ci for potential armv7/alpine compatibility issues)
RUN npm install
COPY packages/backend/src ./packages/backend/src
COPY packages/backend/tsconfig.json ./packages/backend/
@@ -21,7 +23,8 @@ RUN npm run build --workspace=@nexus-terminal/backend
FROM node:20-alpine
RUN apk add --no-cache --virtual .build-deps python3 make g++
# Install build dependencies including setuptools for node-gyp
RUN apk add --no-cache --virtual .build-deps python3 py3-setuptools make g++
WORKDIR /app
+8 -4
View File
@@ -1,14 +1,18 @@
FROM node:20-alpine AS builder
FROM node:20 AS builder
WORKDIR /app
COPY package.json package-lock.json* ./
# Copy root package files
COPY package.json package-lock.json ./
COPY packages/frontend/package.json ./packages/frontend/
# Copy workspace package.json files to ensure npm ci works correctly in monorepo
COPY packages/backend/package.json ./packages/backend/
COPY packages/frontend/package.json ./packages/frontend/
COPY packages/rdp/package.json ./packages/rdp/
RUN npm ci
# Install dependencies (using install instead of ci for potential armv7 compatibility issues)
RUN npm install
COPY packages/frontend/src ./packages/frontend/src
+1 -1
View File
@@ -28,7 +28,7 @@
"vue3-recaptcha2": "^1.8.0",
"vuedraggable": "^4.1.0",
"xterm": "^5.3.0",
"xterm-addon-fit": "^0.8.0",
"@xterm/addon-fit": "^0.10.0",
"xterm-addon-web-links": "^0.9.0"
},
"devDependencies": {
@@ -4,7 +4,7 @@ import { Terminal, ITerminalAddon, IDisposable } from 'xterm';
import { useAppearanceStore } from '../stores/appearance.store';
import { useSettingsStore } from '../stores/settings.store';
import { storeToRefs } from 'pinia';
import { FitAddon } from 'xterm-addon-fit';
import { FitAddon } from '@xterm/addon-fit'; // Updated import path
import { WebLinksAddon } from 'xterm-addon-web-links';
import { SearchAddon, type ISearchOptions } from '@xterm/addon-search';
import 'xterm/css/xterm.css';