FROM node:slim # Install system dependencies required for node-sass and building native modules RUN apt-get update && apt-get install -y python2 build-essential && rm -rf /var/lib/apt/lists/* WORKDIR /workspace # Install dependencies first to leverage Docker cache COPY package.json package-lock.json* ./ RUN npm ci # Copy the rest of the source COPY . . # Build from source RUN npm run build # Default command – keep container usable for inspection CMD ["bash"]
node_modules dist .vscode .git .gitignore .DS_Store docs
- Failing step (command): [2/7] RUN apt-get update && apt-get install -y python2 build-essential && rm -rf /var/lib/apt/lists/*
- Exact error message and exit code:
- The process ended with exit code: 100
- Error output:
> [2/7] RUN apt-get update && apt-get install -y python2 build-essential && rm -rf /var/lib/apt/lists/*:
5.408 Package python2 is not available, but is referred to by another package.
5.408 This may mean that the package is missing, has been obsoleted, or
5.408 is only available from another source
5.408 However the following packages replace it:
5.408 dh-python
5.411 E: Package 'python2' has no installation candidate
- Missing packages/files mentioned:
- python2 is not available/uninstallable in the repository
- Replaced suggestion: dh-python
- Version/compatibility context:
- Base image is node:slim (Debian bookworm era), as shown by the apt-get sources for bookworm, indicating the environment uses Debian bookworm where Python 2 is no longer provided. The log shows the package replacement hint (python2 -> dh-python) and the absence of a Python 2 installation candidate.Image node:14-buster-slim python2 NOT found on Docker Hub.
No results found.
FROM node:8-stretch-slim # Install system dependencies required for native module compilation (node-sass) RUN apt-get update && apt-get install -y python build-essential && rm -rf /var/lib/apt/lists/* WORKDIR /workspace # Install dependencies first to leverage Docker cache COPY package.json package-lock.json* ./ RUN npm ci # Copy the rest of the source COPY . . # Build from source RUN npm run build # Default command – keep container usable for inspection CMD ["bash"]
Failing step (build phase): [2/7] RUN apt-get update && apt-get install -y python build-essential && rm -rf /var/lib/apt/lists/*
- Exact error message and exit code:
- "ERROR: failed to build: failed to solve: process \"/bin/sh -c apt-get update && apt-get install -y python build-essential && rm -rf /var/lib/apt/lists/*\" did not complete successfully: exit code: 100"
- Failing command/step details (from Dockerfile):
- Dockerfile:4
- RUN apt-get update && apt-get install -y python build-essential && rm -rf /var/lib/apt/lists/*
- Missing packages or files mentioned:
- Packages intended to install: python, build-essential
- Root cause: apt repositories for Debian Stretch are unreachable (404) and do not provide Release files
- Version mismatch / environment context:
- Base image implied: node:8-stretch-slim (Debian Stretch)
- Debian Stretch repositories are no longer available (end-of-life), causing 404 Not Found errors and missing Release files
- Key error messages indicating repository problem:
- "3.970 E: Failed to fetch http://security.debian.org/debian-security/dists/stretch/updates/main/binary-amd64/Packages 404 Not Found [IP: 151.101.194.132 80]"
- "3.970 E: Failed to fetch http://deb.debian.org/debian/dists/stretch/main/binary-amd64/Packages 404 Not Found"
- "3.970 E: Failed to fetch http://deb.debian.org/debian/dists/stretch-updates/main/binary-amd64/Packages 404 Not Found"
- "3.970 E: Some index files failed to download. They have been ignored, or old ones used instead."
- Warnings indicating missing Release files:
- "W: The repository 'http://security.debian.org/debian-security stretch/updates Release' does not have a Release file."
- "W: The repository 'http://deb.debian.org/debian stretch Release' does not have a Release file."
- "W: The repository 'http://deb.debian.org/debian stretch-updates Release' does not have a Release file."
- Additional context:
- The failure occurs during step 2 of 7 in the Dockerfile, before any compilation of native modules can proceed.Image node:slim python2 NOT found on Docker Hub.
FROM node:slim # Use Debian archive repos to fetch legacy Python 2 and build tools (node-sass requires Python 2) RUN set -eux; \ sed -i 's|http://deb.debian.org/debian|http://archive.debian.org/debian|g' /etc/apt/sources.list; \ sed -i 's|http://security.debian.org/debian-security|http://archive.debian.org/debian-security|g' /etc/apt/sources.list; \ printf "Acquire::Check-Valid-Until \"0\";\n" > /etc/apt/apt.conf.d/99no-check; \ rm -f /var/lib/apt/lists/*; \ apt-get update -qq; \ apt-get install -y python2 build-essential; \ rm -rf /var/lib/apt/lists/* WORKDIR /workspace # Install dependencies first to leverage Docker cache COPY package.json package-lock.json* ./ RUN npm ci # Copy the rest of the source COPY . . # Build from source RUN npm run build # Default command – keep container usable for inspection CMD ["bash"]
- Exact error message and exit code - sed: can't read /etc/apt/sources.list: No such file or directory - Exit code: 2 - Failing command/step - [2/7] RUN set -eux; sed -i 's|http://deb.debian.org/debian|http://archive.debian.org/debian|g' /etc/apt/sources.list; sed -i 's|http://security.debian.org/debian-security|http://archive.debian.org/debian-security|g' /etc/apt/sources.list; printf "Acquire::Check-Valid-Until \"0\";\n" > /etc/apt/apt.conf.d/99no-check; rm -f /var/lib/apt/lists/*; apt-get update -qq; apt-get install -y python2 build-essential; rm -rf /var/lib/apt/lists/* - Missing packages or files mentioned - /etc/apt/sources.list (not found) - Version mismatch information - None reported in the error log.
FROM node:12-buster-slim # Install system dependencies required for native module compilation (node-sass requires Python 2) RUN apt-get update && apt-get install -y python2 build-essential && rm -rf /var/lib/apt/lists/* WORKDIR /workspace # Install dependencies first to leverage Docker cache COPY package.json package-lock.json* ./ RUN npm ci # Copy the rest of the source COPY . . # Build from source RUN npm run build # Default command – keep container usable for inspection CMD ["bash"]
- Failing step (command): [2/7] RUN apt-get update && apt-get install -y python2 build-essential && rm -rf /var/lib/apt/lists/*
- Exact error message and exit code:
ERROR: failed to build: failed to solve: process "/bin/sh -c apt-get update && apt-get install -y python2 build-essential && rm -rf /var/lib/apt/lists/*" did not complete successfully: exit code: 100
- Failing/missing packages or files mentioned:
- 404 Not Found for debian repos during apt-get update:
- Err:4 http://security.debian.org/debian-security buster/updates Release
- Err:5 http://deb.debian.org/debian buster Release
- Err:6 http://deb.debian.org/debian buster-updates Release
- APT reports missing Release files:
- E: The repository 'http://security.debian.org/debian-security buster/updates Release' does not have a Release file.
- E: The repository 'http://deb.debian.org/debian buster Release' does not have a Release file.
- E: The repository 'http://deb.debian.org/debian buster-updates Release' does not have a Release file.
- Consequence: python2 and build-essential could not be installed due to repository errors.
- Version mismatch / context:
- Base image: node:12-buster-slim (Debian Buster)
- The Debian Buster repositories are no longer providing Release files (end-of-life), causing the 404s and apt errors. This indicates a mismatch between the old base image and the currently unavailable repositories.FROM node:8-stretch-slim ENV DEBIAN_FRONTEND=noninteractive # Install system dependencies required for native module compilation (node-sass requires Python 2) RUN set -eux; \ mkdir -p /usr/local/lib/node_modules; \ echo 'deb http://archive.debian.org/debian/ stretch main' > /etc/apt/sources.list; \ echo 'deb http://archive.debian.org/debian/ stretch-updates main' >> /etc/apt/sources.list; \ echo 'deb http://archive.debian.org/debian-security stretch/updates main' >> /etc/apt/sources.list; \ printf "Acquire::Check-Valid-Until \"0\";\n" > /etc/apt/apt.conf.d/99no-check; \ apt-get update -qq; \ apt-get install -y python2 build-essential; \ ln -s /usr/bin/python2.7 /usr/bin/python2 || true; \ ln -s /usr/bin/python2.7 /usr/bin/python || true; \ rm -rf /var/lib/apt/lists/* WORKDIR /workspace # Install dependencies first to leverage Docker cache COPY package.json package-lock.json* ./ RUN npm ci # Copy the rest of the source COPY . . # Build from source RUN npm run build # Default command – keep container usable for inspection CMD ["bash"]
- Status: VerifyBuild status: build_failed
- Base image and risk: node:8-stretch-slim (Debian Stretch, Node.js 8; both end-of-life). Archived Debian repos and Python 2 usage for node-sass deprecated. Requires upgrading to a current Debian and Node LTS (e.g., Node 18+), and a modern build chain (Python 3, newer node-sass alternatives or node-gyp defaults).
- Copy step concern: COPY package.json package-lock.json* ./ may fail if no package-lock.json exists or the wildcard matches nothing. Consider explicitly copying package.json and package-lock.json if present, or use a separate RUN npm install step that handles lock files gracefully.
- Build error (Exit code 100):
- The following errors occurred during the failing step:
- W: The repository 'http://archive.debian.org/debian stretch-updates Release' does not have a Release file.
- E: Failed to fetch http://archive.debian.org/debian/dists/stretch-updates/main/binary-amd64/Packages 404 Not Found [IP: 151.101.66.132 80]
- E: Some index files failed to download. They have been ignored, or old ones used instead.
- Failing command/step:
Step [2/7] RUN set -eux; mkdir -p /usr/local/lib/node_modules; echo 'deb http://archive.debian.org/debian/ stretch main' > /etc/apt/sources.list; echo 'deb http://archive.debian.org/debian stretch-updates main' >> /etc/apt/sources.list; echo 'deb http://archive.debian.org/debian-security stretch/updates main' >> /etc/apt/sources.list; printf "Acquire::Check-Valid-Until \"0\";\n" > /etc/apt/apt.conf.d/99no-check; apt-get update -qq; apt-get install -y python2 build-essential; ln -s /usr/bin/python2.7 /usr/bin/python2 || true; ln -s /usr/bin/python2.7 /usr/bin/python || true; rm -rf /var/lib/apt/lists/*
- Missing packages/files:
- The stretch-updates repository Release file is missing (404) at http://archive.debian.org/debian/dists/stretch-updates/main/binary-amd64/Packages. Indicates Debian Stretch archive no longer provides a Release for stretch-updates.
- Context: Base image uses Debian Stretch (EOL); apt update fails due to unavailable Release files for archived stretch-updates.
- Recommendations (actionable):
- Upgrade to a current base image (e.g., Node 18+ with a supported Debian/variant).
- Avoid using archived stretch repos; switch to supported Debian repos or a non-EOL distro.
- Move from Python 2 (and node-sass) to Python 3 and a modern Sass/toolchain.
- Ensure package.json and package-lock.json handling is robust; consider explicit COPY commands and a separate npm install step.No results found.
FROM node:16-alpine # Install system dependencies required for native module compilation (node-sass requires Python 2) RUN apk add --no-cache python2 build-base WORKDIR /workspace # Install dependencies first to leverage Docker cache COPY package.json package-lock.json* ./ RUN npm ci # Copy the rest of the source COPY . . # Build from source RUN npm run build # Default command – keep container usable for inspection CMD ["/bin/sh"]
Summary of Docker build error
- Failing command/step:
[2/7] RUN apk add --no-cache python2 build-base
- Exact error message and exit code:
ERROR: unable to select packages:
python2 (no such package):
required by: world[python2]
ERROR: failed to build: failed to solve: process "/bin/sh -c apk add --no-cache python2 build-base" did not complete successfully: exit code: 1
- Missing packages or files mentioned:
- python2 package not available (no such package) in Alpine repositories for the base image
- Version mismatch / context:
- Base image: node:16-alpine (Alpine Linux, used v3.18 in this run)
- The Dockerfile comment indicates Python 2 is needed for node-sass
- Python 2 is not provided in Alpine v3.18 repositories, causing the failure
Additional note:
- This is due to Python 2 removal/deprecation in newer Alpine releases. A workaround would be to switch to Python 3 and adjust build tooling accordingly (or avoid dependencies requiring Python 2).FROM node:18-bullseye-slim ENV PYTHON=/usr/bin/python3 # Install system dependencies required for native modules RUN apt-get update && apt-get install -y python3 build-essential ca-certificates && rm -rf /var/lib/apt/lists/* WORKDIR /workspace # Enable npm to install cleanly in container context ENV npm_config_production=false # Install dependencies first to leverage Docker cache COPY package.json package-lock.json* ./ RUN npm ci # Copy the rest of the source COPY . . # Build from source RUN npm run build # Default command – keep container usable for inspection CMD ["bash"]
Concerns - COPY package.json package-lock.json* ./ may fail if a package-lock.json* file does not exist in the build context - The existence/location of build outputs (dist or build) is project-dependent; smoke tests assume typical artifacts but some projects may place them elsewhere Build error Summary of Docker build error - Failing step (command/step) - [5/7] RUN npm ci - Exact error message and exit code - ERROR: process "/bin/sh -c npm ci" did not complete successfully: exit code: 1 - npm error gyp ERR! node -v v18.20.8 - npm error gyp ERR! node-gyp -v v3.8.0 - npm error gyp ERR! configure error - npm error gyp ERR! stack File "<string>", line 1 - npm error gyp ERR! stack import sys; print "%s.%s.%s" % sys.version_info[:3]; - npm error gyp ERR! stack ^ - npm error gyp ERR! cwd /workspace/node_modules/node-sass - npm error gyp ERR! node -v v18.20.8 - npm error gyp ERR! node-gyp -v v3.8.0 - npm error gyp ERR! not ok - npm error Build failed with error code: 1 - The log also notes: SyntaxError: invalid syntax - Failing module / missing files indicated - Path: /workspace/node_modules/node-sass - The failure arises during building a native module (node-sass) via node-gyp - No explicit missing file is mentioned; the issue is an incompatibility between node-sass/node-gyp and the current Node/Python environment - Version mismatch / environment issues - Node version: v18.20.8 - node-gyp version: v3.8.0 (old) - Python-related mismatch: gyp attempted to execute Python 2-style code (print "%s.%s.%s" ...), which is invalid in Python 3 - This indicates node-sass/node-gyp is not compatible with Node 18 and Python 3 in this image - Root cause (concise) - node-sass build fails due to an old node-gyp (v3.8.0) being used with Node 18 and Python 3 in the container. Node-gyp 3.8.0 expects Python 2, leading to a SyntaxError during configuration. - Quick fixes (optional guidance) - Migrate away from node-sass to sass (dart-sass) if possible. - If node-sass must be used, install a Node version compatible with node-sass (e.g., Node 14/16) or upgrade node-sass to a version compatible with Node 18 (if available). - Ensure Python 2 is available (not recommended long-term) or upgrade tooling to a modern build system that supports Python 3.
FROM node:14-bullseye-slim
# Install system dependencies needed for native module compilation and Python 2.7 from source
RUN set -eux; \
apt-get update && apt-get install -y --no-install-recommends \
ca-certificates curl make build-essential gcc g++ \
libssl-dev libreadline-dev zlib1g-dev && rm -rf /var/lib/apt/lists/*
# Build Python 2.7.18 from source to satisfy node-sass Python 2 requirement
RUN set -eux; \
mkdir -p /opt/python2; \
cd /tmp; \
curl -O https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tgz; \
tar -xzf Python-2.7.18.tgz; \
cd Python-2.7.18; \
./configure --prefix=/usr/local --enable-shared; \
make -j$(nproc); \
make install; \
cd /; \
rm -rf /tmp/Python-2.7.18* /tmp/Python-2.7.18.tgz
# Ensure python2 is available as python2 and as python
RUN set -eux; \
ln -s /usr/local/bin/python2.7 /usr/local/bin/python2 || true; \
ln -s /usr/local/bin/python2.7 /usr/local/bin/python || true
WORKDIR /workspace
# Install dependencies first to leverage Docker cache
COPY package.json package-lock.json* ./
RUN npm ci
# Copy the rest of the source
COPY . .
# Build from source
RUN npm run build
# Default command – keep container usable for inspection
CMD ["bash"]
Concerns: Building Python 2.7 from source can be slow and fail in restricted CI environments (network/file system limits)., The base image node:14-bullseye-slim is older; consider upgrading to a supported Node.js LTS to reduce security risk. Smoke [PASS]: node -v Smoke [FAIL]: bash -lc 'if [ -d dist ]; then echo dist; elif [ -d build ]; then echo build; else exit 1; fi Output: sh: 1: Syntax error: Unterminated quoted string Smoke [FAIL]: bash -lc 'if [ -f dist/index.js ]; then node -e "require(\"./dist/index.js\"); console.log(\"ok\");"; elif [ -f build/index.js ]; then node -e "require(\"./build/index.js\"); console.log(\"ok\");"; else exit 1; fi Output: sh: 1: Syntax error: Unterminated quoted string
FROM node:slim # Install system dependencies required for building native modules and running npm install RUN apt-get update && apt-get install -y --no-install-recommends \ python3 \ build-essential \ git \ ca-certificates \ && rm -rf /var/lib/apt/lists/* # Ensure Python 3 is used by node-gyp ENV PYTHON=/usr/bin/python3 WORKDIR /app # Copy package manifests first for efficient Docker layer caching COPY package*.json ./ RUN npm config set python /usr/bin/python3 \ && npm ci # Copy the rest of the source COPY . . # Build from source RUN npm run build # Provide an interactive shell as the default command (library project does not run a server) CMD ["bash"]
node_modules dist site .npmrc .git .github docs README.md package-lock.json
Summary (under 1500 chars): - Failing step: [5/7] RUN npm config set python /usr/bin/python3 && npm ci - Exact error message and exit code: - 0.622 npm error `python` is not a valid npm option - 0.623 npm error A complete log of this run can be found in: /root/.npm/_logs/2026-03-17T23_51_58_242Z-debug-0.log - ERROR: failed to build: failed to solve: process "/bin/sh -c npm config set python /usr/bin/python3 && npm ci" did not complete successfully: exit code: 1 - Missing packages or files mentioned: None explicitly referenced as missing; the error is due to an invalid npm option. - Version mismatch info: The error indicates that the npm in this environment does not recognize the "python" config option (npm config set python ...). This suggests a version incompatibility or change in supported npm options for the Node image used (node:slim).
FROM node:slim # Install system dependencies required for building native modules and running npm install RUN apt-get update && apt-get install -y --no-install-recommends \ python3 \ build-essential \ git \ ca-certificates \ && rm -rf /var/lib/apt/lists/* # Use Python 3 for node-gyp if supported by dependencies ENV PYTHON=/usr/bin/python3 ENV npm_config_python=/usr/bin/python3 WORKDIR /app # Copy package manifests first for efficient Docker layer caching COPY package*.json ./ RUN npm ci # Copy the rest of the source COPY . . # Build from source RUN npm run build # Provide an interactive shell as the default command (library project does not run a server) CMD ["bash"]
Failing step - [5/7] RUN npm ci Exact error message and exit code - npm warn Unknown env config "python". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options. - npm error code EUSAGE - The `npm ci` command can only install with an existing package-lock.json or npm-shrinkwrap.json with lockfileVersion >= 1. Run an install with npm@5 or later to generate a package-lock.json file, then try again. - A complete log of this run can be found in: /root/.npm/_logs/2026-03-17T23_53_14_067Z-debug-0.log - process "/bin/sh -c npm ci" did not complete successfully: exit code: 1 Missing packages/files - Missing package-lock.json or npm-shrinkwrap.json with lockfileVersion >= 1 (required for npm ci) Version/compatibility notes - Warning about npm config: Unknown env config "python" (will stop working in the next major npm version). - The error arises because there is no existing lockfile (package-lock.json or npm-shrinkwrap.json with lockfileVersion >= 1) to satisfy npm ci. Dockerfile context - The build attempts to run npm ci at line 20 as shown: Dockerfile:20 20 | RUN npm ci
FROM node:18-slim # Install system dependencies required for building native modules RUN apt-get update && apt-get install -y --no-install-recommends \ python3 \ build-essential \ git \ ca-certificates \ && rm -rf /var/lib/apt/lists/* ENV PYTHON=/usr/bin/python3 WORKDIR /app # Copy package manifests first for efficient layer caching COPY package.json ./package.json COPY package-lock.json ./package-lock.json RUN npm ci || npm install # Copy the rest of the source COPY . . # Build from source RUN npm run build # Provide an interactive shell as the default command (library project does not run a server) CMD ["bash"]
- Build status: VerifyBuild status: build_failed
- Base image: docker.io/library/node:18-slim@sha256:f9ab18e354e6855ae56ef2b290dd225c1e51a564f87584b9bd21dd651838830e
- Steps (selected):
- #1 [internal] load build definition from Dockerfile
- #2 [internal] load metadata for docker.io/library/node:18-slim
- #6 [2/8] RUN apt-get update && apt-get install -y --no-install-recommends python3 build-essential git ca-certificates && rm -rf /var/lib/apt/lists/* (CACHED)
- #7 [3/8] WORKDIR /app (CACHED)
- #8 [4/8] COPY package.json ./package.json (CACHED)
- #9 [5/8] COPY package-lock.json ./package-lock.json -> ERROR: failed to calculate checksum of ref mqpnlh3la2bzegxdamkvycc7g::8mux0j0y5100s735kchaopw3i: "/package-lock.json": not found
- Warning observed:
- 1 warning found: CopyIgnoredFile: Attempting to Copy file "package-lock.json" that is excluded by .dockerignore (line 17)
- Dockerfile excerpt:
- 15 | # Copy package manifests first for efficient layer caching
- 16 | COPY package.json ./package.json
- 17 | >>> COPY package-lock.json ./package-lock.json
- 18 |
- 19 | RUN npm ci || npm install
- Final error:
- ERROR: failed to build: failed to solve: failed to compute cache key: failed to calculate checksum of ref mqpnlh3la2bzegxdamkvycc7g::8mux0j0y5100s735kchaopw3i: "/package-lock.json": not found
- Actionable cause and fixes:
- package-lock.json is being copied but is excluded by .dockerignore (line 17). Remove or modify that ignore rule if you intend to copy package-lock.json.
- Ensure package-lock.json exists in the build context and is not ignored by .dockerignore.
- Alternatively, remove the COPY package-lock.json ./package-lock.json line or guard it so it only runs when the file is present.FROM node:18-slim # Install system dependencies required for building native modules RUN apt-get update && apt-get install -y --no-install-recommends \ python3 \ build-essential \ git \ ca-certificates \ && rm -rf /var/lib/apt/lists/* ENV PYTHON=/usr/bin/python3 WORKDIR /app # Copy package manifests first for efficient layer caching COPY package.json ./ RUN npm install # Copy the rest of the source COPY . . # Build from source RUN npm run build # Provide an interactive shell as the default command (library project does not run a server) CMD ["bash"]
- Exact error message and exit code - SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)? - Build failed with error code: 1 - process "/bin/sh -c npm install" did not complete successfully: exit code: 1 - The failing command/step - Step [5/7] RUN npm install (Dockerfile:18) - Missing packages or files mentioned - None reported as missing; the failure occurs during building node-sass via node-gyp, caused by a Python syntax issue rather than a missing package/file. - Version mismatch / environment details - Base image: node:18-slim - Node version: v18.20.8 - node-gyp version: v3.8.0 - Python: /usr/bin/python3 (Python 3.x) - Root cause indicated by error: node-sass build (via node-gyp) uses Python 2-style print syntax, which fails under Python 3. This suggests a mismatch: node-gyp v3.8.0 and the node-sass version being built are not compatible with Node 18 and Python 3. - Additional note in log: npm suggests a new major version is available (11.11.1), but this is not the cause of the failure.
Here is a concise, actionable summary of the package manifest. - Package: vue-material - Description: Material Design for Vue.js - Version: 1.0.0-beta-16 - License: MIT - Repository: git+https://github.com/vuematerial/vue-material.git - Files included: dist, src - Entry points: - main: dist/vue-material.js - module: dist/vue-material.js - unpkg: dist/vue-material.min.js - Engines: node >= 7.0 - PeerDependencies: vue ^2.7.14 - Dependencies: - opencollective-postinstall@^2.0.3 - vue-github-button@^1.3.0 - vue-github-buttons@^3.1.0 - vue-gtag@^1.16.1 - vue-toc@0.0.1 - DevDependencies (selected; full list contains ~60 items): autoprefixer@9.8.8, avoriaz@^6.3.0, axios@1.3.3, babel-cli@^6.26.0, babel-core@6.26.3, babel-env@^2.4.1, babel-eslint@^8.2.6, babel-jest@29.4.3, babel-loader@^7.1.5, babel-polyfill@^6.26.0, babel-preset-stage-2@^6.24.1, chalk@^2.4.2, clipboard@^2.0.11, codesandbox@2.2.3, commitizen@4.3.0, concat@^1.0.3, connect-history-api-fallback@^1.6.0, conventional-changelog@3.1.25, conventional-changelog-vue-material@0.0.1, copy-webpack-plugin@4.6.0, css-loader@^0.28.11, css-mqpacker@7.0.0, cz-conventional-changelog@^2.1.0, date-fns@^2.29.3, deepmerge@^3.3.0, eslint@^7.14.0, eslint-config-standard@^11.0.0, eslint-plugin-import@^2.27.5, eslint-plugin-jest@^21.27.2, eslint-plugin-node@^5.2.1, eslint-plugin-promise@^3.8.0, eslint-plugin-standard@^3.1.0, eslint-plugin-vue@^7.14.0, eventsource-polyfill@^0.9.6, express@^4.18.2, extract-text-webpack-plugin@^3.0.2, fast-deep-equal@^2.0.1, file-loader@^1.1.11, friendly-errors-webpack-plugin@^1.7.0, fuzzysearch@^1.0.3, github-release-cli@2.1.0, highlight.js@9.18.5, html-webpack-plugin@^2.30.1, is-firefox@^1.0.3, is-promise@^2.2.2, jest@^29.4.3, jest-localstorage-mock@^2.4.26, jest-vue@^0.8.2, node-sass@4.14.1, offline-plugin@5.0.7, optimize-css-assets-webpack-plugin@^3.2.1, optimize-js-plugin@0.0.4, ora@^1.4.0, popper.js@^1.16.1, postcss@^8.4.21, preload-webpack-plugin@^2.3.0, prerender-spa-plugin@3.4.0, pretty@^2.0.0, raf@^3.4.1, sass-loader@6.0.7, sinon@^4.5.0, url-loader@0.6.2, vue@^2.7.14, vue-i18n@^8.28.2, vue-loader@^13.7.3, vue-router@^3.6.5, vue-style-loader@^3.1.2, vue-template-compiler@^2.7.14, vuelidate@^0.7.7, vuex@^3.6.2, vuex-router-sync@^5.0.0, webpack@^3.12.0, webpack-bundle-analyzer@^2.13.1, webpack-dev-middleware@^2.0.6, webpack-hot-middleware@^2.25.3, webpack-merge@^4.2.2 - Config: commitizen path = ./node_modules/cz-conventional-changelog - Collective: opencollective, https://opencollective.com/vue-material - Jest config (moduleNameMapper, etc.) and Browserslist: > 1% If you want, I can trim or reformat further.
{
"name": "vue-material",
"description": "Material Design for Vue.js",
"version": "1.0.0-beta-16",
"license": "MIT",
"author": {
"name": "marcosmoura",
"email": "marcosvmmoura@gmail.com"
},
"repository": {
"type": "git",
"url": "git+https://github.com/vuematerial/vue-material.git"
},
"bugs": {
"url": "https://github.com/vuematerial/vue-material/issues"
},
"files": [
"dist",
"src"
],
"main": "dist/vue-material.js",
"module": "dist/vue-material.js",
"unpkg": "dist/vue-material.min.js",
"scripts": {
"dev": "babel-node build/local",
"build": "rm -rf dist/ && babel-node build/lib",
"docs": "babel-node build/docs",
"lint": "eslint --ext .js,.vue docs src build test --fix",
"test": "jest",
"coverage": "yarn test --coverage",
"githooks": "sh build/git-hooks/install.sh",
"changelog": "babel-node build/generate-changelog.js",
"release": "sh build/release.sh",
"new-component": "babel-node build/new-component.js",
"github-release": "github-release",
"commit": "git-cz",
"postinstall": "opencollective-postinstall"
},
"engines": {
"node": ">= 7.0"
},
"peerDependencies": {
"vue": "^2.7.14"
},
"dependencies": {
"opencollective-postinstall": "^2.0.3",
"vue-github-button": "^1.3.0",
"vue-github-buttons": "^3.1.0",
"vue-gtag": "^1.16.1",
"vue-toc": "0.0.1"
},
"devDependencies": {
"autoprefixer": "9.8.8",
"avoriaz": "^6.3.0",
"axios": "1.3.3",
"babel-cli": "^6.26.0",
"babel-core": "6.26.3",
"babel-env": "^2.4.1",
"babel-eslint": "^8.2.6",
"babel-jest": "29.4.3",
"babel-loader": "^7.1.5",
"babel-polyfill": "^6.26.0",
"babel-preset-stage-2": "^6.24.1",
"chuck": "^2.0.0",
"chalk": "^2.4.2",
"clipboard": "^2.0.11",
"codesandbox": "2.2.3",
"commitizen": "4.3.0",
"concat": "^1.0.3",
"connect-history-api-fallback": "^1.6.0",
"conventional-changelog": "3.1.25",
"conventional-changelog-vue-material": "0.0.1",
"copy-webpack-plugin": "4.6.0",
"css-loader": "^0.28.11",
"css-mqpacker": "7.0.0",
"cz-conventional-changelog": "^2.1.0",
"date-fns": "^2.29.3",
"deepmerge": "^3.3.0",
"eslint": "^7.14.0",
"eslint-config-standard": "^11.0.0",
"eslint-plugin-import": "^2.27.5",
"eslint-plugin-jest": "^21.27.2",
"eslint-plugin-node": "^5.2.1",
"eslint-plugin-promise": "^3.8.0",
"eslint-plugin-standard": "^3.1.0",
"eslint-plugin-vue": "^7.14.0",
"eventsource-polyfill": "^0.9.6",
"express": "^4.18.2",
"extract-text-webpack-plugin": "^3.0.2",
"fast-deep-equal": "^2.0.1",
"file-loader": "^1.1.11",
"friendly-errors-webpack-plugin": "^1.7.0",
"fuzzysearch": "^1.0.3",
"github-release-cli": "2.1.0",
"highlight.js": "9.18.5",
"html-webpack-plugin": "^2.30.1",
"is-firefox": "^1.0.3",
"is-promise": "^2.2.2",
"jest": "^29.4.3",
"jest-localstorage-mock": "^2.4.26",
"jest-vue": "^0.8.2",
- "node-sass": "4.14.1",
+ "sass": "^1.62.0",
"offline-plugin": "5.0.7",
"optimize-css-assets-webpack-plugin": "^3.2.1",
"optimize-js-plugin": "0.0.4",
"ora": "^1.4.0",
"popper.js": "^1.16.1",
"postcss": "^8.4.21",
"preload-webpack-plugin": "^2.3.0",
"prerender-spa-plugin": "3.4.0",
"pretty": "^2.0.0",
"raf": "^3.4.1",
"sass-loader": "6.0.7",
"sinon": "^4.5.0",
"url-loader": "0.6.2",
"vue": "^2.7.14",
"vue-i18n": "^8.28.2",
"vue-loader": "^13.7.3",
"vue-router": "^3.6.5",
"vue-style-loader": "^3.1.2",
"vue-template-compiler": "^2.7.14",
"vuelidate": "^0.7.7",
"vuex": "^3.6.2",
"vuex-router-sync": "^5.0.0",
"webpack": "^3.12.0",
"webpack-bundle-analyzer": "^2.13.1",
"webpack-dev-middleware": "^2.0.6",
"webpack-hot-middleware": "^2.25.3",
"webpack-merge": "^4.2.2"
},
"config": {
"commitizen": {
"path": "./node_modules/cz-conventional-changelog"
}
},
"collective": {
"type": "opencollective",
"url": "https://opencollective.com/vue-material"
},
"jest": {
"moduleNameMapper": {
"^vue$": "<rootDir>/node_modules/vue/dist/vue.common.js",
"^vue-material(.*)$": "<rootDir>/src$1",
"^test(.*)$": "<rootDir>/test$1",
"^src(.*)$": "<rootDir>/src$1",
"^theme(.*)$": "<rootDir>/src/theme$1",
"^base(.*)$": "<rootDir>/src/base$1",
"^core(.*)$": "<rootDir>/src/core$1",
"^components(.*)$": "<rootDir>/src/components$1",
"\\.(css|scss)$": "<rootDir>/test/styleMock.js"
},
"moduleFileExtensions": [
"js",
"json",
"vue"
],
"transform": {
"^.+\\.js$": "<rootDir>/node_modules/babel-jest",
".*\\.(vue)$": "<rootDir>/node_modules/jest-vue"
},
"setupTestFrameworkScriptFile": "<rootDir>/test/setup.js",
"collectCoverageFrom": [
"src/**/*.{js,vue}",
"!src/**/index.js",
"!src/**/*.test.js"
],
"coverageReporters": [
"lcov",
"json",
"html"
],
"testURL": "http://localhost:8080"
},
"browserslist": [
"> 1%"
]
}
{
"name": "vue-material",
"description": "Material Design for Vue.js",
"version": "1.0.0-beta-16",
"license": "MIT",
"author": {
"name": "marcosmoura",
"email": "marcosvmmoura@gmail.com"
},
"repository": {
"type": "git",
"url": "git+https://github.com/vuematerial/vue-material.git"
},
"bugs": {
"url": "https://github.com/vuematerial/vue-material/issues"
},
"files": [
"dist",
"src"
],
"main": "dist/vue-material.js",
"module": "dist/vue-material.js",
"unpkg": "dist/vue-material.min.js",
"scripts": {
"dev": "babel-node build/local",
"build": "rm -rf dist/ && babel-node build/lib",
"docs": "babel-node build/docs",
"lint": "eslint --ext .js,.vue docs src build test --fix",
"test": "jest",
"coverage": "yarn test --coverage",
"githooks": "sh build/git-hooks/install.sh",
"changelog": "babel-node build/generate-changelog.js",
"release": "sh build/release.sh",
"new-component": "babel-node build/new-component.js",
"github-release": "github-release",
"commit": "git-cz",
"postinstall": "opencollective-postinstall"
},
"engines": {
"node": ">= 7.0"
},
"peerDependencies": {
"vue": "^2.7.14"
},
"dependencies": {
"opencollective-postinstall": "^2.0.3",
"vue-github-button": "^1.3.0",
"vue-github-buttons": "^3.1.0",
"vue-gtag": "^1.16.1",
"vue-toc": "0.0.1"
},
"devDependencies": {
"autoprefixer": "9.8.8",
"avoriaz": "^6.3.0",
"axios": "1.3.3",
"babel-cli": "^6.26.0",
"babel-core": "6.26.3",
"babel-env": "^2.4.1",
"babel-eslint": "^8.2.6",
"babel-jest": "29.4.3",
"babel-loader": "^7.1.5",
"babel-polyfill": "^6.26.0",
"babel-preset-stage-2": "^6.24.1",
"css-loader": "^0.28.11",
"css-mqpacker": "7.0.0",
"cz-conventional-changelog": "^2.1.0",
"date-fns": "^2.29.3",
"deepmerge": "^3.3.0",
"eslint": "^7.14.0",
"eslint-config-standard": "^11.0.0",
"eslint-plugin-import": "^2.27.5",
"eslint-plugin-jest": "^21.27.2",
"eslint-plugin-node": "^5.2.1",
"eslint-plugin-promise": "^3.8.0",
"eslint-plugin-standard": "^3.1.0",
"eslint-plugin-vue": "^7.14.0",
"eventsource-polyfill": "^0.9.6",
"express": "^4.18.2",
"extract-text-webpack-plugin": "^3.0.2",
"fast-deep-equal": "^2.0.1",
"file-loader": "^1.1.11",
"friendly-errors-webpack-plugin": "^1.7.0",
"fuzzysearch": "^1.0.3",
"github-release-cli": "2.1.0",
"highlight.js": "9.18.5",
"html-webpack-plugin": "^2.30.1",
"is-firefox": "^1.0.3",
"is-promise": "^2.2.2",
"jest": "^29.4.3",
"jest-localstorage-mock": "^2.4.26",
"jest-vue": "^0.8.2",
"sass": "^1.62.0",
"offline-plugin": "5.0.7",
"optimize-css-assets-webpack-plugin": "^3.2.1",
"optimize-js-plugin": "0.0.4",
"ora": "^1.4.0",
"popper.js": "^1.16.1",
"postcss": "^8.4.21",
"preload-webpack-plugin": "^2.3.0",
"prerender-spa-plugin": "3.4.0",
"pretty": "^2.0.0",
"raf": "^3.4.1",
"sass-loader": "6.0.7",
"sinon": "^4.5.0",
"url-loader": "0.6.2",
"vue": "^2.7.14",
"vue-i18n": "^8.28.2",
"vue-loader": "^13.7.3",
"vue-router": "^3.6.5",
"vue-style-loader": "^3.1.2",
"vue-template-compiler": "^2.7.14",
"vuelidate": "^0.7.7",
"vuex": "^3.6.2",
"vuex-router-sync": "^5.0.0",
"webpack": "^3.12.0",
"webpack-bundle-analyzer": "^2.13.1",
"webpack-dev-middleware": "^2.0.6",
"webpack-hot-middleware": "^2.25.3",
"webpack-merge": "^4.2.2"
},
"config": {
"commitizen": {
"path": "./node_modules/cz-conventional-changelog"
}
},
"collective": {
"type": "opencollective",
"url": "https://opencollective.com/vue-material"
},
"jest": {
"moduleNameMapper": {
"^vue$": "<rootDir>/node_modules/vue/dist/vue.common.js",
"^vue-material(.*)$": "<rootDir>/src$1",
"^test(.*)$": "<rootDir>/test$1",
"^src(.*)$": "<rootDir>/src$1",
"^theme(.*)$": "<rootDir>/src/theme$1",
"^base(.*)$": "<rootDir>/src/base$1",
"^core(.*)$": "<rootDir>/src/core$1",
"^components(.*)$": "<rootDir>/src/components$1",
"\\.(css|scss)$": "<rootDir>/test/styleMock.js"
},
"moduleFileExtensions": [
"js",
"json",
"vue"
],
"transform": {
"^.+\\.js$": "<rootDir>/node_modules/babel-jest",
".*\\.(vue)$": "<rootDir>/node_modules/jest-vue"
},
"setupTestFrameworkScriptFile": "<rootDir>/test/setup.js",
"collectCoverageFrom": [
"src/**/*.{js,vue}",
"!src/**/index.js",
"!src/**/*.test.js"
],
"coverageReporters": [
"lcov",
"json",
"html"
],
"testURL": "http://localhost:8080"
},
"browserslist": [
"> 1%"
]
}
FROM node:16-slim # Install system dependencies required for building native modules RUN apt-get update && apt-get install -y --no-install-recommends \ python3 \ build-essential \ git \ ca-certificates \ && rm -rf /var/lib/apt/lists/* ENV PYTHON=/usr/bin/python3 WORKDIR /app # Copy package manifests first for efficient layer caching COPY package.json ./ RUN npm install # Copy the rest of the source COPY . . # Build from source RUN npm run build # Provide an interactive shell as the default command (library project does not run a server) CMD ["bash"]
- Build status: build_failed
- Concerns:
- CMD uses 'bash' but bash may not be installed on node:16-slim; consider using /bin/sh or install bash in the image.
- Uses npm install instead of npm ci; may lead to non-deterministic builds if package-lock.json is present. Consider adding npm ci for reproducible builds.
- No explicit .dockerignore. Copying the whole context (COPY . .) could inadvertently copy large files or node_modules if .dockerignore is missing; add a .dockerignore.
- Failing command/step:
RUN apt-get update && apt-get install -y --no-install-recommends \
python3 \
build-essential \
git \
ca-certificates \
&& rm -rf /var/lib/apt/lists/*
- Exact error message and exit code:
ERROR: failed to build: failed to solve: process "/bin/sh -c apt-get update && apt-get install -y --no-install-recommends python3 build-essential git ca-certificates && rm -rf /var/lib/apt/lists/*" did not complete successfully: exit code: 100
- Missing packages or files mentioned:
- The repository releases for Debian buster are not available:
0.345 Err:4 http://deb.debian.org/debian buster Release
0.345 404 Not Found [IP: 151.101.22.132 80]
0.352 Err:5 http://deb.debian.org/debian-security buster/updates Release
0.352 404 Not Found [IP: 151.101.22.132 80]
0.358 Err:6 http://deb.debian.org/debian buster-updates Release
0.358 404 Not Found [IP: 151.101.22.132 80]
0.370 E: The repository 'http://deb.debian.org/debian buster Release' does not have a Release file.
0.371 E: The repository 'http://deb.debian.org/debian-security buster/updates Release' does not have a Release file.
0.372 E: The repository 'http://deb.debian.org/debian buster-updates Release' does not have a Release file.
- Version mismatch / context:
- Base image shown: FROM docker.io/library/node:16-slim
- apt-get is targeting Debian "buster" (Debian 10), which has reached end-of-life and its Release files are no longer available at the configured repositories.
- Notes:
- The failure originates from the package source configuration for the Debian buster release, not from the requested packages (python3, build-essential, git, ca-certificates) themselves. The error prevents apt-get from completing, hence exit code 100.FROM node:18-slim # Install system dependencies required for building native modules RUN apt-get update && apt-get install -y --no-install-recommends \ python3 \ build-essential \ git \ ca-certificates \ && rm -rf /var/lib/apt/lists/* ENV PYTHON=/usr/bin/python3 WORKDIR /app # Copy package manifests first for efficient layer caching COPY package.json package-lock.json ./ RUN npm ci # Copy the rest of the source COPY . . # Build from source RUN npm run build # Provide an interactive shell as the default command (library project does not run a server) CMD ["/bin/sh"]
#0 building with "default" instance using docker driver #1 [internal] load build definition from Dockerfile #1 transferring dockerfile: 629B done #1 DONE 0.1s #2 [internal] load metadata for docker.io/library/node:18-slim #2 DONE 0.8s #3 [internal] load .dockerignore #3 transferring context: 116B done #3 DONE 0.1s #4 [1/7] FROM docker.io/library/node:18-slim@sha256:f9ab18e354e6855ae56ef2b290dd225c1e51a564f87584b9bd21dd651838830e #4 resolve docker.io/library/node:18-slim@sha256:f9ab18e354e6855ae56ef2b290dd225c1e51a564f87584b9bd21dd651838830e 0.0s done #4 ... #5 [internal] load build context #5 transferring context: 1.50MB 0.0s done #5 DONE 0.3s #6 [2/7] RUN apt-get update && apt-get install -y --no-install-recommends python3 build-essential git ca-certificates && rm -rf /var/lib/apt/lists/* #6 CACHED #7 [3/7] WORKDIR /app #7 CACHED #8 [4/7] COPY package.json package-lock.json ./ #8 ERROR: failed to calculate checksum of ref mqpnlh3la2bzegxdamkvycc7g::wpxs1gqz6rawtwernazqzp38z: "/package-lock.json": not found #4 [1/7] FROM docker.io/library/node:18-slim@sha256:f9ab18e354e6855ae56ef2b290dd225c1e51a564f87584b9bd21dd651838830e #4 CANCELED ------ > [4/7] COPY package.json package-lock.json ./: ------ [33m1 warning found (use docker --debug to expand): [0m - CopyIgnoredFile: Attempting to Copy file "package-lock.json" that is excluded by .dockerignore (line 16) Dockerfile:16 -------------------- 14 | 15 | # Copy package manifests first for efficient layer caching 16 | >>> COPY package.json package-lock.json ./ 17 | 18 | RUN npm ci -------------------- ERROR: failed to build: failed to solve: failed to compute cache key: failed to calculate checksum of ref mqpnlh3la2bzegxdamkvycc7g::wpxs1gqz6rawtwernazqzp38z: "/package-lock.json": not found
node_modules dist site .npmrc .git .github docs README.md package-lock.json
Build status: build_failed Concerns - Potential copying of host node_modules into image if .dockerignore is not provided; add a .dockerignore to exclude node_modules and other large/unneeded files. - Running as root user; consider creating and using a non-root user for security. Build error - Base image: docker.io/library/node:18-slim@sha256:f9ab18e354e6855ae56ef2b290dd225c1e51a564f87584b9bd21dd651838830e - Failing step: [4/7] COPY package.json package-lock.json ./ - Error: failed to calculate checksum of ref mqpnlh3la2bzegxdamkvycc7g::laxhr233n5cvwvbpx4zqtryul: "/package-lock.json": not found - Warning (Dockerfile:16): CopyIgnoredFile: Attempting to Copy file "package-lock.json" that is excluded by .dockerignore (line 16) - Dockerfile:16 - Context: COPY package.json package-lock.json ./ Cause - .dockerignore excludes package-lock.json; build context lacks package-lock.json, causing checksum calculation failure. Fix options - Remove package-lock.json from .dockerignore or ensure package-lock.json is included in the build context. - Alternatively adjust Dockerfile to copy only package.json first or include the lockfile in the context as appropriate.
# Multi-stage build to compile the Vue Material library from source FROM node:18-slim AS builder # Install essential build tools (Python 3 is enough with sass; keep for safety) RUN apt-get update && apt-get install -y --no-install-recommends \ python3 \ build-essential \ git \ ca-certificates \ && rm -rf /var/lib/apt/lists/* WORKDIR /app # Copy package manifests first to leverage caching COPY package.json package-lock.json ./ # Install dependencies (locks to exact versions) RUN npm ci # Copy the rest of the source and build COPY . . RUN npm run build # Final runtime image FROM node:18-slim WORKDIR /app # Copy built artifacts from builder COPY --from=builder /app/dist ./dist # Default command: drop into a shell for debugging if needed CMD ["bash"]
Summary: - VerifyBuild status: build_failed - Concerns: - The final image’s default CMD is a shell (bash) not ideal for a library image; consider a non-interactive CMD to expose artifacts or a test script. - No explicit runtime validation beyond dist exists; add tests to verify dist folder contents (JS/CSS) to catch regressions. - Build error (key details): - Build driver: docker - Base image: node:18-slim@sha256:f9ab18e354e6855ae56ef2b290dd225c1e51a564f87584b9bd21dd651838830e - Build context size: ~1.50MB - Step failing: [builder 4/7] COPY package.json package-lock.json ./ - Error: failed to calculate checksum of ref mqpnlh3la2bzegxdamkvycc7g::l42ib9kj7qok8kljyuf859tl9: "/package-lock.json": not found - Warning: CopyIgnoredFile - Attempting to Copy file "package-lock.json" that is excluded by .dockerignore (line 15) - Dockerfile line: 15 — COPY package.json package-lock.json ./ - Likely cause: package-lock.json is not present in build context or is excluded by .dockerignore; the COPY step cannot proceed. - Actionable fixes: - Ensure package-lock.json is present in the build context and not blocked by .dockerignore (adjust .dockerignore or remove package-lock.json from the ignore list if appropriate). - Alternatively, modify Dockerfile to COPY only package.json initially, then run npm install to generate a lockfile if needed, or ensure the correct path/name for package-lock.json in the build context.
FROM node:18-slim AS builder WORKDIR /app # Install build tools (no Python needed if using updated deps) RUN apt-get update && apt-get install -y --no-install-recommends \ git \ ca-certificates \ && rm -rf /var/lib/apt/lists/* # Copy only package manifest first to leverage Docker cache COPY package.json ./ # Install dependencies (will use lockfile if present, otherwise falls back to package.json) RUN npm install # Copy the rest of the source and build COPY . . RUN npm run build # Final runtime image FROM node:18-slim WORKDIR /app # Copy built assets from builder COPY --from=builder /app/dist ./dist # Default command: provide a shell for inspection CMD ["/bin/sh"]
Build summary - VerifyBuild status: build_failed - Concerns: - Lockfile not used because only package.json is copied before npm install; consider COPY package.json package-lock.json ./ and use npm ci for reproducible installs. - Final image only exposes a shell (CMD ["/bin/sh"]); for a runnable library, consider adding a proper CMD or ENTRYPOINT if a runtime artifact is expected to run. - Build step and exit: - Failing step (command/step): builder 5/7: RUN npm install - Exit code: 1 - Dockerfile line: RUN npm install - Exact error and context: - npm exit code: 1 - Key failure log: gyp ERR! configure error; Error: Can't find Python executable "python", you can set the PYTHON env variable. - cwd: /app/node_modules/node-sass - node -v: v18.20.8 - node-gyp -v: v3.8.0 - Error: Can't find Python executable "python", you can set the PYTHON env variable. - This usually leads to Build failed with error code: 1 - Final wrap-up: Docker reported: "ERROR: failed to build: failed to solve: process "/bin/sh -c npm install" did not complete successfully: exit code: 1" - Missing Python executables: - "python" not found - "python2" not found - Evidence: "Checking for Python executable "python2" in the PATH" -> "Error: not found: python2"; "Checking for Python executable "python" in the PATH" -> "Error: not found: python" - Version / environment details: - Node runtime: v18.20.8 - node-gyp: v3.8.0 - npm: New major version available: 10.8.2 -> 11.11.1 - Context: failure occurs while building node-sass via node-gyp, which depends on Python; Python 2 is expected by this older node-gyp version.
FROM node:18-slim AS builder # Install build tools needed for native modules and builds RUN apt-get update && apt-get install -y --no-install-recommends \ python3 \ build-essential \ git \ ca-certificates \ && rm -rf /var/lib/apt/lists/* ENV PYTHON=/usr/bin/python3 WORKDIR /app # Copy manifests first to leverage caching and install via lockfile if present COPY package.json package-lock.json ./ RUN npm ci # Copy rest of source and build COPY . . RUN npm run build # Final runtime image FROM node:18-slim WORKDIR /app # Copy built artifacts from builder COPY --from=builder /app/dist ./dist # Default to a shell; this repo is a library and this container is for building/testing CMD ["/bin/sh"]
- VerifyBuild status: build_failed
- Concerns:
- If package-lock.json is missing, npm ci will fail during build.
- COPY . . may copy unnecessary files unless a .dockerignore is present; consider adding it to speed up builds.
- The final image relies on dist; ensure dist includes a self-contained entry point; no explicit runtime API test is performed.
- Build error details:
- Dockerfile uses node:18-slim
- Step [builder 4/7] COPY package.json package-lock.json ./ caused failure: "failed to calculate checksum of ref mqpnlh3la2bzegxdamkvycc7g::8dhsfemzoqduf7n65vg8woxa0: \"/package-lock.json\": not found"
- Warning: CopyIgnoredFile: Attempting to Copy file "package-lock.json" that is excluded by .dockerignore (line 16)
- Dockerfile excerpt:
- COPY package.json package-lock.json ./
- RUN npm ci
- .dockerignore excludes package-lock.json (line 16)
- Build context: 1.50MB
- Build aborted during [builder 4/7] step due to missing/ignored package-lock.json
- Files/paths involved:
- package.json, package-lock.json
- Dockerfile line 16 (COPY package.json package-lock.json ./)
- Base image: node:18-slim
- Error messages captured:
- "failed to calculate checksum of ref ... \"/package-lock.json\": not found"
- "CopyIgnoredFile: Attempting to Copy file \"package-lock.json\" that is excluded by .dockerignore (line 16)"Project: vue-material
Key info
- Description: Material Design for Vue.js
- Version: 1.0.0-beta-16
- License: MIT
- Author: marcosmoura (marcosvmmoura@gmail.com)
- Repository: git+https://github.com/vuematerial/vue-material.git
- Bugs: https://github.com/vuematerial/vue-material/issues
- Files included: dist, src
- Entry points:
- main: dist/vue-material.js
- module: dist/vue-material.js
- unpkg: dist/vue-material.min.js
Build / scripts
- dev: babel-node build/local
- build: rm -rf dist/ && babel-node build/lib
- docs: babel-node build/docs
- lint: eslint --ext .js,.vue docs src build test --fix
- test: jest
- coverage: yarn test --coverage
- githooks: sh build/git-hooks/install.sh
- changelog: babel-node build/generate-changelog.js
- release: sh build/release.sh
- new-component: babel-node build/new-component.js
- github-release: github-release
- commit: git-cz
- postinstall: opencollective-postinstall
Environment
- Engines: node >= 7.0
Dependencies
- peerDependencies: vue ^2.7.14
- dependencies: opencollective-postinstall ^2.0.3; vue-github-button ^1.3.0; vue-github-buttons ^3.1.0; vue-gtag ^1.16.1; vue-toc 0.0.1
DevDependencies (selected, numerous)
- autoprefixer 9.8.8; avoriaz ^6.3.0; axios 1.3.3; babel-cli ^6.26.0; babel-core 6.26.3; babel-env ^2.4.1; babel-eslint ^8.2.6; babel-jest 29.4.3; babel-loader ^7.1.5; babel-polyfill ^6.26.0; babel-preset-stage-2 ^6.24.1; css-loader ^0.28.11; css-mqpacker 7.0.0; cz-conventional-changelog ^2.1.0; date-fns ^2.29.3; deepmerge ^3.3.0; eslint ^7.14.0; eslint-config-standard ^11.0.0; eslint-plugin-import ^2.27.5; eslint-plugin-jest ^21.27.2; eslint-plugin-node ^5.2.1; eslint-plugin-promise ^3.8.0; eslint-plugin-standard ^3.1.0; eslint-plugin-vue ^7.14.0; eventsource-polyfill ^0.9.6; express ^4.18.2; extract-text-webpack-plugin ^3.0.2; fast-deep-equal ^2.0.1; file-loader ^1.1.11; friendly-errors-webpack-plugin ^1.7.0; fuzzysearch ^1.0.3; github-release-cli 2.1.0; highlight.js 9.18.5; html-webpack-plugin ^2.30.1; is-firefox ^1.0.3; is-promise ^2.2.2; jest ^29.4.3; jest-localstorage-mock ^2.4.26; jest-vue ^0.8.2; sass ^1.62.0; offline-plugin 5.0.7; optimize-css-assets-webpack-plugin ^3.2.1; optimize-js-plugin 0.0.4; ora ^1.4.0; popper.js ^1.16.1; postcss ^8.4.21; preload-webpack-plugin ^2.3.0; prerender-spa-plugin 3.4.0; pretty ^2.0.0; raf ^3.4.1; sass-loader 6.0.7; sinon ^4.5.0; url-loader 0.6.2; vue ^2.7.14; vue-i18n ^8.28.2; vue-loader ^13.7.3; vue-router ^3.6.5; vue-style-loader ^3.1.2; vue-template-compiler ^2.7.14; vuelidate ^0.7.7; vuex ^3.6.2; vuex-router-sync ^5.0.0; webpack ^3.12.0; webpack-bundle-analyzer ^2.13.1; webpack-dev-middleware ^2.0.6; webpack-hot-middleware ^2.25.3; webpack-merge ^4.2.2
Config / tests
- collectives: opencollective
- jest config: moduleNameMapper for vue, vue-material, test, src, theme, base, core, components; test file style mocks; moduleFileExtensions: js, json, vue; transform: babel-jest, jest-vue; setupTests: test/setup.js; collectCoverageFrom: src/**/*.{js,vue}, excluding index.js and test files; coverageReporters: LCOV, JSON, HTML; testURL: http://localhost:8080
- browserslist: > 1%
Note: Full devDependency list is expansive; see package.json for the complete set.FROM node:12-slim
# Install system dependencies required to build native modules (e.g. node-sass) and a basic shell
RUN apt-get update && \
apt-get install -y --no-install-recommends python2 build-essential bash && \
rm -rf /var/lib/apt/lists/*
WORKDIR /app
# Copy package manifests first for cached npm install
COPY package*.json ./
# Install dependencies using npm ci (locks to exact versions via package-lock.json)
RUN npm ci
# Copy the rest of the source code
COPY . .
# Build the project from source
RUN npm run build
# Provide a harmless default command; this image is intended as a build artifact container
CMD ["node", "-e", "console.log('vue-material build image ready')"]
Actionable summary: - Build status: build_failed - Error (exit code 100): /bin/sh -c apt-get update && apt-get install -y --no-install-recommends python2 build-essential bash && rm -rf /var/lib/apt/lists/* - Failing step: [2/7] RUN apt-get update && apt-get install -y --no-install-recommends python2 build-essential bash && rm -rf /var/lib/apt/lists/* - Packages attempted to install: python2, build-essential, bash - apt-get update failures (404s / missing Release files): - http://security.debian.org/debian-security/dists/stretch/updates/main/binary-amd64/Packages - http://deb.debian.org/debian/dists/stretch/main/binary-amd64/Packages - The repository 'http://security.debian.org/debian-security stretch/updates Release' does not have a Release file. - The repository 'http://deb.debian.org/debian stretch Release' does not have a Release file. - Summary: Some index files failed to download. They have been ignored, or old ones used instead. - Base image / root cause: - Base image: node:12-slim (Debian stretch) - Debian stretch repositories are End Of Life; apt repositories no longer have Release files - This indicates a version mismatch: attempting to install modern packages on an obsolete Debian stretch base - Recommended next steps: - Switch to a newer Node base image (example: node:18-slim or node:20-slim) that uses a supported Debian version - Alternatively, if staying on stretch, adjust apt sources to archived mirrors (old-releases) or upgrade the base OS, but upgrading the base image is the recommended fix
FROM node:18-slim
# Install essential build tools required for native module compilation (e.g., node-sass) and a basic shell
RUN apt-get update && \
apt-get install -y --no-install-recommends python3 make g++ bash && \
rm -rf /var/lib/apt/lists/*
ENV PYTHON=/usr/bin/python3
WORKDIR /app
# Copy package manifests first for cached npm install
COPY package*.json ./
# Install dependencies using npm ci (lockfile ensures exact versions)
RUN npm ci
# Copy the rest of the source code
COPY . .
# Build the project from source
RUN npm run build
# Provide a harmless default command; the image is primarily for building artifacts
CMD ["bash"]
Error summary:
- Failing command/step:
- [5/7] RUN npm ci
- Exact error message and exit code:
- Exit code: 1
- The `npm ci` command can only install with an existing package-lock.json or
npm-shrinkwrap.json with lockfileVersion >= 1. Run an install with npm@5 or
later to generate a package-lock.json file, then try again.
- A complete log of this run can be found in: /root/.npm/_logs/2026-03-18T00_19_45_022Z-debug-0.log
- Missing packages or files mentioned:
- No package-lock.json (or npm-shrinkwrap.json) was found, which npm ci requires.
- Context shows the Dockerfile copies package*.json, but no lockfile exists at build time.
- Version mismatch info:
- No explicit version mismatch noted. The failure is due to a missing lockfile, which npm ci requires. The guidance implies you need a package-lock.json (generated with npm install using npm@5+).
Notes:
- Base image observed earlier: node:18-slim (Dockerfile step shows using node:18-slim). The failure occurs after copying package*.json and attempting npm ci, due to absence of a lockfile.FROM node:14-slim
# Install essential build tools required for native module compilation (e.g., node-sass) and a basic shell
RUN apt-get update && \
apt-get install -y --no-install-recommends python3 make g++ bash ca-certificates && \
rm -rf /var/lib/apt/lists/*
ENV PYTHON=/usr/bin/python3
WORKDIR /app
# Copy package manifests first for cached npm install
COPY package.json package-lock.json ./
# Install dependencies using npm ci (lockfile ensures exact versions)
RUN npm ci
# Copy the rest of the source code
COPY . .
# Build the project from source
RUN npm run build
# Provide a harmless default command; the image is primarily for building artifacts
CMD ["bash"]
- Exact error message and exit code - ERROR: failed to build: failed to solve: failed to compute cache key: failed to calculate checksum of ref mqpnlh3la2bzegxdamkvycc7g::tsuhwbo3ujnlwncivhxyroal8: "/package-lock.json": not found - Failing command/step - [4/7] COPY package.json package-lock.json ./: - Missing packages or files mentioned - "/package-lock.json": not found - Note: A warning indicates CopyIgnoredFile: Attempting to Copy file "package-lock.json" that is excluded by .dockerignore (line 13) - Version mismatch information - Base image: node:14-slim with digest sha256:198142146b4c47193348f6415da769bdb5035c16fcab051c38c256a6b48f2e1c - No explicit version mismatch shown beyond the resolved base image digest - Additional context - The COPY command attempts to bring in package.json and package-lock.json, but the lockfile appears to be excluded by .dockerignore, or not present in the build context, causing the checksum/cache key calculation to fail.
node_modules/ dist/ .vscode/ *.log .idea/ .DS_Store *.tmp build/ docs/ src/temp/ docs/_site/ *.tar.gz *.zip