diff --git a/.dockerignore b/.dockerignore index daa14cbc6..1901f009e 100644 --- a/.dockerignore +++ b/.dockerignore @@ -28,6 +28,12 @@ playwright/.cache playwright.config.ts vitest.config.mts vitest.integration.config.mts +vitest.mutation.config.mts +# The unit setup imports tests/ (excluded above); the image never runs it and +# the build's type check must not see a half-present test harness. +vitest.setup.ts +stryker.config.mjs +stryker.floors.json tests tests/ e2e diff --git a/Dockerfile b/Dockerfile index 377c19f6b..ecc726d6a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -108,6 +108,9 @@ RUN addgroup --system --gid 1001 nodejs && \ # Copy built assets COPY --from=builder /app/public ./public +# The server reads its message catalogs from here on first use, one locale at +# a time (src/lib/i18n/server-catalogs.ts); they are not bundled. +COPY --from=builder /app/messages ./messages COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./ COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static # Next's standalone output must carry the externalized worker dependencies. diff --git a/docker-compose.yml b/docker-compose.yml index dad7cf80d..aa17c56b1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -508,6 +508,11 @@ services: # support report and Admin > System status say so. On a busy instance, # raise it with APP_MEMORY_LIMIT in .env; do not lower it. mem_limit: "${APP_MEMORY_LIMIT:-1536m}" + # On `docker stop` (a redeploy) the app stops taking requests, lets the + # requests in flight finish and gives running jobs up to 30 s to end + # before it exits. Docker's default of 10 s cut that short and left + # jobs marked active until their expiry, holding exclusive queues. + stop_grace_period: 45s healthcheck: test: [ @@ -564,6 +569,7 @@ services: # max-size: "10m" # max-file: "3" # mem_limit: "${WORKER_MEMORY_LIMIT:-1536m}" + # stop_grace_period: 45s db: # Pinned to the concrete minor instead of the floating `16-alpine` diff --git a/docs/contributing/benchmarks.md b/docs/contributing/benchmarks.md index 62b16f33f..aa10a1d73 100644 --- a/docs/contributing/benchmarks.md +++ b/docs/contributing/benchmarks.md @@ -68,6 +68,42 @@ The output is `