Skip to content

Commit 6c5a271

Browse files
Add php 8.4 image for debian and alpine distro (#1862)
* Add php 8.4 image for debian and alpine distro Signed-off-by: bandhan-majumder <[email protected]> * delete more packages Signed-off-by: bandhan-majumder <[email protected]> * suggested changes Signed-off-by: bandhan-majumder <[email protected]> * add runner for debian php Signed-off-by: bandhan-majumder <[email protected]> --------- Signed-off-by: bandhan-majumder <[email protected]>
1 parent 3b6cb2e commit 6c5a271

File tree

4 files changed

+142
-0
lines changed

4 files changed

+142
-0
lines changed

.github/workflows/build-images.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,13 @@ jobs:
141141
distro: debian
142142
runner: macos-hosted
143143

144+
- lang: php84
145+
distro: alpine
146+
147+
- lang: php84
148+
distro: debian
149+
runner: macos-hosted
150+
144151
- lang: python36
145152

146153
- lang: python39

ci/images/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ Below table summarizes all available container image versions. These images incl
2424
| Dotnet | .Net 9 | ghcr.io/cyclonedx/cdxgen-debian-dotnet9:v11, ghcr.io/cyclonedx/cdxgen-alpine-dotnet9:v11, ghcr.io/cyclonedx/cdxgen-dotnet9:v11 (amd64 only) | .Net 9 |
2525
| Dotnet | .Net 10 | ghcr.io/cyclonedx/cdxgen-debian-dotnet10:v11 | This is a preview image of .Net 10 |
2626
| php | 8.3 | ghcr.io/cyclonedx/cdxgen-debian-php83:v11 | php 8.3 |
27+
| php | 8.4 | ghcr.io/cyclonedx/cdxgen-debian-php84:v11, ghcr.io/cyclonedx/cdxgen-alpine-php84:v11 | php 8.4 |
2728
| Python | 3.6 | ghcr.io/cyclonedx/cdxgen-python36:v11 | No dependency tree |
2829
| Python | 3.9 | ghcr.io/cyclonedx/cdxgen-python39:v11 | |
2930
| Python | 3.10 | ghcr.io/cyclonedx/cdxgen-python310:v11 | |

ci/images/alpine/Dockerfile.php84

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# Base-image
2+
FROM php:8.4-alpine AS base
3+
4+
ENV PATH=${PATH}:/usr/local/bin:/root/.local/bin
5+
6+
RUN apk update && apk add --no-cache \
7+
nodejs \
8+
npm \
9+
bash \
10+
curl \
11+
bzip2 \
12+
git \
13+
make \
14+
python3 \
15+
python3-dev \
16+
py3-pip \
17+
py3-virtualenv \
18+
gcc \
19+
g++ \
20+
musl-dev \
21+
openjdk21 \
22+
icu-dev oniguruma-dev libxml2-dev libzip-dev curl-dev \
23+
autoconf \
24+
pkgconf \
25+
re2c \
26+
&& npm install -g corepack \
27+
&& /usr/bin/python --version \
28+
&& /usr/bin/python -m pip install --no-cache-dir --upgrade atom-tools --target /opt/pypi \
29+
&& docker-php-ext-install zip intl mbstring xml curl pdo pdo_mysql mysqli \
30+
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
31+
&& node -v \
32+
&& npm -v \
33+
&& php -v \
34+
&& composer --version \
35+
&& rm -rf /var/cache/apk/*
36+
37+
38+
# cdxgen-image
39+
FROM base AS cdxgen
40+
LABEL maintainer="CycloneDX" \
41+
org.opencontainers.image.authors="Team AppThreat <[email protected]>" \
42+
org.opencontainers.image.source="https://github.com/CycloneDX/cdxgen" \
43+
org.opencontainers.image.url="https://github.com/CycloneDX/cdxgen" \
44+
org.opencontainers.image.version="rolling" \
45+
org.opencontainers.image.vendor="CycloneDX" \
46+
org.opencontainers.image.licenses="Apache-2.0" \
47+
org.opencontainers.image.title="cdxgen" \
48+
org.opencontainers.image.description="Rolling image with cdxgen SBOM generator for php apps" \
49+
org.opencontainers.docker.cmd="docker run --rm -v /tmp:/tmp -p 9090:9090 -v $(pwd):/app:rw -t ghcr.io/cyclonedx/cdxgen-alpine-php84:v11 -r /app --server"
50+
51+
ENV CDXGEN_IN_CONTAINER=true \
52+
NODE_COMPILE_CACHE="/opt/cdxgen-node-cache" \
53+
PYTHONPATH=/opt/pypi
54+
55+
ENV PATH=${PATH}:/usr/local/bin:${PYTHONPATH}/bin:/opt/cdxgen/node_modules/.bin
56+
57+
COPY . /opt/cdxgen
58+
59+
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 \
60+
&& npm install -g --production @appthreat/[email protected] \
61+
&& npm uninstall -g corepack \
62+
&& apk del npm py3-pip py3-virtualenv gcc musl-dev make curl tar bash g++ icu-dev oniguruma-dev libxml2-dev libzip-dev curl-dev \
63+
autoconf pkgconf re2c \
64+
&& mkdir -p ${NODE_COMPILE_CACHE} \
65+
&& node /opt/cdxgen/bin/cdxgen.js --help \
66+
&& phpastgen --help \
67+
&& atom-tools --help \
68+
&& rm -rf /root/.cache/node \
69+
&& chmod a-w -R /opt
70+
71+
WORKDIR /app
72+
ENTRYPOINT ["node", "/opt/cdxgen/bin/cdxgen.js"]

ci/images/debian/Dockerfile.php84

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
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

Comments
 (0)