1
- FROM debian:11.6-slim as build
1
+ # >>> Stage I
2
+ FROM debian:12.6-slim AS build
2
3
3
- ENV OPENSSL=1.0.2u
4
- ENV PHP=5.4.45
5
- ENV FREETYPE=2.6.5
6
- ENV CURL=7.82.0
7
- ENV ICONV=1.15
8
- # ENV ICU=55.1
4
+ ENV OPENSSL=1.1.1u CURL=7.74.0 FREETYPE=2.6.5 ICONV=1.15 PHP=7.1.33
5
+ # export OPENSSL=1.1.1u CURL=7.74.0 FREETYPE=2.6.5 ICONV=1.15 PHP=7.1.33
9
6
10
- RUN apt-get update && apt-get install -y \
11
- wget apt-utils build-essential autoconf automake \
12
- zlib1g-dev libbz2-dev libmcrypt-dev libpq-dev default-libmysqld-dev \
13
- libxslt-dev libjpeg62-turbo-dev libpng-dev apache2-dev apache2 \
14
- libtool libxml2 libxml2-dev libbz2-1.0 libbz2-dev libjpeg-dev libmcrypt4 \
15
- libxslt1.1 libxslt1-dev libxt-dev libxpm-dev libgmp-dev libreadline-dev \
16
- libpcre3 libpcre3-dev libssl-dev \
17
- && apt-get clean && apt-get autoclean \
18
- && rm -rf /var/lib/apt/lists /tmp/*
7
+ RUN set -eux; \
8
+ apt-get update; \
9
+ apt-get install -y \
10
+ wget \
11
+ vim \
12
+ apt-utils \
13
+ build-essential \
14
+ autoconf \
15
+ automake \
16
+ zlib1g-dev \
17
+ libbz2-dev \
18
+ libmcrypt-dev \
19
+ libpq-dev \
20
+ default-libmysqld-dev \
21
+ libxslt-dev \
22
+ libjpeg62-turbo-dev \
23
+ libpng-dev \
24
+ apache2-dev \
25
+ apache2 \
26
+ libtool \
27
+ libxml2 \
28
+ libxml2-dev \
29
+ libbz2-1.0 \
30
+ libbz2-dev \
31
+ libjpeg-dev \
32
+ libmcrypt4 \
33
+ libxslt1.1 \
34
+ libxslt1-dev \
35
+ libxt-dev \
36
+ libxpm-dev \
37
+ libgmp-dev \
38
+ libreadline-dev \
39
+ libpcre3 \
40
+ libpcre3-dev \
41
+ libssl-dev; \
42
+ apt-get clean && apt-get autoclean; \
43
+ rm -rf /var/lib/apt/lists /tmp/*;
19
44
20
- # openssl
21
- RUN mkdir -p /usr/local/openssl-${OPENSSL} \
22
- && wget -O /usr/local/src/openssl-${OPENSSL}.tar.gz https://www.openssl.org/source/openssl-${OPENSSL}.tar.gz \
23
- && cd /usr/local/src \
24
- && tar -xf openssl-${OPENSSL}.tar.gz \
25
- && rm -f openssl-${OPENSSL}.tar.gz \
26
- && cd openssl-${OPENSSL} \
27
- && make clean \
28
- && ./config shared --prefix=/usr/local/openssl-${OPENSSL} \
29
- && make -j $(nproc) \
30
- # && make test \
31
- && make install \
32
- && ls -la /usr/local/openssl-${OPENSSL}/lib \
33
- && wget -O /usr/local/openssl-${OPENSSL}/ssl/cert.pem "http://curl.haxx.se/ca/cacert.pem" \
34
- && ln -s /usr/local/openssl-${OPENSSL}/lib /usr/local/openssl-${OPENSSL}/lib/x86_64-linux-gnu \
35
- && ln -s /usr/local/openssl-${OPENSSL}/lib/libcrypto.so.1.0.0 /usr/lib/x86_64-linux-gnu \
36
- && ln -s /usr/local/openssl-${OPENSSL}/lib/libssl.so.1.0.0 /usr/lib/x86_64-linux-gnu
45
+ # openssl
46
+ RUN set -eux; \
47
+ mkdir -p /usr/local/openssl-${OPENSSL}; \
48
+ wget -O /usr/local/src/openssl-${OPENSSL}.tar.gz https://www.openssl.org/source/openssl-${OPENSSL}.tar.gz; \
49
+ cd /usr/local/src; \
50
+ tar -xf openssl-${OPENSSL}.tar.gz; \
51
+ rm -f openssl-${OPENSSL}.tar.gz; \
52
+ cd openssl-${OPENSSL}; \
53
+ # make clean; \
54
+ ./config shared --prefix=/usr/local/openssl-${OPENSSL}; \
55
+ make -j $(nproc); \
56
+ make test; \
57
+ make install; \
58
+ ls -la /usr/local/openssl-${OPENSSL}/lib; \
59
+ wget -O /usr/local/openssl-${OPENSSL}/ssl/cert.pem "http://curl.haxx.se/ca/cacert.pem" ; \
60
+ ln -s /usr/local/openssl-${OPENSSL}/lib /usr/local/openssl-${OPENSSL}/lib/x86_64-linux-gnu; \
61
+ ln -s /usr/local/openssl-${OPENSSL}/lib/libcrypto.so.1.1 /usr/lib/x86_64-linux-gnu; \
62
+ ln -s /usr/local/openssl-${OPENSSL}/lib/libssl.so.1.1 /usr/lib/x86_64-linux-gnu;
37
63
38
- # curl
39
- RUN mkdir -p /usr/local/curl-${CURL} \
40
- && wget -O /usr/local/src/curl-${CURL}.tar.gz https://curl.se/download/curl-${CURL}.tar.gz \
41
- && cd /usr/local/src \
42
- && tar -xf curl-${CURL}.tar.gz \
43
- && rm -f curl-${CURL}.tar.gz \
44
- && cd curl-${CURL} \
45
- && ./configure --with-openssl=/usr/local/openssl-${OPENSSL} --prefix=/usr/local/curl-${CURL} \
46
- && make -j $(nproc) \
47
- && make install
64
+ # curl
65
+ RUN set -eux; \
66
+ mkdir -p /usr/local/curl-${CURL}; \
67
+ wget -O /usr/local/src/curl-${CURL}.tar.gz https://curl.se/download/curl-${CURL}.tar.gz; \
68
+ cd /usr/local/src; \
69
+ tar -xf curl-${CURL}.tar.gz; \
70
+ rm -f curl-${CURL}.tar.gz; \
71
+ cd curl-${CURL}; \
72
+ ./configure \
73
+ --with-openssl=/usr/local/openssl-${OPENSSL} \
74
+ --prefix=/usr/local/curl-${CURL} \
75
+ --without-libidn2 \
76
+ --disable-ldap; \
77
+ make -j $(nproc); \
78
+ make install; \
79
+ ln -s /usr/local/curl-${CURL}/bin/curl /usr/local/bin/;
48
80
49
- # freetype
50
- RUN mkdir -p /usr/local/freetype-${FREETYPE} \
51
- && wget -O /usr/local/src/freetype-${FREETYPE}.tar.gz https://download.savannah.gnu.org/releases/freetype/freetype-old/freetype-${FREETYPE}.tar.gz \
52
- && cd /usr/local/src \
53
- && tar -xf freetype-${FREETYPE}.tar.gz \
54
- && rm -f freetype-${FREETYPE}.tar.gz \
55
- && cd freetype-${FREETYPE} \
56
- && ./configure --prefix=/usr/local/freetype-${FREETYPE} \
57
- && make -j $(nproc) \
58
- && make install
81
+ # freetype2
82
+ RUN set -eux; \
83
+ mkdir -p /usr/local/freetype-${FREETYPE}; \
84
+ wget -O /usr/local/src/freetype-${FREETYPE}.tar.gz https://download.savannah.gnu.org/releases/freetype/freetype-old/freetype-${FREETYPE}.tar.gz; \
85
+ cd /usr/local/src; \
86
+ tar -xf freetype-${FREETYPE}.tar.gz; \
87
+ rm -f freetype-${FREETYPE}.tar.gz; \
88
+ cd freetype-${FREETYPE}; \
89
+ ./configure --prefix=/usr/local/freetype-${FREETYPE}; \
90
+ make -j $(nproc); \
91
+ make install;
59
92
60
- # iconv
61
- RUN mkdir -p /usr/local/libiconv-${ICONV} \
62
- && wget -O /usr/local/src/libiconv-${ICONV}.tar.gz https://ftp.gnu.org/pub/gnu/libiconv/libiconv-${ICONV}.tar.gz \
63
- && cd /usr/local/src \
64
- && tar -xf libiconv-${ICONV}.tar.gz \
65
- && rm -f libiconv-${ICONV}.tar.gz \
66
- && cd libiconv-${ICONV} \
67
- && ./configure --prefix=/usr/local/libiconv-${ICONV} \
68
- && make -j $(nproc) \
69
- && make install
93
+ # iconv
94
+ RUN set -eux; \
95
+ mkdir -p /usr/local/libiconv-${ICONV}; \
96
+ wget -O /usr/local/src/libiconv-${ICONV}.tar.gz https://ftp.gnu.org/pub/gnu/libiconv/libiconv-${ICONV}.tar.gz; \
97
+ cd /usr/local/src; \
98
+ tar -xf libiconv-${ICONV}.tar.gz; \
99
+ rm -f libiconv-${ICONV}.tar.gz; \
100
+ cd libiconv-${ICONV}; \
101
+ ./configure --prefix=/usr/local/libiconv-${ICONV}; \
102
+ make -j $(nproc); \
103
+ make install;
70
104
71
- # php-fpm
72
- RUN mkdir -p /usr/local/src/php-${PHP} \
73
- && wget -O /usr/local/src/php-${PHP}.tar.gz https://www.php.net/distributions/php-${PHP}.tar.gz \
74
- && cd /usr/local/src \
75
- && tar -xf php-${PHP}.tar.gz \
76
- && rm -f php-${PHP}.tar.gz \
77
- && cd php-${PHP} \
78
- && ln -s /usr/lib/x86_64-linux-gnu/libXpm.so /usr/lib/ \
79
- && ln -s /usr/lib/x86_64-linux-gnu/libXpm.a /usr/lib/ \
80
- && export APACHE_RUN_DIR=/var/run/apache2 \
81
- && ./configure \
105
+ # php-fpm
106
+ RUN set -eux; \
107
+ mkdir -p /usr/local/src/php-${PHP}; \
108
+ wget -O /usr/local/src/php-${PHP}.tar.gz https://www.php.net/distributions/php-${PHP}.tar.gz; \
109
+ cd /usr/local/src; \
110
+ tar -xf php-${PHP}.tar.gz; \
111
+ rm -f php-${PHP}.tar.gz; \
112
+ cd php-${PHP}; \
113
+ ln -s /usr/lib/x86_64-linux-gnu/libXpm.so /usr/lib/; \
114
+ ln -s /usr/lib/x86_64-linux-gnu/libXpm.a /usr/lib/; \
115
+ export APACHE_RUN_DIR=/var/run/apache2; \
116
+ ./configure \
82
117
--prefix=/usr/local/php-${PHP}/ \
83
- --exec-prefix=/usr/local/php-${PHP}/ \
118
+ --exec-prefix=/usr/local/php-${PHP}/ \
84
119
--with-config-file-path=/usr/local/php-${PHP}/etc/ \
85
120
--with-config-file-scan-dir=/usr/local/php-${PHP}/etc/local/ \
86
121
--localstatedir=/usr/local/php-${PHP}/var/ \
87
- \
88
122
--disable-all \
89
123
--disable-cgi \
90
124
--disable-debug \
91
- \
92
125
--enable-cli \
93
126
--enable-fpm \
94
127
--enable-mbstring \
@@ -106,7 +139,6 @@ RUN mkdir -p /usr/local/src/php-${PHP} \
106
139
--enable-ftp \
107
140
--enable-inline-optimization \
108
141
--enable-soap \
109
- # --enable-intl #need build ICU ~ 55.1
110
142
--enable-sockets \
111
143
--enable-sysvmsg \
112
144
--enable-sysvsem \
@@ -128,7 +160,6 @@ RUN mkdir -p /usr/local/src/php-${PHP} \
128
160
--with-curl=/usr/local/curl-${CURL} \
129
161
--with-mcrypt \
130
162
--with-bz2 \
131
- \
132
163
--with-gd \
133
164
--with-freetype-dir=/usr/local/freetype-${FREETYPE} \
134
165
--with-jpeg-dir=/usr \
@@ -147,79 +178,100 @@ RUN mkdir -p /usr/local/src/php-${PHP} \
147
178
--with-openssl=/usr/local/openssl-${OPENSSL} \
148
179
--with-gettext=/usr \
149
180
--with-mhash \
150
- --with-mysql \
151
181
--with-mysqli \
152
182
--with-pdo-mysql \
153
183
--with-sqlite3 \
154
184
--with-pdo-sqlite \
155
185
--with-pcre-regex \
156
- --with-regex=php \
157
186
--with-pear \
158
187
--with-xsl \
159
188
--with-libxml-dir=/usr \
160
- --with-zlib \
161
- && make -j $(nproc) \
162
- && make test \
163
- && make install \
164
- && cp /usr/local/src/php-${PHP}/php.ini-production /usr/local/php-${PHP}/etc/php.ini \
165
- && ls -la /usr/local
189
+ --with-zlib; \
190
+ make -j $(nproc); \
191
+ make install; \
192
+ cp /usr/local/src/php-${PHP}/php.ini-production /usr/local/php-${PHP}/etc/php.ini; \
193
+ ls -la /usr/local;
166
194
195
+ # Install Ioncube
196
+ RUN set -eux; \
197
+ curl -o /tmp/ioncube-loader.tar.gz https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz; \
198
+ cd /usr/local; \
199
+ tar zxvf /tmp/ioncube-loader.tar.gz; \
200
+ rm /tmp/ioncube-loader.tar.gz;
167
201
168
- FROM debian:11.6-slim
202
+ # >>> Stage II
169
203
204
+ FROM debian:12.6-slim
170
205
LABEL maintainer=
"Root Shell <[email protected] >"
171
206
172
- ENV DEBIAN_FRONTEND noninteractive
173
- ENV LANG='ru_RU.UTF-8' LANGUAGE='ru_RU:ru' LC_ALL='ru_RU.UTF-8'
174
- ENV OPENSSL=1.0.2u
175
- ENV PHP=5.4.45
176
- ENV FREETYPE=2.6.5
177
- ENV CURL=7.82.0
178
- ENV ICONV=1.15
207
+ ENV DEBIAN_FRONTEND=noninteractive
208
+ ENV LANG='en_US.UTF-8' LANGUAGE='en_US:ru' LC_ALL='en_US.UTF-8'
209
+ ENV OPENSSL=1.1.1u CURL=7.74.0 FREETYPE=2.6.5 ICONV=1.15 PHP=7.1.33
179
210
180
- RUN apt-get update -y && apt-get install -y apache2 apache2-utils libapache2-mod-fcgid \
181
- libtool libxml2 libbz2-1.0 libmcrypt4 libxslt1.1 xsltproc default-mysql-client \
182
- mcrypt libpcre3 exim4 locales locales-all tzdata supervisor \
183
- && apt-get clean && apt-get autoclean \
184
- && rm -rf /var/lib/apt/lists /tmp/*
211
+ RUN set -eux; \
212
+ apt-get update; \
213
+ apt-get install -y \
214
+ apache2 \
215
+ apache2-utils \
216
+ libapache2-mod-fcgid \
217
+ libtool \
218
+ libxml2 \
219
+ libbz2-1.0 \
220
+ libmcrypt4 \
221
+ libxslt1.1 \
222
+ xsltproc \
223
+ default-mysql-client \
224
+ mcrypt \
225
+ libpcre3 \
226
+ exim4 \
227
+ locales \
228
+ locales-all \
229
+ tzdata \
230
+ supervisor; \
231
+ apt-get clean && apt-get autoclean; \
232
+ rm -rf /var/lib/apt/lists /tmp/*;
185
233
186
234
COPY --from=build /usr/local/openssl-${OPENSSL} /usr/local/openssl-${OPENSSL}
187
235
COPY --from=build /usr/local/curl-${CURL} /usr/local/curl-${CURL}
188
236
COPY --from=build /usr/local/freetype-${FREETYPE} /usr/local/freetype-${FREETYPE}
189
237
COPY --from=build /usr/local/libiconv-${ICONV} /usr/local/libiconv-${ICONV}
190
238
COPY --from=build /usr/local/php-${PHP}/ /usr/local/php-${PHP}/
239
+ COPY --from=build /usr/local/ioncube/ioncube_loader_lin_7.1.so /usr/local/ioncube/ioncube_loader_lin_7.1.so
191
240
COPY --from=build /usr/lib/apache2/modules/ /usr/lib/apache2/modules/
192
241
COPY --from=build /etc/apache2/mods-available /etc/apache2/mods-available
193
242
COPY apache2/apache2.conf /etc/apache2/
194
243
COPY apache2/default.conf /etc/apache2/sites-available/000-default.conf
195
- COPY php-fpm /usr/local/php-5.4.45/etc
244
+ COPY php-fpm/php-fpm.d /usr/local/php-${PHP}/etc/php-fpm.d
245
+ COPY php-fpm/php-fpm.conf /usr/local/php-${PHP}/etc
246
+ COPY php-fpm/php.ini /usr/local/php-${PHP}/etc
196
247
COPY entrypoint.sh /usr/bin/entrypoint.sh
197
248
COPY supervisor /etc/supervisor
198
249
COPY dkim /usr/local/dkim
199
250
COPY exim4 /etc/exim4
200
251
201
- RUN ln -s /usr/local/openssl-${OPENSSL}/lib/libcrypto.so.1.0.0 /usr/lib/x86_64-linux-gnu \
202
- && ln -s /usr/local/openssl-${OPENSSL}/lib/libssl.so.1.0.0 /usr/lib/x86_64-linux-gnu \
203
- && ln -s /usr/local/curl-${CURL}/bin/curl /usr/bin/curl \
204
- && ln -s /usr/lib/x86_64-linux-gnu/libXpm.so /usr/lib/ \
205
- && ln -s /usr/lib/x86_64-linux-gnu/libXpm.a /usr/lib/ \
206
- && export APACHE_RUN_DIR=/var/run/apache2 \
207
- && echo "<?php\n error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);\n echo \$ undef;\n phpinfo();\n " > /var/www/html/nfo.php \
208
- && echo "RemoteIPHeader X-Forwarded-For\n RemoteIPTrustedProxy 127.0.0.1" > /etc/apache2/conf-available/remoteip.conf \
209
- && ln -sf /dev/stdout /var/log/apache2/access.log \
210
- && ln -sf /dev/stderr /var/log/apache2/error.log \
211
- && ln -sf /usr/local/php-${PHP}/var/log /var/log/php \
212
- && ln -sf /usr/local/php-${PHP}/var/run/ /var/run/php \
213
- && mkdir /usr/local/php-${PHP}/tmp \
214
- && chown -R 33:33 /var/www/html/* \
215
- && chown -R 33:33 /usr/local/php-${PHP}/tmp \
216
- && chmod +x /usr/local/dkim/gen_dkim.sh \
217
- && chmod +x /usr/bin/entrypoint.sh \
218
- && a2enmod remoteip rewrite proxy proxy_fcgi \
219
- && a2enconf remoteip \
220
- && locale-gen ru_RU.UTF-8 \
221
- && PATH=$PATH:/usr/local/php-${PHP}/bin \
222
- && export PATH
252
+ RUN set -eux; \
253
+ ln -s /usr/local/openssl-${OPENSSL}/lib/libcrypto.so.1.1 /usr/lib/x86_64-linux-gnu; \
254
+ ln -s /usr/local/openssl-${OPENSSL}/lib/libssl.so.1.1 /usr/lib/x86_64-linux-gnu; \
255
+ ln -s /usr/local/curl-${CURL}/bin/curl /usr/local/bin/; \
256
+ ln -s /usr/lib/x86_64-linux-gnu/libXpm.so /usr/lib/; \
257
+ ln -s /usr/lib/x86_64-linux-gnu/libXpm.a /usr/lib/; \
258
+ export APACHE_RUN_DIR=/var/run/apache2; \
259
+ echo "<?php\n error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);\n echo \$ undef;\n phpinfo();\n " > /var/www/html/nfo.php; \
260
+ echo "RemoteIPHeader X-Forwarded-For\n RemoteIPTrustedProxy 127.0.0.1" > /etc/apache2/conf-available/remoteip.conf; \
261
+ ln -sf /dev/stdout /var/log/apache2/access.log; \
262
+ ln -sf /dev/stderr /var/log/apache2/error.log; \
263
+ ln -sf /usr/local/php-${PHP}/var/log /var/log/php; \
264
+ ln -sf /usr/local/php-${PHP}/var/run/ /var/run/php; \
265
+ mkdir /usr/local/php-${PHP}/tmp; \
266
+ chown -R 33:33 /var/www/html/*; \
267
+ chown -R 33:33 /usr/local/php-${PHP}/tmp; \
268
+ chmod +x /usr/local/dkim/gen_dkim.sh; \
269
+ chmod +x /usr/bin/entrypoint.sh; \
270
+ a2enmod remoteip rewrite proxy proxy_fcgi; \
271
+ a2enconf remoteip; \
272
+ locale-gen en_US.UTF-8; \
273
+ PATH=$PATH:/usr/local/php-${PHP}/bin; \
274
+ export PATH;
223
275
224
276
WORKDIR /var/www/html
225
277
VOLUME /var/www/html
0 commit comments