# build stage
FROM node:22.22.3-alpine3.23 AS build-stage
# Set environment variables for non-interactive npm installs
ENV NPM_CONFIG_LOGLEVEL=warn
ENV CI=true
WORKDIR /app
# Install dependencies using pnpm and install from lockfile
COPY package.json pnpm-lock.yaml ./
RUN npm install -g pnpm \
&& pnpm i --frozen-lockfile
# Copy the rest of the source code and build the project
COPY . .
RUN pnpm build
# production stage
FROM nginx:stable-alpine AS production-stage
# Copy the built app from the build stage
COPY --from=build-stage /app/dist /usr/share/nginx/html
# Use the provided nginx configuration
COPY nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
# Ignore common development and tooling files .git node_modules dist .vscode .idea .DS_Store .env pnpm-lock.yaml package-lock.json *.log
Build timed out after 600s
Build timed out after 600s
Build timed out after 600s
# build stage
FROM node:22.22.3-alpine3.23 AS build-stage
# Set environment variables for non-interactive npm installs
ENV NPM_CONFIG_LOGLEVEL=warn
ENV CI=true
WORKDIR /app
# Install build dependencies for native modules
RUN apk add --no-cache python3 build-base \
&& ln -sf /usr/bin/python3 /usr/bin/python
# Install dependencies using pnpm and install from lockfile
COPY package.json pnpm-lock.yaml ./
RUN npm install -g pnpm \
&& pnpm i --frozen-lockfile
# Copy the rest of the source code and build the project
COPY . .
RUN pnpm build
# production stage
FROM nginx:stable-alpine AS production-stage
# Copy the built app from the build stage
COPY --from=build-stage /app/dist /usr/share/nginx/html
# Use the provided nginx configuration
COPY nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
server {
listen 80;
server_name localhost;
root /usr/share/nginx/html;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
}Build timed out after 600s
# build stage
FROM node:22.22.3-alpine3.23 AS build-stage
# Set environment variables for non-interactive npm installs
ENV NPM_CONFIG_LOGLEVEL=warn
ENV CI=true
WORKDIR /app
# Install dependencies using pnpm and install from lockfile
COPY package.json pnpm-lock.yaml ./
RUN npm install -g pnpm \
&& pnpm i --frozen-lockfile
# Copy the rest of the source code and build the project
COPY . .
RUN pnpm build
# production stage
FROM nginx:stable-alpine AS production-stage
# Copy the built app from the build stage
COPY --from=build-stage /app/dist /usr/share/nginx/html
# Use the provided nginx configuration
COPY nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
Build timed out after 600s
Build timed out after 600s
# Ignore common development and tooling files .git node_modules dist .vscode .idea .DS_Store .env pnpm-lock.yaml package-lock.json *.log
Build timed out after 600s
# build stage FROM node:22.22.3-alpine3.23 AS build-stage # Set environment variables for non-interactive npm installs ENV NPM_CONFIG_LOGLEVEL=warn ENV CI=true WORKDIR /app # Install dependencies first to enable docker layer caching COPY package.json pnpm-lock.yaml ./ RUN npm install -g pnpm && pnpm i --frozen-lockfile # Copy the rest of the source and build COPY . . RUN pnpm build # production stage FROM nginx:stable-alpine AS production-stage # Copy built assets from the build stage COPY --from=build-stage /app/dist /usr/share/nginx/html # Use custom nginx config if provided COPY nginx.conf /etc/nginx/conf.d/default.conf EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
node_modules dist .vite *.log .env *.tsbuildinfo coverage tmp cache *.local .npmrc package-lock.json
Summary (under 1500 chars):
- Exact error message and exit code:
- ERROR: process "/bin/sh -c npm install -g pnpm && pnpm i --frozen-lockfile" did not complete successfully: exit code: 1
- Failing command/step:
- [build-stage 4/6] RUN npm install -g pnpm && pnpm i --frozen-lockfile
- Missing packages or files mentioned:
- ENOSPC: no space left on device, mkdir '/app/node_modules/.pnpm/unicode-match-property-ecmascript@2.0.0/node_modules/unicode-match-property-ecmascript_tmp_30'
- Version mismatch / context:
- Base images used:
- Node: 22.22.3-alpine3.23 (FROM docker.io/library/node:22.22.3-alpine3.23@sha256:968df39aedcea65eeb078fb336ed7191baf48f972b4479711397108be0966920)
- Nginx: stable-alpine (FROM docker.io/library/nginx:stable-alpine@sha256:6525b050aa05151ca19ec7090851bc8c12006cffdae5187f3d28023402f44cfa)
- The error occurs during dependency install (pnpm i --frozen-lockfile) after npm install -g pnpm.# build stage FROM node:22.22.3-alpine3.23 AS build-stage # Set environment variables for non-interactive npm installs ENV NPM_CONFIG_LOGLEVEL=warn ENV CI=true # Use corepack to manage pnpm RUN corepack enable WORKDIR /app # Install dependencies first to enable docker layer caching COPY package.json pnpm-lock.yaml ./ # Prefer a separate pnpm store path to reduce space pressure inside /app ENV PNPM_STORE_PATH=/pnpm-store RUN corepack prepare pnpm@9.11.0 --activate && PNPM_STORE_PATH=/pnpm-store pnpm i --frozen-lockfile # Copy the rest of the source and build COPY . . RUN pnpm build # production stage FROM nginx:stable-alpine AS production-stage # Copy built assets from the build stage COPY --from=build-stage /app/dist /usr/share/nginx/html # Use custom nginx config if provided COPY nginx.conf /etc/nginx/conf.d/default.conf EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
Summary (concise): - Failing step: [build-stage 5/7] RUN corepack prepare pnpm@9.11.0 --activate && PNPM_STORE_PATH=/pnpm-store pnpm i --frozen-lockfile - Exit code: 1 - Exact error message and relevant output: - ERROR: failed to build: failed to solve: process "/bin/sh -c corepack prepare pnpm@9.11.0 --activate && PNPM_STORE_PATH=/pnpm-store pnpm i --frozen-lockfile" did not complete successfully: exit code: 1 - Preparing pnpm@9.11.0 for immediate activation... - ERR_PNPM_ENOSPC ENOSPC: no space left on device, mkdir '/app/node_modules/.pnpm/async@3.2.6/node_modules/async_tmp_1' - GET .../object-keys/-/object-keys-1.1.1.tgz error (ERR_PNPM_ENOSPC) ... - GET .../array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz error (ERR_PNPM_ENOSPC) ... - Missing packages/files mentioned: - object-keys-1.1.1.tgz - array-buffer-byte-length-1.0.1.tgz - The failure is due to ENOSPC (no space left on device) when attempting to mkdir '/app/node_modules/.pnpm/async@3.2.6/node_modules/async_tmp_1' - Version information: - pnpm being activated: pnpm@9.11.0 - Node image in use: node:22.22.3-alpine3.23 (from earlier stages) - No explicit version mismatch error reported; the failure is space-related rather than a version incompatibility.
# build stage FROM node:22.22.3-alpine3.23 AS build-stage # Set environment variables for non-interactive npm installs ENV NPM_CONFIG_LOGLEVEL=warn ENV CI=true # Use corepack to manage pnpm RUN corepack enable WORKDIR /app # Install dependencies first to enable docker layer caching COPY package.json pnpm-lock.yaml ./ # Prefer a separate pnpm store path to reduce space pressure inside /app ENV PNPM_STORE_PATH=/pnpm-store # Install dependencies into a dedicated modules dir to keep /app lightweight RUN PNPM_STORE_PATH=/pnpm-store pnpm i --frozen-lockfile --modules-dir /pnpm-modules # Create a symlink so Node can resolve modules from /app as well RUN mkdir -p /pnpm-modules && ln -s /pnpm-modules/node_modules /app/node_modules # Copy the rest of the source and build COPY . . RUN pnpm build # production stage FROM nginx:stable-alpine AS production-stage # Copy built assets from the build stage COPY --from=build-stage /app/dist /usr/share/nginx/html # Use custom nginx config if provided COPY nginx.conf /etc/nginx/conf.d/default.conf EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
- Exact error message and exit code
- ERROR: failed to build: failed to solve: process "/bin/sh -c PNPM_STORE_PATH=/pnpm-store pnpm i --frozen-lockfile --modules-dir /pnpm-modules" did not complete successfully: exit code: 1
- Failing command/step
- [build-stage 5/8] RUN PNPM_STORE_PATH=/pnpm-store pnpm i --frozen-lockfile --modules-dir /pnpm-modules
- Missing packages or files mentioned
- ENOSPC: no space left on device, mkdir '/app/node_modules/.pnpm/async@3.2.6/node_modules/async_tmp_1'
- Registry fetch attempts (before the ENOSPC failure): define-properties-1.2.1.tgz; object-keys-1.1.1.tgz; is-array-buffer-3.0.4.tgz; array-buffer-byte-length-1.0.1.tgz
- Version mismatch / environment details
- Build uses base images pinned with digests:
- FROM node:22.22.3-alpine3.23@sha256:968df39aedcea65eeb078fb336ed7191baf48f972b4479711397108be0966920
- FROM nginx:stable-alpine@sha256:6525b050aa05151ca19ec7090851bc8c12006cffdae5187f3d28023402f44cfa
Root cause: insufficient disk space (ENOSPC) during pnpm install, causing the build to fail.# build stage FROM node:22.22.3-alpine3.23 AS build-stage # Set environment variables for non-interactive npm installs ENV NPM_CONFIG_LOGLEVEL=warn ENV CI=true # Use corepack to manage pnpm RUN corepack enable WORKDIR /app # Install dependencies first to enable docker layer caching COPY package.json pnpm-lock.yaml ./ # Prepare a dedicated store to reduce space pressure inside /app ENV PNPM_STORE_PATH=/pnpm-store ENV PNPM_HOME=/pnpm-home RUN mkdir -p /pnpm-store /pnpm-home # Install dependencies (production-only to minimize space; build may still require some dev deps) RUN pnpm i --frozen-lockfile --prod # Copy the rest of the source and build COPY . . RUN pnpm build # production stage FROM nginx:stable-alpine AS production-stage # Copy built assets from the build stage COPY --from=build-stage /app/dist /usr/share/nginx/html # Use custom nginx config if provided COPY nginx.conf /etc/nginx/conf.d/default.conf EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
- Build status: VerifyBuild status: build_failed
- Concerns
- Building with --prod may omit devDependencies needed for building the app; if the build requires devDeps, pnpm i should include them or adjust the build step.
- The final image assumes nginx.conf exists in the repo as nginx.conf; if missing, docker build will fail when copying. Consider including the config or ensuring it is present in the repo.
- Build error
- Failing step (exit code and command)
- Failing command/step: [build-stage 8/8] RUN pnpm build
- Exit code: 2
- Final error statement: ELIFECYCLE Command failed with exit code 2. and ERROR: process "/bin/sh -c pnpm build" did not complete successfully: exit code: 2
- Exact error messages (preserved snippets)
- node_modules/.pnpm/@vue+compiler-core@3.3.4/node_modules/@vue/compiler-core/dist/compiler-core.d.ts(63,14): error TS2583: Cannot find name 'Map'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2015' or later.
- node_modules/.pnpm/@vue+reactivity@3.3.4/node_modules/@vue/reactivity/dist/reactivity.d.ts(64,65): error TS2583: Cannot find name 'Map'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2015' or later.
- node_modules/.pnpm/@vue+runtime-core@3.3.4/node_modules/@vue/runtime-core/dist/runtime-core.d.ts(1461,5): error TS1170: A computed property name in a type literal must refer to an expression whose type is a literal type or a 'unique symbol' type.
- node_modules/.pnpm/@vue+runtime-core@3.3.4/node_modules/@vue/runtime-core/dist/runtime-core.d.ts(1461,6): error TS2585: 'Symbol' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the lib' compiler option to es2015 or later.
- node_modules/.pnpm/@vue+runtime-dom@3.3.4/node_modules/@vue/runtime-dom/dist/runtime-dom.d.ts(501,36): error TS2583: Cannot find name 'Set'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2015' or later.
- Context from log (for quick diagnosis)
- The build runs pnpm i ... followed by pnpm build, and fails during the Vue 3 related type-checking phase.
- Messages clearly suggest a TypeScript lib target mismatch (lib es2015+ required) rather than a missing package/file.
- Version/lib hints
- The errors reference Vue 3.3.4 packages (e.g., @vue/compiler-core, @vue/reactivity, @vue/runtime-core, @vue/runtime-dom), and instruct to enable es2015+ libs. This implies a TypeScript lib configuration mismatch (lib lacking es2015+ typings) rather than a simple dependency miss.
- Missing packages/files mentioned
- None explicitly reported as missing. Errors are TS type-lib errors (Map/Set/Symbol/etc.) rather than missing files.
- Quick remediation notes
- Enable es2015+ libs in TypeScript config (tsconfig.json or per-project tsconfig): ensure lib includes "es2015" (and consider dom/es2016/es2017 as needed).
- Align TS target/lib with Vue 3 expectations, e.g., "lib": ["es2015", "dom", ...].
- Verify nginx.conf presence if Docker build relies on it, and include or add the file if absent.# build stage FROM node:22-slim AS build-stage # Set environment variables for non-interactive npm installs ENV NPM_CONFIG_LOGLEVEL=warn ENV CI=true # Use corepack to manage pnpm RUN corepack enable WORKDIR /app # Install dependencies first to enable docker layer caching COPY package.json pnpm-lock.yaml ./ # Prepare a dedicated store to reduce space pressure ENV PNPM_STORE_PATH=/pnpm-store ENV PNPM_HOME=/pnpm-home RUN mkdir -p /pnpm-store /pnpm-home # Install dependencies with frozen lockfile using pnpm RUN pnpm i --frozen-lockfile # Copy the rest of the source and build COPY . . RUN pnpm build # production stage FROM nginx:stable-alpine AS production-stage # Copy built assets from the build stage COPY --from=build-stage /app/dist /usr/share/nginx/html # Use custom nginx config if provided COPY nginx.conf /etc/nginx/conf.d/default.conf EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
Error summary: - Failing step: [build-stage 6/8] RUN pnpm i --frozen-lockfile - Exact error message and exit code: - ERR_PNPM_ENOSPC ENOSPC: no space left on device, symlink '../../js-sha256@0.9.0/node_modules/js-sha256' -> '/app/node_modules/.pnpm/@it-tools+bip39@0.0.4/node_modules/js-sha256' - Exit code: 1 - Context of failure: - During pnpm install with frozen lockfile in the app build stage - The error references a symlink target under /app/node_modules/.pnpm/@it-tools+bip39@0.0.4/node_modules/js-sha256 - Missing/packages/files mentioned: - No specific package names are reported as missing; the failure is due to ENOSPC (no space left on device) while resolving/creating the js-sha256 symlink during dependency installation. - Version mismatch information: - None detected in the log. Base images shown but no mismatch reported (node:22-slim, nginx:stable-alpine). No explicit version mismatch error.
# build stage FROM node:22-slim AS build-stage # Set environment variables for non-interactive npm installs ENV NPM_CONFIG_LOGLEVEL=warn ENV CI=true ENV PNPM_STORE_PATH=/pnpm-store ENV PNPM_HOME=/pnpm-home # Prepare pnpm cache directories RUN mkdir -p /pnpm-store /pnpm-home # Use corepack to manage pnpm RUN corepack enable WORKDIR /app # Copy only package manifest first to leverage caching COPY package.json pnpm-lock.yaml ./ # Install dependencies with frozen lockfile RUN pnpm i --frozen-lockfile # Copy the rest of the source and build COPY . . RUN pnpm build # production stage FROM nginx:stable-alpine AS production-stage # Copy built assets from the build stage COPY --from=build-stage /app/dist /usr/share/nginx/html # Copy nginx config if provided COPY nginx.conf /etc/nginx/conf.d/default.conf EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
Exact error and exit code - ERR_PNPM_ENOSPC ENOSPC: no space left on device, symlink '../../js-sha256@0.9.0/node_modules/js-sha256' -> '/app/node_modules/.pnpm/@it-tools+bip39@0.0.4/node_modules/js-sha256' - Exit code: 1 Failing command/step - Step: build-stage 6/8 - Command: RUN pnpm i --frozen-lockfile Missing packages or files mentioned - Packages being downloaded/referenced when the failure occurred: @tabler/icons@3.20.0, @it-tools/bip39@0.0.4, @tabler/icons-vue@3.20.0 - Related path involved in the failure: symlink targeting /app/node_modules/.pnpm/@it-tools+bip39@0.0.4/node_modules/js-sha256 Version mismatch info - No explicit version mismatch reported. The failure is due to ENOSPC (no space left on device). - PNPM/Corepack activity shown: attempting to download pnpm-9.11.0 (Corepack is about to download) - Base images used (with digests): - nginx:stable-alpine@sha256:6525b050aa05151ca19ec7090851bc8c12006cffdae5187f3d28023402f44cfa - node:22-slim@sha256:689c11043dad91472750cd824c97dd5e2318e9dd6f954e492fe7af0135d33ceb
# build stage FROM node:22.22.3-alpine3.23 AS build-stage # Set environment variables for non-interactive npm installs ENV NPM_CONFIG_LOGLEVEL=warn ENV CI=true WORKDIR /app COPY package.json pnpm-lock.yaml ./ RUN npm install -g pnpm && pnpm i --frozen-lockfile COPY . . RUN pnpm build # production stage FROM nginx:stable-alpine AS production-stage COPY --from=build-stage /app/dist /usr/share/nginx/html COPY nginx.conf /etc/nginx/conf.d/default.conf EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
# Dependency/build artifacts node_modules dist build coverage .env .env.* *.log npm-debug.log* yarn-error.log* .vscode/ .idea/ *.tmp *.bak .DS_Store
Status
- VerifyBuild status: build_failed
Concerns
- Build output path assumption: production image copies /app/dist from the build stage. If the build step outputs to a different directory (e.g., /app/build or /dist), the nginx copy will fail and the image will be empty.
- No explicit health endpoint documented: smoke tests assume the root HTML is served; some apps may serve a different entry, or require a health path.
Build error
- Failing step: [build-stage 4/6] RUN npm install -g pnpm && pnpm i --frozen-lockfile
- Exit code: 1
- Error: process "/bin/sh -c npm install -g pnpm && pnpm i --frozen-lockfile" did not complete successfully: exit code: 1
- Details:
- ERR_PNPM_ENOSPC Error while trying to symlink "../../../@babel+core@7.26.0/node_modules/@babel/core" to "/app/node_modules/.pnpm/@babel+plugin-transform-logical-assignment-operators@7.25.9_@babel+core@7.26.0/node_modules/@babel/core". ENOSPC: no space left on device, mkdir '/app/node_modules/.pnpm/@babel+plugin-transform-logical-assignment-operators@7.25.9_@babel+core@7.26.0/node_modules/@babel'
- Context of the failure: during the npm/pnpm install step in the Docker build.
- Missing packages/files mentioned: None reported; disk space (ENOSPC) failure during pnpm-managed node_modules creation.
- Version information / mismatch notes:
- Base images:
- build-stage: node:22.22.3-alpine3.23@sha256:968df39aedcea65eeb078fb336ed7191baf48f972b4479711397108be0966920
- production-stage: nginx:stable-alpine@sha256:6525b050aa05151ca19ec7090851bc8c12006cffdae5187f3d28023402f44cfa
- There is no explicit version mismatch reported; the failure is ENOSPC (no space left on device).
Quick remediation
- Increase available disk space for the Docker daemon or adjust storage/settings to provide more space for npm/pnpm install.
Summary (for quick triage)
- Build failed due to ENOSPC during pnpm install in build-stage 4/6; ensure sufficient disk space and verify /app/dist vs. actual build output path to satisfy nginx copy. Also consider health endpoint or entry-point alignment if applicable.# build stage FROM node:22.22.3-alpine3.23 AS build-stage # Set environment variables for non-interactive npm installs ENV NPM_CONFIG_LOGLEVEL=warn ENV CI=true WORKDIR /app COPY package.json pnpm-lock.yaml ./ RUN corepack enable RUN pnpm config set store-dir /pnpm-store RUN pnpm i --frozen-lockfile COPY . . RUN pnpm build # production stage FROM nginx:stable-alpine AS production-stage COPY --from=build-stage /app/dist /usr/share/nginx/html COPY nginx.conf /etc/nginx/conf.d/default.conf EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
- Failing step: build-stage 6/8, RUN pnpm i --frozen-lockfile - Exact error message and exit code: - ENCOUNTERED: “ ERR_PNPM_ENOSPC ENOSPC: no space left on device, mkdir '/app/node_modules/.pnpm/js-sha256@0.9.0/node_modules/js-sha256_tmp_1'” - Exit code: 1 - Overall build failure note: “ERROR: failed to build: failed to solve: process \"/bin/sh -c pnpm i --frozen-lockfile\" did not complete successfully: exit code: 1” - Missing packages or files mentioned: - Directory/file that could not be created: /app/node_modules/.pnpm/js-sha256@0.9.0/node_modules/js-sha256_tmp_1 - PNPM attempted to download multiple tarballs but failed due to ENOSPC (no space left on device): @tabler/icons-3.20.0.tgz, @regexper/render-1.0.0.tgz, nanoid-3.3.6.tgz, escape-string-regexp-5.0.0.tgz, @sindresorhus/transliterate-1.6.0.tgz, vue-3.3.4.tgz, @babel/parser-7.22.10.tgz, @tabler/icons-vue-3.20.0.tgz, @babel/helper-string-parser-7.22.5.tgz - Version mismatch info: - Base images: node:22.22.3-alpine3.23 and nginx:stable-alpine - PNPM version being downloaded: pnpm-9.11.0 - No explicit version mismatch reported.
# build stage FROM node:22.22.3-alpine3.23 AS build-stage # Set environment variables for non-interactive npm installs ENV NPM_CONFIG_LOGLEVEL=warn ENV CI=true WORKDIR /app COPY package.json pnpm-lock.yaml ./ RUN corepack enable RUN pnpm config set store-dir /pnpm-store RUN pnpm i --frozen-lockfile --max-workers 1 COPY . . RUN pnpm build # production stage FROM nginx:stable-alpine AS production-stage COPY --from=build-stage /app/dist /usr/share/nginx/html COPY nginx.conf /etc/nginx/conf.d/default.conf EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
- VerifyBuild status: build_failed
- Notable concerns
- Health endpoint not defined in Dockerfile; smoke tests use curl to fetch root page; curl may be missing in runtime. Action: add a lightweight health check or ensure curl is installed in final image.
- Nginx config/serving: validate nginx.conf to ensure built assets are served at /.
- Build error details
- Failing step: [build-stage 6/8] RUN pnpm i --frozen-lockfile --max-workers 1
- Error: Unknown options: 'frozen-lockfile', 'max-workers'
- Context: Dockerfile line 10 shows RUN pnpm i --frozen-lockfile --max-workers 1
- Output snippet:
- 0.757 ERROR Unknown options: 'frozen-lockfile', 'max-workers'
- 0.758 For help, run: pnpm help add
- Dockerfile and stages:
- Dockerfile:10
- [build-stage 1/8] FROM docker.io/library/node:22.22.3-alpine3.23@sha256:968df39aedcea65eeb078fb336ed7191baf48f972b4479711397108be0966920
- [production-stage 1/3] FROM docker.io/library/nginx:stable-alpine@sha256:6525b050aa05151ca19ec7090851bc8c12006cffdae5187f3d28023402f44cfa
- [build-stage 4/8] RUN corepack enable
- [build-stage 5/8] RUN pnpm config set store-dir /pnpm-store
- [build-stage 6/8] RUN pnpm i --frozen-lockfile --max-workers 1
- Key artifacts/targets
- Images:
- Node base: node:22.22.3-alpine3.23 (sha256:968df39aedcea65eeb078fb336ed7191baf48f972b4479711397108be0966920)
- Nginx base: nginx:stable-alpine (sha256:6525b050aa05151ca19ec7090851bc8c12006cffdae5187f3d28023402f44cfa)
- Suggested next steps
- Confirm pnpm version in the build image and whether --frozen-lockfile and --max-workers are supported; if not, remove or replace with supported flags or upgrade pnpm.
- Consider using a minimal install command compatible with the current PNPM version (e.g., pnpm i or pnpm install with valid flags).
- Re-run docker build after adjusting the pnpm install step.# build stage FROM node:22.22.3-alpine3.23 AS build-stage # Set environment variables for non-interactive npm installs ENV NPM_CONFIG_LOGLEVEL=warn ENV CI=true WORKDIR /app COPY package.json pnpm-lock.yaml ./ RUN corepack enable RUN pnpm i COPY . . RUN pnpm build # production stage FROM nginx:stable-alpine AS production-stage COPY --from=build-stage /app/dist /usr/share/nginx/html COPY nginx.conf /etc/nginx/conf.d/default.conf EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
Build status: build_failed Concerns - Relies on curl in nginx:stable-alpine image; if curl missing, smoke test may fail. - Test 2 assumes index.html at /usr/share/nginx/html/index.html; dist structure differences may misreflect functionality. - Health-check via HTTP is attempted without validating a dedicated health endpoint; consider adding a test for a health route. Build error - Exact error: ERROR: failed to build: failed to solve: process "/bin/sh -c pnpm i" did not complete successfully: exit code: 1 - ENOSPC during symlink: ERR_PNPM_ENOSPC Error while trying to symlink "../../../@rollup+pluginutils@3.1.0_rollup@2.79.2/node_modules/@rollup/pluginutils" to "/app/node_modules/.pnpm/@rollup+plugin-babel@5.3.1_@babel+core@7.26.0_rollup@2.79.2/node_modules/@rollup/pluginutils". The error happened while trying to create the parent directory for the symlink target. Details: ENOSPC: no space left on device, mkdir '/app/node_modules/.pnpm/@rollup+plugin-babel@5.3.1_@babel+core@7.26.0_rollup@2.79.2/node_modules/@rollup' - Failing command/step: [build-stage 5/7] RUN pnpm i Missing packages or files mentioned - No space left on device (ENOSPC) while creating the pnpm/node_modules directory, preventing creation of a required directory path under /app/node_modules/.pnpm/... (root cause is disk space shortage during symlink setup). Version and environment details - Base images: node:22.22.3-alpine3.23 (build-stage) and nginx:stable-alpine (production-stage) - pnpm version: attempt to fetch pnpm-9.11.0.tgz (PNPM version used by Corepack during install) - Dockerfile step context: pnpm i invoked in build-stage 5/7 - Issue appears to be a space/disk quota problem inside the build container, not a missing npm/package version mismatch.
# build stage FROM node:22.22.3-alpine3.23 AS build-stage # Set environment variables for non-interactive npm installs ENV NPM_CONFIG_LOGLEVEL=warn ENV CI=true WORKDIR /app COPY package.json pnpm-lock.yaml ./ RUN corepack enable RUN pnpm i COPY . . RUN pnpm build # production stage FROM nginx:stable-alpine AS production-stage COPY --from=build-stage /app/dist /usr/share/nginx/html COPY nginx.conf /etc/nginx/conf.d/default.conf EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]