1
1
ARG DOCKER_HUB_PROXY=""
2
2
3
- FROM "${DOCKER_HUB_PROXY}debian:bullseye-slim" as composer-build
3
+
4
+ FROM "${DOCKER_HUB_PROXY}python:3.12-slim-bookworm" as php-base
5
+ ENV DEBIAN_FRONTEND noninteractive
6
+
7
+ # Uncomment when building in corporate environments
8
+ # COPY ./rootca.crt /usr/local/share/ca-certificates/rootca.pem
9
+ # COPY ./rootca.crt /usr/lib/ssl/cert.pem
10
+
11
+ RUN apt-get update; apt-get install -y --no-install-recommends \
12
+ lsb-release \
13
+ ca-certificates \
14
+ curl
15
+ RUN curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
16
+ RUN dpkg -i /tmp/debsuryorg-archive-keyring.deb
17
+ RUN echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
18
+ RUN apt-get update
19
+
20
+
21
+ FROM php-base as composer-build
4
22
ENV DEBIAN_FRONTEND noninteractive
5
23
ENV COMPOSER_ALLOW_SUPERUSER 1
6
24
ARG CORE_TAG
7
25
ARG CORE_COMMIT
8
26
9
- RUN apt-get update; apt-get install -y --no-install-recommends \
10
- ca-certificates \
11
- php \
12
- php-apcu \
13
- php-curl \
14
- php-xml \
15
- php-intl \
16
- php-bcmath \
17
- php-mbstring \
18
- php-mysql \
19
- php-redis \
20
- php-gd \
21
- php-fpm \
22
- php-zip \
27
+ RUN apt-get install -y --no-install-recommends \
28
+ php7.4 \
29
+ php7.4-apcu \
30
+ php7.4-curl \
31
+ php7.4-xml \
32
+ php7.4-intl \
33
+ php7.4-bcmath \
34
+ php7.4-mbstring \
35
+ php7.4-mysql \
36
+ php7.4-redis \
37
+ php7.4-gd \
38
+ php7.4-fpm \
39
+ php7.4-zip \
23
40
unzip \
24
41
&& apt-get autoremove -y && apt-get clean -y && rm -rf /var/lib/apt/lists/*
25
42
@@ -29,41 +46,53 @@ FROM "${DOCKER_HUB_PROXY}debian:bullseye-slim" as composer-build
29
46
RUN composer config --no-interaction allow-plugins.composer/installers true
30
47
RUN composer install
31
48
RUN composer require --with-all-dependencies --no-interaction \
32
- supervisorphp/supervisor:^4.0 \
33
- guzzlehttp/guzzle \
34
- lstrojny/fxmlrpc \
35
- php-http/message \
36
- php-http/message-factory \
37
- # docker image specific dependencies
38
- elasticsearch/elasticsearch:^8.7.0 \
39
- jakub-onderka/openid-connect-php:^1.0.0 \
40
- aws/aws-sdk-php
41
-
42
- FROM "${DOCKER_HUB_PROXY}debian:bullseye-slim" as php-build
49
+ supervisorphp/supervisor:^4.0 \
50
+ guzzlehttp/guzzle \
51
+ lstrojny/fxmlrpc \
52
+ php-http/message \
53
+ php-http/message-factory \
54
+ # docker image specific dependencies
55
+ elasticsearch/elasticsearch:^8.7.0 \
56
+ jakub-onderka/openid-connect-php:^1.0.0 \
57
+ aws/aws-sdk-php
58
+
59
+
60
+ FROM php-base as php-build
43
61
ENV DEBIAN_FRONTEND noninteractive
44
62
ENV TZ Etc/UTC
45
63
46
- RUN apt-get update; apt-get install -y --no-install-recommends \
64
+ RUN apt-get install -y --no-install-recommends \
47
65
gcc \
48
66
g++ \
49
67
make \
68
+ php7.4 \
69
+ php7.4-dev \
70
+ php7.4-xml \
50
71
libfuzzy-dev \
51
- ca-certificates \
52
- php \
53
- php-dev \
54
- php-xml \
55
- php-pear \
56
72
librdkafka-dev \
57
73
libsimdjson-dev \
58
74
libzstd-dev \
59
75
git \
76
+ php-pear \
60
77
&& apt-get autoremove -y && apt-get clean -y && rm -rf /var/lib/apt/lists/*
61
78
62
- RUN cp "/usr/lib/$(gcc -dumpmachine)" /libfuzzy.* /usr/lib; pecl channel-update pecl.php.net && pecl install ssdeep && pecl install rdkafka && pecl install simdjson && pecl install zstd
63
- RUN git clone --recursive --depth=1 https://github.com/kjdev/php-ext-brotli.git && \
64
- cd php-ext-brotli && phpize && ./configure && make && make install
79
+ RUN apt-cache search pecl
80
+
81
+ RUN update-alternatives --set php /usr/bin/php7.4
82
+ RUN update-alternatives --set php-config /usr/bin/php-config7.4
83
+ RUN update-alternatives --set phpize /usr/bin/phpize7.4
84
+
85
+ RUN cp "/usr/lib/$(gcc -dumpmachine)" /libfuzzy.* /usr/lib
86
+ RUN pecl channel-update pecl.php.net && \
87
+ pecl install ssdeep && \
88
+ pecl install rdkafka && \
89
+ pecl install simdjson && \
90
+ pecl install zstd
91
+ RUN git clone --recursive --depth=1 https://github.com/kjdev/php-ext-brotli.git && \
92
+ cd php-ext-brotli && phpize && ./configure && make && make install
65
93
66
- FROM "${DOCKER_HUB_PROXY}debian:bullseye-slim" as python-build
94
+
95
+ FROM php-base as python-build
67
96
ENV DEBIAN_FRONTEND noninteractive
68
97
ARG CORE_TAG
69
98
ARG CORE_COMMIT
@@ -77,8 +106,7 @@ FROM "${DOCKER_HUB_PROXY}debian:bullseye-slim" as python-build
77
106
ARG PYPI_CYBOX_VERSION
78
107
ARG PYPI_PYMISP_VERSION
79
108
80
- RUN apt-get update; apt-get install -y --no-install-recommends \
81
- python3-pip \
109
+ RUN apt-get install -y --no-install-recommends \
82
110
git \
83
111
&& apt-get autoremove -y && apt-get clean -y && rm -rf /var/lib/apt/lists/*
84
112
@@ -89,7 +117,6 @@ FROM "${DOCKER_HUB_PROXY}debian:bullseye-slim" as python-build
89
117
else
90
118
git clone --branch "${CORE_TAG}" --depth 1 https://github.com/MISP/MISP.git /var/www/MISP
91
119
fi
92
-
93
120
cd /var/www/MISP || exit; git submodule update --init --recursive .
94
121
EOF
95
122
124
151
fi
125
152
done;
126
153
127
- pip3 wheel --no-cache-dir -w /wheels/ -r /var/www/MISP/requirements.txt
154
+ pip wheel --no-cache-dir -w /wheels/ -r /var/www/MISP/requirements.txt
128
155
129
156
# Remove files we do not care for
130
157
rm -r /var/www/MISP/PyMISP
@@ -134,13 +161,14 @@ EOF
134
161
find /var/www/MISP/.git/* ! -name HEAD -exec rm -rf {} +
135
162
EOF
136
163
137
- FROM "${DOCKER_HUB_PROXY}debian:bullseye-slim"
164
+
165
+ FROM php-base
138
166
ENV DEBIAN_FRONTEND noninteractive
139
167
ARG CORE_TAG
140
168
ARG CORE_COMMIT
141
169
ARG PHP_VER
142
170
143
- RUN apt-get update; apt-get install -y --no-install-recommends \
171
+ RUN apt-get install -y --no-install-recommends \
144
172
gettext \
145
173
procps \
146
174
sudo \
@@ -150,42 +178,41 @@ FROM "${DOCKER_HUB_PROXY}debian:bullseye-slim"
150
178
openssl \
151
179
gpg \
152
180
gpg-agent \
153
- ssdeep \
154
- libfuzzy2 \
155
181
mariadb-client \
156
182
rsync \
157
- # Python Requirements
158
- python3 \
159
- python3-setuptools \
160
- python3-pip \
161
183
# PHP Requirements
162
- php \
163
- php-apcu \
164
- php-curl \
165
- php-xml \
166
- php-intl \
167
- php-bcmath \
168
- php-mbstring \
169
- php-mysql \
170
- php-redis \
171
- php-gd \
172
- php-fpm \
173
- php-zip \
174
- php-ldap \
184
+ php7.4 \
185
+ php7.4-apcu \
186
+ php7.4-curl \
187
+ php7.4-xml \
188
+ php7.4-intl \
189
+ php7.4-bcmath \
190
+ php7.4-mbstring \
191
+ php7.4-mysql \
192
+ php7.4-redis \
193
+ php7.4-gd \
194
+ php7.4-fpm \
195
+ php7.4-zip \
196
+ php7.4-ldap \
197
+ libmagic1 \
175
198
libldap-common \
176
199
librdkafka1 \
177
200
libbrotli1 \
178
- libsimdjson5 \
201
+ libsimdjson14 \
179
202
libzstd1 \
203
+ ssdeep \
204
+ libfuzzy2 \
180
205
# Unsure we need these
181
206
zip unzip \
182
207
# Require for advanced an unattended configuration
183
208
curl jq \
184
209
&& apt-get autoremove -y && apt-get clean -y && rm -rf /var/lib/apt/lists/*
185
210
211
+ RUN update-alternatives --set php /usr/bin/php7.4
212
+
186
213
# Install python modules
187
214
COPY --from=python-build /wheels /wheels
188
- RUN pip3 install --no-cache-dir /wheels/*.whl && rm -rf /wheels
215
+ RUN pip install --no-cache-dir /wheels/*.whl && rm -rf /wheels
189
216
190
217
# PHP: install prebuilt libraries, then install the app's PHP deps
191
218
COPY --from=php-build ["/usr/lib/php/${PHP_VER}/ssdeep.so" , "/usr/lib/php/${PHP_VER}/rdkafka.so" , "/usr/lib/php/${PHP_VER}/brotli.so" , "/usr/lib/php/${PHP_VER}/simdjson.so" , "/usr/lib/php/${PHP_VER}/zstd.so" , "/usr/lib/php/${PHP_VER}/" ]
@@ -208,7 +235,7 @@ FROM "${DOCKER_HUB_PROXY}debian:bullseye-slim"
208
235
EOF
209
236
210
237
# nginx
211
- RUN rm /etc/nginx/sites-enabled/*; mkdir /run/php /etc/nginx/certs
238
+ RUN rm /etc/nginx/sites-enabled/*; mkdir -p /run/php /etc/nginx/certs
212
239
213
240
# Make a copy of the file and configuration stores, so we can sync from it
214
241
0 commit comments