|
| 1 | +# Base-image |
| 2 | +FROM php:8.4-bookworm AS base |
| 3 | + |
| 4 | +ARG NODE_VERSION=24.1.0 |
| 5 | +ARG JAVA_VERSION=21.0.7-tem |
| 6 | + |
| 7 | +ENV JAVA_VERSION=$JAVA_VERSION \ |
| 8 | + JAVA_HOME="/opt/java/${JAVA_VERSION}" \ |
| 9 | + NVM_DIR="/root/.nvm" |
| 10 | +ENV PATH=${PATH}:${NVM_DIR}/versions/node/v${NODE_VERSION}/bin:/usr/local/bin:/root/.local/bin |
| 11 | + |
| 12 | +COPY ci/images/debian/install.sh /tmp/ |
| 13 | + |
| 14 | +RUN apt-get update && apt-get install -qq -y --no-install-recommends curl bash bzip2 git-core zip unzip make gawk \ |
| 15 | + && apt-get install -qq -y build-essential python3 python3-pip python3-dev locales \ |
| 16 | + && apt-get install -qq -y libzip-dev libicu-dev libonig-dev libxml2-dev libcurl4-openssl-dev \ |
| 17 | + && docker-php-ext-install zip intl mbstring xml curl pdo pdo_mysql mysqli \ |
| 18 | + && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ |
| 19 | + && chmod +x /tmp/install.sh \ |
| 20 | + && /tmp/install.sh && rm /tmp/install.sh \ |
| 21 | + && node -v \ |
| 22 | + && npm -v \ |
| 23 | + && php -v \ |
| 24 | + && composer --version \ |
| 25 | + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ |
| 26 | + && rm -rf /var/lib/apt/lists/* |
| 27 | + |
| 28 | +CMD ["/bin/bash"] |
| 29 | + |
| 30 | + |
| 31 | +# cdxgen-image |
| 32 | +FROM base AS cdxgen |
| 33 | + |
| 34 | +LABEL maintainer="CycloneDX" \ |
| 35 | + org.opencontainers.image.authors="Team AppThreat < [email protected]>" \ |
| 36 | + org.opencontainers.image.source="https://github.com/CycloneDX/cdxgen" \ |
| 37 | + org.opencontainers.image.url="https://github.com/CycloneDX/cdxgen" \ |
| 38 | + org.opencontainers.image.version="rolling" \ |
| 39 | + org.opencontainers.image.vendor="CycloneDX" \ |
| 40 | + org.opencontainers.image.licenses="Apache-2.0" \ |
| 41 | + org.opencontainers.image.title="cdxgen" \ |
| 42 | + org.opencontainers.image.description="Rolling image with cdxgen SBOM generator for php apps" \ |
| 43 | + org.opencontainers.docker.cmd="docker run --rm -v /tmp:/tmp -p 9090:9090 -v $(pwd):/app:rw -t ghcr.io/cyclonedx/cdxgen-debian-php84:v11 -r /app --server" |
| 44 | + |
| 45 | +ENV CDXGEN_IN_CONTAINER=true \ |
| 46 | + NODE_COMPILE_CACHE="/opt/cdxgen-node-cache" \ |
| 47 | + PYTHONPATH=/opt/pypi |
| 48 | +ENV PATH=${PATH}:/usr/local/bin:${PYTHONPATH}/bin:/opt/cdxgen/node_modules/.bin |
| 49 | + |
| 50 | +COPY . /opt/cdxgen |
| 51 | + |
| 52 | +RUN cd /opt/cdxgen && corepack enable && corepack pnpm install --config.strict-dep-builds=true --prod --package-import-method copy --frozen-lockfile && corepack pnpm cache delete \ |
| 53 | + && npm install -g --production @appthreat/ [email protected] \ |
| 54 | + && mkdir -p ${NODE_COMPILE_CACHE} \ |
| 55 | + && node /opt/cdxgen/bin/cdxgen.js --help \ |
| 56 | + && pip install --upgrade --no-cache-dir atom-tools --target /opt/pypi \ |
| 57 | + && phpastgen --help \ |
| 58 | + && atom-tools --help \ |
| 59 | + && rm -rf /root/.cache/node \ |
| 60 | + && chmod a-w -R /opt |
| 61 | +WORKDIR /app |
| 62 | +ENTRYPOINT ["node", "/opt/cdxgen/bin/cdxgen.js"] |
0 commit comments