# Stage 1: build
FROM node:lts-bookworm AS builder
# Install build tools
RUN apt-get update && \
apt-get install -y --no-install-recommends python3 build-essential && \
rm -rf /var/lib/apt/lists/*
WORKDIR /workspace
# Install PNPM
RUN npm i -g pnpm@8
# Copy manifests first for caching
COPY package.json pnpm-workspace.yaml* ./
# Install dependencies
RUN pnpm install
# Copy the rest of the repository
COPY . .
# Build the project
RUN pnpm run build
# Stage 2: runtime
FROM node:lts-bookworm AS runtime
WORKDIR /app
# Copy built artifacts
COPY --from=builder /workspace/packages/ctool-core/dist ./dist
# Install a simple static server for runtime
RUN npm i -g http-server
EXPOSE 8080
CMD ["http-server", "/app/dist", "-p", "8080"]
# Docker build context ignores .git node_modules dist build coverage .vite .idea .vscode *.log .DS_Store *.tmp
Failing step - [builder 6/8] RUN pnpm install Exact error message and exit code - ERR_PNPM_WORKSPACE_PKG_NOT_FOUND In : "ctool-config@workspace:*" is in the dependencies but no package named "ctool-config" is present in the workspace - This error happened while installing a direct dependency of /workspace - Exit code: 1 Missing packages/files mentioned - Workspace expects ctool-config (ctool-config@workspace:*) but no package named "ctool-config" is present in the workspace - Packages found in the workspace: ctool Version-related information - Node deprecation warning observed: (node:7) [DEP0169] DeprecationWarning: url.parse() behavior is not standardized... - npm update notice: New minor version of npm available! 11.9.0 -> 11.12.0
# Stage 1: build
FROM node:lts-bookworm AS builder
# Install build tools
RUN apt-get update && \
apt-get install -y --no-install-recommends python3 build-essential && \
rm -rf /var/lib/apt/lists/*
WORKDIR /workspace
# Install PNPM
RUN npm i -g pnpm@8
# Copy the entire repository first to ensure workspace dependencies can be resolved
COPY . .
# Install dependencies (using workspaces)
RUN pnpm install
# Build the project
RUN pnpm run build
# Stage 2: runtime
FROM node:lts-bookworm AS runtime
WORKDIR /app
# Copy built artifacts
COPY --from=builder /workspace/packages/ctool-core/dist ./dist
# Install a simple static server for runtime
RUN npm i -g http-server
EXPOSE 8080
CMD ["http-server", "/app/dist", "-p", "8080"]
- Failing command/step: - [builder 6/7] RUN pnpm install - Exact error message and exit code: - ERR_PNPM_SPEC_NOT_SUPPORTED_BY_ANY_RESOLVER @types/node@catalog: isn't supported by any available resolver. - Exit code: 1 - Missing packages or files mentioned: - No explicit missing file/package listed. The issue is due to a resolver/spec incompatibility for @types/node and a lockfile compatibility problem. - Version mismatch / environment details: - Warning: Lockfile /workspace/pnpm-lock.yaml not compatible with current pnpm - pnpm appears to be version 8 (npm i -g pnpm@8 was run earlier), which is incompatible with the existing pnpm lockfile, contributing to the failure.
# Stage 1: build
FROM node:lts-bookworm AS builder
# Install build tools
RUN apt-get update && \
apt-get install -y --no-install-recommends python3 build-essential ca-certificates curl && \
rm -rf /var/lib/apt/lists/*
WORKDIR /workspace
# Install PNPM (use a newer version to support catalog: and workspace specs)
RUN npm i -g pnpm@9
# Copy workspace manifests first for caching and to enable workspace resolution
COPY pnpm-workspace.yaml package.json ./
# Install dependencies (uses workspaces)
RUN pnpm install
# Copy the rest of the repository
COPY . .
# Build the project
RUN pnpm run build
# Stage 2: runtime
FROM node:lts-bookworm AS runtime
WORKDIR /app
# Copy built artifacts
COPY --from=builder /workspace/packages/ctool-core/dist ./dist
# Install a simple static server for runtime
RUN npm i -g http-server
EXPOSE 8080
CMD ["http-server", "/app/dist", "-p", "8080"]
Failing step - [builder 6/8] RUN pnpm install Exact error and exit code - ERROR: process "/bin/sh -c pnpm install" did not complete successfully: exit code: 1 - ERR_PNPM_WORKSPACE_PKG_NOT_FOUND In : "ctool-config@workspace:*" is in the dependencies but no package named "ctool-config" is present in the workspace - This error happened while installing a direct dependency of /workspace Missing packages/files mentioned - Missing workspace package: ctool-config (referenced as ctool-config@workspace:*, but no package named ctool-config is present in the workspace) Version information - npm update notice: New minor version of npm available! 11.9.0 -> 11.12.0 (update suggested: npm install -g npm@11.12.0) - Deprecation warning observed during install: (node:7) [DEP0169] DeprecationWarning: url.parse() behavior is not standardized Notes - The failure is due to a workspace dependency referencing ctool-config that is not present in the workspace. Ensure ctool-config is added to the workspace or correct the dependency spec.
packages:
- 'packages/**'
catalog:
'@types/lodash': ^4.17.7
'@types/node': ^22.0.0
'@vitejs/plugin-vue': ^5.1.0
'@vueuse/core': ^11.0.0
lodash: ^4.17.21
typescript: ^5.5.0
vite: ^5.4.3
tsup: ^8.2.4
axios: ^1.7.0
vue-tsc: ^2.1.0
vue: ^3.5.0
vue-router: ^4.4.0
'@vue/runtime-core': ^3.5.0
dayjs: ^1.11.12
{
"name": "ctool",
"version": "2.4.0",
"type": "module",
"description": "程序开发常用工具 chrome / edge / firefox / utools / windows / linux / mac",
"homepage": "https://ctool.dev",
"repository": "https://github.com/baiy/Ctool",
"author": "baiy",
"license": "MIT",
"scripts": {
"initialize": "pnpm --filter ctool-config run build && pnpm --filter ctool-adapter-base run build && pnpm -r run adapter-build",
"check": "pnpm run initialize && pnpm --filter ctool-core run check",
"dev": "pnpm run initialize && pnpm --filter ctool-core run dev",
"build": "pnpm run initialize && pnpm --filter ctool-core run build",
"release": "node release.cjs && pnpm run build && pnpm -r run platform-release",
"only-release": "node release.cjs && pnpm -r run platform-release",
"vercel-build": "pnpm run build && pnpm --filter ctool-site run build",
"clear": "node clear.cjs"
},
"devDependencies": {
"@types/http-proxy": "^1.17.10",
"@types/node": "catalog:",
"@vercel/node": "^2.9.12",
"typescript": "catalog:"
},
"dependencies": {
"ctool-config": "workspace:*",
"http-proxy": "^1.18.1"
}
}
{
"name": "ctool-config",
"main": "./dist/index.js",
"module": "./dist/esm/index.js",
"types": "./dist/index.d.ts",
"scripts": {
"build": "pnpm exec tsup-node && node dist/generate.js"
},
"dependencies": {
"json5": "^2.2.3",
"lodash": "catalog:",
"pinyin-pro": "^3.13.0",
"svg-path-bounds": "^1.0.2"
},
"devDependencies": {
"@types/lodash": "catalog:",
"@types/node": "catalog:",
"tsup": "catalog:",
"typescript": "catalog:"
}
}
No matches found.
# Stage 1: build
FROM node:lts-bookworm AS builder
# Install build tools
RUN apt-get update && \
apt-get install -y --no-install-recommends python3 build-essential ca-certificates curl && \
rm -rf /var/lib/apt/lists/*
WORKDIR /workspace
# Install PNPM (pin to a stable version used in CI)
RUN npm i -g pnpm@8
# Copy the entire repository
COPY . .
# Workaround: remove any incompatible lockfile to avoid resolver issues in container
RUN rm -f pnpm-lock.yaml || true
# Install dependencies (uses workspaces)
RUN pnpm install
# Build the project
RUN pnpm run build
# Stage 2: runtime
FROM node:lts-bookworm AS runtime
WORKDIR /app
# Copy built artifacts
COPY --from=builder /workspace/packages/ctool-core/dist ./dist
# Serve the built assets with a tiny static server
RUN npm i -g http-server
EXPOSE 8080
CMD ["http-server", "/app/dist", "-p", "8080"]
- Failing step: [builder 7/8] RUN pnpm install - Exact error message and exit code: - Error: “ ERR_PNPM_SPEC_NOT_SUPPORTED_BY_ANY_RESOLVER @types/node@catalog: isn't supported by any available resolver.” - This error happened while installing a direct dependency of /workspace - Exit code: 1 - Missing packages or files mentioned: - The issue references @types/node@catalog (not supported by any available resolver) during dependency resolution for /workspace. - Version mismatch / notices: - npm notice New minor version of npm available! 11.9.0 -> 11.12.0 (update: npm install -g npm@11.12.0)
# Multi-stage build to compile from source and run a lightweight static server for the UI FROM node:lts-bookworm AS builder WORKDIR /workspace # Install PNPM (pin to v8 as in CI) RUN npm install -g pnpm@8 # Copy repository sources COPY . . # Install dependencies (workspace-aware) RUN pnpm install # Build the monorepo (produces dist artifacts in packages/*/dist) RUN pnpm run build FROM node:lts-bookworm AS runtime WORKDIR /app # Lightweight static server to serve the built UI RUN npm install -g http-server # Copy built frontend assets from builder COPY --from=builder /workspace/packages/ctool-core/dist ./dist EXPOSE 8080 CMD ["http-server", "dist", "-p", "8080"]
node_modules dist build .vscode .idea .git .gitignore pnpm-lock.yaml pnpm-workspace.yaml packages/**/node_modules packages/**/dist
#0 building with "default" instance using docker driver #1 [internal] load build definition from Dockerfile #1 transferring dockerfile: 720B done #1 DONE 0.0s #2 [internal] load metadata for docker.io/library/node:lts-bookworm #2 DONE 0.8s #3 [internal] load .dockerignore #3 transferring context: 2B done #3 DONE 0.0s #4 [builder 1/6] FROM docker.io/library/node:lts-bookworm@sha256:5a593d74b632d1c6f816457477b6819760e13624455d587eef0fa418c8d0777b #4 resolve docker.io/library/node:lts-bookworm@sha256:5a593d74b632d1c6f816457477b6819760e13624455d587eef0fa418c8d0777b 0.0s done #4 DONE 0.0s #5 [builder 2/6] WORKDIR /workspace #5 CACHED #6 [runtime 2/4] WORKDIR /app #6 CACHED #7 [runtime 3/4] RUN npm install -g http-server #7 ERROR: failed to commit l5qpc6txf4edpa42klhyyq04v to qinb7dh2684bs7uk1duveiqc5 during finalize: failed to stat active key during commit: snapshot l5qpc6txf4edpa42klhyyq04v does not exist: not found #8 [builder 3/6] RUN npm install -g pnpm@8 #8 CANCELED #9 [internal] load build context #9 transferring context: 23.75kB 0.0s done #9 CANCELED ------ > [runtime 3/4] RUN npm install -g http-server: ------ Dockerfile:23 -------------------- 21 | 22 | # Lightweight static server to serve the built UI 23 | >>> RUN npm install -g http-server 24 | 25 | # Copy built frontend assets from builder -------------------- ERROR: failed to build: failed to solve: failed to commit l5qpc6txf4edpa42klhyyq04v to qinb7dh2684bs7uk1duveiqc5 during finalize: failed to stat active key during commit: snapshot l5qpc6txf4edpa42klhyyq04v does not exist: not found
# Multi-stage build to compile from source and run a lightweight static server for the UI
FROM node:lts-bookworm AS builder
WORKDIR /workspace
# Install PNPM (pin to v8 as in CI)
RUN npm install -g pnpm@8
# Copy repository sources
COPY . .
# Install dependencies (workspace-aware)
RUN pnpm install
# Build the monorepo (produces dist artifacts in packages/*/dist)
RUN pnpm run build
FROM node:lts-bookworm AS runtime
WORKDIR /app
# Copy built frontend assets from builder
COPY --from=builder /workspace/packages/ctool-core/dist ./dist
# Lightweight static server implemented in Node to avoid external deps
RUN bash -lc 'cat > /app/server.js << "JS"\nconst path = require(\'path\');\nconst http = require(\'http\');\nconst fs = require(\'fs\');\nconst dir = process.argv[2] || \"dist\";\nconst port = process.env.PORT || 8080;\n\nconst server = http.createServer((req, res) => {\n let reqPath = req.url === "/" ? "/index.html" : req.url;\n const filePath = path.join(__dirname, dir, reqPath);\n const ext = path.extname(filePath) || ".html";\n const contentType = {\n ".html": "text/html",\n ".js": "application/javascript",\n ".css": "text/css",\n ".json": "application/json",\n ".png": "image/png",\n ".jpg": "image/jpeg",\n ".jpeg": "image/jpeg",\n ".svg": "image/svg+xml",\n ".ico": "image/x-icon"\n }[ext] || "application/octet-stream";\n fs.stat(filePath, (err, stat) => {\n if (err || !stat.isFile()) {\n res.statusCode = 404;\n res.end(\"Not found\");\n return;\n }\n fs.readFile(filePath, (err, data) => {\n if (err) { res.statusCode = 500; res.end(\"Server error\"); return; }\n res.setHeader(\'Content-Type\', contentType);\n res.end(data);\n });\n });\n});\nserver.listen(port, () => console.log(\`Static server serving \\${dir} at http://0.0.0.0:\\${port}/\`));\nJS'
EXPOSE 8080
CMD ["node", "/app/server.js", "dist"]
# Multi-stage build to compile from source and run a lightweight static server for the UI
FROM node:lts-bookworm AS builder
WORKDIR /workspace
# Install PNPM (pin to v8 as in CI)
RUN npm install -g pnpm@8
# Copy repository sources
COPY . .
# Install dependencies (workspace-aware)
RUN pnpm install
# Build the monorepo (produces dist artifacts in packages/*/dist)
RUN pnpm run build
FROM node:lts-bookworm AS runtime
WORKDIR /app
# Copy built frontend assets from builder
COPY --from=builder /workspace/packages/ctool-core/dist ./dist
# Lightweight Node-based static server to serve the UI
COPY --from=builder /workspace/images /app/images # ensure any static assets if referenced
# Simple server script to serve dist
COPY --from=builder /workspace/ctool-server/server.js /app/server.js || true
# Fallback: create a small static server script on the fly if not present
RUN bash -lc 'if [ ! -f /app/server.js ]; then cat > /app/server.js << "JS"\nconst path = require("path");\nconst http = require("http");\nconst fs = require("fs");\nconst dir = process.argv[2] || "dist";\nconst port = process.env.PORT || 8080;\nconst server = http.createServer((req, res) => {\n let reqPath = req.url === "/" ? "/index.html" : req.url;\n const filePath = path.join(__dirname, dir, reqPath);\n fs.stat(filePath, (err, stat) => {\n if (err || !stat.isFile()) { res.statusCode = 404; res.end("Not found"); return; }\n fs.createReadStream(filePath).pipe(res);\n });\n});\nserver.listen(port, () => console.log(\"Static server serving \\${dir} at http://0.0.0.0:\\${port}/\"));\nJS' ; fi'
EXPOSE 8080
CMD ["node", "/app/server.js", "dist"]
Summary: - Exact error message and exit code: - Error: "ERROR: failed to build: failed to solve: process \"/bin/sh -c pnpm install\" did not complete successfully: exit code: 1" - Failing command/step: - Builder step: RUN pnpm install (builder 5/6) - Missing packages or files mentioned: - " ERR_PNPM_SPEC_NOT_SUPPORTED_BY_ANY_RESOLVER @types/node@catalog: isn't supported by any available resolver." - "This error happened while installing a direct dependency of /workspace" - Related note: " WARN Ignoring broken lockfile at /workspace: Lockfile /workspace/pnpm-lock.yaml not compatible with current pnpm" - Version mismatch info: - pnpm reported the lockfile not compatible with the current pnpm version: Lockfile /workspace/pnpm-lock.yaml not compatible with current pnpm - This indicates a resolver/spec mismatch tied to the lockfile and pnpm version.
# Multi-stage build to compile from source and run a lightweight static server for the UI
FROM node:lts-bookworm AS builder
WORKDIR /workspace
# Install PNPM (pin to v8 as in CI)
RUN npm install -g pnpm@8
# Copy repository sources
COPY . .
# Install dependencies (workspace-aware, ignore lockfile if incompatible)
RUN pnpm install --no-lockfile
# Build the monorepo (produces dist artifacts in packages/*/dist)
RUN pnpm run build
FROM node:lts-bookworm AS runtime
WORKDIR /app
# Copy built frontend assets from builder
COPY --from=builder /workspace/packages/ctool-core/dist ./dist
# Simple Node.js static server to serve the built UI
RUN bash -lc 'cat > /app/server.js << "JS"\nconst http = require("http");\nconst fs = require("fs");\nconst path = require("path");\nconst dir = process.env.DIR || "dist";\nconst port = process.env.PORT || 8080;\nconst server = http.createServer((req, res) => {\n let reqPath = req.url === "/" ? "/index.html" : req.url;\n const filePath = path.join(__dirname, dir, reqPath);\n fs.stat(filePath, (err, stat) => {\n if (err || !stat.isFile()) { res.statusCode = 404; res.end("Not found"); return; }\n fs.createReadStream(filePath).pipe(res);\n });\n});\nserver.listen(port, () => console.log("Static server serving ${dir} at http://0.0.0.0:" + port));\nJS'
EXPOSE 8080
CMD ["node", "/app/server.js", "dist"]
- Exact error message and exit code - ERROR: failed to build: failed to solve: process "/bin/sh -c pnpm install --no-lockfile" did not complete successfully: exit code: 1 - ERR_PNPM_SPEC_NOT_SUPPORTED_BY_ANY_RESOLVER @types/node@catalog: isn't supported by any available resolver. - This error happened while installing a direct dependency of /workspace - Failing command/step - [builder 5/6] RUN pnpm install --no-lockfile - Missing packages or files mentioned - No missing file reported. The issue is PNPM resolver support for the @types/node catalog (not supported by any available resolver). - Note: a pnpm-lock.yaml file exists and the current configuration prohibits reading or writing a lockfile (not a missing file, but a config-related constraint). - Version mismatch / related context - Indicates a resolver/spec mismatch for @types/node catalog within PNPM (not supported by any resolver). - The log also shows a lockfile configuration restriction (pnpm-lock.yaml exists but is blocked).
# Multi-stage build: build from source with PNPM and serve the built UI from a lightweight Node server
FROM node:lts-bookworm AS builder
WORKDIR /workspace
# Pin PNPM to v8 as used in CI
RUN npm install -g pnpm@8
# Copy workspace manifest and root files first to leverage workspace layout
COPY pnpm-workspace.yaml package.json pnpm-lock.yaml ./
# Copy workspace packages
COPY packages ./packages
# Install dependencies for the workspace (workspace-aware)
RUN pnpm install
# Copy the rest of the repository (application sources)
COPY . .
# Build the monorepo (produces dist in packages/*/dist)
RUN pnpm run build
FROM node:lts-bookworm AS runtime
WORKDIR /app
# Copy built artifacts from builder (ctool-core dist is the frontend app)
COPY --from=builder /workspace/packages/ctool-core/dist ./dist
# Create a tiny static file server using Node.js
RUN bash -lc 'cat > /app/server.js << "JS"\nconst http = require("http");\nconst path = require("path");\nconst fs = require("fs");\nconst dir = process.env.DIR || "dist";\nconst port = process.env.PORT || 8080;\nconst server = http.createServer((req, res) => {\n const reqPath = req.url === "/" ? "/index.html" : req.url;\n const filePath = path.join(__dirname, dir, reqPath);\n fs.exists(filePath, exists => {\n if (!exists) { res.statusCode = 404; res.end("Not found"); return; }\n fs.createReadStream(filePath).pipe(res);\n });\n});\nserver.listen(port, () => console.log(`Static server serving ${dir} at http://0.0.0.0:${port}/`));\nJS'
EXPOSE 8080
CMD ["node", "/app/server.js", "dist"]
Failing step - [builder 6/8] RUN pnpm install Exact error message and exit code - ERROR: failed to build: failed to solve: process "/bin/sh -c pnpm install" did not complete successfully: exit code: 1 - ERR_PNPM_SPEC_NOT_SUPPORTED_BY_ANY_RESOLVER @types/node@catalog: isn't supported by any available resolver. - This error happened while installing a direct dependency of /workspace Missing packages or files mentioned - The error indicates a resolver issue with @types/node@catalog (not supported by any available resolver) Version mismatch / compatibility info - WARN Ignoring broken lockfile at /workspace: Lockfile /workspace/pnpm-lock.yaml not compatible with current pnpm - Implication: pnpm-lock.yaml is not compatible with the pnpm version used in the image, contributing to the failure Context - The failure occurs during workspace installation for /workspace while running pnpm install.
# Multi-stage build: build from source with PNPM and serve the built UI from a lightweight Node server
FROM node:lts-bookworm AS builder
WORKDIR /workspace
# Use Corepack to manage PNPM version to match CI (pnpm v8)
RUN corepack enable && corepack prepare pnpm@8.0.0 --activate
# Copy workspace manifest and lockfile first to enable proper workspace install
COPY pnpm-workspace.yaml package.json pnpm-lock.yaml ./
# Copy workspace packages
COPY packages ./packages
# Install dependencies (workspace-aware)
RUN pnpm install
# Copy the rest of the repository (source files) for building
COPY . .
# Build the monorepo (produces dist artifacts in packages/*/dist)
RUN pnpm run build
FROM node:lts-bookworm AS runtime
WORKDIR /app
# Copy built frontend assets from builder
COPY --from=builder /workspace/packages/ctool-core/dist ./dist
# Copy static assets that are referenced by the UI (images, etc.)
COPY --from=builder /workspace/images ./dist/images
# Create a tiny static file server using Node.js
RUN bash -lc 'cat > /app/server.js << "JS"\nconst http = require("http");\nconst path = require("path");\nconst fs = require("fs");\nconst dir = process.env.DIR || "dist";\nconst port = process.env.PORT || 8080;\nconst server = http.createServer((req, res) => {\n const reqPath = req.url === "/" ? "/index.html" : req.url;\n const filePath = path.join(__dirname, dir, reqPath);\n fs.access(filePath, fs.constants.R_OK, (err) => {\n if (err) { res.statusCode = 404; res.end("Not found"); return; }\n fs.createReadStream(filePath).pipe(res);\n });\n});\nserver.listen(port, () => console.log("Serving " + dir + " on http://0.0.0.0:" + port));\nJS'
EXPOSE 8080
CMD ["node", "/app/server.js", "dist"]
- Failing step: [builder 6/8] RUN pnpm install - Exact error message and exit code: - ERR_PNPM_SPEC_NOT_SUPPORTED_BY_ANY_RESOLVER @types/node@catalog: isn't supported by any available resolver. - This error happened while installing a direct dependency of /workspace - ERROR: failed to build: failed to solve: process "/bin/sh -c pnpm install" did not complete successfully: exit code: 1 - Missing packages or files / version mismatch info: - Lockfile /workspace/pnpm-lock.yaml not compatible with current pnpm - pnpm version in use: pnpm@8.0.0 (activated via corepack) - Additionally, registry fetch attempts failed with ERR_INVALID_THIS during retries (e.g., for @types/http-proxy, @vercel/node, http-proxy, etc.), preceding the final failure.
# Multi-stage build: build from source with PNPM and serve the built UI from a lightweight static server FROM node:lts-bookworm AS builder WORKDIR /workspace # Pin PNPM to v8 as used in CI RUN npm install -g pnpm@8 # Copy workspace manifest and project files (avoid lockfile to prevent resolver issues) COPY pnpm-workspace.yaml package.json ./ # Copy workspace packages (needed for workspace install) COPY packages ./packages # Install dependencies for the workspace RUN pnpm install # Copy the rest of the repository (source files) for building COPY . . # Build the monorepo (produces dist artifacts in packages/*/dist) RUN pnpm run build FROM node:lts-bookworm AS runtime WORKDIR /app # Copy built frontend assets from builder COPY --from=builder /workspace/packages/ctool-core/dist ./dist # Simple static server to serve the built UI RUN npm install -g http-server EXPOSE 8080 CMD ["http-server", "dist", "-p", "8080"]
Failing step - [builder 6/8] RUN pnpm install Exit code - exit code: 1 Exact error message - ERR_PNPM_SPEC_NOT_SUPPORTED_BY_ANY_RESOLVER @types/node@catalog: isn't supported by any available resolver. Context - This error occurred while installing a direct dependency of /workspace during the Docker build. Missing packages or files mentioned - @types/node@catalog is not supported by any available resolver (i.e., the package spec cannot be resolved). Version mismatch / compatibility notes - No explicit version mismatch is reported in the log. There is a deprecation warning shown earlier about url.parse(), but this is not a version mismatch error.
# Multi-stage build for ct tooling monorepo FROM node:lts-bookworm AS builder WORKDIR /workspace # Install PNPM (pin to v8 as in CI) RUN npm install -g pnpm@8 # Enable corepack and ensure pnpm is prepared RUN corepack enable && corepack prepare pnpm@8 --activate # Copy repository manifests first for better cache locality COPY package.json pnpm-workspace.yaml* pnpm-lock.yaml* ./ # Copy the rest of the repository COPY . . # Install dependencies and build the project from source RUN pnpm install RUN pnpm run build # Runtime image: serve the built frontend with a tiny static server FROM node:lts-bookworm AS runtime WORKDIR /app # Copy built artifacts from the builder (ctool-core dist) COPY --from=builder /workspace/packages/ctool-core/dist ./dist # Install a tiny static file server RUN npm install -g http-server EXPOSE 3000 HEALTHCHECK --interval=30s CMD curl -f http://localhost:3000/ || exit 1 CMD ["http-server", "dist", "-p", "3000"]
# Docker ignore file to speed up builds by excluding large/unneeded files node_modules dist build coverage .env *.log *.tmp *.bak *.swp *.swo .git .gitignore .vscode .idea images packages/**/dist packages/**/node_modules **/node_modules **/tmp
Failing step - [builder 7/8] RUN pnpm install Exit status - exit code: 1 Exact error messages to preserve - " ERR_PNPM_SPEC_NOT_SUPPORTED_BY_ANY_RESOLVER @types/node@catalog: isn't supported by any available resolver." - "This error happened while installing a direct dependency of /workspace" Context / failing command - Dockerfile shows the step: - RUN pnpm install - The error originated during the pnpm install phase for the workspace at /workspace Version/compatibility notes - pnpm version: pnpm@8 (activated earlier in the build) - Lockfile compatibility: "Lockfile /workspace/pnpm-lock.yaml not compatible with current pnpm" (warning) - Base image: node:lts-bookworm Missing packages/files mentioned - The error concerns @types/node@catalog not being resolvable by any available resolver, indicating a resolution issue with the @types/node catalog in the lockfile. - Relatedly, the build notes indicate a broken/incompatible pnpm lockfile (pnpm-lock.yaml) that is not compatible with the current pnpm.
# Multi-stage build for ct tooling monorepo FROM node:lts-bookworm AS builder WORKDIR /workspace # Install PNPM (pin to v8 as in CI) RUN npm install -g pnpm@8 # Enable corepack and ensure pnpm is prepared RUN corepack enable && corepack prepare pnpm@8 --activate # Copy repository manifests first for better cache locality COPY package.json pnpm-workspace.yaml* pnpm-lock.yaml* ./ # Copy the rest of the repository COPY . . # Install dependencies and build the project from source RUN pnpm install --no-lockfile RUN pnpm run build # Runtime image: serve the built frontend with a tiny static server FROM node:lts-bookworm AS runtime WORKDIR /app # Install curl for healthcheck and http-server for static serving RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* # Copy built artifacts from the builder (ctool-core dist) COPY --from=builder /workspace/packages/ctool-core/dist ./dist # Install a tiny static file server RUN npm install -g http-server EXPOSE 3000 HEALTHCHECK --interval=30s CMD curl -f http://localhost:3000/ || exit 1 CMD ["http-server", "dist", "-p", "3000"]
#0 building with "default" instance using docker driver #1 [internal] load build definition from Dockerfile #1 transferring dockerfile: 1.16kB done #1 DONE 0.0s #2 [internal] load metadata for docker.io/library/node:lts-bookworm #2 DONE 0.4s #3 [internal] load .dockerignore #3 transferring context: 286B done #3 DONE 0.0s #4 [builder 1/8] FROM docker.io/library/node:lts-bookworm@sha256:5a593d74b632d1c6f816457477b6819760e13624455d587eef0fa418c8d0777b #4 resolve docker.io/library/node:lts-bookworm@sha256:5a593d74b632d1c6f816457477b6819760e13624455d587eef0fa418c8d0777b 0.0s done #4 DONE 0.1s #5 [runtime 2/5] WORKDIR /app #5 CACHED #6 [runtime 3/5] RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* #6 ERROR: failed to commit l5qpc6txf4edpa42klhyyq04v to qinb7dh2684bs7uk1duveiqc5 during finalize: failed to stat active key during commit: snapshot l5qpc6txf4edpa42klhyyq04v does not exist: not found #7 [internal] load build context #7 transferring context: 44.93kB 0.0s done #7 CANCELED ------ > [runtime 3/5] RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/*: ------ Dockerfile:28 -------------------- 26 | 27 | # Install curl for healthcheck and http-server for static serving 28 | >>> RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* 29 | 30 | # Copy built artifacts from the builder (ctool-core dist) -------------------- ERROR: failed to build: failed to solve: failed to commit l5qpc6txf4edpa42klhyyq04v to qinb7dh2684bs7uk1duveiqc5 during finalize: failed to stat active key during commit: snapshot l5qpc6txf4edpa42klhyyq04v does not exist: not found
# Multi-stage build for ct tooling monorepo FROM node:lts-bookworm AS builder WORKDIR /workspace # Install PNPM (pin to v8 as in CI) RUN npm install -g pnpm@8 # Enable corepack and ensure pnpm is prepared RUN corepack enable && corepack prepare pnpm@8 --activate # Copy repository manifests first for better cache locality COPY package.json pnpm-workspace.yaml* pnpm-lock.yaml* ./ # Copy the rest of the repository COPY . . # Install dependencies and build the project from source RUN pnpm install --no-lockfile RUN pnpm run build # Runtime image: serve the built frontend with a tiny static server FROM node:lts-bookworm AS runtime WORKDIR /app # Copy built artifacts from the builder (ctool-core dist) COPY --from=builder /workspace/packages/ctool-core/dist ./dist # Install a tiny static file server RUN npm install -g http-server EXPOSE 3000 # Simple healthcheck removed to avoid runtime apt dependencies CMD ["http-server", "dist", "-p", "3000"]
- Exact error message and exit code
- ERROR: failed to build: failed to solve: process "/bin/sh -c pnpm install --no-lockfile" did not complete successfully: exit code: 1
- A related pnpm error: ERR_PNPM_SPEC_NOT_SUPPORTED_BY_ANY_RESOLVER @types/node@catalog: isn't supported by any available resolver.
- Failing command/step
- [builder 7/8] RUN pnpm install --no-lockfile
- Dockerfile: line 19 (Dockerfile excerpt shows the install step)
- 17 |
- 18 | # Install dependencies and build the project from source
- 19 | >>> RUN pnpm install --no-lockfile
- 20 | RUN pnpm run build
- Missing packages or files mentioned
- A pnpm-lock.yaml file exists. The current configuration prohibits to read or write a lockfile.
- Version mismatch / context information
- The install step fails with a resolver error: ERR_PNPM_SPEC_NOT_SUPPORTED_BY_ANY_RESOLVER @types/node@catalog: isn't supported by any available resolver.
- This error occurred while installing a direct dependency of /workspace.No results found.
No results found.
# Multi-stage build for ct tooling monorepo FROM node:lts-bookworm AS builder WORKDIR /workspace # Install PNPM (pin to v8 as in CI) RUN npm install -g pnpm@8 # Enable corepack and ensure pnpm is prepared RUN corepack enable && corepack prepare pnpm@8 --activate # Copy repository manifests first for better cache locality COPY package.json pnpm-workspace.yaml* ./ # Copy the rest of the repository COPY . . # Remove any existing lockfile to avoid compatibility issues with PNPM RUN rm -f pnpm-lock.yaml || true # Install dependencies and build the project from source RUN pnpm install RUN pnpm run build # Runtime image: serve the built frontend with a tiny static server FROM node:lts-bookworm AS runtime WORKDIR /app # Copy built artifacts from the builder (ctool-core dist) COPY --from=builder /workspace/packages/ctool-core/dist ./dist # Install a tiny static file server RUN npm install -g http-server EXPOSE 3000 # Simple healthcheck removed to avoid runtime apt dependencies CMD ["http-server", "dist", "-p", "3000"]
- Failing step (Dockerfile): RUN pnpm install (builder 8/9). Exit code: 1 - Exact error messages and context: - (node:7) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities. - (Use `node --trace-deprecation ...` to show where the warning was created) - Scope: all 11 workspace projects - ERR_PNPM_SPEC_NOT_SUPPORTED_BY_ANY_RESOLVER @types/node@catalog: isn't supported by any available resolver. - This error happened while installing a direct dependency of /workspace - Dockerfile excerpt showing the step: RUN pnpm install (line 22) - Failing command/step: - [builder 8/9] RUN pnpm install - Missing packages or files mentioned: - The error indicates a resolver limitation: "@types/node@catalog" isn't supported by any available resolver. No specific file reported missing; a package spec/resolver compatibility issue rather than a missing file. - Version/resolution info: - pnpm installed via corepack and invoked as pnpm@8 (corepack enable && corepack prepare pnpm@8 --activate). - The failure is caused by a PNPM spec resolution mismatch: "ERR_PNPM_SPEC_NOT_SUPPORTED_BY_ANY_RESOLVER" for @types/node@catalog, implying a resolver/version incompatibility between workspace dependencies and pnpm 8. No explicit Node version mismatch beyond the deprecation warning.
# Multi-stage build for ct tooling monorepo FROM node:lts-bookworm AS builder WORKDIR /workspace # Install PNPM (pin to v8 as in CI) RUN npm install -g pnpm@8 # Enable corepack and ensure pnpm is prepared RUN corepack enable && corepack prepare pnpm@8 --activate # Copy repository manifests first for better cache locality COPY package.json pnpm-workspace.yaml* ./ # Copy the rest of the repository COPY . . # Build only the core package to minimize complexity and avoid workspace resolver issues RUN pnpm install --filter ctool-core RUN pnpm --filter ctool-core run build # Runtime image: serve the built frontend with a tiny static server FROM node:lts-bookworm AS runtime WORKDIR /app # Copy built artifacts from the builder (ctool-core dist) COPY --from=builder /workspace/packages/ctool-core/dist ./dist # Install a tiny static file server RUN npm install -g http-server EXPOSE 3000 # Simple healthcheck removed to avoid runtime apt dependencies CMD ["http-server", "dist", "-p", "3000"]
Failing step (command/phase): - [builder 7/8] RUN pnpm install --filter ctool-core Exact error message and exit code: - ERR_PNPM_SPEC_NOT_SUPPORTED_BY_ANY_RESOLVER @types/lodash@catalog: isn't supported by any available resolver. - This error happened while installing a direct dependency of /workspace/packages/ctool-core - process "/bin/sh -c pnpm install --filter ctool-core" did not complete successfully: exit code: 1 - Docker build exit: "ERROR: failed to build: failed to solve: process "/bin/sh -c pnpm install --filter ctool-core" did not complete successfully: exit code: 1" Missing packages or files mentioned: - @types/lodash@catalog (the specific spec causing the resolution failure) - pnpm-lock.yaml lockfile not compatible with current pnpm (lockfile compatibility issue) Version mismatch info: - pnpm version in use: pnpm@8 - Lockfile compatibility warning: Lockfile /workspace/pnpm-lock.yaml not compatible with current pnpm Notes: - The error occurs during installation of a direct dependency for the workspace core package, indicating a resolver incompatibility for the @types/lodash catalog entry.
# Multi-stage build for ct tooling monorepo FROM node:20 AS builder WORKDIR /workspace # Install PNPM (pin to v8 as in CI) RUN npm install -g pnpm@8 # Enable corepack and ensure pnpm is prepared RUN corepack enable && corepack prepare pnpm@8 --activate # Copy repository manifests first for better cache locality (avoid copying lockfile to prevent compatibility issues) COPY package.json pnpm-workspace.yaml ./ # Copy the rest of the repository COPY . . # Install dependencies and build the project from source RUN pnpm install RUN pnpm run build # Runtime image: serve the built frontend with a tiny static server FROM node:20 AS runtime WORKDIR /app # Copy built artifacts from the builder (ctool-core dist) COPY --from=builder /workspace/packages/ctool-core/dist ./dist # Install a tiny static file server RUN npm install -g http-server EXPOSE 3000 # Simple healthcheck (optional; curl may not be present in runtime image by default) # You can enable it if curl is installed in the runtime image. CMD ["http-server", "dist", "-p", "3000"]
- Failing step: builder 7/8 - RUN pnpm install - Exact error message and exit code: - ERR_PNPM_SPEC_NOT_SUPPORTED_BY_ANY_RESOLVER @types/node@catalog: isn't supported by any available resolver. - Exit code: 1 - This error happened while installing a direct dependency of /workspace - Missing packages/files or compatibility issues mentioned: - "Lockfile /workspace/pnpm-lock.yaml not compatible with current pnpm" (warning) - The failure centers on resolving @types/node@catalog via pnpm - Version mismatch / environment notes: - npm notice: New major version of npm available! 10.8.2 -> 11.12.0 - pnpm appears to be activated as pnpm@8 (via corepack), which may interact with the lockfile compatibility warning Context: The build fails during the pnpm install step due to resolver incompatibility for @types/node@catalog, potentially caused by a pnpm lockfile version mismatch with the current pnpm. The lockfile compatibility warning is also present.
# Multi-stage build for ct tooling monorepo FROM node:lts-bookworm AS builder WORKDIR /workspace # Install PNPM (try a slightly older major for compatibility) RUN npm install -g pnpm@7 # Enable corepack and ensure pnpm is prepared RUN corepack enable && corepack prepare pnpm@7 --activate # Copy repository manifests first for better cache locality COPY package.json pnpm-workspace.yaml ./ # Copy the rest of the repository COPY . . # Start with a clean lockfile by not using any existing lockfile; PNPM will generate one RUN rm -f pnpm-lock.yaml || true # Install dependencies and build the project from source RUN pnpm install RUN pnpm run build # Runtime image: serve the built frontend with a tiny static server FROM node:lts-bookworm AS runtime WORKDIR /app # Copy built artifacts from the builder (ctool-core dist) COPY --from=builder /workspace/packages/ctool-core/dist ./dist # Install a tiny static file server RUN npm install -g http-server EXPOSE 3000 CMD ["http-server", "dist", "-p", "3000"]
- Exact error message and exit code: - exit code: 1 - Error: “ ERR_PNPM_SPEC_NOT_SUPPORTED_BY_ANY_RESOLVER @types/node@catalog: isn't supported by any available resolver.” This error happened while installing a direct dependency of /workspace - Failing command/step: - [builder 8/9] RUN pnpm install (Dockerfile: 22) - Missing packages or files mentioned: - The spec causing the failure: @types/node@catalog is not supported by any available resolver - Version mismatch info: - npm notice New minor version of npm available! 11.9.0 -> 11.12.0