fix(docker): копировать весь dist API и отключить splitting в tsup (ERR_MODULE_NOT_FOUND на chunk)
quality / changes (push) Successful in 6s
quality / web (push) Skipped
quality / commitlint (push) Skipped
quality / api (push) Successful in 52s
quality / docker-check (push) Failing after 1m7s
CD / quality (push) Failing after 2m8s
CD / publish (push) Skipped

This commit is contained in:
Denozordec committed 2026-10-23 17:45:36 +07:00
1 parent 395e37ea7a
commit 60645d5773
3 files changed
+9 -2

No files matched your search

+5
View File
@@ -48,6 +48,11 @@ describe('Dockerfile', () => {
expect(read('deploy/docker/docker-bake.hcl')).toMatch(/node:22-alpine@sha256:[0-9a-f]{64}/) expect(read('deploy/docker/docker-bake.hcl')).toMatch(/node:22-alpine@sha256:[0-9a-f]{64}/)
}) })
it('в образ копируется весь dist API, а tsup не дробит бандл на чанки', () => {
expect(dockerfile).toContain('cp -r apps/api/dist /out/dist')
expect(read('apps/api/tsup.config.ts')).toMatch(/splitting:\s*false/)
})
it('нативные модули проверяются при сборке', () => { it('нативные модули проверяются при сборке', () => {
expect(dockerfile).toContain('native modules ok') expect(dockerfile).toContain('native modules ok')
}) })
+2
View File
@@ -21,5 +21,7 @@ export default defineConfig({
'const __dirname = __dn(__filename);', 'const __dirname = __dn(__filename);',
].join('\n'), ].join('\n'),
}, },
// Один файл: динамические import() (напр. CLI backup) не должны порождать чанки.
splitting: false,
clean: true, clean: true,
}) })
+2 -2
View File
@@ -31,8 +31,8 @@ RUN rm -f apps/web/src/routes/design-preview*.tsx
RUN --mount=type=cache,target=/root/.local/share/pnpm/store,sharing=locked \ RUN --mount=type=cache,target=/root/.local/share/pnpm/store,sharing=locked \
pnpm turbo build --filter=web --filter=@authportal/api pnpm turbo build --filter=web --filter=@authportal/api
# Рантайм-слой: бандл + статика (только brotli) + нативные модули с теми же версиями, что в lockfile. # Рантайм-слой: бандл + статика (только brotli) + нативные модули с теми же версиями, что в lockfile.
RUN mkdir -p /out/dist \ RUN mkdir -p /out \
&& cp apps/api/dist/server.js /out/dist/server.js \ && cp -r apps/api/dist /out/dist \
&& cp -r apps/web/dist /out/static \ && cp -r apps/web/dist /out/static \
&& find /out/static -type f \( -name '*.js' -o -name '*.css' -o -name '*.html' -o -name '*.svg' -o -name '*.json' \) \ && find /out/static -type f \( -name '*.js' -o -name '*.css' -o -name '*.html' -o -name '*.svg' -o -name '*.json' \) \
-exec sh -c 'brotli -f -q 11 -o "$1.br" "$1"' _ {} \; \ -exec sh -c 'brotli -f -q 11 -o "$1.br" "$1"' _ {} \; \