From 74f798a58877efd7e4edf12450438f50711a6b7d Mon Sep 17 00:00:00 2001 From: Prabhu Subramanian Date: Mon, 6 Jan 2025 20:02:50 +0000 Subject: [PATCH] Bundle locally built cli in the container images Signed-off-by: Prabhu Subramanian --- ci/base-images/cdxgen/Dockerfile.dotnet6 | 11 ++++++++--- ci/base-images/cdxgen/Dockerfile.dotnet7 | 11 ++++++++--- ci/base-images/cdxgen/Dockerfile.dotnet8 | 11 ++++++++--- ci/base-images/cdxgen/Dockerfile.dotnet9 | 11 ++++++++--- ci/base-images/cdxgen/Dockerfile.java | 14 +++++++++++--- ci/base-images/cdxgen/Dockerfile.java-slim | 12 +++++++++--- ci/base-images/cdxgen/Dockerfile.java17 | 14 +++++++++++--- ci/base-images/cdxgen/Dockerfile.java17-slim | 12 +++++++++--- ci/base-images/cdxgen/Dockerfile.node20 | 12 +++++++++--- ci/base-images/cdxgen/Dockerfile.python | 7 ++++++- ci/base-images/cdxgen/Dockerfile.python310 | 7 ++++++- ci/base-images/cdxgen/Dockerfile.python311 | 7 ++++++- ci/base-images/cdxgen/Dockerfile.python36 | 7 ++++++- ci/base-images/cdxgen/Dockerfile.python39 | 7 ++++++- ci/base-images/cdxgen/Dockerfile.rolling | 11 ++++++++--- ci/base-images/cdxgen/debian/Dockerfile.dotnet6 | 13 ++++++++++--- ci/base-images/cdxgen/debian/Dockerfile.dotnet8 | 11 ++++++++--- ci/base-images/cdxgen/debian/Dockerfile.dotnet9 | 11 ++++++++--- deno.json | 2 +- jsr.json | 2 +- package.json | 2 +- 21 files changed, 148 insertions(+), 47 deletions(-) diff --git a/ci/base-images/cdxgen/Dockerfile.dotnet6 b/ci/base-images/cdxgen/Dockerfile.dotnet6 index 63874fd02..7f9be9936 100644 --- a/ci/base-images/cdxgen/Dockerfile.dotnet6 +++ b/ci/base-images/cdxgen/Dockerfile.dotnet6 @@ -12,10 +12,15 @@ LABEL maintainer="CycloneDX" \ org.opencontainers.docker.cmd="docker run --rm -v /tmp:/tmp -p 9090:9090 -v $(pwd):/app:rw -t ghcr.io/cyclonedx/cdxgen-dotnet:v11 -r /app --server" ENV CDXGEN_IN_CONTAINER=true \ + NODE_COMPILE_CACHE="/opt/cdxgen-node-cache" \ PYTHONPATH=/opt/pypi ENV PATH=${PATH}:/usr/local/bin:/opt/pypi/bin: -RUN npm install -g @cyclonedx/cdxgen --omit=dev \ - && pip install --upgrade --no-cache-dir blint --target /opt/pypi +RUN cd /opt/cdxgen && corepack enable && corepack pnpm install --prod --package-import-method copy && corepack pnpm cache delete \ + && mkdir -p /opt/cdxgen-node-cache \ + && chown -R cyclonedx:cyclonedx /opt/cdxgen /opt/cdxgen-node-cache \ + && node /opt/cdxgen/bin/cdxgen.js --help \ + && pip install --upgrade --no-cache-dir blint --target /opt/pypi \ + && chmod a-w -R /opt -ENTRYPOINT ["cdxgen"] +ENTRYPOINT ["node", "/opt/cdxgen/bin/cdxgen.js"] diff --git a/ci/base-images/cdxgen/Dockerfile.dotnet7 b/ci/base-images/cdxgen/Dockerfile.dotnet7 index 34125b259..375d626d1 100644 --- a/ci/base-images/cdxgen/Dockerfile.dotnet7 +++ b/ci/base-images/cdxgen/Dockerfile.dotnet7 @@ -12,10 +12,15 @@ LABEL maintainer="CycloneDX" \ org.opencontainers.docker.cmd="docker run --rm -v /tmp:/tmp -p 9090:9090 -v $(pwd):/app:rw -t ghcr.io/cyclonedx/cdxgen-dotnet7:v11 -r /app --server" ENV CDXGEN_IN_CONTAINER=true \ + NODE_COMPILE_CACHE="/opt/cdxgen-node-cache" \ PYTHONPATH=/opt/pypi ENV PATH=${PATH}:/usr/local/bin:/opt/pypi/bin: -RUN npm install -g @cyclonedx/cdxgen --omit=dev \ - && pip install --upgrade --no-cache-dir blint --target /opt/pypi +RUN cd /opt/cdxgen && corepack enable && corepack pnpm install --prod --package-import-method copy && corepack pnpm cache delete \ + && mkdir -p /opt/cdxgen-node-cache \ + && chown -R cyclonedx:cyclonedx /opt/cdxgen /opt/cdxgen-node-cache \ + && node /opt/cdxgen/bin/cdxgen.js --help \ + && pip install --upgrade --no-cache-dir blint --target /opt/pypi \ + && chmod a-w -R /opt -ENTRYPOINT ["cdxgen"] +ENTRYPOINT ["node", "/opt/cdxgen/bin/cdxgen.js"] diff --git a/ci/base-images/cdxgen/Dockerfile.dotnet8 b/ci/base-images/cdxgen/Dockerfile.dotnet8 index 1cf11fa5b..29286f631 100644 --- a/ci/base-images/cdxgen/Dockerfile.dotnet8 +++ b/ci/base-images/cdxgen/Dockerfile.dotnet8 @@ -12,10 +12,15 @@ LABEL maintainer="CycloneDX" \ org.opencontainers.docker.cmd="docker run --rm -v /tmp:/tmp -p 9090:9090 -v $(pwd):/app:rw -t ghcr.io/cyclonedx/cdxgen-dotnet8:v11 -r /app --server" ENV CDXGEN_IN_CONTAINER=true \ + NODE_COMPILE_CACHE="/opt/cdxgen-node-cache" \ PYTHONPATH=/opt/pypi ENV PATH=${PATH}:/usr/local/bin:/opt/pypi/bin: -RUN npm install -g @cyclonedx/cdxgen --omit=dev \ - && pip install --upgrade --no-cache-dir blint --target /opt/pypi +RUN cd /opt/cdxgen && corepack enable && corepack pnpm install --prod --package-import-method copy && corepack pnpm cache delete \ + && mkdir -p /opt/cdxgen-node-cache \ + && chown -R cyclonedx:cyclonedx /opt/cdxgen /opt/cdxgen-node-cache \ + && node /opt/cdxgen/bin/cdxgen.js --help \ + && pip install --upgrade --no-cache-dir blint --target /opt/pypi \ + && chmod a-w -R /opt -ENTRYPOINT ["cdxgen"] +ENTRYPOINT ["node", "/opt/cdxgen/bin/cdxgen.js"] diff --git a/ci/base-images/cdxgen/Dockerfile.dotnet9 b/ci/base-images/cdxgen/Dockerfile.dotnet9 index e8df7c772..dbe36afe7 100644 --- a/ci/base-images/cdxgen/Dockerfile.dotnet9 +++ b/ci/base-images/cdxgen/Dockerfile.dotnet9 @@ -12,10 +12,15 @@ LABEL maintainer="CycloneDX" \ org.opencontainers.docker.cmd="docker run --rm -v /tmp:/tmp -p 9090:9090 -v $(pwd):/app:rw -t ghcr.io/cyclonedx/cdxgen-dotnet9:v11 -r /app --server" ENV CDXGEN_IN_CONTAINER=true \ + NODE_COMPILE_CACHE="/opt/cdxgen-node-cache" \ PYTHONPATH=/opt/pypi ENV PATH=${PATH}:/usr/local/bin:/opt/pypi/bin: -RUN npm install -g @cyclonedx/cdxgen --omit=dev \ - && pip install --upgrade --no-cache-dir blint --target /opt/pypi +RUN cd /opt/cdxgen && corepack enable && corepack pnpm install --prod --package-import-method copy && corepack pnpm cache delete \ + && mkdir -p /opt/cdxgen-node-cache \ + && chown -R cyclonedx:cyclonedx /opt/cdxgen /opt/cdxgen-node-cache \ + && node /opt/cdxgen/bin/cdxgen.js --help \ + && pip install --upgrade --no-cache-dir blint --target /opt/pypi \ + && chmod a-w -R /opt -ENTRYPOINT ["cdxgen"] +ENTRYPOINT ["node", "/opt/cdxgen/bin/cdxgen.js"] diff --git a/ci/base-images/cdxgen/Dockerfile.java b/ci/base-images/cdxgen/Dockerfile.java index 34e7737eb..8a78233d2 100644 --- a/ci/base-images/cdxgen/Dockerfile.java +++ b/ci/base-images/cdxgen/Dockerfile.java @@ -11,8 +11,16 @@ org.opencontainers.image.description="Rolling image with cdxgen SBOM generator for Java 11 and android apps" \ org.opencontainers.docker.cmd="docker run --rm -v /tmp:/tmp -p 9090:9090 -v $(pwd):/app:rw -t ghcr.io/cyclonedx/cdxgen-java:v11 -r /app --server" -ENV CDXGEN_IN_CONTAINER=true +ENV CDXGEN_IN_CONTAINER=true \ + NODE_COMPILE_CACHE="/opt/cdxgen-node-cache" \ + PYTHONPATH=/opt/pypi +ENV PATH=${PATH}:/usr/local/bin:/opt/pypi/bin: -RUN npm install -g @cyclonedx/cdxgen --omit=dev +RUN cd /opt/cdxgen && corepack enable && corepack pnpm install --prod --package-import-method copy && corepack pnpm cache delete \ + && mkdir -p /opt/cdxgen-node-cache \ + && chown -R cyclonedx:cyclonedx /opt/cdxgen /opt/cdxgen-node-cache \ + && node /opt/cdxgen/bin/cdxgen.js --help \ + && pip install --upgrade --no-cache-dir blint --target /opt/pypi \ + && chmod a-w -R /opt -ENTRYPOINT ["cdxgen"] +ENTRYPOINT ["node", "/opt/cdxgen/bin/cdxgen.js"] diff --git a/ci/base-images/cdxgen/Dockerfile.java-slim b/ci/base-images/cdxgen/Dockerfile.java-slim index a83bebdad..b8c588354 100644 --- a/ci/base-images/cdxgen/Dockerfile.java-slim +++ b/ci/base-images/cdxgen/Dockerfile.java-slim @@ -11,8 +11,14 @@ LABEL maintainer="CycloneDX" \ org.opencontainers.image.description="Rolling image with cdxgen SBOM generator for Java 11 apps" \ org.opencontainers.docker.cmd="docker run --rm -v /tmp:/tmp -p 9090:9090 -v $(pwd):/app:rw -t ghcr.io/cyclonedx/cdxgen-java-slim:v11 -r /app --server" -ENV CDXGEN_IN_CONTAINER=true +ENV CDXGEN_IN_CONTAINER=true \ + NODE_COMPILE_CACHE="/opt/cdxgen-node-cache" +ENV PATH=${PATH}:/usr/local/bin: -RUN npm install -g @cyclonedx/cdxgen --omit=dev +RUN cd /opt/cdxgen && corepack enable && corepack pnpm install --prod --package-import-method copy && corepack pnpm cache delete \ + && mkdir -p /opt/cdxgen-node-cache \ + && chown -R cyclonedx:cyclonedx /opt/cdxgen /opt/cdxgen-node-cache \ + && node /opt/cdxgen/bin/cdxgen.js --help \ + && chmod a-w -R /opt -ENTRYPOINT ["cdxgen"] +ENTRYPOINT ["node", "/opt/cdxgen/bin/cdxgen.js"] diff --git a/ci/base-images/cdxgen/Dockerfile.java17 b/ci/base-images/cdxgen/Dockerfile.java17 index 3054163c4..78448c018 100644 --- a/ci/base-images/cdxgen/Dockerfile.java17 +++ b/ci/base-images/cdxgen/Dockerfile.java17 @@ -11,8 +11,16 @@ LABEL maintainer="CycloneDX" \ org.opencontainers.image.description="Rolling image with cdxgen SBOM generator for Java 17 and android apps" \ org.opencontainers.docker.cmd="docker run --rm -v /tmp:/tmp -p 9090:9090 -v $(pwd):/app:rw -t ghcr.io/cyclonedx/cdxgen-java17:v11 -r /app --server" -ENV CDXGEN_IN_CONTAINER=true +ENV CDXGEN_IN_CONTAINER=true \ + NODE_COMPILE_CACHE="/opt/cdxgen-node-cache" \ + PYTHONPATH=/opt/pypi +ENV PATH=${PATH}:/usr/local/bin:/opt/pypi/bin: -RUN npm install -g @cyclonedx/cdxgen --omit=dev +RUN cd /opt/cdxgen && corepack enable && corepack pnpm install --prod --package-import-method copy && corepack pnpm cache delete \ + && mkdir -p /opt/cdxgen-node-cache \ + && chown -R cyclonedx:cyclonedx /opt/cdxgen /opt/cdxgen-node-cache \ + && node /opt/cdxgen/bin/cdxgen.js --help \ + && pip install --upgrade --no-cache-dir blint --target /opt/pypi \ + && chmod a-w -R /opt -ENTRYPOINT ["cdxgen"] +ENTRYPOINT ["node", "/opt/cdxgen/bin/cdxgen.js"] diff --git a/ci/base-images/cdxgen/Dockerfile.java17-slim b/ci/base-images/cdxgen/Dockerfile.java17-slim index 84e98a3da..38b36b364 100644 --- a/ci/base-images/cdxgen/Dockerfile.java17-slim +++ b/ci/base-images/cdxgen/Dockerfile.java17-slim @@ -11,8 +11,14 @@ LABEL maintainer="CycloneDX" \ org.opencontainers.image.description="Rolling image with cdxgen SBOM generator for Java 17 apps" \ org.opencontainers.docker.cmd="docker run --rm -v /tmp:/tmp -p 9090:9090 -v $(pwd):/app:rw -t ghcr.io/cyclonedx/cdxgen-java17-slim:v11 -r /app --server" -ENV CDXGEN_IN_CONTAINER=true +ENV CDXGEN_IN_CONTAINER=true \ + NODE_COMPILE_CACHE="/opt/cdxgen-node-cache" +ENV PATH=${PATH}:/usr/local/bin: -RUN npm install -g @cyclonedx/cdxgen --omit=dev +RUN cd /opt/cdxgen && corepack enable && corepack pnpm install --prod --package-import-method copy && corepack pnpm cache delete \ + && mkdir -p /opt/cdxgen-node-cache \ + && chown -R cyclonedx:cyclonedx /opt/cdxgen /opt/cdxgen-node-cache \ + && node /opt/cdxgen/bin/cdxgen.js --help \ + && chmod a-w -R /opt -ENTRYPOINT ["cdxgen"] +ENTRYPOINT ["node", "/opt/cdxgen/bin/cdxgen.js"] diff --git a/ci/base-images/cdxgen/Dockerfile.node20 b/ci/base-images/cdxgen/Dockerfile.node20 index fb0a1e852..0a9b826de 100644 --- a/ci/base-images/cdxgen/Dockerfile.node20 +++ b/ci/base-images/cdxgen/Dockerfile.node20 @@ -11,8 +11,14 @@ LABEL maintainer="CycloneDX" \ org.opencontainers.image.description="Rolling image with cdxgen SBOM generator for Node.js 20 apps" \ org.opencontainers.docker.cmd="docker run --rm -v /tmp:/tmp -p 9090:9090 -v $(pwd):/app:rw -t ghcr.io/cyclonedx/cdxgen-node20:v11 -r /app --server" -ENV CDXGEN_IN_CONTAINER=true +ENV CDXGEN_IN_CONTAINER=true \ + NODE_COMPILE_CACHE="/opt/cdxgen-node-cache" +ENV PATH=${PATH}:/usr/local/bin: -RUN npm install -g @cyclonedx/cdxgen --omit=dev +RUN cd /opt/cdxgen && corepack enable && corepack pnpm install --prod --package-import-method copy && corepack pnpm cache delete \ + && mkdir -p /opt/cdxgen-node-cache \ + && chown -R cyclonedx:cyclonedx /opt/cdxgen /opt/cdxgen-node-cache \ + && node /opt/cdxgen/bin/cdxgen.js --help \ + && chmod a-w -R /opt -ENTRYPOINT ["cdxgen"] +ENTRYPOINT ["node", "/opt/cdxgen/bin/cdxgen.js"] diff --git a/ci/base-images/cdxgen/Dockerfile.python b/ci/base-images/cdxgen/Dockerfile.python index fa58d00f7..dbc5bc91d 100644 --- a/ci/base-images/cdxgen/Dockerfile.python +++ b/ci/base-images/cdxgen/Dockerfile.python @@ -22,6 +22,7 @@ ENV NVM_DIR="/root/.nvm" \ LANGUAGE=en_US.UTF-8 \ CDXGEN_IN_CONTAINER=true \ SAFE_PIP_INSTALL=true \ + NODE_COMPILE_CACHE="/opt/cdxgen-node-cache" \ PATH=${PATH}:/root/.nvm/versions/node/v${NODE_VERSION}/bin:${JAVA_HOME}/bin:${MAVEN_HOME}/bin: RUN source /root/.nvm/nvm.sh \ @@ -29,7 +30,11 @@ RUN source /root/.nvm/nvm.sh \ postgresql-devel postgresql16-server-devel libopenssl-devel libopenblas_pthreads-devel lapacke-devel \ && python3 -m pip install --no-cache-dir --upgrade pip virtualenv \ && python3 -m pip install --no-cache-dir --upgrade --user pipenv poetry blint uv \ - && npm install -g @cyclonedx/cdxgen --omit=dev \ + && cd /opt/cdxgen && corepack enable && corepack pnpm install --prod --package-import-method copy && corepack pnpm cache delete \ + && mkdir -p /opt/cdxgen-node-cache \ + && chown -R cyclonedx:cyclonedx /opt/cdxgen /opt/cdxgen-node-cache \ + && node /opt/cdxgen/bin/cdxgen.js --help \ + && chmod a-w -R /opt \ && zypper clean -a ENTRYPOINT ["cdxgen"] diff --git a/ci/base-images/cdxgen/Dockerfile.python310 b/ci/base-images/cdxgen/Dockerfile.python310 index bd8d47088..2eaf67ffa 100644 --- a/ci/base-images/cdxgen/Dockerfile.python310 +++ b/ci/base-images/cdxgen/Dockerfile.python310 @@ -13,11 +13,16 @@ LABEL maintainer="CycloneDX" \ ENV CDXGEN_IN_CONTAINER=true \ SAFE_PIP_INSTALL=true \ + NODE_COMPILE_CACHE="/opt/cdxgen-node-cache" \ CRYPTOGRAPHY_DONT_BUILD_RUST=1 RUN zypper --non-interactive install --allow-downgrade -l --no-recommends readline-devel clang13 llvm13 llvm13-devel libjpeg62-devel libmariadb-devel \ postgresql16-devel postgresql16-server-devel libopenssl-devel libopenblas_pthreads-devel lapacke-devel graphviz-devel \ - && npm install -g @cyclonedx/cdxgen --omit=dev \ + && cd /opt/cdxgen && corepack enable && corepack pnpm install --prod --package-import-method copy && corepack pnpm cache delete \ + && mkdir -p /opt/cdxgen-node-cache \ + && chown -R cyclonedx:cyclonedx /opt/cdxgen /opt/cdxgen-node-cache \ + && node /opt/cdxgen/bin/cdxgen.js --help \ + && chmod a-w -R /opt \ && zypper clean -a ENTRYPOINT ["cdxgen"] diff --git a/ci/base-images/cdxgen/Dockerfile.python311 b/ci/base-images/cdxgen/Dockerfile.python311 index 1d56a5618..3faaf662c 100644 --- a/ci/base-images/cdxgen/Dockerfile.python311 +++ b/ci/base-images/cdxgen/Dockerfile.python311 @@ -23,12 +23,17 @@ ENV NVM_DIR="/root/.nvm" \ CDXGEN_IN_CONTAINER=true \ SAFE_PIP_INSTALL=true \ CRYPTOGRAPHY_DONT_BUILD_RUST=1 \ + NODE_COMPILE_CACHE="/opt/cdxgen-node-cache" \ PATH=${PATH}:/root/.nvm/versions/node/v${NODE_VERSION}/bin:${JAVA_HOME}/bin:${MAVEN_HOME}/bin: RUN source /root/.nvm/nvm.sh \ && zypper --non-interactive install -l --no-recommends clang7 llvm7 llvm7-devel libcurl-devel libjpeg62-devel libmariadb-devel \ postgresql-devel postgresql16-server-devel libopenssl-devel libopenblas_pthreads-devel lapacke-devel graphviz-devel \ - && npm install -g @cyclonedx/cdxgen --omit=dev \ + && cd /opt/cdxgen && corepack enable && corepack pnpm install --prod --package-import-method copy && corepack pnpm cache delete \ + && mkdir -p /opt/cdxgen-node-cache \ + && chown -R cyclonedx:cyclonedx /opt/cdxgen /opt/cdxgen-node-cache \ + && node /opt/cdxgen/bin/cdxgen.js --help \ + && chmod a-w -R /opt \ && zypper clean -a ENTRYPOINT ["cdxgen"] diff --git a/ci/base-images/cdxgen/Dockerfile.python36 b/ci/base-images/cdxgen/Dockerfile.python36 index b6d3120a5..48ebde650 100644 --- a/ci/base-images/cdxgen/Dockerfile.python36 +++ b/ci/base-images/cdxgen/Dockerfile.python36 @@ -23,12 +23,17 @@ ENV NVM_DIR="/root/.nvm" \ CDXGEN_IN_CONTAINER=true \ SAFE_PIP_INSTALL=true \ CRYPTOGRAPHY_DONT_BUILD_RUST=1 \ + NODE_COMPILE_CACHE="/opt/cdxgen-node-cache" \ PATH=${PATH}:/root/.nvm/versions/node/v${NODE_VERSION}/bin:${JAVA_HOME}/bin:${MAVEN_HOME}/bin: RUN source /root/.nvm/nvm.sh \ && zypper --non-interactive install -l --no-recommends clang7 llvm7 llvm7-devel libcurl-devel libjpeg62-devel libmariadb-devel \ postgresql-devel postgresql16-server-devel libopenssl-devel libopenblas_pthreads-devel lapacke-devel \ - && npm install -g @cyclonedx/cdxgen --omit=dev \ + && cd /opt/cdxgen && corepack enable && corepack pnpm install --prod --package-import-method copy && corepack pnpm cache delete \ + && mkdir -p /opt/cdxgen-node-cache \ + && chown -R cyclonedx:cyclonedx /opt/cdxgen /opt/cdxgen-node-cache \ + && node /opt/cdxgen/bin/cdxgen.js --help \ + && chmod a-w -R /opt \ && zypper clean -a ENTRYPOINT ["cdxgen"] diff --git a/ci/base-images/cdxgen/Dockerfile.python39 b/ci/base-images/cdxgen/Dockerfile.python39 index 92f7ba85a..c11105882 100644 --- a/ci/base-images/cdxgen/Dockerfile.python39 +++ b/ci/base-images/cdxgen/Dockerfile.python39 @@ -13,11 +13,16 @@ LABEL maintainer="CycloneDX" \ ENV CDXGEN_IN_CONTAINER=true \ SAFE_PIP_INSTALL=true \ + NODE_COMPILE_CACHE="/opt/cdxgen-node-cache" \ CRYPTOGRAPHY_DONT_BUILD_RUST=1 RUN zypper --non-interactive install --allow-downgrade -l --no-recommends readline-devel clang13 llvm13 llvm13-devel libjpeg62-devel libmariadb-devel \ postgresql16-devel postgresql16-server-devel libopenssl-devel libopenblas_pthreads-devel lapacke-devel graphviz-devel \ - && npm install -g @cyclonedx/cdxgen --omit=dev \ + && cd /opt/cdxgen && corepack enable && corepack pnpm install --prod --package-import-method copy && corepack pnpm cache delete \ + && mkdir -p /opt/cdxgen-node-cache \ + && chown -R cyclonedx:cyclonedx /opt/cdxgen /opt/cdxgen-node-cache \ + && node /opt/cdxgen/bin/cdxgen.js --help \ + && chmod a-w -R /opt \ && zypper clean -a ENTRYPOINT ["cdxgen"] diff --git a/ci/base-images/cdxgen/Dockerfile.rolling b/ci/base-images/cdxgen/Dockerfile.rolling index b4449dc43..6bd0f3ca1 100644 --- a/ci/base-images/cdxgen/Dockerfile.rolling +++ b/ci/base-images/cdxgen/Dockerfile.rolling @@ -3,6 +3,7 @@ FROM ghcr.io/cyclonedx/opensuse-lang:master ENV CDXGEN_DEBUG_MODE=debug \ SCAN_DEBUG_MODE=debug \ CDXGEN_IN_CONTAINER=true \ + NODE_COMPILE_CACHE="/opt/cdxgen-node-cache" \ PYTHONPATH=/opt/pypi ENV PATH=${PATH}:/usr/local/bin:/opt/pypi/bin: @@ -17,7 +18,11 @@ LABEL maintainer="CycloneDX" \ org.opencontainers.image.description="Rolling image with cdxgen SBOM generator based on tumbleweed" \ org.opencontainers.docker.cmd="docker run --rm -v /tmp:/tmp -p 9090:9090 -v $(pwd):/app:rw -t ghcr.io/cyclonedx/cdxgen-rolling:v11 -r /app --server" -RUN npm install -g git+https://github.com/CycloneDX/cdxgen --omit=dev \ - && pip install --upgrade --no-cache-dir blint --target /opt/pypi +RUN cd /opt/cdxgen && corepack enable && corepack pnpm install --prod --package-import-method copy && corepack pnpm cache delete \ + && mkdir -p /opt/cdxgen-node-cache \ + && chown -R cyclonedx:cyclonedx /opt/cdxgen /opt/cdxgen-node-cache \ + && node /opt/cdxgen/bin/cdxgen.js --help \ + && pip install --upgrade --no-cache-dir blint --target /opt/pypi \ + && chmod a-w -R /opt -ENTRYPOINT ["cdxgen"] +ENTRYPOINT ["node", "/opt/cdxgen/bin/cdxgen.js"] diff --git a/ci/base-images/cdxgen/debian/Dockerfile.dotnet6 b/ci/base-images/cdxgen/debian/Dockerfile.dotnet6 index d3bdb8d86..9bd5ff500 100644 --- a/ci/base-images/cdxgen/debian/Dockerfile.dotnet6 +++ b/ci/base-images/cdxgen/debian/Dockerfile.dotnet6 @@ -12,10 +12,17 @@ LABEL maintainer="CycloneDX" \ org.opencontainers.docker.cmd="docker run --rm -v /tmp:/tmp -p 9090:9090 -v $(pwd):/app:rw -t ghcr.io/cyclonedx/cdxgen-debian-dotnet6:v11 -r /app --server" ENV CDXGEN_IN_CONTAINER=true \ + NODE_COMPILE_CACHE="/opt/cdxgen-node-cache" \ PYTHONPATH=/opt/pypi ENV PATH=${PATH}:/usr/local/bin:/opt/pypi/bin: -RUN npm install -g @cyclonedx/cdxgen --omit=dev \ - && pip install --upgrade --no-cache-dir blint --target /opt/pypi +COPY . /opt/cdxgen -ENTRYPOINT ["cdxgen"] +RUN cd /opt/cdxgen && corepack enable && corepack pnpm install --prod --package-import-method copy && corepack pnpm cache delete \ + && mkdir -p /opt/cdxgen-node-cache \ + && chown -R cyclonedx:cyclonedx /opt/cdxgen /opt/cdxgen-node-cache \ + && node /opt/cdxgen/bin/cdxgen.js --help \ + && pip install --upgrade --no-cache-dir blint --target /opt/pypi \ + && chmod a-w -R /opt + +ENTRYPOINT ["node", "/opt/cdxgen/bin/cdxgen.js"] diff --git a/ci/base-images/cdxgen/debian/Dockerfile.dotnet8 b/ci/base-images/cdxgen/debian/Dockerfile.dotnet8 index 61030cefa..3910e00c9 100644 --- a/ci/base-images/cdxgen/debian/Dockerfile.dotnet8 +++ b/ci/base-images/cdxgen/debian/Dockerfile.dotnet8 @@ -12,10 +12,15 @@ LABEL maintainer="CycloneDX" \ org.opencontainers.docker.cmd="docker run --rm -v /tmp:/tmp -p 9090:9090 -v $(pwd):/app:rw -t ghcr.io/cyclonedx/cdxgen-debian-dotnet8:v11 -r /app --server" ENV CDXGEN_IN_CONTAINER=true \ + NODE_COMPILE_CACHE="/opt/cdxgen-node-cache" \ PYTHONPATH=/opt/pypi ENV PATH=${PATH}:/usr/local/bin:/opt/pypi/bin: -RUN npm install -g @cyclonedx/cdxgen --omit=dev \ - && pip install --upgrade --no-cache-dir blint --target /opt/pypi +RUN cd /opt/cdxgen && corepack enable && corepack pnpm install --prod --package-import-method copy && corepack pnpm cache delete \ + && mkdir -p /opt/cdxgen-node-cache \ + && chown -R cyclonedx:cyclonedx /opt/cdxgen /opt/cdxgen-node-cache \ + && node /opt/cdxgen/bin/cdxgen.js --help \ + && pip install --upgrade --no-cache-dir blint --target /opt/pypi \ + && chmod a-w -R /opt -ENTRYPOINT ["cdxgen"] +ENTRYPOINT ["node", "/opt/cdxgen/bin/cdxgen.js"] diff --git a/ci/base-images/cdxgen/debian/Dockerfile.dotnet9 b/ci/base-images/cdxgen/debian/Dockerfile.dotnet9 index d27ba4f7f..fb5823e02 100644 --- a/ci/base-images/cdxgen/debian/Dockerfile.dotnet9 +++ b/ci/base-images/cdxgen/debian/Dockerfile.dotnet9 @@ -12,10 +12,15 @@ LABEL maintainer="CycloneDX" \ org.opencontainers.docker.cmd="docker run --rm -v /tmp:/tmp -p 9090:9090 -v $(pwd):/app:rw -t ghcr.io/cyclonedx/cdxgen-debian-dotnet9:v11 -r /app --server" ENV CDXGEN_IN_CONTAINER=true \ + NODE_COMPILE_CACHE="/opt/cdxgen-node-cache" \ PYTHONPATH=/opt/pypi ENV PATH=${PATH}:/usr/local/bin:/opt/pypi/bin: -RUN npm install -g @cyclonedx/cdxgen --omit=dev \ - && pip install --upgrade --no-cache-dir blint --target /opt/pypi +RUN cd /opt/cdxgen && corepack enable && corepack pnpm install --prod --package-import-method copy && corepack pnpm cache delete \ + && mkdir -p /opt/cdxgen-node-cache \ + && chown -R cyclonedx:cyclonedx /opt/cdxgen /opt/cdxgen-node-cache \ + && node /opt/cdxgen/bin/cdxgen.js --help \ + && pip install --upgrade --no-cache-dir blint --target /opt/pypi \ + && chmod a-w -R /opt -ENTRYPOINT ["cdxgen"] +ENTRYPOINT ["node", "/opt/cdxgen/bin/cdxgen.js"] diff --git a/deno.json b/deno.json index dc1d2e6d4..f74cee18d 100644 --- a/deno.json +++ b/deno.json @@ -1,6 +1,6 @@ { "name": "@cyclonedx/cdxgen", - "version": "11.0.10", + "version": "11.0.11", "exports": "./lib/cli/index.js", "compilerOptions": { "lib": ["deno.window"], diff --git a/jsr.json b/jsr.json index 13d89681e..aec68abd2 100644 --- a/jsr.json +++ b/jsr.json @@ -1,6 +1,6 @@ { "name": "@cyclonedx/cdxgen", - "version": "11.0.10", + "version": "11.0.11", "exports": "./lib/cli/index.js", "include": ["*.js", "lib/**", "bin/**", "data/**", "types/**"], "exclude": [ diff --git a/package.json b/package.json index f586095c9..dbfd98325 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@cyclonedx/cdxgen", - "version": "11.0.10", + "version": "11.0.11", "description": "Creates CycloneDX Software Bill of Materials (SBOM) from source or container image", "homepage": "http://github.com/cyclonedx/cdxgen", "author": "Prabhu Subramanian ",