build: optimize Dockerfiles for production and pin dependencies

Implement multi-stage build and static server for frontend
Run containers as non-root user and set production environment
Pin all package dependencies to exact versions
This commit is contained in:
2026-05-03 15:35:00 +08:00
parent 7aa80430d9
commit 590bd6a0ae
7 changed files with 165 additions and 57 deletions

42
pnpm-lock.yaml generated
View File

@@ -11,72 +11,72 @@ importers:
backend:
dependencies:
'@fastify/cors':
specifier: latest
specifier: 11.2.0
version: 11.2.0
'@fastify/multipart':
specifier: ^10.0.0
specifier: 10.0.0
version: 10.0.0
'@fastify/rate-limit':
specifier: ^10.3.0
specifier: 10.3.0
version: 10.3.0
'@fastify/static':
specifier: ^9.1.3
specifier: 9.1.3
version: 9.1.3
fastify:
specifier: latest
specifier: 5.8.5
version: 5.8.5
pg:
specifier: latest
specifier: 8.20.0
version: 8.20.0
devDependencies:
'@types/node':
specifier: latest
specifier: 25.6.0
version: 25.6.0
'@types/pg':
specifier: latest
specifier: 8.20.0
version: 8.20.0
tsx:
specifier: latest
specifier: 4.21.0
version: 4.21.0
typescript:
specifier: latest
specifier: 6.0.3
version: 6.0.3
frontend:
dependencies:
'@iconify/vue':
specifier: ^5.0.0
specifier: 5.0.0
version: 5.0.0(vue@3.5.33(typescript@6.0.3))
'@vitejs/plugin-vue':
specifier: latest
specifier: 6.0.6
version: 6.0.6(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.3))(vue@3.5.33(typescript@6.0.3))
vite:
specifier: latest
specifier: 8.0.10
version: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.3)
vue:
specifier: latest
specifier: 3.5.33
version: 3.5.33(typescript@6.0.3)
vue-i18n:
specifier: ^11.4.0
specifier: 11.4.0
version: 11.4.0(vue@3.5.33(typescript@6.0.3))
vue-router:
specifier: latest
specifier: 5.0.6
version: 5.0.6(@vue/compiler-sfc@3.5.33)(vue@3.5.33(typescript@6.0.3))
devDependencies:
'@types/node':
specifier: latest
specifier: 25.6.0
version: 25.6.0
'@vue/tsconfig':
specifier: latest
specifier: 0.9.1
version: 0.9.1(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
typescript:
specifier: latest
specifier: 6.0.3
version: 6.0.3
vitest:
specifier: latest
specifier: 4.1.5
version: 4.1.5(@types/node@25.6.0)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(tsx@4.21.0)(yaml@2.8.3))
vue-tsc:
specifier: latest
specifier: 3.2.7
version: 3.2.7(typescript@6.0.3)
packages: