mirror of
https://github.com/devilbox/docker-php-fpm.git
synced 2025-12-11 19:41:16 +00:00
Compare commits
362 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ff61a450ac | ||
|
|
7e775622a5 | ||
|
|
7cc5e25528 | ||
|
|
b6265751ba | ||
|
|
f09e5ad64e | ||
|
|
bfbb967cb8 | ||
|
|
ceadad5512 | ||
|
|
eec7f6c0e2 | ||
|
|
5567bc0a8c | ||
|
|
3934fdc912 | ||
|
|
e34c71f377 | ||
|
|
8f7953248f | ||
|
|
30c3118a22 | ||
|
|
c3628171f1 | ||
|
|
9dea48147d | ||
|
|
36bc9dc099 | ||
|
|
820159d95a | ||
|
|
a7292fdff9 | ||
|
|
2bb64ccff6 | ||
|
|
39db14d294 | ||
|
|
b724ceaca3 | ||
|
|
308f435a7b | ||
|
|
5b41a9b2f7 | ||
|
|
725f52eda8 | ||
|
|
796b04b457 | ||
|
|
92b217fc53 | ||
|
|
d79d834413 | ||
|
|
24c58ce57e | ||
|
|
8f363ace59 | ||
|
|
0fb753511a | ||
|
|
28b7aade7f | ||
|
|
3db1b56b7b | ||
|
|
4cc5e57f24 | ||
|
|
39b32384b6 | ||
|
|
887e7c67c5 | ||
|
|
0126289bf0 | ||
|
|
101e8abb65 | ||
|
|
69ffc63607 | ||
|
|
fb5a242965 | ||
|
|
8d305b3d96 | ||
|
|
9c4490f820 | ||
|
|
6054f92e9e | ||
|
|
f2d1e41377 | ||
|
|
c64e92e94e | ||
|
|
6e15be18a4 | ||
|
|
60555c3556 | ||
|
|
65e3676aa6 | ||
|
|
bc19843825 | ||
|
|
1b047aeee3 | ||
|
|
c55e6d4f53 | ||
|
|
5b6e7e7fc9 | ||
|
|
91943783d8 | ||
|
|
bafc1b2544 | ||
|
|
864f7086c8 | ||
|
|
f71ef64238 | ||
|
|
825bc41054 | ||
|
|
c722d4cc8f | ||
|
|
16f09f8bf6 | ||
|
|
b98b2c31b3 | ||
|
|
ab5264d5be | ||
|
|
7101c8c07c | ||
|
|
f00077a126 | ||
|
|
bf3dffc5b4 | ||
|
|
c76b220e4f | ||
|
|
ab9a3e188f | ||
|
|
76d33f468f | ||
|
|
f6c47da969 | ||
|
|
4fa108269e | ||
|
|
9db2f78914 | ||
|
|
e40b801139 | ||
|
|
54831fd444 | ||
|
|
04e7c24f3a | ||
|
|
e199124ca6 | ||
|
|
f26b491e5f | ||
|
|
f45e004a2f | ||
|
|
111756d4ae | ||
|
|
01126fb861 | ||
|
|
e589728280 | ||
|
|
67a7704c56 | ||
|
|
5ca99aebc8 | ||
|
|
3cf353abae | ||
|
|
566dba9b1e | ||
|
|
63598496fe | ||
|
|
52aa0d4d42 | ||
|
|
40c6d485cc | ||
|
|
d7db5dc72a | ||
|
|
2ad29a8c3e | ||
|
|
df09f78b38 | ||
|
|
0fbc57c154 | ||
|
|
c991ca9eaa | ||
|
|
bd9aac8cba | ||
|
|
873bcce2e7 | ||
|
|
bc0a08ce2f | ||
|
|
cb046ddd2b | ||
|
|
e687ad15f2 | ||
|
|
70e3fc68ba | ||
|
|
e6564db96d | ||
|
|
b90a13482d | ||
|
|
397175aec8 | ||
|
|
90f5abc2fd | ||
|
|
79f087e21a | ||
|
|
b08e7d5c02 | ||
|
|
0a71f838f2 | ||
|
|
7e3db52406 | ||
|
|
05d8edb2fe | ||
|
|
a671401bf2 | ||
|
|
0d11c229d4 | ||
|
|
20f87ad3ce | ||
|
|
8a7ca18897 | ||
|
|
59b1197c75 | ||
|
|
12e51113a6 | ||
|
|
40c2db6633 | ||
|
|
b4bfb84dcf | ||
|
|
b7a52ff1bd | ||
|
|
9df90b3500 | ||
|
|
0bdc196f43 | ||
|
|
14f9ebe3b8 | ||
|
|
e0cb0c1f5d | ||
|
|
4b9739a99d | ||
|
|
9cbb2d3ddb | ||
|
|
82f9bc2c86 | ||
|
|
4ab9fff38b | ||
|
|
73734b4481 | ||
|
|
3610e5f602 | ||
|
|
a425b5fd82 | ||
|
|
e02e7781c7 | ||
|
|
b42b7789df | ||
|
|
70a19575bb | ||
|
|
e34a8a8792 | ||
|
|
7ed35f19a9 | ||
|
|
573d5fa2e2 | ||
|
|
17b98f785c | ||
|
|
46faa83583 | ||
|
|
a23cdcdfd0 | ||
|
|
b6883cf4be | ||
|
|
8334b38869 | ||
|
|
ed40a191df | ||
|
|
107b39f5a2 | ||
|
|
0b6187fe37 | ||
|
|
b9efb7b1c3 | ||
|
|
f9a5db2cee | ||
|
|
2471921a2a | ||
|
|
fd44d5a2ef | ||
|
|
e9852d26d8 | ||
|
|
465a0284c0 | ||
|
|
c906ff09e0 | ||
|
|
ee7b55fc0f | ||
|
|
cbc27ffffd | ||
|
|
f5f22904fb | ||
|
|
b5467210e1 | ||
|
|
b681725fa5 | ||
|
|
1b02bd11fe | ||
|
|
476a1dee47 | ||
|
|
8213301902 | ||
|
|
ca544c19d2 | ||
|
|
180edab57f | ||
|
|
a2b50e69fd | ||
|
|
b51e640932 | ||
|
|
d8eccbf21a | ||
|
|
4176a5dd70 | ||
|
|
83cc953e55 | ||
|
|
d0949e3fe9 | ||
|
|
ab8a549764 | ||
|
|
d26e6221c4 | ||
|
|
07267f20d0 | ||
|
|
0e4f51c82d | ||
|
|
c35c942bf8 | ||
|
|
a02163b6c1 | ||
|
|
35a3a9a486 | ||
|
|
b72f81edd9 | ||
|
|
a47265e482 | ||
|
|
880a6f17b8 | ||
|
|
b224ecfdd7 | ||
|
|
c17e49b849 | ||
|
|
9a981de73f | ||
|
|
beeff54815 | ||
|
|
6cb03a9890 | ||
|
|
0dc4bd6959 | ||
|
|
a8c3f2c655 | ||
|
|
2655813ab8 | ||
|
|
0011b2e6ed | ||
|
|
52c1a907f9 | ||
|
|
e19d955965 | ||
|
|
c0af9f91a6 | ||
|
|
5f8551e742 | ||
|
|
b774432a7a | ||
|
|
e856fe1da4 | ||
|
|
1ed1c7eb81 | ||
|
|
756b6bc0fe | ||
|
|
4e9969ef75 | ||
|
|
1b67f7b02d | ||
|
|
9fda4fd0a2 | ||
|
|
4858303a1b | ||
|
|
2e3115ef04 | ||
|
|
8989b52602 | ||
|
|
ee6b735f17 | ||
|
|
20b45a0b79 | ||
|
|
687969b59b | ||
|
|
111c8a412f | ||
|
|
1d27f22e3f | ||
|
|
4b8668623b | ||
|
|
7b7a680e0b | ||
|
|
49d9459df8 | ||
|
|
efad9eaa48 | ||
|
|
22231fc61c | ||
|
|
f971d8d4b8 | ||
|
|
5498275047 | ||
|
|
a6f9bd8219 | ||
|
|
ea47aa2ba5 | ||
|
|
5094da0ae6 | ||
|
|
38d4f0c222 | ||
|
|
853962c4e9 | ||
|
|
8d50798d54 | ||
|
|
b50a688add | ||
|
|
99bd1d2cdb | ||
|
|
ac368b8725 | ||
|
|
c815e9040c | ||
|
|
61ccae6fc1 | ||
|
|
f7699f9c84 | ||
|
|
1cab69c0ab | ||
|
|
2158817a05 | ||
|
|
29d34dcdb2 | ||
|
|
ff04507e50 | ||
|
|
a448549b82 | ||
|
|
e808575164 | ||
|
|
643e1a7478 | ||
|
|
f3758cec56 | ||
|
|
ec5d6734fa | ||
|
|
ab91e0794b | ||
|
|
b6f926cf8a | ||
|
|
1609e8ea61 | ||
|
|
389e0bad20 | ||
|
|
e48ceef4a6 | ||
|
|
b659089ff9 | ||
|
|
e8e92eceb7 | ||
|
|
14c25cf670 | ||
|
|
8679dbee6a | ||
|
|
6ccf44b5a9 | ||
|
|
2826053fc0 | ||
|
|
1eb30660a6 | ||
|
|
81ef92f91e | ||
|
|
663f716031 | ||
|
|
ea52cc0969 | ||
|
|
ee14a4d46e | ||
|
|
d894a2bff7 | ||
|
|
cdfca15613 | ||
|
|
d1061273b0 | ||
|
|
1c31dbe3bf | ||
|
|
7975126bdf | ||
|
|
ffaee357fd | ||
|
|
a0e7ae7131 | ||
|
|
7041e6ef0a | ||
|
|
176f48d063 | ||
|
|
dc15215156 | ||
|
|
7693a4ea3f | ||
|
|
4ac5a7ab10 | ||
|
|
2b60cd648d | ||
|
|
492d23b9f8 | ||
|
|
b852001495 | ||
|
|
5eb8ce8187 | ||
|
|
d1fd0addaa | ||
|
|
0aceceabda | ||
|
|
42933391b6 | ||
|
|
436babd549 | ||
|
|
abfeef2e5c | ||
|
|
896c8f6c80 | ||
|
|
7f71dd2493 | ||
|
|
8318b43d2f | ||
|
|
6a00f19e88 | ||
|
|
e97261bc87 | ||
|
|
06ac183215 | ||
|
|
0181f196f6 | ||
|
|
4e5da07e21 | ||
|
|
6c6470c181 | ||
|
|
80f03e7512 | ||
|
|
157945dada | ||
|
|
116aa387fb | ||
|
|
e33041ca55 | ||
|
|
2d489beb2c | ||
|
|
cb9437b4f3 | ||
|
|
9505770a8c | ||
|
|
919a6887a6 | ||
|
|
b352de6939 | ||
|
|
456447070a | ||
|
|
ac508caee4 | ||
|
|
6b4596688c | ||
|
|
98569594bf | ||
|
|
8b9dbdf36b | ||
|
|
fdc024fac3 | ||
|
|
f36d0818b0 | ||
|
|
361192deee | ||
|
|
b937b99641 | ||
|
|
a7b96c7cf5 | ||
|
|
45e25586e3 | ||
|
|
df59c7b7bc | ||
|
|
c18bac4387 | ||
|
|
0239ff0a78 | ||
|
|
02c8c9d6ec | ||
|
|
207b78df6f | ||
|
|
20c5b88e52 | ||
|
|
5585109fb8 | ||
|
|
2517c33bae | ||
|
|
b0c487ff28 | ||
|
|
e16fdce860 | ||
|
|
31489459ad | ||
|
|
64e290a359 | ||
|
|
e145f9cec8 | ||
|
|
40ac8e4ef0 | ||
|
|
1640850b75 | ||
|
|
42a0a4f7ac | ||
|
|
69689351c8 | ||
|
|
865f18a212 | ||
|
|
f0b758e5fc | ||
|
|
d3e642b5f6 | ||
|
|
928c712fa6 | ||
|
|
c818efe5e3 | ||
|
|
ec1a1bd79d | ||
|
|
184881a8c5 | ||
|
|
1782f24d03 | ||
|
|
4cee51dbf4 | ||
|
|
fbcd91f248 | ||
|
|
d2cb8ef2c3 | ||
|
|
f3e7f5d352 | ||
|
|
d3923eb359 | ||
|
|
9a24cfe917 | ||
|
|
0229adf7c1 | ||
|
|
c35262e9b8 | ||
|
|
17649294c2 | ||
|
|
2d428c264a | ||
|
|
72d34ca52f | ||
|
|
6fbbc9580f | ||
|
|
44cc0093ec | ||
|
|
881dd567c9 | ||
|
|
2184f1f9a0 | ||
|
|
e10f81915b | ||
|
|
9fbdc187d8 | ||
|
|
1261f3a700 | ||
|
|
015eaff5d0 | ||
|
|
b5c34feb7c | ||
|
|
61ee6b3bfb | ||
|
|
feb6f0fee8 | ||
|
|
40c3980b3e | ||
|
|
857900acc6 | ||
|
|
7aa26f96d0 | ||
|
|
70ab96876d | ||
|
|
666980dc1c | ||
|
|
b776a9110f | ||
|
|
d1ec52838a | ||
|
|
8d8c92657a | ||
|
|
7a2710ffc5 | ||
|
|
58751d8deb | ||
|
|
3d96f15958 | ||
|
|
c8c71fb115 | ||
|
|
e156582252 | ||
|
|
ae9d987cb9 | ||
|
|
7b68744404 | ||
|
|
c3ad81b808 | ||
|
|
9531a29533 | ||
|
|
ed3449af98 | ||
|
|
5a5bcb1644 | ||
|
|
b0d72726bf | ||
|
|
9f073247f8 |
@@ -1,12 +1,19 @@
|
||||
# vi: ft=dockerfile
|
||||
{{ edit_comment_base }}
|
||||
{% if php_version == 5.2 %}
|
||||
FROM devilbox/php-fpm-5.2
|
||||
{% elif php_version == 5.3 %}
|
||||
FROM devilbox/php-fpm-5.3
|
||||
{% elif php_version == 5.4 %}
|
||||
FROM devilbox/php-fpm-5.4
|
||||
{% elif php_version == 5.5 %}
|
||||
FROM devilbox/php-fpm-5.5
|
||||
{% elif php_version == 8.0 %}
|
||||
FROM devilbox/php-fpm-8.0
|
||||
{% elif php_version == 8.1 %}
|
||||
FROM devilbox/php-fpm-8.1
|
||||
{% elif php_version == 8.2 %}
|
||||
FROM devilbox/php-fpm-8.2
|
||||
{% else %}
|
||||
FROM php:{{ php_version }}-fpm
|
||||
{% endif %}
|
||||
@@ -53,18 +60,11 @@ RUN set -eux \
|
||||
###
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
{% if php_version in [5.2, 5.3, 5.4, 5.5] %}
|
||||
RUN set -eux \
|
||||
&& rm -f /etc/apt/sources.list \
|
||||
&& { \
|
||||
echo "deb http://ftp.debian.org/debian jessie main"; \
|
||||
echo "#deb http://ftp.debian.org/debian jessie-updates main"; \
|
||||
echo "deb http://security.debian.org/debian-security jessie/updates main"; \
|
||||
} | tee /etc/apt/sources.list
|
||||
{% endif %}
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# vi: ft=dockerfile
|
||||
{{ edit_comment_mods }}
|
||||
FROM devilbox/php-fpm:{{ php_version }}-base as builder
|
||||
|
||||
@@ -31,14 +32,34 @@ FROM devilbox/php-fpm:{{ php_version }}-base as builder
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
{% for build_dep in build_deps | unique | sort %}
|
||||
{{ build_dep }} \
|
||||
{% endfor %}
|
||||
# Build tools
|
||||
autoconf \
|
||||
bison \
|
||||
bisonc++ \
|
||||
ca-certificates \
|
||||
git
|
||||
curl \
|
||||
dpkg-dev \
|
||||
file \
|
||||
flex \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
lemon \
|
||||
libc-client-dev \
|
||||
libc-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libssl-dev \
|
||||
make \
|
||||
patch \
|
||||
pkg-config \
|
||||
re2c \
|
||||
xz-utils \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||
@@ -94,9 +115,12 @@ RUN set -eux \
|
||||
{%- if 'configure' in extensions_available[ext][php_version] -%}
|
||||
{{- "\n\t" }}# Custom: configure command
|
||||
{{- "\n\t" }}&& docker-php-ext-configure {{ ext }} {{ extensions_available[ext][php_version]['configure'] }} \
|
||||
{%- elif 'configure' in extensions_available[ext]['all'] -%}
|
||||
{{- "\n\t" }}# Default: configure command
|
||||
{{- "\n\t" }}&& docker-php-ext-configure {{ ext }} {{ extensions_available[ext]['all']['configure'] }} \
|
||||
{%- endif -%}
|
||||
{{- "\n\t" }}# Installation
|
||||
{{- "\n\t" }}&& docker-php-ext-install{% if php_version != 5.4 %} -j$(getconf _NPROCESSORS_ONLN){% endif %} {{ ext }} \
|
||||
{{- "\n\t" }}&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) {{ ext }} \
|
||||
{#-
|
||||
# -------------------- 2.) PECL --------------------
|
||||
-#}
|
||||
@@ -157,7 +181,7 @@ RUN set -eux \
|
||||
{{- "\n\t" }}# Custom: configure command
|
||||
{{- "\n\t" }}&& docker-php-ext-configure {{ ext }} {{ extensions_available[ext]['all']['configure'] }} \
|
||||
{%- endif -%}
|
||||
{{- "\n\t" }}&& docker-php-ext-install{% if php_version != 5.4 %} -j$(getconf _NPROCESSORS_ONLN){% endif %} {{ ext }} \
|
||||
{{- "\n\t" }}&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) {{ ext }} \
|
||||
{#-
|
||||
# -------------------- 2.) PECL --------------------
|
||||
-#}
|
||||
@@ -281,7 +305,7 @@ RUN set -eux \
|
||||
|
||||
# Fix php.ini settings for enabled extensions
|
||||
RUN set -eux \
|
||||
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/*
|
||||
&& find "$(php -r 'echo ini_get("extension_dir");')/" -type f -exec chmod +x {} \;
|
||||
|
||||
# Fix oracle dir for images that don't have oci installed
|
||||
RUN set -eux \
|
||||
@@ -289,9 +313,9 @@ RUN set -eux \
|
||||
|
||||
# Shrink everything down
|
||||
RUN set -eux \
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
|
||||
@@ -319,22 +343,11 @@ LABEL "org.opencontainers.image.description"="PHP-FPM {{ php_version }}-mods"
|
||||
|
||||
|
||||
###
|
||||
### Copy artifacts from builder
|
||||
###
|
||||
ARG EXT_DIR
|
||||
COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/
|
||||
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
|
||||
COPY --from=builder /usr/local/bin/ /usr/local/bin/
|
||||
COPY --from=builder /usr/local/lib/ /usr/local/lib/
|
||||
COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
### Install runtime libraries
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
{# Loop over enabled run-time dependencies -#}
|
||||
{%- set run_deps = [] -%}
|
||||
{%- for ext in extensions_enabled -%}
|
||||
@@ -365,7 +378,18 @@ RUN set -eux \
|
||||
|
||||
|
||||
###
|
||||
### Post Install
|
||||
### Copy artifacts from builder
|
||||
###
|
||||
ARG EXT_DIR
|
||||
COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/
|
||||
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
|
||||
COPY --from=builder /usr/local/bin/ /usr/local/bin/
|
||||
COPY --from=builder /usr/local/lib/ /usr/local/lib/
|
||||
COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Post Install executions
|
||||
###
|
||||
{# Loop over enabled extensions #}
|
||||
{%- set post_commands = {} -%}
|
||||
@@ -1,3 +1,4 @@
|
||||
# vi: ft=dockerfile
|
||||
{{ edit_comment_prod }}
|
||||
FROM devilbox/php-fpm:{{ php_version }}-mods
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
@@ -26,9 +27,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM {{ php_version }}-prod"
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
@@ -36,18 +36,21 @@ RUN set -eux \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# Fix: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
&& sed -i'' 's/.*imklog.*//g' /etc/rsyslog.conf \
|
||||
\
|
||||
# Setup Supervisor
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /etc/supervisor/custom.d \
|
||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
{% if debug %}
|
||||
533
.ansible/DOCKERFILES/Dockerfile-slim.j2
Normal file
533
.ansible/DOCKERFILES/Dockerfile-slim.j2
Normal file
@@ -0,0 +1,533 @@
|
||||
# vi: ft=dockerfile
|
||||
{{ edit_comment_slim }}
|
||||
{% import './jinja2/macros-work.j2' as fn %}
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 1/4: Devilbox slim image (BASE BUILDER)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Installs all cli tools required to run Devilbox and its intranet
|
||||
###
|
||||
FROM devilbox/php-fpm:{{ php_version }}-prod as devilbox-slim-base-builder
|
||||
|
||||
###
|
||||
### Install apt Tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
dirmngr \
|
||||
gnupg
|
||||
|
||||
###
|
||||
### Add apt repositories
|
||||
###
|
||||
RUN set -eux \
|
||||
{%- for repo in base_apt_repositories_enabled -%}
|
||||
{#- Not disabled -#}
|
||||
{%- if ('disabled' not in base_apt_repositories_available[repo]) or (php_version not in base_apt_repositories_available[repo]['disabled']) -%}
|
||||
{#- -#}
|
||||
{#- [PRE] -#}
|
||||
{%- if fn.get_pre(php_version, repo, base_apt_repositories_available) | length -%}
|
||||
{{ "\n\t" }}&& {{ fn.get_pre(php_version, repo, base_apt_repositories_available) | indent( "\t" ) }}{{ "\t\\" }}
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- [KEY] -#}
|
||||
{%- if fn.tool_repo_get_key(php_version, repo, base_apt_repositories_available) | length -%}
|
||||
{{ "\n\t" }}&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv {{ fn.tool_repo_get_key(php_version, repo, base_apt_repositories_available) }} \
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- [DEB] -#}
|
||||
{%- if fn.tool_repo_get_deb(php_version, repo, base_apt_repositories_available) | length -%}
|
||||
{{ "\n\t" }}&& echo "{{ fn.tool_repo_get_deb(php_version, repo, base_apt_repositories_available) }}" > /etc/apt/sources.list.d/{{ repo }}.list \
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
{{ "\n\t" }}&& true
|
||||
|
||||
{% set build_deps = [] -%}
|
||||
{%- for ext in base_software_enabled -%}
|
||||
{%- for dep in fn.get_build_dep(php_version, ext, base_software_available) | from_json -%}
|
||||
{%- if dep -%}
|
||||
{{- build_deps.append(dep) -}}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
{%- endfor -%}
|
||||
{%- if build_deps -%}
|
||||
###
|
||||
### Install build_dep
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
{% for build_dep in build_deps | unique | sort %}
|
||||
{{ build_dep }} \
|
||||
{% endfor %}
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
{%- endif %}
|
||||
|
||||
###
|
||||
### Add common tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
file \
|
||||
git \
|
||||
{% if php_version in [7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2] %}
|
||||
mariadb-client \
|
||||
{% else %}
|
||||
mysql-client \
|
||||
{% endif %}
|
||||
redis-tools \
|
||||
sqlite3
|
||||
|
||||
{% set tools_apt = [] -%}
|
||||
{%- for tool in base_software_enabled -%}
|
||||
{%- if ('disabled' not in base_software_available[tool]) or (php_version not in base_software_available[tool]['disabled']) -%}
|
||||
{%- if fn.tool_apt_get_package(php_version, tool, base_software_available) -%}
|
||||
{{- tools_apt.append(fn.tool_apt_get_package(php_version, tool, base_software_available)) -}}
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{%- endfor %}
|
||||
|
||||
{%- if tools_apt -%}
|
||||
###
|
||||
### Install tools type: apt
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
{{- "\n" -}}
|
||||
{%- if tools_apt -%}
|
||||
{{- "\t\t# ---------- type: apt ----------\n" -}}
|
||||
{%- for apt in tools_apt | unique | sort -%}
|
||||
{{- "\t\t" + apt + " \\" + "\n" -}}
|
||||
{%- endfor -%}
|
||||
{%- endif -%}
|
||||
{{- "\t" -}}&& rm -rf /var/lib/apt/lists/*{{- "\n" -}}
|
||||
{% endif %}
|
||||
|
||||
###
|
||||
### Devilbox required cli tools from group_vars (slim.yml)
|
||||
###
|
||||
{% for tool in base_software_enabled -%}
|
||||
{# Not disabled #}
|
||||
{%- if ('disabled' not in base_software_available[tool]) or (php_version not in base_software_available[tool]['disabled']) -%}
|
||||
{{- "\n" }}# -------------------- {{ tool }} --------------------
|
||||
{{- "\n" }}RUN set -eux \
|
||||
{#- -#}
|
||||
{#- [PRE] -#}
|
||||
{%- if fn.get_pre(php_version, tool, base_software_available) | length -%}
|
||||
{{ "\n\t" }}&& {{ fn.get_pre(php_version, tool, base_software_available) | indent( "\t" ) }}{{ "\t\\" }}
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- [COMMAND] -#}
|
||||
{%- if fn.get_type(php_version, tool, base_software_available) == 'custom' -%}
|
||||
{{ "\n\t" }}&& {{ fn.tool_custom_get_command(php_version, tool, base_software_available) | indent( "\t" ) }}{{ "\t\\" }}
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- [POST] -#}
|
||||
{%- if fn.get_post(php_version, tool, base_software_available) | length -%}
|
||||
{{ "\n\t" }}&& {{ fn.get_post(php_version, tool, base_software_available) | indent( "\t" ) }}{{ "\t\\" }}
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- [CHECK] -#}
|
||||
{%- if 'check' in base_software_available[tool] -%}
|
||||
{{ "\n\t" }}&& {{ base_software_available[tool]['check'] | indent( "\t" ) }}{{ "\t\\" }}
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- Finalize -#}
|
||||
{{ "\n\t" }}&& true{{ "\n" }}
|
||||
{%- endif -%}
|
||||
{%- endfor %}
|
||||
|
||||
###
|
||||
### Prepare required shared libraries for copying (keep symlinks)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
||||
&& USR_LIB_DIR="/usr/lib" \
|
||||
&& USR_LIB_GNU_DIR="/usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
||||
\
|
||||
&& mkdir /tmp/lib-gnu \
|
||||
&& mkdir /tmp/usr-lib \
|
||||
&& mkdir /tmp/usr-lib-gnu \
|
||||
\
|
||||
&& LIB_GNU="libreadline" \
|
||||
&& USR_LIB="libsnappy libtcmalloc libv8" \
|
||||
&& USR_LIB_GNU="liblua libpq libpcrecpp libboost libjemalloc libunwind libhiredis libedit libyaml-cpp libstemmer libsnappy libpcap libbsd liblzf" \
|
||||
\
|
||||
&& for lib in ${LIB_GNU}; do \
|
||||
if ls -1 "${LIB_GNU_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${LIB_GNU_DIR}"; \
|
||||
cp -r ${LIB_GNU_DIR}/${lib}* /tmp/lib-gnu/; \
|
||||
fi \
|
||||
done \
|
||||
&& for lib in ${USR_LIB}; do \
|
||||
if ls -1 "${USR_LIB_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${USR_LIB_DIR}"; \
|
||||
cp -r ${USR_LIB_DIR}/${lib}* /tmp/usr-lib/; \
|
||||
fi \
|
||||
done \
|
||||
&& for lib in ${USR_LIB_GNU}; do \
|
||||
if ls -1 "${USR_LIB_GNU_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${USR_LIB_GNU_DIR}"; \
|
||||
cp -r ${USR_LIB_GNU_DIR}/${lib}* /tmp/usr-lib-gnu/; \
|
||||
fi \
|
||||
done
|
||||
|
||||
###
|
||||
### Fix expected PostgreSQL directories
|
||||
###
|
||||
### This might not exist on arm64 as software was not available,
|
||||
### but they are still needed to be present, so we can copy them.
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if [ ! -d "/usr/lib/postgresql" ]; then \
|
||||
mkdir "/usr/lib/postgresql"; \
|
||||
fi \
|
||||
&& if [ ! -d "/usr/share/postgresql-common" ]; then \
|
||||
mkdir "/usr/share/postgresql-common"; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Prepare MongoDB binaries for copying.
|
||||
###
|
||||
### They might not be available on all architectures (e.g.: arm64).
|
||||
###
|
||||
RUN set -eux \
|
||||
&& mkdir /tmp/mongo \
|
||||
&& if ls -1 "/usr/bin/" | grep "^mongo" >/dev/null; then \
|
||||
cp -r /usr/bin/mongo* /tmp/mongo/; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Strip debugging information to smallen filesize
|
||||
###
|
||||
RUN set -eux \
|
||||
&& STRIP_USR_BINS="blackfire mongo mysql redis sqlite" \
|
||||
&& STRIP_DIRS="/usr/lib/postgresql/ /usr/share/postgresql-common/ /tmp" \
|
||||
\
|
||||
&& for bin in ${STRIP_USR_BINS}; do \
|
||||
( \
|
||||
find /usr/bin/ -name "${bin}"* -type f -print0 \
|
||||
| xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) sh -c \
|
||||
'if [ -f "${1}" ]; then echo "Strip: ${1}"; strip --strip-all -p "${1}" 2>/dev/null || true; fi' -- \
|
||||
) \
|
||||
done \
|
||||
\
|
||||
&& for dir in ${STRIP_DIRS}; do \
|
||||
( \
|
||||
find ${dir} -type f -print0 \
|
||||
| xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) sh -c \
|
||||
'if [ -f "${1}" ]; then echo "Strip: ${1}"; strip --strip-all -p "${1}" 2>/dev/null || true; fi' -- \
|
||||
) \
|
||||
done \
|
||||
\
|
||||
&& strip --strip-all -p /usr/local/bin/mhsendmail 2>/dev/null || true \
|
||||
&& strip --strip-all -p /usr/local/bin/mysqldump-secure 2>/dev/null || true
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 2/4: Devilbox slim image (BASE)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Copies all cli tools required to run Devilbox and its intranet into a clean image
|
||||
###
|
||||
FROM devilbox/php-fpm:{{ php_version }}-prod as devilbox-slim-base
|
||||
ARG ARCH
|
||||
|
||||
{% set tools_apt = [] -%}
|
||||
{%- for tool in base_software_enabled -%}
|
||||
{%- if ('disabled' not in base_software_available[tool]) or (php_version not in base_software_available[tool]['disabled']) -%}
|
||||
{%- if fn.tool_apt_get_package(php_version, tool, base_software_available) -%}
|
||||
{{- tools_apt.append(fn.tool_apt_get_package(php_version, tool, base_software_available)) -}}
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{%- endfor %}
|
||||
|
||||
{%- if tools_apt -%}
|
||||
###
|
||||
### Install tools type: apt
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
{{- "\n" -}}
|
||||
{%- if tools_apt -%}
|
||||
{{- "\t\t# ---------- type: apt ----------\n" -}}
|
||||
{%- for apt in tools_apt | unique | sort -%}
|
||||
{{- "\t\t" + apt + " \\" + "\n" -}}
|
||||
{%- endfor -%}
|
||||
{%- endif -%}
|
||||
{{- "\t" -}}&& rm -rf /var/lib/apt/lists/*{{- "\n" -}}
|
||||
{% endif %}
|
||||
|
||||
###
|
||||
### Copy shared libraries (required by MongoDB, MySQL, PostgreSQL and Redis)
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/
|
||||
COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/
|
||||
COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/
|
||||
|
||||
###
|
||||
### Copy system files
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /etc/group /etc/group
|
||||
COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd
|
||||
COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow
|
||||
|
||||
###
|
||||
### Copy Blackfire
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire
|
||||
COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/
|
||||
COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire
|
||||
|
||||
###
|
||||
### Copy mhsendmail
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/
|
||||
|
||||
###
|
||||
### Copy MongoDB client (if exists)
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /tmp/mongo/ /usr/bin/
|
||||
|
||||
###
|
||||
### Copy MysQL Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/
|
||||
|
||||
###
|
||||
### Copy mysqldump-secure
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/local/bin/mysqldump-secure /usr/local/bin/
|
||||
COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.conf /etc/
|
||||
COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.cnf /etc/
|
||||
COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/
|
||||
|
||||
###
|
||||
### Copy PostgreSQL
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql
|
||||
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
|
||||
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
|
||||
|
||||
###
|
||||
### Create PostgreSQL symlinks
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if [ -f "/usr/share/postgresql-common/pg_wrapper" ]; then \
|
||||
ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Copy Redis Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/
|
||||
|
||||
|
||||
###
|
||||
### Copy SQLite Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/
|
||||
|
||||
###
|
||||
### ADD PHP configuration files
|
||||
###
|
||||
COPY ./data/php-ini.d/php-{{ php_version }}.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
|
||||
COPY ./data/php-fpm.conf/php-fpm-{{ php_version }}.conf /usr/local/etc/php-fpm.conf
|
||||
|
||||
###
|
||||
### ADD Devilbox configuration files
|
||||
###
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
|
||||
COPY ./data/bash-devilbox /etc/bash-devilbox
|
||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||
|
||||
###
|
||||
### Configure Bash
|
||||
###
|
||||
RUN set -eux \
|
||||
&& { \
|
||||
echo; \
|
||||
echo "# [Devilbox] Ensure /usr/local(s)?bin is in PATH"; \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo "export PATH"; \
|
||||
echo; \
|
||||
echo "# [Devilbox] Source Devilbox main bash config"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo; \
|
||||
echo "# [Devilbox] Source Devilbox custom configs"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
echo " for f in /etc/bashrc-devilbox.d/*.sh ; do"; \
|
||||
echo " if [ -r \"\${f}\" ]; then"; \
|
||||
echo " . \"\${f}\""; \
|
||||
echo " fi"; \
|
||||
echo " done"; \
|
||||
echo " unset f"; \
|
||||
echo "fi"; \
|
||||
} | tee -a /home/${MY_USER}/.bashrc /root/.bashrc \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/.bashrc
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 3/4: Devilbox slim image (BASE TEST)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Test all Devilbox cli utils if copying was successful
|
||||
###
|
||||
FROM devilbox-slim-base as devilbox-slim-base-test
|
||||
RUN set -eux \
|
||||
&& mysql --version \
|
||||
&& redis-cli --version \
|
||||
&& sqlite3 --version
|
||||
|
||||
###
|
||||
### Check if available tools slim
|
||||
###
|
||||
{% for tool in base_software_enabled -%}
|
||||
{# Not disabled #}
|
||||
{%- if ('disabled' not in base_software_available[tool]) or (php_version not in base_software_available[tool]['disabled']) -%}
|
||||
{{- "\n" }}# -------------------- {{ tool }} --------------------
|
||||
{{- "\n" }}RUN set -eux \
|
||||
{#- -#}
|
||||
{#- [CHECK] -#}
|
||||
{%- if 'check' in base_software_available[tool] -%}
|
||||
{{ "\n\t" }}&& {{ base_software_available[tool]['check'] | indent( "\t" ) }}{{ "\t\\" }}
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- Finalize -#}
|
||||
{{ "\n\t" }}&& true{{ "\n" }}
|
||||
{%- endif -%}
|
||||
{%- endfor %}
|
||||
|
||||
###
|
||||
### Re-activate modules which have been deactivated in mods (for testing).
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if find /usr/local/lib/php/extensions/ -name phalcon.so | grep phalcon; then \
|
||||
echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if find /usr/local/lib/php/extensions/ -name psr.so | grep psr; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Check if PHP still works
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^{{ php_version }}' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
\
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
\
|
||||
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 4/4: Devilbox slim image (FINAL)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Prepare final base image (STAGE: slim)
|
||||
###
|
||||
FROM devilbox-slim-base as slim
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="{{ php_version }}-slim"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM {{ php_version }}-slim"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM {{ php_version }}-slim"
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /shared/backups
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
###
|
||||
### Where to start inside the container
|
||||
###
|
||||
WORKDIR /shared/httpd
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
576
.ansible/DOCKERFILES/Dockerfile-work.j2
Normal file
576
.ansible/DOCKERFILES/Dockerfile-work.j2
Normal file
@@ -0,0 +1,576 @@
|
||||
# vi: ft=dockerfile
|
||||
{{ edit_comment_work }}
|
||||
{% import './jinja2/macros-work.j2' as fn %}
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 1/7: Devilbox work image (HELP BUILDER)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Installs all cli tools required to install custom tools
|
||||
###
|
||||
FROM devilbox/php-fpm:{{ php_version }}-slim as devilbox-work-help-builder
|
||||
|
||||
{% set build_deps = [] -%}
|
||||
{%- for ext in help_software_enabled -%}
|
||||
{%- for dep in fn.get_build_dep(php_version, ext, help_software_available) | from_json -%}
|
||||
{%- if dep -%}
|
||||
{{- build_deps.append(dep) -}}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
{%- endfor -%}
|
||||
{%- if build_deps -%}
|
||||
###
|
||||
### Install build_dep
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
{% for build_dep in build_deps | unique | sort %}
|
||||
{{ build_dep }} \
|
||||
{% endfor %}
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
{%- endif %}
|
||||
|
||||
{% set run_deps = [] -%}
|
||||
{%- for ext in help_software_enabled -%}
|
||||
{%- for dep in fn.get_run_dep(php_version, ext, help_software_available) | from_json -%}
|
||||
{%- if dep -%}
|
||||
{{- run_deps.append(dep) -}}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
{%- endfor -%}
|
||||
{%- if run_deps -%}
|
||||
|
||||
###
|
||||
### Install run_dep
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
{% for run_dep in run_deps | unique | sort %}
|
||||
{{ run_dep }} \
|
||||
{% endfor %}
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
{%- endif %}
|
||||
|
||||
###
|
||||
### Devilbox required helper tools from group_vars (work-help.yml)
|
||||
###
|
||||
{% for tool in help_software_enabled -%}
|
||||
{# Not disabled #}
|
||||
{%- if ('disabled' not in help_software_available[tool]) or (php_version not in help_software_available[tool]['disabled']) -%}
|
||||
{{- "\n" }}# -------------------- {{ tool }} --------------------
|
||||
{{- "\n" }}RUN set -eux \
|
||||
{#- -#}
|
||||
{#- [PRE] -#}
|
||||
{%- if fn.get_pre(php_version, tool, help_software_available) | length -%}
|
||||
{{ "\n\t" }}&& {{ fn.get_pre(php_version, tool, help_software_available) | indent( "\t" ) }}{{ "\t\\" }}
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- [COMMAND] -#}
|
||||
{%- if fn.get_type(php_version, tool, help_software_available) == 'custom' -%}
|
||||
{{ "\n\t" }}&& {{ fn.tool_custom_get_command(php_version, tool, help_software_available) | indent( "\t" ) }}{{ "\t\\" }}
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- [POST] -#}
|
||||
{%- if fn.get_post(php_version, tool, help_software_available) | length -%}
|
||||
{{ "\n\t" }}&& {{ fn.get_post(php_version, tool, help_software_available) | indent( "\t" ) }}{{ "\t\\" }}
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- Finalize -#}
|
||||
{{ "\n\t" }}&& true{{ "\n" }}
|
||||
{%- endif -%}
|
||||
{%- endfor %}
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 2/7: Devilbox work image (HELP)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Copies all cli tools required to run Devilbox and its intranet into a clean image
|
||||
###
|
||||
FROM devilbox/php-fpm:{{ php_version }}-slim as devilbox-work-help
|
||||
|
||||
{% set run_deps = [] -%}
|
||||
{%- for ext in help_software_enabled -%}
|
||||
{%- for dep in fn.get_run_dep(php_version, ext, help_software_available) | from_json -%}
|
||||
{%- if dep -%}
|
||||
{{- run_deps.append(dep) -}}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
{%- endfor -%}
|
||||
{%- if run_deps -%}
|
||||
###
|
||||
### Install run_dep
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
{% for run_dep in run_deps | unique | sort %}
|
||||
{{ run_dep }} \
|
||||
{% endfor %}
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
{% endif %}
|
||||
|
||||
###
|
||||
### Copy nvm
|
||||
###
|
||||
COPY --from=devilbox-work-help-builder /opt/nvm /opt/nvm
|
||||
|
||||
###
|
||||
### Copy binaries (Composer & Pip binaries)
|
||||
###
|
||||
COPY --from=devilbox-work-help-builder /usr/local/bin /usr/local/bin
|
||||
|
||||
###
|
||||
### Python packages
|
||||
###
|
||||
COPY --from=devilbox-work-help-builder /usr/local/lib /usr/local/lib
|
||||
|
||||
|
||||
###
|
||||
### Configure Bash (composer, node yarn)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& { \
|
||||
#echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo; \
|
||||
echo "# [Devilbox] Ensure yarn, composer and node are in PATH"; \
|
||||
echo 'PATH="${HOME}/.yarn/bin:${PATH}"'; \
|
||||
echo 'PATH="${HOME}/.composer/vendor/bin:${PATH}"'; \
|
||||
echo 'PATH="{{ nvm_home }}/versions/node/$(node --version)/bin:${PATH}"'; \
|
||||
echo "export PATH"; \
|
||||
echo; \
|
||||
echo "# [Devilbox] Ensure to load nvm"; \
|
||||
echo 'export NVM_DIR="{{ nvm_home }}"'; \
|
||||
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm'; \
|
||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||
#echo; \
|
||||
#echo ". /etc/bash-devilbox"; \
|
||||
#echo; \
|
||||
#echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
#echo " for f in /etc/bashrc-devilbox.d/*.sh ; do"; \
|
||||
#echo " if [ -r \"\${f}\" ]; then"; \
|
||||
#echo " . \"\${f}\""; \
|
||||
#echo " fi"; \
|
||||
#echo " done"; \
|
||||
#echo " unset f"; \
|
||||
#echo "fi"; \
|
||||
} | tee -a /home/${MY_USER}/.bashrc /root/.bashrc \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/.bashrc
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 3/7: Devilbox work image (HELP TEST)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Test all Devilbox cli utils if copying was successful
|
||||
###
|
||||
FROM devilbox-work-help as devilbox-work-help-test
|
||||
|
||||
###
|
||||
### Devilbox required helper tools from group_vars (work-help.yml)
|
||||
###
|
||||
{% for tool in help_software_enabled -%}
|
||||
{# Not disabled #}
|
||||
{%- if ('disabled' not in help_software_available[tool]) or (php_version not in help_software_available[tool]['disabled']) -%}
|
||||
{{- "\n" }}# -------------------- {{ tool }} --------------------
|
||||
{{- "\n" }}RUN set -eux \
|
||||
{#- -#}
|
||||
{#- [CHECK] -#}
|
||||
{%- if 'check' in help_software_available[tool] -%}
|
||||
{{ "\n\t" }}&& {{ help_software_available[tool]['check'] | indent( "\t" ) }}{{ "\t\\" }}
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- Finalize -#}
|
||||
{{ "\n\t" }}&& true{{ "\n" }}
|
||||
{%- endif -%}
|
||||
{%- endfor %}
|
||||
|
||||
###
|
||||
### Re-activate modules which have been deactivated in mods (for testing).
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if find /usr/local/lib/php/extensions/ -name phalcon.so | grep phalcon; then \
|
||||
echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if find /usr/local/lib/php/extensions/ -name psr.so | grep psr; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Check if PHP still works
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^{{ php_version }}' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
\
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
\
|
||||
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 4/7: Devilbox work image (TOOLS BUILDER)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### This stage can be easily modified by adding tools into the ./php_tools/ directory.
|
||||
###
|
||||
FROM devilbox-work-help as devilbox-work-tools-builder
|
||||
|
||||
{% set build_deps = [] -%}
|
||||
{%- set run_deps = [] -%}
|
||||
{%- set tools_apt = [] -%}
|
||||
{%- for tool in tools_enabled -%}
|
||||
{%- for dep in fn.get_build_dep(php_version, tool, tools_available) | from_json -%}
|
||||
{%- if dep -%}
|
||||
{{- build_deps.append(dep) -}}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
{%- for dep in fn.get_run_dep(php_version, tool, tools_available) | from_json -%}
|
||||
{%- if dep -%}
|
||||
{{- run_deps.append(dep) -}}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
{%- if ('disabled' not in tools_available[tool]) or (php_version not in tools_available[tool]['disabled']) -%}
|
||||
{%- if fn.tool_apt_get_package(php_version, tool, tools_available) -%}
|
||||
{{- tools_apt.append(fn.tool_apt_get_package(php_version, tool, tools_available)) -}}
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{%- endfor %}
|
||||
|
||||
{%- if build_deps or run_deps or tools_apt -%}
|
||||
###
|
||||
### Install build_dep, run_dep or tools type: apt
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
{{- "\n" -}}
|
||||
{%- if build_deps -%}
|
||||
{{- "\t\t# ---------- build_deps ----------\n" -}}
|
||||
{%- for apt in build_deps | unique | sort -%}
|
||||
{{- "\t\t" + apt + " \\" + "\n" -}}
|
||||
{%- endfor -%}
|
||||
{%- endif -%}
|
||||
{%- if run_deps -%}
|
||||
{{- "\t\t# ---------- run_deps ----------\n" -}}
|
||||
{%- for apt in run_deps | unique | sort -%}
|
||||
{{- "\t\t" + apt + " \\" + "\n" -}}
|
||||
{%- endfor -%}
|
||||
{%- endif -%}
|
||||
{%- if tools_apt -%}
|
||||
{{- "\t\t# ---------- type: apt ----------\n" -}}
|
||||
{%- for apt in tools_apt | unique | sort -%}
|
||||
{{- "\t\t" + apt + " \\" + "\n" -}}
|
||||
{%- endfor -%}
|
||||
{%- endif -%}
|
||||
{{- "\t" -}}&& rm -rf /var/lib/apt/lists/*{{- "\n" -}}
|
||||
{% endif %}
|
||||
|
||||
###
|
||||
### Install defined php_tools
|
||||
###
|
||||
{% for tool in tools_enabled -%}
|
||||
{# Not disabled #}
|
||||
{%- if ('disabled' not in tools_available[tool]) or (php_version not in tools_available[tool]['disabled']) -%}
|
||||
{{- "\n" }}# -------------------- ({{ fn.get_type(php_version, tool, tools_available) }}) {{ tool }} --------------------
|
||||
{{- "\n" }}RUN set -eux \
|
||||
{#- -#}
|
||||
{#- [PRE] -#}
|
||||
{%- if fn.get_pre(php_version, tool, tools_available) | length -%}
|
||||
{{ "\n\t" }}&& {{ fn.get_pre(php_version, tool, tools_available) | indent( "\t" ) }}{{ "\t\\" }}
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- [CUSTOM] -#}
|
||||
{%- if fn.get_type(php_version, tool, tools_available) == 'custom' -%}
|
||||
{{ "\n\t" }}&& {{ fn.tool_custom_get_command(php_version, tool, tools_available) | indent( "\t" ) }}{{ "\t\\" }}
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- [NPM] -#}
|
||||
{%- if fn.get_type(php_version, tool, tools_available) == 'npm' -%}
|
||||
{%- set npm_package = fn.tool_npm_get_package(php_version, tool, tools_available) -%}
|
||||
{%- set npm_version = fn.tool_npm_get_version(php_version, tool, tools_available) -%}
|
||||
{%- set npm_binary = fn.tool_npm_get_binary(php_version, tool, tools_available) -%}
|
||||
{{ "\n\t" }}&& su -c '. {{ nvm_home }}/nvm.sh; npm install --location=global {{ npm_package }}{{ npm_version }}' devilbox \
|
||||
{%- if npm_binary | length -%}
|
||||
{{ "\n\t" }}&& ln -s {{ nvm_home }}/versions/node/$(su -c '. {{ nvm_home }}/nvm.sh; node --version' devilbox)/bin/{{ npm_binary }} /usr/local/bin/ \
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- [COMPOSER] -#}
|
||||
{%- if fn.get_type(php_version, tool, tools_available) == 'composer' -%}
|
||||
{%- set comp_composer = fn.tool_composer_get_composer(php_version, tool, tools_available) -%}
|
||||
{%- set comp_package = fn.tool_composer_get_package(php_version, tool, tools_available) -%}
|
||||
{%- set comp_version = fn.tool_composer_get_version(php_version, tool, tools_available) -%}
|
||||
{%- set comp_flags = fn.tool_composer_get_flags(php_version, tool, tools_available) -%}
|
||||
{%- set comp_binary = fn.tool_composer_get_binary(php_version, tool, tools_available) -%}
|
||||
{#- FIXME: use su -c ' devilbox -#}
|
||||
{{ "\n\t" }}&& COMPOSER_HOME="{{ composer_home }}" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-{{ comp_composer }} global require --no-interaction --no-cache {{ comp_flags }} {{ comp_package }}{{ comp_version }} \
|
||||
{%- if comp_binary | length -%}
|
||||
{{ "\n\t" }}&& ln -s {{ composer_home }}/vendor/{{ comp_package }}/{{ comp_binary }} /usr/local/bin/ \
|
||||
{%- endif -%}
|
||||
{{ "\n\t" }}&& rm -rf {{ composer_home }}/cache/* \
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- [RUBYGEM] -#}
|
||||
{%- if fn.get_type(php_version, tool, tools_available) == 'rubygem' -%}
|
||||
{%- set rubygem_package = fn.tool_rubygem_get_package(php_version, tool, tools_available) -%}
|
||||
{%- set rubygem_version = fn.tool_rubygem_get_version(php_version, tool, tools_available) -%}
|
||||
{{ "\n\t" }}&& gem install {{ rubygem_package }}{{ rubygem_version }} \
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- [PIP] -#}
|
||||
{%- if fn.get_type(php_version, tool, tools_available) == 'pip' -%}
|
||||
{%- set pip_package = fn.tool_pip_get_package(php_version, tool, tools_available) -%}
|
||||
{%- set pip_version = fn.tool_pip_get_version(php_version, tool, tools_available) -%}
|
||||
{{ "\n\t" }}&& pip install --no-cache-dir --no-compile --force-reinstall {{ pip_package }}{{ pip_version }} \
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- [POST] -#}
|
||||
{%- if fn.get_post(php_version, tool, tools_available) | length -%}
|
||||
{{ "\n\t" }}&& {{ fn.get_post(php_version, tool, tools_available) | indent( "\t" ) }}{{ "\t\\" }}
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- [CHECK] -#}
|
||||
{%- if 'check' in tools_available[tool] -%}
|
||||
{{ "\n\t" }}&& {{ tools_available[tool]['check'] | indent( "\t" ) }}{{ "\t\\" }}
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- Finalize -#}
|
||||
{{ "\n\t" }}&& true{{ "\n" }}
|
||||
{%- endif -%}
|
||||
{%- endfor %}
|
||||
|
||||
###
|
||||
### Post fixes
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if [ ! -d "/var/lib/gems" ]; then \
|
||||
mkdir "/var/lib/gems"; \
|
||||
fi
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 5/7: Devilbox work image (TOOLS)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### This stage can be easily modified by adding tools into the ./php_tools/ directory.
|
||||
###
|
||||
FROM devilbox-work-help as devilbox-work-tools
|
||||
|
||||
{% set run_deps = [] -%}
|
||||
{%- set tools_apt = [] -%}
|
||||
{%- for tool in tools_enabled -%}
|
||||
{%- for dep in fn.get_run_dep(php_version, tool, tools_available) | from_json -%}
|
||||
{%- if dep -%}
|
||||
{{- run_deps.append(dep) -}}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
{%- if ('disabled' not in tools_available[tool]) or (php_version not in tools_available[tool]['disabled']) -%}
|
||||
{%- if fn.tool_apt_get_package(php_version, tool, tools_available) -%}
|
||||
{{- tools_apt.append(fn.tool_apt_get_package(php_version, tool, tools_available)) -}}
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{%- endfor %}
|
||||
|
||||
{%- if build_deps or run_deps or tools_apt -%}
|
||||
###
|
||||
### Install run_dep or tools type: apt
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
{{- "\n" -}}
|
||||
{%- if run_deps -%}
|
||||
{{- "\t\t# ---------- run_deps ----------\n" -}}
|
||||
{%- for apt in run_deps | unique | sort -%}
|
||||
{{- "\t\t" + apt + " \\" + "\n" -}}
|
||||
{%- endfor -%}
|
||||
{%- endif -%}
|
||||
{%- if tools_apt -%}
|
||||
{{- "\t\t# ---------- type: apt ----------\n" -}}
|
||||
{%- for apt in tools_apt | unique | sort -%}
|
||||
{{- "\t\t" + apt + " \\" + "\n" -}}
|
||||
{%- endfor -%}
|
||||
{%- endif -%}
|
||||
{{- "\t" -}}&& rm -rf /var/lib/apt/lists/*{{- "\n" -}}
|
||||
{% endif %}
|
||||
|
||||
###
|
||||
### Copy Custom (binaries in /usr/local/bin)
|
||||
###
|
||||
COPY --from=devilbox-work-tools-builder /usr/local/bin /usr/local/bin
|
||||
|
||||
###
|
||||
### Copy NPM
|
||||
###
|
||||
COPY --from=devilbox-work-tools-builder /opt/nvm /opt/nvm
|
||||
|
||||
###
|
||||
### Copy Composer
|
||||
###
|
||||
COPY --from=devilbox-work-tools-builder /usr/local/src /usr/local/src
|
||||
|
||||
###
|
||||
### Copy Pip
|
||||
###
|
||||
COPY --from=devilbox-work-tools-builder /usr/local/lib /usr/local/lib
|
||||
|
||||
###
|
||||
### Copy RubyGems
|
||||
###
|
||||
COPY --from=devilbox-work-tools-builder /var/lib/gems /var/lib/gems
|
||||
|
||||
|
||||
# FIXME: / TODO: Add post: stage into here as well
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 6/7: Devilbox work image (TOOLS TEST)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Test all Devilbox cli utils if copying was successful
|
||||
###
|
||||
FROM devilbox-work-tools as devilbox-work-tools-test
|
||||
|
||||
{% for tool in tools_enabled -%}
|
||||
{%- if fn.is_not_disabled(php_version, tool, tools_available) -%}
|
||||
{{- "\n" }}# -------------------- ({{ fn.get_type(php_version, tool, tools_available) }}) {{ tool }} --------------------
|
||||
{{- "\n" }}RUN set -eux \
|
||||
{%- if 'check' in tools_available[tool] -%}
|
||||
{{ "\n\t" }}&& {{ tools_available[tool]['check'] | indent( "\t" ) }}{{ "\t\\" }}
|
||||
{%- endif -%}
|
||||
{{ "\n\t" }}&& true{{ "\n" }}
|
||||
{%- endif -%}
|
||||
{%- endfor %}
|
||||
|
||||
###
|
||||
### Re-activate modules which have been deactivated in mods (for testing).
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if find /usr/local/lib/php/extensions/ -name phalcon.so | grep phalcon; then \
|
||||
echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if find /usr/local/lib/php/extensions/ -name psr.so | grep psr; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Check if PHP still works
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^{{ php_version }}' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
\
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
\
|
||||
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 7/7: Devilbox sliwork image (FINAL)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Prepare final base image (STAGE: work)
|
||||
###
|
||||
FROM devilbox-work-tools as work
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="{{ php_version }}-work"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM {{ php_version }}-work"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM {{ php_version }}-work"
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /shared/backups
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
###
|
||||
### Where to start inside the container
|
||||
###
|
||||
WORKDIR /shared/httpd
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
16
.ansible/ansible.cfg
Normal file
16
.ansible/ansible.cfg
Normal file
@@ -0,0 +1,16 @@
|
||||
[defaults]
|
||||
roles_path = ./roles
|
||||
inventory = inventory.ini
|
||||
strategy_plugins = /usr/lib/python3.10/site-packages/ansible_mitogen/plugins/strategy
|
||||
strategy = mitogen_linear
|
||||
|
||||
# Show timing information
|
||||
callbacks_enabled = timer, profile_tasks, profile_roles
|
||||
|
||||
# Speed improvements
|
||||
host_key_checking = False
|
||||
internal_poll_interval = 0.001
|
||||
|
||||
[ssh_connection]
|
||||
pipelining = True
|
||||
ssh_args = -o ControlMaster=auto -o ControlPersist=60s
|
||||
@@ -3,10 +3,11 @@
|
||||
# Ansible specific definitions
|
||||
###################################################################################################
|
||||
|
||||
edit_comment_base: "# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead."
|
||||
edit_comment_mods: "# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead."
|
||||
edit_comment_prod: "# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead."
|
||||
edit_comment_work: "# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead."
|
||||
edit_comment_base: "# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead."
|
||||
edit_comment_mods: "# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead."
|
||||
edit_comment_prod: "# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-prod.j2 instead."
|
||||
edit_comment_slim: "# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-slim.j2 instead."
|
||||
edit_comment_work: "# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-work.j2 instead."
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
@@ -34,45 +35,50 @@ php_all_versions:
|
||||
- 7.4
|
||||
- 8.0
|
||||
- 8.1
|
||||
- 8.2
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Docker file paths for each version for base, mods, prod & work
|
||||
# Docker file paths for each version for base, mods, prod, slim & work
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
template_dockerfiles:
|
||||
- src: DOCKERFILES/Dockerfile-base.j2
|
||||
dst: "../../Dockerfiles/base/Dockerfile-{{ php_version }}"
|
||||
dst: "../Dockerfiles/base/Dockerfile-{{ php_version }}"
|
||||
- src: DOCKERFILES/Dockerfile-mods.j2
|
||||
dst: "../../Dockerfiles/mods/Dockerfile-{{ php_version }}"
|
||||
dst: "../Dockerfiles/mods/Dockerfile-{{ php_version }}"
|
||||
- src: DOCKERFILES/Dockerfile-prod.j2
|
||||
dst: "../../Dockerfiles/prod/Dockerfile-{{ php_version }}"
|
||||
dst: "../Dockerfiles/prod/Dockerfile-{{ php_version }}"
|
||||
- src: DOCKERFILES/Dockerfile-slim.j2
|
||||
dst: "../Dockerfiles/slim/Dockerfile-{{ php_version }}"
|
||||
- src: DOCKERFILES/Dockerfile-work.j2
|
||||
dst: "../../Dockerfiles/work/Dockerfile-{{ php_version }}"
|
||||
dst: "../Dockerfiles/work/Dockerfile-{{ php_version }}"
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Assign php.ini & php-fpm.conf to PHP versions
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
template_configurations:
|
||||
|
||||
# php.ini
|
||||
- src: CONFIGURATIONS/php.ini.j2
|
||||
dst: "../../Dockerfiles/base/data/php-ini.d/php-{{ php_version }}.ini"
|
||||
dst: "../Dockerfiles/base/data/php-ini.d/php-{{ php_version }}.ini"
|
||||
cfg: "{{ php_settings_ini }}"
|
||||
key: base
|
||||
alt: base
|
||||
- src: CONFIGURATIONS/php.ini.j2
|
||||
dst: "../../Dockerfiles/work/data/php-ini.d/php-{{ php_version }}.ini"
|
||||
dst: "../Dockerfiles/slim/data/php-ini.d/php-{{ php_version }}.ini"
|
||||
cfg: "{{ php_settings_ini }}"
|
||||
key: work
|
||||
alt: base # Alternative key to use when definition is not set in 'work'
|
||||
key: slim
|
||||
alt: base # Alternative key to use when definition is not set in 'slim'
|
||||
|
||||
# php-fpm.conf
|
||||
- src: CONFIGURATIONS/php-fpm.conf.j2
|
||||
dst: "../../Dockerfiles/base/data/php-fpm.conf/php-fpm-{{ php_version }}.conf"
|
||||
dst: "../Dockerfiles/base/data/php-fpm.conf/php-fpm-{{ php_version }}.conf"
|
||||
cfg: "{{ php_settings_fpm }}"
|
||||
key: base
|
||||
alt: base
|
||||
- src: CONFIGURATIONS/php-fpm.conf.j2
|
||||
dst: "../../Dockerfiles/work/data/php-fpm.conf/php-fpm-{{ php_version }}.conf"
|
||||
dst: "../Dockerfiles/slim/data/php-fpm.conf/php-fpm-{{ php_version }}.conf"
|
||||
cfg: "{{ php_settings_fpm }}"
|
||||
key: work
|
||||
alt: base
|
||||
key: slim
|
||||
alt: base # Alternative key to use when definition is not set in 'slim'
|
||||
@@ -54,7 +54,7 @@ php_settings_ini:
|
||||
# ---- Inherits from base ----
|
||||
prod:
|
||||
# ---- Inherits from base and overwrites certain values ----
|
||||
work:
|
||||
slim:
|
||||
# Error reporting
|
||||
error_reporting: E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED
|
||||
xmlrpc_errors: 'Off'
|
||||
@@ -73,6 +73,8 @@ php_settings_ini:
|
||||
xdebug3_mode: 'Off'
|
||||
xdebug3_start_with_request: 'default'
|
||||
xdebug3_client_port: '9000'
|
||||
# ---- Inherits from slim ----
|
||||
work:
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# php-fpm.conf
|
||||
@@ -109,5 +111,7 @@ php_settings_fpm:
|
||||
mods:
|
||||
# ---- Inherits from base ----
|
||||
prod:
|
||||
# ---- Inherits from base and overwrites certain values ----
|
||||
# ---- Inherits from base ----
|
||||
slim:
|
||||
# ---- Inherits from base ----
|
||||
work:
|
||||
File diff suppressed because it is too large
Load Diff
573
.ansible/group_vars/all/slim.yml
Normal file
573
.ansible/group_vars/all/slim.yml
Normal file
@@ -0,0 +1,573 @@
|
||||
---
|
||||
###################################################################################################
|
||||
# Docker: slim
|
||||
###################################################################################################
|
||||
|
||||
#
|
||||
# This file holds definition for all devibox/php-fpm:x.y-slim images
|
||||
#
|
||||
|
||||
|
||||
###
|
||||
### Define operating system versions
|
||||
###
|
||||
os_release:
|
||||
# Bullseye (Ubuntu: focal, groovy, hirsute, impish)
|
||||
all:
|
||||
debian: bullseye
|
||||
ubuntu: focal
|
||||
8.2:
|
||||
debian: bullseye
|
||||
ubuntu: focal
|
||||
8.1:
|
||||
debian: bullseye
|
||||
ubuntu: focal
|
||||
8.0:
|
||||
debian: bullseye
|
||||
ubuntu: focal
|
||||
7.4:
|
||||
debian: bullseye
|
||||
ubuntu: focal
|
||||
7.3:
|
||||
debian: bullseye
|
||||
ubuntu: focal
|
||||
# Buster (Ubuntu: bionic, cosmic, disco, eoan)
|
||||
7.2:
|
||||
debian: buster
|
||||
ubuntu: bionic
|
||||
7.1:
|
||||
debian: buster
|
||||
ubuntu: bionic
|
||||
# Strech (Ubuntu: xenial, yakkety, zesty, artful)
|
||||
7.0:
|
||||
debian: stretch
|
||||
ubuntu: xenial
|
||||
5.6:
|
||||
debian: stretch
|
||||
ubuntu: xenial
|
||||
# Jessie (Ubuntu: trusty, utopic, vivid, wily)
|
||||
5.5:
|
||||
debian: jessie
|
||||
ubuntu: trusty
|
||||
5.4:
|
||||
debian: jessie
|
||||
ubuntu: trusty
|
||||
5.3:
|
||||
debian: jessie
|
||||
ubuntu: trusty
|
||||
5.2:
|
||||
debian: jessie
|
||||
ubuntu: trusty
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Apt repositories to enable (in defined order)
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
base_apt_repositories_enabled:
|
||||
- backports
|
||||
- blackfire
|
||||
# - mongo # Note: This is done separately in tools (to check ARCH as well)
|
||||
# - pgsql # Note: This is done separately in tools (to check ARCH as well)
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Software to install (in defined order)
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
base_software_enabled:
|
||||
- dig # required by Devilbox Intranet
|
||||
- netcat # required by Devilbox Intranet
|
||||
- ping # required by Devilbox Intranet
|
||||
- sudo # required by /etc/sudoers.d/devilbox config file
|
||||
- blackfire
|
||||
- mhsendmail
|
||||
- mongo_client
|
||||
- mysqldumpsecure
|
||||
- pgsql_client
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Apt repository definition
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
|
||||
# all: is generic version of defines
|
||||
# 7.2: is specific version of defines
|
||||
# disabled: [optional] Array of PHP versions for which to disable this module
|
||||
#
|
||||
# all, 7.2, 7.1, 7.0, 5.6, 5.5, 5.4:
|
||||
# deb: Deb line to add to sources list
|
||||
# key: [optional] Key id to add for repository
|
||||
# pre: [optional] Run custom command to add gpg key for repository
|
||||
#
|
||||
base_apt_repositories_available:
|
||||
|
||||
###
|
||||
### Backports
|
||||
###
|
||||
backports:
|
||||
# [Bullseye]
|
||||
all:
|
||||
type: repo
|
||||
pre: apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138
|
||||
deb: deb http://ftp.debian.org/debian {{ os_release['all'].debian }}-backports main
|
||||
# [Buster]
|
||||
7.2:
|
||||
type: repo
|
||||
pre: apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138
|
||||
deb: deb http://ftp.debian.org/debian {{ os_release[7.2].debian }}-backports main
|
||||
# [Buster]
|
||||
7.1:
|
||||
type: repo
|
||||
pre: apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138
|
||||
deb: deb http://ftp.debian.org/debian {{ os_release[7.1].debian }}-backports main
|
||||
# [Stretch]
|
||||
7.0:
|
||||
type: repo
|
||||
pre: apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138
|
||||
deb: deb http://ftp.debian.org/debian {{ os_release[7.0].debian }}-backports main
|
||||
# [Stretch]
|
||||
5.6:
|
||||
type: repo
|
||||
pre: apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138
|
||||
deb: deb http://ftp.debian.org/debian {{ os_release[5.6].debian }}-backports main
|
||||
# [Jessie]
|
||||
5.5:
|
||||
type: repo
|
||||
pre: echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until
|
||||
deb: deb [trusted=yes] http://archive.debian.org/debian {{ os_release[5.5].debian }}-backports main
|
||||
# [Jessie]
|
||||
5.4:
|
||||
type: repo
|
||||
pre: echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until
|
||||
deb: deb [trusted=yes] http://archive.debian.org/debian {{ os_release[5.4].debian }}-backports main
|
||||
# [Jessie]
|
||||
5.3:
|
||||
type: repo
|
||||
pre: echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until
|
||||
deb: deb [trusted=yes] http://archive.debian.org/debian {{ os_release[5.3].debian }}-backports main
|
||||
# [Jessie]
|
||||
5.2:
|
||||
type: repo
|
||||
pre: echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until
|
||||
deb: deb [trusted=yes] http://archive.debian.org/debian {{ os_release[5.2].debian }}-backports main
|
||||
|
||||
###
|
||||
### Blackfire
|
||||
###
|
||||
blackfire:
|
||||
all:
|
||||
type: repo
|
||||
deb: deb http://packages.blackfire.io/debian any main
|
||||
pre: curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add -
|
||||
|
||||
###
|
||||
### MongoDB (currently obsolete)
|
||||
###
|
||||
mongo:
|
||||
# 8.2: mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 8.1: mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 8.0: mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 7.4: mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 7.3: mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 7.2: mongo-tools OR mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 7.1: mongo-tools OR mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 7.0: mongodb-clients & mongo-tools (amd64, arm64)
|
||||
# 5.6: mongodb-clients & mongo-tools (amd64, arm64)
|
||||
# 5.5: mongodb-clients (amd64)
|
||||
# 5.4: mongodb-clients (amd64)
|
||||
# 5.3: mongodb-clients (amd64)
|
||||
# 5.2: mongodb-clients (amd64)
|
||||
disabled: [5.2, 5.3, 5.4, 5.5, 5.6, 7.0] # TODO: Why were those disabled?
|
||||
# [Bullseye] Ubuntu repository required for arm64 support instead
|
||||
all:
|
||||
type: repo
|
||||
# gpg --dry-run --with-fingerprint < <(curl https://www.mongodb.org/static/pgp/server-4.4.asc) | grep fingerprint | sed 's/.*=//g' | sed 's/ //g'
|
||||
deb: deb http://repo.mongodb.org/apt/ubuntu {{ os_release['all'].ubuntu }}/mongodb-org/4.4 multiverse
|
||||
key: 20691EEC35216C63CAF66CE1656408E390CFB1F5
|
||||
# [Buster] Ubuntu repository required for arm64 support instead
|
||||
7.2:
|
||||
type: repo
|
||||
# gpg --dry-run --with-fingerprint < <(curl https://www.mongodb.org/static/pgp/server-4.4.asc) | grep fingerprint | sed 's/.*=//g' | sed 's/ //g'
|
||||
deb: deb http://repo.mongodb.org/apt/ubuntu {{ os_release[7.2].ubuntu }}/mongodb-org/4.4 multiverse
|
||||
key: 20691EEC35216C63CAF66CE1656408E390CFB1F5
|
||||
# [Buster] Ubuntu repository required for arm64 support instead
|
||||
7.1:
|
||||
type: repo
|
||||
# gpg --dry-run --with-fingerprint < <(curl https://www.mongodb.org/static/pgp/server-4.4.asc) | grep fingerprint | sed 's/.*=//g' | sed 's/ //g'
|
||||
deb: deb http://repo.mongodb.org/apt/ubuntu {{ os_release[7.1].ubuntu }}/mongodb-org/4.4 multiverse
|
||||
key: 20691EEC35216C63CAF66CE1656408E390CFB1F5
|
||||
|
||||
###
|
||||
### PostgrSQL (currently obsolete)
|
||||
###
|
||||
pgsql:
|
||||
# [Bullseye]
|
||||
all:
|
||||
type: repo
|
||||
deb: deb http://apt.postgresql.org/pub/repos/apt/ {{ os_release['all'].debian }}-pgdg main
|
||||
pre: curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add -
|
||||
# [Buster]
|
||||
7.2:
|
||||
type: repo
|
||||
deb: deb http://apt.postgresql.org/pub/repos/apt/ {{ os_release[7.2].debian }}-pgdg main
|
||||
pre: curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add -
|
||||
# [Buster]
|
||||
7.1:
|
||||
type: repo
|
||||
deb: deb http://apt.postgresql.org/pub/repos/apt/ {{ os_release[7.1].debian }}-pgdg main
|
||||
pre: curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add -
|
||||
# [Stretch]
|
||||
7.0:
|
||||
type: repo
|
||||
deb: deb https://apt-archive.postgresql.org/pub/repos/apt/ {{ os_release[7.0].debian }}-pgdg main
|
||||
# [Stretch]
|
||||
5.6:
|
||||
type: repo
|
||||
deb: deb https://apt-archive.postgresql.org/pub/repos/apt/ {{ os_release[5.6].debian }}-pgdg main
|
||||
# [Jessie]
|
||||
5.5:
|
||||
type: repo
|
||||
deb: deb https://apt-archive.postgresql.org/pub/repos/apt/ {{ os_release[5.5].debian }}-pgdg main
|
||||
# [Jessie]
|
||||
5.4:
|
||||
type: repo
|
||||
deb: deb https://apt-archive.postgresql.org/pub/repos/apt/ {{ os_release[5.4].debian }}-pgdg main
|
||||
# [Jessie]
|
||||
5.3:
|
||||
type: repo
|
||||
deb: deb https://apt-archive.postgresql.org/pub/repos/apt/ {{ os_release[5.3].debian }}-pgdg main
|
||||
# [Jessie]
|
||||
5.2:
|
||||
type: repo
|
||||
deb: deb https://apt-archive.postgresql.org/pub/repos/apt/ {{ os_release[5.2].debian }}-pgdg main
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Essential Software definition
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
|
||||
# all: is generic version of defines
|
||||
# 7.2: is specific version of defines
|
||||
# disabled: [optional] Array of PHP versions for which to disable this module
|
||||
# check: [optional] Include a check command to test if it was installed successfully
|
||||
#
|
||||
# all, 7.2, 7.1, 7.0, 5.6, 5.5, 5.4:
|
||||
# pre: [optional] Run command before 'command:' statement
|
||||
# command: Command to execute
|
||||
# post: [optional] Run command after 'command:' statement
|
||||
#
|
||||
base_software_available:
|
||||
|
||||
###
|
||||
### dig
|
||||
###
|
||||
dig:
|
||||
check: dig -v 2>&1 | grep -E '[0-9]\.[0-9]'
|
||||
all:
|
||||
type: apt
|
||||
package: dnsutils
|
||||
|
||||
###
|
||||
### netcat
|
||||
###
|
||||
netcat:
|
||||
check: nc -h 2>&1 | grep netcat
|
||||
all:
|
||||
type: apt
|
||||
package: netcat-openbsd
|
||||
|
||||
###
|
||||
### ping
|
||||
###
|
||||
ping:
|
||||
check: ping -V | grep ^ping
|
||||
all:
|
||||
type: apt
|
||||
package: iputils-ping
|
||||
|
||||
###
|
||||
### sudo
|
||||
###
|
||||
sudo:
|
||||
check: sudo --version | grep -E 'version [0-9]+\.[0-9]+'
|
||||
all:
|
||||
type: apt
|
||||
package: sudo
|
||||
|
||||
###
|
||||
### Blackfire
|
||||
###
|
||||
blackfire:
|
||||
check: |
|
||||
blackfire version \
|
||||
&& blackfire-agent -v \
|
||||
all:
|
||||
type: custom
|
||||
pre: |
|
||||
apt-get update \
|
||||
command: |
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
blackfire-agent \
|
||||
post: rm -rf /var/lib/apt/lists/*
|
||||
|
||||
###
|
||||
### mhsendmail
|
||||
###
|
||||
mhsendmail:
|
||||
check: mhsendmail -h 2>&1 | grep 'Usage'
|
||||
all:
|
||||
type: custom
|
||||
command: |
|
||||
DEB_HOST_ARCH="$( dpkg-architecture --query DEB_HOST_ARCH )" \
|
||||
&& if [ "${DEB_HOST_ARCH}" = "amd64" ] || [ "${DEB_HOST_ARCH}" = "arm64" ]; then \
|
||||
MHSENDMAIL_URL="https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_${DEB_HOST_ARCH}" \
|
||||
&& curl -sS -L --fail "${MHSENDMAIL_URL}" > /usr/local/bin/mhsendmail \
|
||||
&& chmod +x /usr/local/bin/mhsendmail; \
|
||||
else \
|
||||
printf '%s\n%s\n%s\n' '#!/bin/sh' 'echo "Not available for this platform."' 'exit 1' > /usr/local/bin/mhsendmail \
|
||||
&& chmod +x /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
|
||||
###
|
||||
### MongoDB Command line client
|
||||
###
|
||||
# 8.2: mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 8.1: mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 8.0: mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 7.4: mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 7.3: mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 7.2: mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 7.1: mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 7.0: mongodb-clients & mongo-tools (amd64, arm64)
|
||||
# 5.6: mongodb-clients & mongo-tools (amd64, arm64)
|
||||
# 5.5: mongodb-clients (amd64)
|
||||
# 5.4: mongodb-clients (amd64)
|
||||
# 5.3: mongodb-clients (amd64)
|
||||
# 5.2: mongodb-clients (amd64)
|
||||
mongo_client:
|
||||
check: |
|
||||
if echo '{{ php_version }}' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '{{ php_version }}' | grep -E '^(5.2|5.3|5.4|5.5)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongo --version; \
|
||||
fi \
|
||||
else \
|
||||
mongo --version; \
|
||||
fi \
|
||||
all:
|
||||
type: custom
|
||||
pre: |
|
||||
APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 20691EEC35216C63CAF66CE1656408E390CFB1F5 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/ubuntu {{ os_release[php_version].ubuntu }}/mongodb-org/4.4 multiverse" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& apt-get update \
|
||||
command: |
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-org-tools \
|
||||
mongodb-org-shell \
|
||||
post: rm -rf /var/lib/apt/lists/*
|
||||
build_dep: [libsnappy-dev] # Required to copy libsnappy.so to next stage
|
||||
7.0:
|
||||
type: custom
|
||||
pre: apt-get update
|
||||
command: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients \
|
||||
mongo-tools; \
|
||||
else \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients; \
|
||||
fi \
|
||||
5.6:
|
||||
type: custom
|
||||
pre: apt-get update
|
||||
command: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients \
|
||||
mongo-tools; \
|
||||
else \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients; \
|
||||
fi \
|
||||
5.5:
|
||||
type: custom
|
||||
pre: apt-get update
|
||||
command: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients; \
|
||||
fi \
|
||||
5.4:
|
||||
type: custom
|
||||
pre: apt-get update
|
||||
command: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients; \
|
||||
fi \
|
||||
5.3:
|
||||
type: custom
|
||||
pre: apt-get update
|
||||
command: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients; \
|
||||
fi \
|
||||
5.2:
|
||||
type: custom
|
||||
pre: apt-get update
|
||||
command: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients; \
|
||||
fi \
|
||||
|
||||
###
|
||||
### mysqldump-secure
|
||||
###
|
||||
mysqldumpsecure:
|
||||
check: mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+'
|
||||
all:
|
||||
type: custom
|
||||
command: |
|
||||
git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||
&& cd /usr/local/src/mysqldump-secure \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
&& cp /usr/local/src/mysqldump-secure/bin/mysqldump-secure /usr/local/bin \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.conf /etc \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.cnf /etc \
|
||||
&& touch /var/log/mysqldump-secure.log \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /etc/mysqldump-secure.* \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /var/log/mysqldump-secure.log \
|
||||
&& chmod 0400 /etc/mysqldump-secure.conf \
|
||||
&& chmod 0400 /etc/mysqldump-secure.cnf \
|
||||
&& chmod 0644 /var/log/mysqldump-secure.log \
|
||||
&& sed -i'' 's/^COMPRESS_ARG=.*/COMPRESS_ARG="-9 -c"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR=.*/DUMP_DIR="\/shared\/backups\/mysql"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR_CHMOD=.*/DUMP_DIR_CHMOD="0755"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_FILE_CHMOD=.*/DUMP_FILE_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^LOG_CHMOD=.*/LOG_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^NAGIOS_LOG=.*/NAGIOS_LOG=0/g' /etc/mysqldump-secure.conf \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||
|
||||
###
|
||||
### PostgrSQL Command line client
|
||||
###
|
||||
# 8.2: (amd64, arm64)
|
||||
# 8.1: (amd64, arm64)
|
||||
# 8.0: (amd64, arm64)
|
||||
# 7.4: (amd64, arm64)
|
||||
# 7.3: (amd64, arm64)
|
||||
# 7.2: (amd64, arm64)
|
||||
# 7.1: (amd64, arm64)
|
||||
# 7.0: (amd64)
|
||||
# 5.6: (amd64)
|
||||
# 5.5: (amd64)
|
||||
# 5.4: (amd64)
|
||||
# 5.3: (amd64)
|
||||
# 5.2: (amd64)
|
||||
pgsql_client:
|
||||
check: |
|
||||
if echo '{{ php_version }}' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
all:
|
||||
type: custom
|
||||
pre: |
|
||||
curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ {{ os_release[php_version].debian }}-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update \
|
||||
command: |
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client \
|
||||
post: rm -rf /var/lib/apt/lists/*
|
||||
7.0:
|
||||
type: custom
|
||||
pre: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb https://apt-archive.postgresql.org/pub/repos/apt/ {{ os_release[php_version].debian }}-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update; \
|
||||
fi \
|
||||
command: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client; \
|
||||
fi \
|
||||
5.6:
|
||||
type: custom
|
||||
pre: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb https://apt-archive.postgresql.org/pub/repos/apt/ {{ os_release[php_version].debian }}-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update; \
|
||||
fi \
|
||||
command: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client; \
|
||||
fi \
|
||||
5.5:
|
||||
type: custom
|
||||
pre: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb https://apt-archive.postgresql.org/pub/repos/apt/ {{ os_release[php_version].debian }}-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update; \
|
||||
fi \
|
||||
command: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client; \
|
||||
fi \
|
||||
5.4:
|
||||
type: custom
|
||||
pre: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb https://apt-archive.postgresql.org/pub/repos/apt/ {{ os_release[php_version].debian }}-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update; \
|
||||
fi \
|
||||
command: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client; \
|
||||
fi \
|
||||
5.3:
|
||||
type: custom
|
||||
pre: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb https://apt-archive.postgresql.org/pub/repos/apt/ {{ os_release[php_version].debian }}-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update; \
|
||||
fi \
|
||||
command: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client; \
|
||||
fi \
|
||||
5.2:
|
||||
type: custom
|
||||
pre: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb https://apt-archive.postgresql.org/pub/repos/apt/ {{ os_release[php_version].debian }}-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update; \
|
||||
fi \
|
||||
command: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client; \
|
||||
fi \
|
||||
239
.ansible/group_vars/all/work-help.yml
Normal file
239
.ansible/group_vars/all/work-help.yml
Normal file
@@ -0,0 +1,239 @@
|
||||
---
|
||||
###################################################################################################
|
||||
# Docker: work (docker stage: help)
|
||||
###################################################################################################
|
||||
|
||||
#
|
||||
# This file holds definition for all devibox/php-fpm:x.y-work images
|
||||
#
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Global variables
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
composer_home: /usr/local/src/composer
|
||||
nvm_home: /opt/nvm
|
||||
node_version: --lts
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Software to install (in defined order)
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
help_software_enabled:
|
||||
- composer
|
||||
- nvm
|
||||
- pip
|
||||
|
||||
|
||||
## -------------------------------------------------------------------------------------------------
|
||||
## Software definition
|
||||
## -------------------------------------------------------------------------------------------------
|
||||
#
|
||||
# all: is generic version of defines
|
||||
# 7.2: is specific version of defines
|
||||
# disabled: [optional] Array of PHP versions for which to disable this module
|
||||
# check: [optional] Include a check command to test if it was installed successfully
|
||||
#
|
||||
# all, 7.2, 7.1, 7.0, 5.6, 5.5, 5.4:
|
||||
# pre: [optional] Run command before 'command:' statement
|
||||
# command: Command to execute
|
||||
# post: [optional] Run command after 'command:' statement
|
||||
#
|
||||
help_software_available:
|
||||
|
||||
###
|
||||
### Composer
|
||||
###
|
||||
composer:
|
||||
disabled: [5.2]
|
||||
check: composer --version 2>/dev/null | grep -Ei '(composer|version)\s*[0-9][.0-9]+'
|
||||
all:
|
||||
type: custom
|
||||
pre: |
|
||||
COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.x" \
|
||||
command: |
|
||||
curl -sS -L --fail "https://getcomposer.org/download/${COMPOSER_1_VERSION}/composer.phar" > /usr/local/bin/composer-1 \
|
||||
&& curl -sS -L --fail "https://getcomposer.org/download/${COMPOSER_2_VERSION}/composer.phar" > /usr/local/bin/composer-2 \
|
||||
&& chmod +x /usr/local/bin/composer-1 \
|
||||
&& chmod +x /usr/local/bin/composer-2 \
|
||||
post: |
|
||||
ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||
run_dep: [unzip] # Required for composer to unzip packages
|
||||
7.1:
|
||||
type: custom
|
||||
pre: |
|
||||
COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.2.x" \
|
||||
7.0:
|
||||
type: custom
|
||||
pre: |
|
||||
COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.2.x" \
|
||||
5.6:
|
||||
type: custom
|
||||
pre: |
|
||||
COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.2.x" \
|
||||
5.5:
|
||||
type: custom
|
||||
pre: |
|
||||
COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.2.x" \
|
||||
5.4:
|
||||
type: custom
|
||||
pre: |
|
||||
COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.2.x" \
|
||||
5.3:
|
||||
type: custom
|
||||
pre: |
|
||||
COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.2.x" \
|
||||
post: |
|
||||
ln -sf /usr/local/bin/composer-1 /usr/local/bin/composer \
|
||||
|
||||
###
|
||||
### nvm
|
||||
###
|
||||
nvm:
|
||||
check: |
|
||||
su -c '. {{ nvm_home }}/nvm.sh; nvm --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
&& su -c '. {{ nvm_home }}/nvm.sh; node --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
&& su -c '. {{ nvm_home }}/nvm.sh; yarn --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
all:
|
||||
type: custom
|
||||
pre: |
|
||||
NODE_VERSION="{{ node_version }}" \
|
||||
command: |
|
||||
NVM_VERSION="$( \
|
||||
curl -sS 'https://github.com/nvm-sh/nvm/releases' \
|
||||
| grep -Eo '/nvm-sh/nvm/releases/tag/v?[.0-9]+"' \
|
||||
| grep -Eo 'v?[.0-9]+' \
|
||||
| sort -V \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& mkdir -p {{ nvm_home }} \
|
||||
&& curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh" \
|
||||
| NVM_DIR="{{ nvm_home }}" bash \
|
||||
\
|
||||
&& chown -R devilbox:devilbox "{{ nvm_home }}" \
|
||||
# Install latest and LTS version and yarn
|
||||
post: |
|
||||
su -c ". {{ nvm_home }}/nvm.sh; nvm install ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". {{ nvm_home }}/nvm.sh; nvm use ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". {{ nvm_home }}/nvm.sh; corepack enable" devilbox \
|
||||
\
|
||||
&& ln -s "{{ nvm_home }}/versions/node/$(su -c '. {{ nvm_home }}/nvm.sh; node --version' devilbox)/bin/corepack" /usr/local/bin/ \
|
||||
&& ln -s "{{ nvm_home }}/versions/node/$(su -c '. {{ nvm_home }}/nvm.sh; node --version' devilbox)/bin/node" /usr/local/bin/ \
|
||||
&& ln -s "{{ nvm_home }}/versions/node/$(su -c '. {{ nvm_home }}/nvm.sh; node --version' devilbox)/bin/npm" /usr/local/bin/ \
|
||||
&& ln -s "{{ nvm_home }}/versions/node/$(su -c '. {{ nvm_home }}/nvm.sh; node --version' devilbox)/bin/npx" /usr/local/bin/ \
|
||||
&& ln -s "{{ nvm_home }}/versions/node/$(su -c '. {{ nvm_home }}/nvm.sh; node --version' devilbox)/bin/yarn" /usr/local/bin/ \
|
||||
\
|
||||
&& chmod 0777 {{ nvm_home }} \
|
||||
&& find {{ nvm_home }} -type f -print0 | xargs -n1 -0 chmod go+w \
|
||||
&& find {{ nvm_home }} -type d -print0 | xargs -n1 -0 chmod 0777 \
|
||||
\
|
||||
&& rm -rf {{ nvm_home }}/.cache \
|
||||
&& rm -rf {{ nvm_home }}/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/share \
|
||||
&& rm -rf {{ nvm_home }}/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/include \
|
||||
7.0:
|
||||
type: custom
|
||||
pre: |
|
||||
NODE_VERSION="17" \
|
||||
5.6:
|
||||
type: custom
|
||||
pre: |
|
||||
NODE_VERSION="17" \
|
||||
5.5:
|
||||
type: custom
|
||||
pre: |
|
||||
NODE_VERSION="17" \
|
||||
5.4:
|
||||
type: custom
|
||||
pre: |
|
||||
NODE_VERSION="17" \
|
||||
5.3:
|
||||
type: custom
|
||||
pre: |
|
||||
NODE_VERSION="17" \
|
||||
5.2:
|
||||
type: custom
|
||||
pre: |
|
||||
NODE_VERSION="17" \
|
||||
|
||||
###
|
||||
### Python pip
|
||||
###
|
||||
pip:
|
||||
check: pip --version
|
||||
all:
|
||||
type: custom
|
||||
command: |
|
||||
curl -sS -L --fail https://bootstrap.pypa.io/get-pip.py | python3 \
|
||||
# Cleanup
|
||||
post: |
|
||||
/bin/ls -1 /usr/local/lib/ | grep ^python | while read -r version; do \
|
||||
cd "/usr/local/lib/${version}/" \
|
||||
&& find . -name '*.pyc' -print0 | xargs -0 -n1 rm -rf \
|
||||
&& find . -name '*.exe' -print0 | xargs -0 -n1 rm -rf \
|
||||
&& find . -name '__pycache__' -print0 | xargs -0 -n1 rm -rf \
|
||||
\
|
||||
&& if [ -d "dist-packages" ]; then \
|
||||
cd "dist-packages" \
|
||||
&& pwd \
|
||||
&& if /bin/ls -1 | grep -v '^pip'; then \
|
||||
/bin/ls -1 | grep -v '^pip' | xargs -n1 rm -rf; \
|
||||
fi \
|
||||
fi \
|
||||
done \
|
||||
run_dep: [python3-distutils]
|
||||
build_dep: [libpython3-dev]
|
||||
7.2:
|
||||
type: custom
|
||||
command: |
|
||||
curl -sS -L --fail https://bootstrap.pypa.io/pip/2.7/get-pip.py | python \
|
||||
run_dep: []
|
||||
build_dep: [libpython-dev]
|
||||
7.1:
|
||||
type: custom
|
||||
command: |
|
||||
curl -sS -L --fail https://bootstrap.pypa.io/pip/2.7/get-pip.py | python \
|
||||
run_dep: []
|
||||
build_dep: [libpython-dev]
|
||||
7.0:
|
||||
type: custom
|
||||
command: |
|
||||
curl -sS -L --fail https://bootstrap.pypa.io/pip/2.7/get-pip.py | python \
|
||||
run_dep: []
|
||||
build_dep: [libpython-dev]
|
||||
5.6:
|
||||
type: custom
|
||||
command: |
|
||||
curl -sS -L --fail https://bootstrap.pypa.io/pip/2.7/get-pip.py | python \
|
||||
run_dep: []
|
||||
build_dep: [libpython-dev]
|
||||
5.5:
|
||||
type: custom
|
||||
command: |
|
||||
curl -sS -L --fail https://bootstrap.pypa.io/pip/2.7/get-pip.py | python \
|
||||
run_dep: []
|
||||
build_dep: [libpython-dev]
|
||||
5.4:
|
||||
type: custom
|
||||
command: |
|
||||
curl -sS -L --fail https://bootstrap.pypa.io/pip/2.7/get-pip.py | python \
|
||||
run_dep: []
|
||||
build_dep: [libpython-dev]
|
||||
5.3:
|
||||
type: custom
|
||||
run_dep: []
|
||||
build_dep: [libpython-dev]
|
||||
command: |
|
||||
curl -sS -L --fail https://bootstrap.pypa.io/pip/2.7/get-pip.py | python \
|
||||
5.2:
|
||||
type: custom
|
||||
command: |
|
||||
curl -sS -L --fail https://bootstrap.pypa.io/pip/2.7/get-pip.py | python \
|
||||
run_dep: []
|
||||
build_dep: [libpython-dev]
|
||||
717
.ansible/group_vars/all/work.yml
Normal file
717
.ansible/group_vars/all/work.yml
Normal file
@@ -0,0 +1,717 @@
|
||||
---
|
||||
|
||||
# DO NOT ALTER THIS FILE - IT IS AUTOGENERATED.
|
||||
|
||||
# The following specifies the order in which tools are being installed.
|
||||
tools_enabled:
|
||||
- angular-cli
|
||||
- asgardcms
|
||||
- eslint
|
||||
- git
|
||||
- jsonlint
|
||||
- mdl
|
||||
- awesome-ci
|
||||
- codeception
|
||||
- deployer
|
||||
- git-flow
|
||||
- grunt-cli
|
||||
- gulp
|
||||
- jq
|
||||
- laravel-installer
|
||||
- laravel-lumen
|
||||
- linkcheck
|
||||
- mdlint
|
||||
- mupdf-tools
|
||||
- phalcon-devtools
|
||||
- php-cs-fixer
|
||||
- phpcbf
|
||||
- phpcs
|
||||
- phpmd
|
||||
- phpunit
|
||||
- pm2
|
||||
- pwncat
|
||||
- ssh
|
||||
- rsync
|
||||
- sass
|
||||
- shellcheck
|
||||
- stylelint
|
||||
- svn
|
||||
- symfony-cli
|
||||
- taskfile
|
||||
- tig
|
||||
- vim
|
||||
- vue-cli
|
||||
- webpack-cli
|
||||
- wkhtmltopdf
|
||||
- wp-cli
|
||||
- yamllint
|
||||
- yq
|
||||
- zsh
|
||||
|
||||
|
||||
# The following specifies how tools are being installed.
|
||||
tools_available:
|
||||
angular-cli:
|
||||
disabled: []
|
||||
check: ng version 2>&1 | grep -iE 'Angular CLI:\s*[0-9][.0-9]+' || (ng version; false)
|
||||
all:
|
||||
type: npm
|
||||
package: "@angular/cli"
|
||||
binary: ng
|
||||
version:
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
pre:
|
||||
post:
|
||||
asgardcms:
|
||||
disabled: [5.2, 5.3, 5.4]
|
||||
check: asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' || (asgardcms --version; false)
|
||||
all:
|
||||
type: composer
|
||||
composer: 2
|
||||
package: asgardcms/asgardcms-installer
|
||||
# https://github.com/AsgardCms/asgardcms-installer/issues/1
|
||||
version: dev-master
|
||||
flags:
|
||||
binary: asgardcms
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
pre:
|
||||
post:
|
||||
eslint:
|
||||
disabled: []
|
||||
check: eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false)
|
||||
all:
|
||||
type: npm
|
||||
package: "eslint"
|
||||
binary: eslint
|
||||
version:
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
pre:
|
||||
post:
|
||||
git:
|
||||
disabled: []
|
||||
check: git --version 2>&1 | grep -E '[0-9][.0-9]+' || (git --version; false)
|
||||
all:
|
||||
type: apt
|
||||
package: git
|
||||
jsonlint:
|
||||
disabled: []
|
||||
check: jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false)
|
||||
all:
|
||||
type: npm
|
||||
package: jsonlint
|
||||
binary: jsonlint
|
||||
version:
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
pre:
|
||||
post:
|
||||
mdl:
|
||||
disabled: []
|
||||
check: mdl --version | grep -E '[.0-9]+' || (mdl --version; false)
|
||||
all:
|
||||
type: rubygem
|
||||
package: mdl
|
||||
# version:
|
||||
build_dep: [ruby-dev]
|
||||
run_dep: [ruby]
|
||||
# pre:
|
||||
# post:
|
||||
7.2:
|
||||
type: rubygem
|
||||
version: 0.11.0
|
||||
pre: |
|
||||
gem install chef-utils -v 16.6.14 \
|
||||
7.1:
|
||||
type: rubygem
|
||||
version: 0.11.0
|
||||
pre: |
|
||||
gem install chef-utils -v 16.6.14 \
|
||||
7.0:
|
||||
type: rubygem
|
||||
version: 0.5.0
|
||||
pre: |
|
||||
gem install mixlib-config -v 2.2.4 \
|
||||
5.6:
|
||||
type: rubygem
|
||||
version: 0.5.0
|
||||
pre: |
|
||||
gem install mixlib-config -v 2.2.4 \
|
||||
5.5:
|
||||
type: rubygem
|
||||
version: 0.5.0
|
||||
pre: |
|
||||
gem install mixlib-config -v 2.2.4 \
|
||||
5.4:
|
||||
type: rubygem
|
||||
version: 0.5.0
|
||||
pre: |
|
||||
gem install mixlib-config -v 2.2.4 \
|
||||
5.3:
|
||||
type: rubygem
|
||||
version: 0.5.0
|
||||
pre: |
|
||||
gem install mixlib-config -v 2.2.4 \
|
||||
5.2:
|
||||
type: rubygem
|
||||
version: 0.5.0
|
||||
pre: |
|
||||
gem install mixlib-config -v 2.2.4 \
|
||||
awesome-ci:
|
||||
disabled: []
|
||||
check: regex-grep --version | grep -E '[0-9][.0-9]+' || (regex-grep --version; false)
|
||||
all:
|
||||
type: custom
|
||||
command: |
|
||||
git clone https://github.com/cytopia/awesome-ci.git /tmp/awesome-ci \
|
||||
&& cd /tmp/awesome-ci \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
&& ./configure --prefix=/usr/local \
|
||||
&& make install \
|
||||
&& cd / \
|
||||
&& rm -rf /tmp/awesome-ci \
|
||||
# moreutils: isutf8
|
||||
run_dep: [dos2unix, file, moreutils]
|
||||
codeception:
|
||||
disabled: [5.2, 5.3]
|
||||
check: codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' || (codecept --version; false)
|
||||
all:
|
||||
type: composer
|
||||
composer: 2
|
||||
package: codeception/codeception
|
||||
# version:
|
||||
flags:
|
||||
binary: codecept
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
# pre:
|
||||
# post:
|
||||
deployer:
|
||||
disabled: [5.2, 5.3]
|
||||
check: dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false)
|
||||
all:
|
||||
type: custom
|
||||
command: curl -sS -k -L --fail https://deployer.org/deployer.phar -L -o /usr/local/bin/dep
|
||||
post: chmod +x /usr/local/bin/dep
|
||||
7.1:
|
||||
type: custom
|
||||
command: curl -sS -k -L --fail https://deployer.org/releases/v6.7.0/deployer.phar -L -o /usr/local/bin/dep
|
||||
7.0:
|
||||
type: custom
|
||||
command: curl -sS -k -L --fail https://deployer.org/releases/v6.7.0/deployer.phar -L -o /usr/local/bin/dep
|
||||
5.6:
|
||||
type: custom
|
||||
command: curl -sS -k -L --fail https://deployer.org/releases/v4.3.4/deployer.phar -L -o /usr/local/bin/dep
|
||||
5.5:
|
||||
type: custom
|
||||
command: curl -sS -k -L --fail https://deployer.org/releases/v4.3.4/deployer.phar -L -o /usr/local/bin/dep
|
||||
5.4:
|
||||
type: custom
|
||||
command: curl -sS -k -L --fail https://deployer.org/releases/v3.3.0/deployer.phar -L -o /usr/local/bin/dep
|
||||
git-flow:
|
||||
disabled: []
|
||||
check: git-flow version 2>&1 | grep -E '[0-9][.0-9]+' || (git-flow version; false)
|
||||
all:
|
||||
type: custom
|
||||
command: |
|
||||
git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||
&& cd /tmp/gitflow \
|
||||
&& make install \
|
||||
&& cd / && rm -rf /tmp/gitflow \
|
||||
grunt-cli:
|
||||
disabled: []
|
||||
check: grunt --version | grep -E '[0-9][.0-9]+' || (grunt --version; false)
|
||||
all:
|
||||
type: npm
|
||||
package: "grunt-cli"
|
||||
binary: grunt
|
||||
version:
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
pre:
|
||||
post:
|
||||
gulp:
|
||||
disabled: []
|
||||
check: gulp --version | grep -E '[0-9][.0-9]+' || (gulp --version; false)
|
||||
all:
|
||||
type: npm
|
||||
package: gulp
|
||||
binary: gulp
|
||||
version:
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
pre:
|
||||
post:
|
||||
jq:
|
||||
disabled: []
|
||||
check: jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false)
|
||||
all:
|
||||
type: apt
|
||||
package: jq
|
||||
laravel-installer:
|
||||
disabled: [5.2, 5.3]
|
||||
check: laravel --version | grep ^Laravel | grep -E '[0-9]\.[0-9]+' || (laravel --version; false)
|
||||
all:
|
||||
type: composer
|
||||
composer: 2
|
||||
package: laravel/installer
|
||||
# version:
|
||||
flags:
|
||||
binary: bin/laravel
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
7.2:
|
||||
type: composer
|
||||
version: 4.0.0
|
||||
7.1:
|
||||
type: composer
|
||||
binary: laravel
|
||||
version: 2.3.0
|
||||
7.0:
|
||||
type: composer
|
||||
binary: laravel
|
||||
version: 2.2.0
|
||||
5.6:
|
||||
type: composer
|
||||
binary: laravel
|
||||
version: 2.2.0
|
||||
5.5:
|
||||
type: composer
|
||||
binary: laravel
|
||||
version: 2.2.0
|
||||
5.4:
|
||||
type: composer
|
||||
binary: laravel
|
||||
version: 1.3.7
|
||||
laravel-lumen:
|
||||
disabled: [5.2, 5.3, 5.4]
|
||||
check: lumen --version 2>/dev/null | grep ^Lumen | grep -E '[0-9]\.[0-9]+' || (lumen --version; false)
|
||||
all:
|
||||
type: composer
|
||||
composer: 2
|
||||
package: laravel/lumen-installer
|
||||
# version:
|
||||
flags:
|
||||
binary: lumen
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
# pre:
|
||||
# post:
|
||||
linkcheck:
|
||||
disabled: []
|
||||
check: linkcheck --version | grep -E 'v[0-9][.0-9]+' || (linkcheck --version; false)
|
||||
all:
|
||||
type: custom
|
||||
command: curl -sS -L --fail -o /usr/local/bin/linkcheck https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck
|
||||
post: chmod +x /usr/local/bin/linkcheck
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
mdlint:
|
||||
disabled: []
|
||||
check: mdlint --version | grep -E '[0-9][.0-9]+' || (mdlint --version; false)
|
||||
all:
|
||||
type: npm
|
||||
package: mdlint
|
||||
binary: mdlint
|
||||
version:
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
pre:
|
||||
post:
|
||||
mupdf-tools:
|
||||
disabled: []
|
||||
check: |
|
||||
PHP_VERSION="$(php -v | grep ^PHP | awk '{print $2}' | grep -Eo '[0-9]\.[0-9]')" \
|
||||
&& if echo "${PHP_VERSION}" | grep -E '5\.2|5\.3|5\.4|5\.5'; then \
|
||||
mutool 2>&1 | grep ^usage; \
|
||||
else \
|
||||
echo test > test.txt \
|
||||
&& mutool create -o test.pdf test.txt \
|
||||
&& file test.pdf | grep 'PDF document' \
|
||||
&& rm test.txt \
|
||||
&& rm test.pdf; \
|
||||
fi \
|
||||
all:
|
||||
type: apt
|
||||
package: mupdf-tools
|
||||
phalcon-devtools:
|
||||
disabled: [5.2, 5.3, 5.4, 8.2]
|
||||
check: |
|
||||
if find /usr/local/lib/php/extensions/ -name phalcon.so | grep phalcon; then \
|
||||
echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if find /usr/local/lib/php/extensions/ -name psr.so | grep psr; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
&& phalcon commands | grep -E '[0-9][.0-9]+' || (phalcon commands; false) \
|
||||
\
|
||||
\
|
||||
&& if [ -f /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini ]; then \
|
||||
rm /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if [ -f /usr/local/etc/php/conf.d/docker-php-ext-psr.ini ]; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi \
|
||||
all:
|
||||
type: composer
|
||||
composer: 2
|
||||
package: phalcon/devtools
|
||||
binary: phalcon
|
||||
# Enable phalcon.so (and its requirement psr prior installing)
|
||||
pre: |
|
||||
if find /usr/local/lib/php/extensions/ -name phalcon.so | grep phalcon; then \
|
||||
echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if find /usr/local/lib/php/extensions/ -name psr.so | grep psr; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi \
|
||||
# Disable phalcon.so (and its requirement psr after installing)
|
||||
post: |
|
||||
if [ -f /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini ]; then \
|
||||
rm /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if [ -f /usr/local/etc/php/conf.d/docker-php-ext-psr.ini ]; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi \
|
||||
7.1:
|
||||
type: composer
|
||||
version: 3.4.11
|
||||
7.0:
|
||||
type: composer
|
||||
version: 3.4.11
|
||||
5.6:
|
||||
type: composer
|
||||
version: 3.4.11
|
||||
5.5:
|
||||
type: composer
|
||||
version: 3.4.11
|
||||
php-cs-fixer:
|
||||
disabled: [5.2, 8.2]
|
||||
check: php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' || (php-cs-fixer --version; false)
|
||||
all:
|
||||
type: custom
|
||||
command: curl -sS -k -L --fail -L "${PHP_CS_FIXER_URL}" -o /usr/local/bin/php-cs-fixer
|
||||
pre: PHP_CS_FIXER_URL="https://cs.symfony.com/download/php-cs-fixer-v3.phar"
|
||||
post: chmod +x /usr/local/bin/php-cs-fixer
|
||||
7.3:
|
||||
type: custom
|
||||
pre: PHP_CS_FIXER_URL="https://cs.symfony.com/download/php-cs-fixer-v2.phar"
|
||||
7.2:
|
||||
type: custom
|
||||
pre: PHP_CS_FIXER_URL="https://cs.symfony.com/download/php-cs-fixer-v2.phar"
|
||||
7.1:
|
||||
type: custom
|
||||
pre: PHP_CS_FIXER_URL="https://cs.symfony.com/download/php-cs-fixer-v2.phar"
|
||||
7.0:
|
||||
type: custom
|
||||
pre: PHP_CS_FIXER_URL="https://cs.symfony.com/download/php-cs-fixer-v2.phar"
|
||||
5.6:
|
||||
type: custom
|
||||
pre: PHP_CS_FIXER_URL="https://cs.symfony.com/download/php-cs-fixer-v2.phar"
|
||||
5.5:
|
||||
type: custom
|
||||
pre: PHP_CS_FIXER_URL="https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v2.2.19/php-cs-fixer.phar"
|
||||
5.4:
|
||||
type: custom
|
||||
pre: PHP_CS_FIXER_URL="https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v2.2.19/php-cs-fixer.phar"
|
||||
5.3:
|
||||
type: custom
|
||||
pre: PHP_CS_FIXER_URL="https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v2.2.19/php-cs-fixer.phar"
|
||||
phpcbf:
|
||||
disabled: []
|
||||
check: phpcbf --version | grep -E 'version [0-9][.0-9]+' || (phpcbf --version; false)
|
||||
all:
|
||||
type: custom
|
||||
command: curl -sS -k -L --fail -L "${PHPCBF_URL}" -o /usr/local/bin/phpcbf
|
||||
pre: PHPCBF_URL="https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar"
|
||||
post: chmod +x /usr/local/bin/phpcbf
|
||||
5.3:
|
||||
type: custom
|
||||
pre: PHPCBF_URL="https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcbf.phar"
|
||||
5.2:
|
||||
type: custom
|
||||
pre: PHPCBF_URL="https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcbf.phar"
|
||||
phpcs:
|
||||
disabled: []
|
||||
check: phpcs --version | grep -E 'version [0-9][.0-9]+' || (phpcs --version; false)
|
||||
all:
|
||||
type: custom
|
||||
command: curl -sS -k -L --fail -L "${PHPCS_URL}" -o /usr/local/bin/phpcs
|
||||
pre: PHPCS_URL="https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar"
|
||||
post: chmod +x /usr/local/bin/phpcs
|
||||
5.3:
|
||||
type: custom
|
||||
pre: PHPCS_URL="https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcs.phar"
|
||||
5.2:
|
||||
type: custom
|
||||
pre: PHPCS_URL="https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcs.phar"
|
||||
phpmd:
|
||||
disabled: [5.2]
|
||||
check: phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' || (phpmd --version; false)
|
||||
all:
|
||||
type: custom
|
||||
command: curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar -L -o /usr/local/bin/phpmd
|
||||
post: chmod +x /usr/local/bin/phpmd
|
||||
phpunit:
|
||||
disabled: [5.2]
|
||||
check: phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' || (phpunit --version; false)
|
||||
all:
|
||||
type: custom
|
||||
command: |
|
||||
if [ -n "${PHP_UNIT_VERSION}" ]; then \
|
||||
PHP_UNIT_URL="https://phar.phpunit.de/phpunit-${PHP_UNIT_VERSION}.phar"; \
|
||||
else \
|
||||
PHP_UNIT_URL="https://phar.phpunit.de/phpunit.phar"; \
|
||||
fi \
|
||||
&& curl -sS -L --fail "${PHP_UNIT_URL}" -L -o /usr/local/bin/phpunit \
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
pre: PHP_UNIT_VERSION=""
|
||||
post: chmod +x /usr/local/bin/phpunit
|
||||
7.2:
|
||||
type: custom
|
||||
pre: PHP_UNIT_VERSION="8"
|
||||
7.1:
|
||||
type: custom
|
||||
pre: PHP_UNIT_VERSION="7"
|
||||
7.0:
|
||||
type: custom
|
||||
pre: PHP_UNIT_VERSION="6"
|
||||
5.6:
|
||||
type: custom
|
||||
pre: PHP_UNIT_VERSION="5"
|
||||
5.5:
|
||||
type: custom
|
||||
pre: PHP_UNIT_VERSION="4"
|
||||
5.4:
|
||||
type: custom
|
||||
pre: PHP_UNIT_VERSION="4"
|
||||
5.3:
|
||||
type: custom
|
||||
pre: PHP_UNIT_VERSION="4"
|
||||
pm2:
|
||||
disabled: []
|
||||
check: pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' || (pm2 --no-daemon --version; false)
|
||||
all:
|
||||
type: npm
|
||||
package: pm2
|
||||
binary: pm2
|
||||
version:
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
pre:
|
||||
post:
|
||||
pwncat:
|
||||
disabled: []
|
||||
check: pwncat --version 2>&1 | grep -E 'Version [0-9][.0-9]+' || (pwncat --version; false)
|
||||
all:
|
||||
type: pip
|
||||
version:
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
pre:
|
||||
post: |
|
||||
ln -s pwncat /usr/local/bin/netcat \
|
||||
ssh:
|
||||
disabled: []
|
||||
check: ssh -V 2>&1 | grep ^OpenSSH || (ssh -V; false)
|
||||
all:
|
||||
type: apt
|
||||
package: openssh-client
|
||||
rsync:
|
||||
disabled: []
|
||||
check: rsync --version | grep version | grep -E '[0-9]\.[0-9]+' || (rsync --version; false)
|
||||
all:
|
||||
type: apt
|
||||
package: rsync
|
||||
sass:
|
||||
disabled: []
|
||||
check: sass --version | grep -E '[0-9][.0-9]+' || (sass --version; false)
|
||||
all:
|
||||
type: npm
|
||||
package: sass
|
||||
binary: sass
|
||||
version:
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
pre:
|
||||
post:
|
||||
shellcheck:
|
||||
disabled: []
|
||||
check: shellcheck --version | grep -E '[0-9][.0-9]+' || (shellcheck --version; false)
|
||||
all:
|
||||
type: apt
|
||||
package: shellcheck
|
||||
stylelint:
|
||||
disabled: []
|
||||
check: stylelint --version | grep -E '[0-9][.0-9]+' || (stylelint --version; false)
|
||||
all:
|
||||
type: npm
|
||||
package: stylelint
|
||||
binary: stylelint
|
||||
version:
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
pre:
|
||||
post:
|
||||
svn:
|
||||
disabled: []
|
||||
check: svn --version | grep version | grep -E '[0-9]+\.[0-9]+' || (svn --version; false)
|
||||
all:
|
||||
type: apt
|
||||
package: subversion
|
||||
symfony-cli:
|
||||
disabled: []
|
||||
check: symfony --no-ansi -V | grep -E 'version [0-9][.0-9]+' || (symfony --no-ansi -V; false)
|
||||
all:
|
||||
type: custom
|
||||
command: curl -sS https://get.symfony.com/cli/installer | bash -s -- --install-dir /usr/local/bin
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
taskfile:
|
||||
disabled: []
|
||||
check: task --version | grep -E '[0-9][.0-9]+' || (task --version; false)
|
||||
all:
|
||||
type: custom
|
||||
command: sh -c "$(curl -sS -K --fail -k https://taskfile.dev/install.sh)" -- -d -b /usr/local/bin/
|
||||
tig:
|
||||
disabled: []
|
||||
check: tig --version 2>&1 | grep -E '[0-9][.0-9]+' || (tig --version; false)
|
||||
all:
|
||||
type: apt
|
||||
package: tig
|
||||
vim:
|
||||
disabled: []
|
||||
check: vim --version | grep ^VIM | grep -E '[0-9]\.[0-9]+' || (vim --version; false)
|
||||
all:
|
||||
type: apt
|
||||
package: vim
|
||||
vue-cli:
|
||||
disabled: []
|
||||
check: vue --version | grep -E '[0-9][.0-9]+' || (vue --version; false)
|
||||
all:
|
||||
type: npm
|
||||
package: "@vue/cli"
|
||||
binary: vue
|
||||
version:
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
pre:
|
||||
post:
|
||||
webpack-cli:
|
||||
disabled: []
|
||||
check: webpack-cli --version | grep -E '[0-9][.0-9]+' || (webpack-cli --version; false)
|
||||
all:
|
||||
type: npm
|
||||
package: webpack-cli
|
||||
binary: webpack-cli
|
||||
version:
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
pre:
|
||||
post:
|
||||
wkhtmltopdf:
|
||||
disabled: [5.2, 5.3, 5.4, 5.5]
|
||||
check: wkhtmltopdf --version | grep ^wkhtmltopdf | grep -E '[0-9]\.[0-9]+' | grep patched || (wkhtmltopdf --version; false)
|
||||
all:
|
||||
type: custom
|
||||
pre: OS_RELEASE="bullseye"
|
||||
command: |
|
||||
DEB_HOST_ARCH="$( dpkg-architecture --query DEB_HOST_ARCH )" \
|
||||
&& WK_URL="$( \
|
||||
curl -sSL -L --fail https://api.github.com/repos/wkhtmltopdf/packaging/releases \
|
||||
| awk -F\" "/wkhtmltopdf.*.${OS_RELEASE}_${DEB_HOST_ARCH}\.deb/{print \$(NF-1)}" \
|
||||
| head -1 \
|
||||
)" \
|
||||
&& echo "URL: ${WK_URL}" \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb "${WK_URL}" \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb \
|
||||
run_dep:
|
||||
- fontconfig
|
||||
- libfontenc1
|
||||
- libxfont2
|
||||
- libxrender1
|
||||
- xfonts-75dpi
|
||||
- xfonts-base
|
||||
- xfonts-encodings
|
||||
- xfonts-utils
|
||||
7.2:
|
||||
type: custom
|
||||
pre: OS_RELEASE="buster"
|
||||
7.1:
|
||||
type: custom
|
||||
pre: OS_RELEASE="buster"
|
||||
7.0:
|
||||
type: custom
|
||||
pre: OS_RELEASE="stretch"
|
||||
run_dep:
|
||||
- fontconfig
|
||||
- libfontenc1
|
||||
- libxfont1
|
||||
- libxrender1
|
||||
- xfonts-75dpi
|
||||
- xfonts-base
|
||||
- xfonts-encodings
|
||||
- xfonts-utils
|
||||
5.6:
|
||||
type: custom
|
||||
pre: OS_RELEASE="stretch"
|
||||
run_dep:
|
||||
- fontconfig
|
||||
- libfontenc1
|
||||
- libxfont1
|
||||
- libxrender1
|
||||
- xfonts-75dpi
|
||||
- xfonts-base
|
||||
- xfonts-encodings
|
||||
- xfonts-utils
|
||||
wp-cli:
|
||||
disabled: [5.2]
|
||||
check: wp --allow-root --version | grep -E '[0-9][.0-9]+' || (wp --allow-root --version; false)
|
||||
all:
|
||||
type: custom
|
||||
command: curl -sS -L --fail "${WPCLI_URL}" -L -o /usr/local/bin/wp
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
pre: WPCLI_URL="https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar"
|
||||
post: chmod +x /usr/local/bin/wp
|
||||
5.5:
|
||||
type: custom
|
||||
pre: WPCLI_URL="https://github.com/wp-cli/wp-cli/releases/download/v2.4.0/wp-cli-2.4.0.phar"
|
||||
5.4:
|
||||
type: custom
|
||||
pre: WPCLI_URL="https://github.com/wp-cli/wp-cli/releases/download/v2.4.0/wp-cli-2.4.0.phar"
|
||||
5.3:
|
||||
type: custom
|
||||
pre: WPCLI_URL="https://github.com/wp-cli/wp-cli/releases/download/v1.5.1/wp-cli-1.5.1.phar"
|
||||
yamllint:
|
||||
disabled: []
|
||||
check: yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' || (yamllint --version; false)
|
||||
all:
|
||||
type: pip
|
||||
version:
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
# pre:
|
||||
# post:
|
||||
yq:
|
||||
disabled: []
|
||||
check: yq --version 2>&1 | grep -E '[0-9][.0-9]+' || (yq --version; false)
|
||||
all:
|
||||
type: pip
|
||||
version:
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
pre:
|
||||
post:
|
||||
zsh:
|
||||
disabled: []
|
||||
check: zsh --version 2>&1 | grep -E '[0-9][.0-9]+' || (zsh --version; false)
|
||||
all:
|
||||
type: apt
|
||||
package: zsh
|
||||
@@ -11,3 +11,4 @@ php-7.3 php_version=7.3 ansible_connection=local
|
||||
php-7.4 php_version=7.4 ansible_connection=local
|
||||
php-8.0 php_version=8.0 ansible_connection=local
|
||||
php-8.1 php_version=8.1 ansible_connection=local
|
||||
php-8.2 php_version=8.2 ansible_connection=local
|
||||
283
.ansible/jinja2/macros-work.j2
Normal file
283
.ansible/jinja2/macros-work.j2
Normal file
@@ -0,0 +1,283 @@
|
||||
{##################################################################################################
|
||||
# IMPORTS
|
||||
##################################################################################################}
|
||||
{% import './jinja2/macros.j2' as fn %}
|
||||
|
||||
|
||||
|
||||
{##################################################################################################
|
||||
# GENERIC MACROS
|
||||
##################################################################################################}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Check if not disabled
|
||||
###
|
||||
### Returns 'true' string if not disabled, otherwise returns nothing
|
||||
###
|
||||
-#}
|
||||
{%- macro is_not_disabled(php, name, items) -%}
|
||||
{%- if ('disabled' not in items[name]) or (php not in items[name]['disabled']) -%}
|
||||
{{- 'true' -}}
|
||||
{%- endif -%}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'type'
|
||||
###
|
||||
### Returns type string
|
||||
###
|
||||
-#}
|
||||
{%- macro get_type(php, name, items) -%}
|
||||
{{- fn.get_val(php, name, items, 'type', '<WRONG TYPE>') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'pre'
|
||||
###
|
||||
### Returns pre string
|
||||
###
|
||||
-#}
|
||||
{%- macro get_pre(php, name, items) -%}
|
||||
{{- fn.get_val(php, name, items, 'pre', '') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'post'
|
||||
###
|
||||
### Returns post string
|
||||
###
|
||||
-#}
|
||||
{%- macro get_post(php, name, items) -%}
|
||||
{{- fn.get_val(php, name, items, 'post', '') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'build_dep'
|
||||
###
|
||||
### Returns json string (jsonified list) of build_dep (use '| to_json' to eval)
|
||||
###
|
||||
-#}
|
||||
{%- macro get_build_dep(php, name, items) -%}
|
||||
{{- fn.get_list_if_enabled(php, name, items, 'build_dep') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'run_dep'
|
||||
###
|
||||
### Returns json string (jsonified list) of run_dep (use '| to_json' to eval)
|
||||
###
|
||||
-#}
|
||||
{%- macro get_run_dep(php, name, items) -%}
|
||||
{{- fn.get_list_if_enabled(php, name, items, 'run_dep') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
|
||||
|
||||
{##################################################################################################
|
||||
# TOOLS SPECIFIC MACROS
|
||||
##################################################################################################}
|
||||
|
||||
{# --------------------------------------------- REPO ----------------------------------------- -#}
|
||||
{#-
|
||||
###
|
||||
### Get 'deb'
|
||||
### type: repo
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_repo_get_deb(php, name, items) -%}
|
||||
{{- fn.get_val_by_type(php, name, items, 'deb', 'repo', '') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'key'
|
||||
### type: repo
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_repo_get_key(php, name, items) -%}
|
||||
{{- fn.get_val_by_type(php, name, items, 'key', 'repo', '') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
|
||||
{# --------------------------------------------- CUSTOM --------------------------------------- -#}
|
||||
{#-
|
||||
###
|
||||
### Get 'command'
|
||||
### type: custom
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_custom_get_command(php, name, items) -%}
|
||||
{{- fn.get_val_by_type(php, name, items, 'command', 'custom', '') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
|
||||
{# --------------------------------------------- NPM ------------------------------------------ -#}
|
||||
{#-
|
||||
###
|
||||
### Get 'package'
|
||||
### type: npm
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_npm_get_package(php, name, items) -%}
|
||||
{{- fn.get_val_by_type(php, name, items, 'package', 'npm', name) -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'version'
|
||||
### type: npm
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_npm_get_version(php, name, items) -%}
|
||||
{%- set version = fn.get_val_by_type(php, name, items, 'version', 'npm', '') -%}
|
||||
{%- if version | length -%}
|
||||
{{- '@' ~ version -}}
|
||||
{%- else -%}
|
||||
{{- '' -}}
|
||||
{%- endif -%}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'binary'
|
||||
### type: npm
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_npm_get_binary(php, name, items) -%}
|
||||
{{- fn.get_val_by_type(php, name, items, 'binary', 'npm', '') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
|
||||
{# --------------------------------------------- COMPOSER ------------------------------------- -#}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'composer'
|
||||
### type: composer
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_composer_get_composer(php, name, items) -%}
|
||||
{{- fn.get_val_by_type(php, name, items, 'composer', 'composer', '') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'package'
|
||||
### type: composer
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_composer_get_package(php, name, items) -%}
|
||||
{{- fn.get_val_by_type(php, name, items, 'package', 'composer', '') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'version'
|
||||
### type: composer
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_composer_get_version(php, name, items) -%}
|
||||
{%- set version = fn.get_val_by_type(php, name, items, 'version', 'composer', '') -%}
|
||||
{%- if version | length -%}
|
||||
{{- ':' ~ version -}}
|
||||
{%- else -%}
|
||||
{{- '' -}}
|
||||
{%- endif -%}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'flags'
|
||||
### type: composer
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_composer_get_flags(php, name, items) -%}
|
||||
{{- fn.get_val_by_type(php, name, items, 'flags', 'composer', '') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'binary'
|
||||
### type: composer
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_composer_get_binary(php, name, items) -%}
|
||||
{{- fn.get_val_by_type(php, name, items, 'binary', 'composer', '') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
|
||||
{# --------------------------------------------- RUBYGEM -------------------------------------- -#}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'package'
|
||||
### type: rubygem
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_rubygem_get_package(php, name, items) -%}
|
||||
{{- fn.get_val_by_type(php, name, items, 'package', 'rubygem', '') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'version'
|
||||
### type: rubygem
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_rubygem_get_version(php, name, items) -%}
|
||||
{%- set version = fn.get_val_by_type(php, name, items, 'version', 'rubygem', '') -%}
|
||||
{%- if version | length -%}
|
||||
{{- ' -v ' ~ version -}}
|
||||
{%- else -%}
|
||||
{{- '' -}}
|
||||
{%- endif -%}
|
||||
{%- endmacro -%}
|
||||
|
||||
|
||||
{# --------------------------------------------- PIP ------------------------------------------ -#}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'package'
|
||||
### type: pip
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_pip_get_package(php, name, items) -%}
|
||||
{{- fn.get_val_by_type(php, name, items, 'package', 'pip', name) -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'version'
|
||||
### type: pip
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_pip_get_version(php, name, items) -%}
|
||||
{%- set version = fn.get_val_by_type(php, name, items, 'version', 'pip', '') -%}
|
||||
{%- if version | length -%}
|
||||
{{- '==' ~ version -}}
|
||||
{%- else -%}
|
||||
{{- '' -}}
|
||||
{%- endif -%}
|
||||
{%- endmacro -%}
|
||||
|
||||
|
||||
{# --------------------------------------------- APT ------------------------------------------ -#}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'package'
|
||||
### type: apt
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_apt_get_package(php, name, items) -%}
|
||||
{%- if is_not_disabled(php, name, items) -%}
|
||||
{{- fn.get_val_by_type(php, name, items, 'package', 'apt', '') -}}
|
||||
{%- endif -%}
|
||||
{%- endmacro -%}
|
||||
90
.ansible/jinja2/macros.j2
Normal file
90
.ansible/jinja2/macros.j2
Normal file
@@ -0,0 +1,90 @@
|
||||
{##################################################################################################
|
||||
# HELPER MACROS
|
||||
##################################################################################################}
|
||||
|
||||
{#
|
||||
### Get generic string value of key if type value matches.
|
||||
###
|
||||
### php: The PHP Version
|
||||
### name: The item name
|
||||
### items: The items_available list
|
||||
### key: The key to retrieve the value for
|
||||
### type: The type key must match this type string
|
||||
### default: Default value to return if none was found
|
||||
#}
|
||||
{%- macro get_val_by_type(php, name, items, key, type, default='' ) -%}
|
||||
{#- Default return value -#}
|
||||
{%- set result = default -%}
|
||||
|
||||
{#- PHP Version specific -#}
|
||||
{%- if php in items[name] and items[name][php]['type'] == type -%}
|
||||
{%- if key in items[name][php] and items[name][php][key] -%}
|
||||
{%- set result = items[name][php][key] -%}
|
||||
{%- elif key in items[name]['all'] and items[name]['all'][key] -%}
|
||||
{%- set result = items[name]['all'][key] -%}
|
||||
{%- endif -%}
|
||||
{#- Defined in 'all' -#}
|
||||
{%- elif 'all' in items[name] and items[name]['all']['type'] == type -%}
|
||||
{%- if key in items[name]['all'] and items[name]['all'][key] -%}
|
||||
{%- set result = items[name]['all'][key] -%}
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
|
||||
{{- result -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
### Get generic string value of key.
|
||||
###
|
||||
### php: The PHP Version
|
||||
### name: The item name
|
||||
### items: The items_available list
|
||||
### key: The key to retrieve the value for
|
||||
### default: Default value to return if none was found
|
||||
-#}
|
||||
{%- macro get_val(php, name, items, key, default='') -%}
|
||||
{%- if php in items[name] and key in items[name][php] and items[name][php][key] -%}
|
||||
{{- items[name][php][key] -}}
|
||||
{%- elif 'all' in items[name] and key in items[name]['all'] and items[name]['all'][key] -%}
|
||||
{{- items[name]['all'][key] -}}
|
||||
{%- else -%}
|
||||
{{- default -}}
|
||||
{%- endif -%}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
### Get generic list value (space separated) of not disabled PHP versions.
|
||||
###
|
||||
### Returns jsonified string of a list.
|
||||
###
|
||||
### Usage:
|
||||
### {%- set list = [] -%}
|
||||
### {%- for val in get_enabled_list(php_version, item, items_available) | from_json -%}
|
||||
### {%- if val -%}
|
||||
### {{- list.append(val) -}}
|
||||
### {%- endif -%}
|
||||
### {%- endfor -%}
|
||||
###
|
||||
### php: The PHP Version
|
||||
### name: The item name
|
||||
### items: The items_available list
|
||||
### key: The key to retrieve the value for
|
||||
-#}
|
||||
{%- macro get_list_if_enabled(php, name, items, key) -%}
|
||||
{%- set list = [] %}
|
||||
{# Not disabled #}
|
||||
{%- if ('disabled' not in items[name]) or (php not in items[name]['disabled']) -%}
|
||||
{#- Version specific build dependency available? -#}
|
||||
{%- if php in items[name] and key in items[name][php] -%}
|
||||
{%- for val in items[name][php][key] -%}
|
||||
{{- list.append(val) -}}
|
||||
{%- endfor -%}
|
||||
{#- Generic build dependency available? -#}
|
||||
{%- elif 'all' in items[name] and key in items[name]['all'] -%}
|
||||
{%- for val in items[name]['all'][key] -%}
|
||||
{{- list.append(val) -}}
|
||||
{%- endfor -%}
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{{- list | to_json -}}
|
||||
{%- endmacro -%}
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
|
||||
- name: generate Dockerfiles
|
||||
template:
|
||||
ansible.builtin.template:
|
||||
src: "{{ item.src }}"
|
||||
dest: "{{ item.dst }}"
|
||||
force: True
|
||||
@@ -10,7 +10,7 @@
|
||||
- "{{ template_dockerfiles }}"
|
||||
|
||||
- name: generate php configuration files
|
||||
template:
|
||||
ansible.builtin.template:
|
||||
src: "{{ item.src }}"
|
||||
dest: "{{ item.dst }}"
|
||||
force: True
|
||||
1
.github/FUNDING.yml
vendored
1
.github/FUNDING.yml
vendored
@@ -1,2 +1,3 @@
|
||||
---
|
||||
github: [cytopia]
|
||||
patreon: devilbox
|
||||
|
||||
365
.github/workflows/action-schedule_master.yml
vendored
Normal file
365
.github/workflows/action-schedule_master.yml
vendored
Normal file
@@ -0,0 +1,365 @@
|
||||
---
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Job Name
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
name: nightly
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# When to run
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
on:
|
||||
# Nightly: At 00:00 on Monday, Wednesday, and Friday
|
||||
schedule:
|
||||
- cron: '0 18 * * 1,3,5'
|
||||
# Dispatch: allows for manual trigger via GH UI
|
||||
workflow_dispatch:
|
||||
|
||||
|
||||
jobs:
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (1/9) Determine parameter settings
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
params:
|
||||
uses: ./.github/workflows/params-nightly_master.yml
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (2/9) Configure Build and Deploy Matrices
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
configure:
|
||||
needs: [params]
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-configure.yml@master
|
||||
with:
|
||||
enabled: true
|
||||
can_deploy: true
|
||||
versions: ${{ needs.params.outputs.versions }}
|
||||
refs: ${{ needs.params.outputs.refs }}
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (3/9) Build & Test base
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-base:
|
||||
needs:
|
||||
- configure
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
run_tests: false
|
||||
upload_artifact: true
|
||||
pull_base_image: true
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: base
|
||||
stage_prev: ''
|
||||
|
||||
test-base:
|
||||
needs:
|
||||
- configure
|
||||
- build-base
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: base
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (4/9) Build & Test mods
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-mods:
|
||||
needs:
|
||||
- configure
|
||||
- build-base
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
run_tests: false
|
||||
upload_artifact: true
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: mods
|
||||
stage_prev: base
|
||||
|
||||
test-mods:
|
||||
needs:
|
||||
- configure
|
||||
- build-mods
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: mods
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (5/9) Build & Test prod
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-prod:
|
||||
needs:
|
||||
- configure
|
||||
- build-mods
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
run_tests: false
|
||||
upload_artifact: true
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: prod
|
||||
stage_prev: mods
|
||||
|
||||
test-prod:
|
||||
needs:
|
||||
- configure
|
||||
- build-prod
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: prod
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (6/9) Build & Test slim
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-slim:
|
||||
needs:
|
||||
- configure
|
||||
- build-prod
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
run_tests: false
|
||||
upload_artifact: true
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: slim
|
||||
stage_prev: prod
|
||||
|
||||
test-slim:
|
||||
needs:
|
||||
- configure
|
||||
- build-slim
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: slim
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (7/9) Build & Test work
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-work:
|
||||
needs:
|
||||
- configure
|
||||
- build-slim
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
run_tests: false
|
||||
upload_artifact: true
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: work
|
||||
stage_prev: slim
|
||||
|
||||
test-work:
|
||||
needs:
|
||||
- configure
|
||||
- build-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: work
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (8/9) Push images
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
push-base:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-mods
|
||||
- test-prod
|
||||
- test-slim
|
||||
- test-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: base
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
push-mods:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-mods
|
||||
- test-prod
|
||||
- test-slim
|
||||
- test-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: mods
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
push-prod:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-mods
|
||||
- test-prod
|
||||
- test-slim
|
||||
- test-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: prod
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
push-slim:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-mods
|
||||
- test-prod
|
||||
- test-slim
|
||||
- test-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: slim
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
push-work:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-mods
|
||||
- test-prod
|
||||
- test-slim
|
||||
- test-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: work
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (9/9) Push Manifests
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
manifest-base:
|
||||
needs:
|
||||
- configure
|
||||
- push-base
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||
versions: ${{ needs.configure.outputs.versions }}
|
||||
stage: base
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
manifest-mods:
|
||||
needs:
|
||||
- configure
|
||||
- push-mods
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||
versions: ${{ needs.configure.outputs.versions }}
|
||||
stage: mods
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
manifest-prod:
|
||||
needs:
|
||||
- configure
|
||||
- push-prod
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||
versions: ${{ needs.configure.outputs.versions }}
|
||||
stage: prod
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
manifest-slim:
|
||||
needs:
|
||||
- configure
|
||||
- push-slim
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||
versions: ${{ needs.configure.outputs.versions }}
|
||||
stage: slim
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
manifest-work:
|
||||
needs:
|
||||
- configure
|
||||
- push-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||
versions: ${{ needs.configure.outputs.versions }}
|
||||
stage: work
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
365
.github/workflows/action-schedule_tags.yml
vendored
Normal file
365
.github/workflows/action-schedule_tags.yml
vendored
Normal file
@@ -0,0 +1,365 @@
|
||||
---
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Job Name
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
name: nightly
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# When to run
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
on:
|
||||
# Nightly: At 18:00 on Sunday, Tuesday, and Thursday
|
||||
schedule:
|
||||
- cron: '0 18 * * 0,2,4'
|
||||
# Dispatch: allows for manual trigger via GH UI
|
||||
workflow_dispatch:
|
||||
|
||||
|
||||
jobs:
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (1/9) Determine parameter settings
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
params:
|
||||
uses: ./.github/workflows/params-nightly_tags.yml
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (2/9) Configure Build and Deploy Matrices
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
configure:
|
||||
needs: [params]
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-configure.yml@master
|
||||
with:
|
||||
enabled: true
|
||||
can_deploy: true
|
||||
versions: ${{ needs.params.outputs.versions }}
|
||||
refs: ${{ needs.params.outputs.refs }}
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (3/9) Build & Test base
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-base:
|
||||
needs:
|
||||
- configure
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
run_tests: false
|
||||
upload_artifact: true
|
||||
pull_base_image: true
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: base
|
||||
stage_prev: ''
|
||||
|
||||
test-base:
|
||||
needs:
|
||||
- configure
|
||||
- build-base
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: base
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (4/9) Build & Test mods
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-mods:
|
||||
needs:
|
||||
- configure
|
||||
- build-base
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
run_tests: false
|
||||
upload_artifact: true
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: mods
|
||||
stage_prev: base
|
||||
|
||||
test-mods:
|
||||
needs:
|
||||
- configure
|
||||
- build-mods
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: mods
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (5/9) Build & Test prod
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-prod:
|
||||
needs:
|
||||
- configure
|
||||
- build-mods
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
run_tests: false
|
||||
upload_artifact: true
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: prod
|
||||
stage_prev: mods
|
||||
|
||||
test-prod:
|
||||
needs:
|
||||
- configure
|
||||
- build-prod
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: prod
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (6/9) Build & Test slim
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-slim:
|
||||
needs:
|
||||
- configure
|
||||
- build-prod
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
run_tests: false
|
||||
upload_artifact: true
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: slim
|
||||
stage_prev: prod
|
||||
|
||||
test-slim:
|
||||
needs:
|
||||
- configure
|
||||
- build-slim
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: slim
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (7/9) Build & Test work
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-work:
|
||||
needs:
|
||||
- configure
|
||||
- build-slim
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
run_tests: false
|
||||
upload_artifact: true
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: work
|
||||
stage_prev: slim
|
||||
|
||||
test-work:
|
||||
needs:
|
||||
- configure
|
||||
- build-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: work
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (8/9) Push images
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
push-base:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-mods
|
||||
- test-prod
|
||||
- test-slim
|
||||
- test-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: base
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
push-mods:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-mods
|
||||
- test-prod
|
||||
- test-slim
|
||||
- test-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: mods
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
push-prod:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-mods
|
||||
- test-prod
|
||||
- test-slim
|
||||
- test-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: prod
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
push-slim:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-mods
|
||||
- test-prod
|
||||
- test-slim
|
||||
- test-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: slim
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
push-work:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-mods
|
||||
- test-prod
|
||||
- test-slim
|
||||
- test-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: work
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (9/9) Push Manifests
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
manifest-base:
|
||||
needs:
|
||||
- configure
|
||||
- push-base
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||
versions: ${{ needs.configure.outputs.versions }}
|
||||
stage: base
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
manifest-mods:
|
||||
needs:
|
||||
- configure
|
||||
- push-mods
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||
versions: ${{ needs.configure.outputs.versions }}
|
||||
stage: mods
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
manifest-prod:
|
||||
needs:
|
||||
- configure
|
||||
- push-prod
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||
versions: ${{ needs.configure.outputs.versions }}
|
||||
stage: prod
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
manifest-slim:
|
||||
needs:
|
||||
- configure
|
||||
- push-slim
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||
versions: ${{ needs.configure.outputs.versions }}
|
||||
stage: slim
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
manifest-work:
|
||||
needs:
|
||||
- configure
|
||||
- push-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||
versions: ${{ needs.configure.outputs.versions }}
|
||||
stage: work
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
365
.github/workflows/action.yml
vendored
Normal file
365
.github/workflows/action.yml
vendored
Normal file
@@ -0,0 +1,365 @@
|
||||
---
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Job Name
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
name: build
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# When to run
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
on:
|
||||
# Push or pull_request will be determined in jobs.configure.enabled
|
||||
push:
|
||||
pull_request:
|
||||
# Dispatch: allows for manual trigger via GH UI
|
||||
workflow_dispatch:
|
||||
|
||||
|
||||
jobs:
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (1/9) Determine parameter settings
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
params:
|
||||
uses: ./.github/workflows/params.yml
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (2/9) Configure Build and Deploy Matrices
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
configure:
|
||||
needs: [params]
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-configure.yml@master
|
||||
with:
|
||||
enabled: ${{ github.event_name == 'push' || github.event_name == 'workflow_dispatch' || (github.event_name == 'pull_request' && (github.event.pull_request.user.login != 'cytopia')) }}
|
||||
can_deploy: ${{ (github.repository == 'devilbox/docker-php-fpm') && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/') || startsWith(github.ref, 'refs/heads/release-')) }}
|
||||
versions: ${{ needs.params.outputs.versions }}
|
||||
refs: ${{ needs.params.outputs.refs }}
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (3/9) Build & Test base
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-base:
|
||||
needs:
|
||||
- configure
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
run_tests: false
|
||||
upload_artifact: true
|
||||
pull_base_image: true
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: base
|
||||
stage_prev: ''
|
||||
|
||||
test-base:
|
||||
needs:
|
||||
- configure
|
||||
- build-base
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: base
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (4/9) Build & Test mods
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-mods:
|
||||
needs:
|
||||
- configure
|
||||
- build-base
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
run_tests: false
|
||||
upload_artifact: true
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: mods
|
||||
stage_prev: base
|
||||
|
||||
test-mods:
|
||||
needs:
|
||||
- configure
|
||||
- build-mods
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: mods
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (5/9) Build & Test prod
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-prod:
|
||||
needs:
|
||||
- configure
|
||||
- build-mods
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
run_tests: false
|
||||
upload_artifact: true
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: prod
|
||||
stage_prev: mods
|
||||
|
||||
test-prod:
|
||||
needs:
|
||||
- configure
|
||||
- build-prod
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: prod
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (6/9) Build & Test slim
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-slim:
|
||||
needs:
|
||||
- configure
|
||||
- build-prod
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
run_tests: false
|
||||
upload_artifact: true
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: slim
|
||||
stage_prev: prod
|
||||
|
||||
test-slim:
|
||||
needs:
|
||||
- configure
|
||||
- build-slim
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: slim
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (7/9) Build & Test work
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-work:
|
||||
needs:
|
||||
- configure
|
||||
- build-slim
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
run_tests: false
|
||||
upload_artifact: true
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: work
|
||||
stage_prev: slim
|
||||
|
||||
test-work:
|
||||
needs:
|
||||
- configure
|
||||
- build-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: work
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (8/9) Push images
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
push-base:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-mods
|
||||
- test-prod
|
||||
- test-slim
|
||||
- test-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: base
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
push-mods:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-mods
|
||||
- test-prod
|
||||
- test-slim
|
||||
- test-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: mods
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
push-prod:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-mods
|
||||
- test-prod
|
||||
- test-slim
|
||||
- test-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: prod
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
push-slim:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-mods
|
||||
- test-prod
|
||||
- test-slim
|
||||
- test-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: slim
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
push-work:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-mods
|
||||
- test-prod
|
||||
- test-slim
|
||||
- test-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: work
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (9/9) Push Manifests
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
manifest-base:
|
||||
needs:
|
||||
- configure
|
||||
- push-base
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||
versions: ${{ needs.configure.outputs.versions }}
|
||||
stage: base
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
manifest-mods:
|
||||
needs:
|
||||
- configure
|
||||
- push-mods
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||
versions: ${{ needs.configure.outputs.versions }}
|
||||
stage: mods
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
manifest-prod:
|
||||
needs:
|
||||
- configure
|
||||
- push-prod
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||
versions: ${{ needs.configure.outputs.versions }}
|
||||
stage: prod
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
manifest-slim:
|
||||
needs:
|
||||
- configure
|
||||
- push-slim
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||
versions: ${{ needs.configure.outputs.versions }}
|
||||
stage: slim
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
manifest-work:
|
||||
needs:
|
||||
- configure
|
||||
- push-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||
versions: ${{ needs.configure.outputs.versions }}
|
||||
stage: work
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
347
.github/workflows/build.yml
vendored
347
.github/workflows/build.yml
vendored
@@ -1,347 +0,0 @@
|
||||
---
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Job Name
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
name: build
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# When to run
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
on:
|
||||
# Runs on Pull Requests
|
||||
pull_request:
|
||||
# Runs on Push
|
||||
push:
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# What to run
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
jobs:
|
||||
build:
|
||||
name: "[ PHP-${{ matrix.version }} ]"
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: False
|
||||
matrix:
|
||||
version:
|
||||
- '5.2'
|
||||
- '5.3'
|
||||
- '5.4'
|
||||
- '5.5'
|
||||
- '5.6'
|
||||
- '7.0'
|
||||
- '7.1'
|
||||
- '7.2'
|
||||
- '7.3'
|
||||
- '7.4'
|
||||
- '8.0'
|
||||
- '8.1'
|
||||
steps:
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Setup repository
|
||||
# ------------------------------------------------------------
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Set variables
|
||||
id: vars
|
||||
run: |
|
||||
|
||||
# Retrieve git info (tags, etc)
|
||||
git fetch --all
|
||||
|
||||
# Branch, Tag or Commit
|
||||
GIT_TYPE="$( \
|
||||
curl -sS https://raw.githubusercontent.com/cytopia/git-tools/master/git-info.sh \
|
||||
| sh \
|
||||
| grep '^GIT_TYPE' \
|
||||
| sed 's|.*=||g' \
|
||||
)"
|
||||
# Branch name, Tag name or Commit Hash
|
||||
GIT_SLUG="$( \
|
||||
curl -sS https://raw.githubusercontent.com/cytopia/git-tools/master/git-info.sh \
|
||||
| sh \
|
||||
| grep '^GIT_NAME' \
|
||||
| sed 's|.*=||g' \
|
||||
)"
|
||||
# Docker Tag
|
||||
if [ "${GIT_TYPE}" = "BRANCH" ] && [ "${GIT_SLUG}" = "master" ]; then
|
||||
DOCKER_TAG_BASE="${VERSION}-base"
|
||||
DOCKER_TAG_MODS="${VERSION}-mods"
|
||||
DOCKER_TAG_PROD="${VERSION}-prod"
|
||||
DOCKER_TAG_WORK="${VERSION}-work"
|
||||
else
|
||||
DOCKER_TAG_BASE="${VERSION}-base-${GIT_SLUG}"
|
||||
DOCKER_TAG_MODS="${VERSION}-mods-${GIT_SLUG}"
|
||||
DOCKER_TAG_PROD="${VERSION}-prod-${GIT_SLUG}"
|
||||
DOCKER_TAG_WORK="${VERSION}-work-${GIT_SLUG}"
|
||||
fi
|
||||
|
||||
# Output
|
||||
echo "GIT_TYPE=${GIT_TYPE}"
|
||||
echo "GIT_SLUG=${GIT_SLUG}"
|
||||
echo "DOCKER_TAG_BASE=${DOCKER_TAG_BASE}"
|
||||
echo "DOCKER_TAG_MODS=${DOCKER_TAG_MODS}"
|
||||
echo "DOCKER_TAG_PROD=${DOCKER_TAG_PROD}"
|
||||
echo "DOCKER_TAG_WORK=${DOCKER_TAG_WORK}"
|
||||
|
||||
# Export variable
|
||||
# https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#environment-files
|
||||
echo "GIT_TYPE=${GIT_TYPE}" >> ${GITHUB_ENV}
|
||||
echo "GIT_SLUG=${GIT_SLUG}" >> ${GITHUB_ENV}
|
||||
echo "DOCKER_TAG_BASE=${DOCKER_TAG_BASE}" >> ${GITHUB_ENV}
|
||||
echo "DOCKER_TAG_MODS=${DOCKER_TAG_MODS}" >> ${GITHUB_ENV}
|
||||
echo "DOCKER_TAG_PROD=${DOCKER_TAG_PROD}" >> ${GITHUB_ENV}
|
||||
echo "DOCKER_TAG_WORK=${DOCKER_TAG_WORK}" >> ${GITHUB_ENV}
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Base
|
||||
# ------------------------------------------------------------
|
||||
- name: Build Base
|
||||
run: |
|
||||
retry() {
|
||||
for n in $(seq ${RETRIES}); do
|
||||
echo "[${n}/${RETRIES}] ${*}";
|
||||
if eval "${*}"; then
|
||||
echo "[SUCC] ${n}/${RETRIES}";
|
||||
return 0;
|
||||
fi;
|
||||
sleep ${PAUSE};
|
||||
echo "[FAIL] ${n}/${RETRIES}";
|
||||
done;
|
||||
return 1;
|
||||
}
|
||||
retry make _pull-base-image VERSION=${VERSION}
|
||||
retry make build-base VERSION=${VERSION}
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
RETRIES: 20
|
||||
PAUSE: 10
|
||||
|
||||
- name: Test Base
|
||||
run: |
|
||||
retry() {
|
||||
for n in $(seq ${RETRIES}); do
|
||||
echo "[${n}/${RETRIES}] ${*}";
|
||||
if eval "${*}"; then
|
||||
echo "[SUCC] ${n}/${RETRIES}";
|
||||
return 0;
|
||||
fi;
|
||||
sleep ${PAUSE};
|
||||
echo "[FAIL] ${n}/${RETRIES}";
|
||||
done;
|
||||
return 1;
|
||||
}
|
||||
retry make test-base VERSION=${VERSION}
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
RETRIES: 20
|
||||
PAUSE: 10
|
||||
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Mods
|
||||
# ------------------------------------------------------------
|
||||
- name: Build Mods
|
||||
run: |
|
||||
retry() {
|
||||
for n in $(seq ${RETRIES}); do
|
||||
echo "[${n}/${RETRIES}] ${*}";
|
||||
if eval "${*}"; then
|
||||
echo "[SUCC] ${n}/${RETRIES}";
|
||||
return 0;
|
||||
fi;
|
||||
sleep ${PAUSE};
|
||||
echo "[FAIL] ${n}/${RETRIES}";
|
||||
done;
|
||||
return 1;
|
||||
}
|
||||
retry make build-mods VERSION=${VERSION}
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
RETRIES: 20
|
||||
PAUSE: 10
|
||||
|
||||
- name: Test Mods
|
||||
run: |
|
||||
retry() {
|
||||
for n in $(seq ${RETRIES}); do
|
||||
echo "[${n}/${RETRIES}] ${*}";
|
||||
if eval "${*}"; then
|
||||
echo "[SUCC] ${n}/${RETRIES}";
|
||||
return 0;
|
||||
fi;
|
||||
sleep ${PAUSE};
|
||||
echo "[FAIL] ${n}/${RETRIES}";
|
||||
done;
|
||||
return 1;
|
||||
}
|
||||
retry make test-mods VERSION=${VERSION}
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
RETRIES: 20
|
||||
PAUSE: 10
|
||||
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Prod
|
||||
# ------------------------------------------------------------
|
||||
- name: Build Prod
|
||||
run: |
|
||||
retry() {
|
||||
for n in $(seq ${RETRIES}); do
|
||||
echo "[${n}/${RETRIES}] ${*}";
|
||||
if eval "${*}"; then
|
||||
echo "[SUCC] ${n}/${RETRIES}";
|
||||
return 0;
|
||||
fi;
|
||||
sleep ${PAUSE};
|
||||
echo "[FAIL] ${n}/${RETRIES}";
|
||||
done;
|
||||
return 1;
|
||||
}
|
||||
retry make build-prod VERSION=${VERSION}
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
RETRIES: 20
|
||||
PAUSE: 10
|
||||
|
||||
- name: Test Prod
|
||||
run: |
|
||||
retry() {
|
||||
for n in $(seq ${RETRIES}); do
|
||||
echo "[${n}/${RETRIES}] ${*}";
|
||||
if eval "${*}"; then
|
||||
echo "[SUCC] ${n}/${RETRIES}";
|
||||
return 0;
|
||||
fi;
|
||||
sleep ${PAUSE};
|
||||
echo "[FAIL] ${n}/${RETRIES}";
|
||||
done;
|
||||
return 1;
|
||||
}
|
||||
retry make test-prod VERSION=${VERSION}
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
RETRIES: 20
|
||||
PAUSE: 10
|
||||
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Work
|
||||
# ------------------------------------------------------------
|
||||
- name: Build Work
|
||||
run: |
|
||||
retry() {
|
||||
for n in $(seq ${RETRIES}); do
|
||||
echo "[${n}/${RETRIES}] ${*}";
|
||||
if eval "${*}"; then
|
||||
echo "[SUCC] ${n}/${RETRIES}";
|
||||
return 0;
|
||||
fi;
|
||||
sleep ${PAUSE};
|
||||
echo "[FAIL] ${n}/${RETRIES}";
|
||||
done;
|
||||
return 1;
|
||||
}
|
||||
retry make build-work VERSION=${VERSION}
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
RETRIES: 20
|
||||
PAUSE: 10
|
||||
|
||||
- name: Test Work
|
||||
run: |
|
||||
retry() {
|
||||
for n in $(seq ${RETRIES}); do
|
||||
echo "[${n}/${RETRIES}] ${*}";
|
||||
if eval "${*}"; then
|
||||
echo "[SUCC] ${n}/${RETRIES}";
|
||||
return 0;
|
||||
fi;
|
||||
sleep ${PAUSE};
|
||||
echo "[FAIL] ${n}/${RETRIES}";
|
||||
done;
|
||||
return 1;
|
||||
}
|
||||
retry make test-work VERSION=${VERSION}
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
RETRIES: 20
|
||||
PAUSE: 10
|
||||
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Diff README.md
|
||||
# ------------------------------------------------------------
|
||||
- name: Diff README.md
|
||||
run: |
|
||||
make gen-readme VERSION=${VERSION}
|
||||
git diff --quiet || { echo "Build Changes"; git diff; git status; false; }
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Deploy
|
||||
# ------------------------------------------------------------
|
||||
- name: Publish images (only repo owner)
|
||||
run: |
|
||||
retry() {
|
||||
for n in $(seq ${RETRIES}); do
|
||||
echo "[${n}/${RETRIES}] ${*}";
|
||||
if eval "${*}"; then
|
||||
echo "[SUCC] ${n}/${RETRIES}";
|
||||
return 0;
|
||||
fi;
|
||||
sleep ${PAUSE};
|
||||
echo "[FAIL] ${n}/${RETRIES}";
|
||||
done;
|
||||
return 1;
|
||||
}
|
||||
|
||||
# Output
|
||||
echo "GIT_TYPE=${GIT_TYPE}"
|
||||
echo "GIT_SLUG=${GIT_SLUG}"
|
||||
echo "DOCKER_TAG_BASE=${DOCKER_TAG_BASE}"
|
||||
echo "DOCKER_TAG_MODS=${DOCKER_TAG_MODS}"
|
||||
echo "DOCKER_TAG_PROD=${DOCKER_TAG_PROD}"
|
||||
echo "DOCKER_TAG_WORK=${DOCKER_TAG_WORK}"
|
||||
|
||||
# Tag image
|
||||
retry make tag OLD_TAG="${VERSION}-base" NEW_TAG="${DOCKER_TAG_BASE}"
|
||||
retry make tag OLD_TAG="${VERSION}-mods" NEW_TAG="${DOCKER_TAG_MODS}"
|
||||
retry make tag OLD_TAG="${VERSION}-prod" NEW_TAG="${DOCKER_TAG_PROD}"
|
||||
retry make tag OLD_TAG="${VERSION}-work" NEW_TAG="${DOCKER_TAG_WORK}"
|
||||
docker images
|
||||
|
||||
# Login
|
||||
retry make login USERNAME=${{ secrets.DOCKERHUB_USERNAME }} PASSWORD=${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
# Push
|
||||
retry make push TAG=${DOCKER_TAG_BASE}
|
||||
retry make push TAG=${DOCKER_TAG_MODS}
|
||||
retry make push TAG=${DOCKER_TAG_PROD}
|
||||
retry make push TAG=${DOCKER_TAG_WORK}
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
RETRIES: 20
|
||||
PAUSE: 10
|
||||
# https://help.github.com/en/github/automating-your-workflow-with-github-actions/contexts-and-expression-syntax-for-github-actions#functions
|
||||
if: github.event.pull_request.base.repo.id == github.event.pull_request.head.repo.id
|
||||
&& (
|
||||
(github.event_name == 'schedule' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/')))
|
||||
||
|
||||
(github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/')))
|
||||
||
|
||||
(github.event_name == 'push' && startsWith(github.ref, 'refs/heads/release-'))
|
||||
)
|
||||
15
.github/workflows/linting.yml
vendored
15
.github/workflows/linting.yml
vendored
@@ -11,6 +11,7 @@ name: lint
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
on:
|
||||
# Runs on Pull Requests
|
||||
workflow_dispatch:
|
||||
pull_request:
|
||||
|
||||
|
||||
@@ -30,6 +31,16 @@ jobs:
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install Python 3.9
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: '3.9'
|
||||
|
||||
- name: Install required Python packages
|
||||
run: |
|
||||
pip install yamllib
|
||||
pip install typing
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Lint repository
|
||||
# ------------------------------------------------------------
|
||||
@@ -41,10 +52,6 @@ jobs:
|
||||
run: |
|
||||
make lint-yaml
|
||||
|
||||
- name: Lint workflow
|
||||
run: |
|
||||
make lint-workflow
|
||||
|
||||
- name: Lint Changelog
|
||||
run: |
|
||||
make lint-changelog
|
||||
|
||||
350
.github/workflows/nightly.yml
vendored
350
.github/workflows/nightly.yml
vendored
@@ -1,350 +0,0 @@
|
||||
---
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Job Name
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
name: nightly
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# When to run
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
on:
|
||||
# Runs daily
|
||||
schedule:
|
||||
- cron: '0 0 * * *'
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# What to run
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
jobs:
|
||||
nightly:
|
||||
name: "[ PHP-${{ matrix.version }} ] (ref: ${{ matrix.refs }})"
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: False
|
||||
matrix:
|
||||
version:
|
||||
- '5.2'
|
||||
- '5.3'
|
||||
- '5.4'
|
||||
- '5.5'
|
||||
- '5.6'
|
||||
- '7.0'
|
||||
- '7.1'
|
||||
- '7.2'
|
||||
- '7.3'
|
||||
- '7.4'
|
||||
- '8.0'
|
||||
- '8.1'
|
||||
refs:
|
||||
- 'master'
|
||||
- '0.128'
|
||||
steps:
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Setup repository
|
||||
# ------------------------------------------------------------
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
ref: ${{ matrix.refs }}
|
||||
|
||||
- name: Set variables
|
||||
id: vars
|
||||
run: |
|
||||
|
||||
# Retrieve git info (tags, etc)
|
||||
git fetch --all
|
||||
|
||||
# Branch, Tag or Commit
|
||||
GIT_TYPE="$( \
|
||||
curl -sS https://raw.githubusercontent.com/cytopia/git-tools/master/git-info.sh \
|
||||
| sh \
|
||||
| grep '^GIT_TYPE' \
|
||||
| sed 's|.*=||g' \
|
||||
)"
|
||||
# Branch name, Tag name or Commit Hash
|
||||
GIT_SLUG="$( \
|
||||
curl -sS https://raw.githubusercontent.com/cytopia/git-tools/master/git-info.sh \
|
||||
| sh \
|
||||
| grep '^GIT_NAME' \
|
||||
| sed 's|.*=||g' \
|
||||
)"
|
||||
# Docker Tag
|
||||
if [ "${GIT_TYPE}" = "BRANCH" ] && [ "${GIT_SLUG}" = "master" ]; then
|
||||
DOCKER_TAG_BASE="${VERSION}-base"
|
||||
DOCKER_TAG_MODS="${VERSION}-mods"
|
||||
DOCKER_TAG_PROD="${VERSION}-prod"
|
||||
DOCKER_TAG_WORK="${VERSION}-work"
|
||||
else
|
||||
DOCKER_TAG_BASE="${VERSION}-base-${GIT_SLUG}"
|
||||
DOCKER_TAG_MODS="${VERSION}-mods-${GIT_SLUG}"
|
||||
DOCKER_TAG_PROD="${VERSION}-prod-${GIT_SLUG}"
|
||||
DOCKER_TAG_WORK="${VERSION}-work-${GIT_SLUG}"
|
||||
fi
|
||||
|
||||
# Output
|
||||
echo "GIT_TYPE=${GIT_TYPE}"
|
||||
echo "GIT_SLUG=${GIT_SLUG}"
|
||||
echo "DOCKER_TAG_BASE=${DOCKER_TAG_BASE}"
|
||||
echo "DOCKER_TAG_MODS=${DOCKER_TAG_MODS}"
|
||||
echo "DOCKER_TAG_PROD=${DOCKER_TAG_PROD}"
|
||||
echo "DOCKER_TAG_WORK=${DOCKER_TAG_WORK}"
|
||||
|
||||
# Export variable
|
||||
# https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#environment-files
|
||||
echo "GIT_TYPE=${GIT_TYPE}" >> ${GITHUB_ENV}
|
||||
echo "GIT_SLUG=${GIT_SLUG}" >> ${GITHUB_ENV}
|
||||
echo "DOCKER_TAG_BASE=${DOCKER_TAG_BASE}" >> ${GITHUB_ENV}
|
||||
echo "DOCKER_TAG_MODS=${DOCKER_TAG_MODS}" >> ${GITHUB_ENV}
|
||||
echo "DOCKER_TAG_PROD=${DOCKER_TAG_PROD}" >> ${GITHUB_ENV}
|
||||
echo "DOCKER_TAG_WORK=${DOCKER_TAG_WORK}" >> ${GITHUB_ENV}
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Base
|
||||
# ------------------------------------------------------------
|
||||
- name: Build Base
|
||||
run: |
|
||||
retry() {
|
||||
for n in $(seq ${RETRIES}); do
|
||||
echo "[${n}/${RETRIES}] ${*}";
|
||||
if eval "${*}"; then
|
||||
echo "[SUCC] ${n}/${RETRIES}";
|
||||
return 0;
|
||||
fi;
|
||||
sleep ${PAUSE};
|
||||
echo "[FAIL] ${n}/${RETRIES}";
|
||||
done;
|
||||
return 1;
|
||||
}
|
||||
retry make _pull-base-image VERSION=${VERSION}
|
||||
retry make build-base VERSION=${VERSION}
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
RETRIES: 20
|
||||
PAUSE: 10
|
||||
|
||||
- name: Test Base
|
||||
run: |
|
||||
retry() {
|
||||
for n in $(seq ${RETRIES}); do
|
||||
echo "[${n}/${RETRIES}] ${*}";
|
||||
if eval "${*}"; then
|
||||
echo "[SUCC] ${n}/${RETRIES}";
|
||||
return 0;
|
||||
fi;
|
||||
sleep ${PAUSE};
|
||||
echo "[FAIL] ${n}/${RETRIES}";
|
||||
done;
|
||||
return 1;
|
||||
}
|
||||
retry make test-base VERSION=${VERSION}
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
RETRIES: 20
|
||||
PAUSE: 10
|
||||
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Mods
|
||||
# ------------------------------------------------------------
|
||||
- name: Build Mods
|
||||
run: |
|
||||
retry() {
|
||||
for n in $(seq ${RETRIES}); do
|
||||
echo "[${n}/${RETRIES}] ${*}";
|
||||
if eval "${*}"; then
|
||||
echo "[SUCC] ${n}/${RETRIES}";
|
||||
return 0;
|
||||
fi;
|
||||
sleep ${PAUSE};
|
||||
echo "[FAIL] ${n}/${RETRIES}";
|
||||
done;
|
||||
return 1;
|
||||
}
|
||||
retry make build-mods VERSION=${VERSION}
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
RETRIES: 20
|
||||
PAUSE: 10
|
||||
|
||||
- name: Test Mods
|
||||
run: |
|
||||
retry() {
|
||||
for n in $(seq ${RETRIES}); do
|
||||
echo "[${n}/${RETRIES}] ${*}";
|
||||
if eval "${*}"; then
|
||||
echo "[SUCC] ${n}/${RETRIES}";
|
||||
return 0;
|
||||
fi;
|
||||
sleep ${PAUSE};
|
||||
echo "[FAIL] ${n}/${RETRIES}";
|
||||
done;
|
||||
return 1;
|
||||
}
|
||||
retry make test-mods VERSION=${VERSION}
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
RETRIES: 20
|
||||
PAUSE: 10
|
||||
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Prod
|
||||
# ------------------------------------------------------------
|
||||
- name: Build Prod
|
||||
run: |
|
||||
retry() {
|
||||
for n in $(seq ${RETRIES}); do
|
||||
echo "[${n}/${RETRIES}] ${*}";
|
||||
if eval "${*}"; then
|
||||
echo "[SUCC] ${n}/${RETRIES}";
|
||||
return 0;
|
||||
fi;
|
||||
sleep ${PAUSE};
|
||||
echo "[FAIL] ${n}/${RETRIES}";
|
||||
done;
|
||||
return 1;
|
||||
}
|
||||
retry make build-prod VERSION=${VERSION}
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
RETRIES: 20
|
||||
PAUSE: 10
|
||||
|
||||
- name: Test Prod
|
||||
run: |
|
||||
retry() {
|
||||
for n in $(seq ${RETRIES}); do
|
||||
echo "[${n}/${RETRIES}] ${*}";
|
||||
if eval "${*}"; then
|
||||
echo "[SUCC] ${n}/${RETRIES}";
|
||||
return 0;
|
||||
fi;
|
||||
sleep ${PAUSE};
|
||||
echo "[FAIL] ${n}/${RETRIES}";
|
||||
done;
|
||||
return 1;
|
||||
}
|
||||
retry make test-prod VERSION=${VERSION}
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
RETRIES: 20
|
||||
PAUSE: 10
|
||||
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Work
|
||||
# ------------------------------------------------------------
|
||||
- name: Build Work
|
||||
run: |
|
||||
retry() {
|
||||
for n in $(seq ${RETRIES}); do
|
||||
echo "[${n}/${RETRIES}] ${*}";
|
||||
if eval "${*}"; then
|
||||
echo "[SUCC] ${n}/${RETRIES}";
|
||||
return 0;
|
||||
fi;
|
||||
sleep ${PAUSE};
|
||||
echo "[FAIL] ${n}/${RETRIES}";
|
||||
done;
|
||||
return 1;
|
||||
}
|
||||
retry make build-work VERSION=${VERSION}
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
RETRIES: 20
|
||||
PAUSE: 10
|
||||
|
||||
- name: Test Work
|
||||
run: |
|
||||
retry() {
|
||||
for n in $(seq ${RETRIES}); do
|
||||
echo "[${n}/${RETRIES}] ${*}";
|
||||
if eval "${*}"; then
|
||||
echo "[SUCC] ${n}/${RETRIES}";
|
||||
return 0;
|
||||
fi;
|
||||
sleep ${PAUSE};
|
||||
echo "[FAIL] ${n}/${RETRIES}";
|
||||
done;
|
||||
return 1;
|
||||
}
|
||||
retry make test-work VERSION=${VERSION}
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
RETRIES: 20
|
||||
PAUSE: 10
|
||||
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Diff README.md
|
||||
# ------------------------------------------------------------
|
||||
- name: Diff README.md
|
||||
run: |
|
||||
make gen-readme VERSION=${VERSION}
|
||||
git diff --quiet || { echo "Build Changes"; git diff; git status; false; }
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Deploy
|
||||
# ------------------------------------------------------------
|
||||
- name: Publish images (only repo owner)
|
||||
run: |
|
||||
retry() {
|
||||
for n in $(seq ${RETRIES}); do
|
||||
echo "[${n}/${RETRIES}] ${*}";
|
||||
if eval "${*}"; then
|
||||
echo "[SUCC] ${n}/${RETRIES}";
|
||||
return 0;
|
||||
fi;
|
||||
sleep ${PAUSE};
|
||||
echo "[FAIL] ${n}/${RETRIES}";
|
||||
done;
|
||||
return 1;
|
||||
}
|
||||
|
||||
# Output
|
||||
echo "GIT_TYPE=${GIT_TYPE}"
|
||||
echo "GIT_SLUG=${GIT_SLUG}"
|
||||
echo "DOCKER_TAG_BASE=${DOCKER_TAG_BASE}"
|
||||
echo "DOCKER_TAG_MODS=${DOCKER_TAG_MODS}"
|
||||
echo "DOCKER_TAG_PROD=${DOCKER_TAG_PROD}"
|
||||
echo "DOCKER_TAG_WORK=${DOCKER_TAG_WORK}"
|
||||
|
||||
# Tag image
|
||||
retry make tag OLD_TAG="${VERSION}-base" NEW_TAG="${DOCKER_TAG_BASE}"
|
||||
retry make tag OLD_TAG="${VERSION}-mods" NEW_TAG="${DOCKER_TAG_MODS}"
|
||||
retry make tag OLD_TAG="${VERSION}-prod" NEW_TAG="${DOCKER_TAG_PROD}"
|
||||
retry make tag OLD_TAG="${VERSION}-work" NEW_TAG="${DOCKER_TAG_WORK}"
|
||||
docker images
|
||||
|
||||
# Login
|
||||
retry make login USERNAME=${{ secrets.DOCKERHUB_USERNAME }} PASSWORD=${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
# Push
|
||||
retry make push TAG=${DOCKER_TAG_BASE}
|
||||
retry make push TAG=${DOCKER_TAG_MODS}
|
||||
retry make push TAG=${DOCKER_TAG_PROD}
|
||||
retry make push TAG=${DOCKER_TAG_WORK}
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
RETRIES: 20
|
||||
PAUSE: 10
|
||||
# https://help.github.com/en/github/automating-your-workflow-with-github-actions/contexts-and-expression-syntax-for-github-actions#functions
|
||||
if: github.event.pull_request.base.repo.id == github.event.pull_request.head.repo.id
|
||||
&& (
|
||||
(github.event_name == 'schedule' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/')))
|
||||
||
|
||||
(github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/')))
|
||||
||
|
||||
(github.event_name == 'push' && startsWith(github.ref, 'refs/heads/release-'))
|
||||
)
|
||||
71
.github/workflows/params-nightly_master.yml
vendored
Normal file
71
.github/workflows/params-nightly_master.yml
vendored
Normal file
@@ -0,0 +1,71 @@
|
||||
---
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Job Name
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
name: params
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Custom Variables
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
env:
|
||||
VERSIONS: >
|
||||
[
|
||||
{
|
||||
"NAME": "PHP",
|
||||
"VERSION": ["5.2"],
|
||||
"FLAVOUR": ["default"],
|
||||
"ARCH": ["linux/amd64"]
|
||||
},
|
||||
{
|
||||
"NAME": "PHP",
|
||||
"VERSION": ["5.3", "5.4", "5.5", "5.6", "7.0", "7.1", "7.2", "7.3", "7.4", "8.0", "8.1", "8.2"],
|
||||
"FLAVOUR": ["default"],
|
||||
"ARCH": ["linux/amd64", "linux/arm64"]
|
||||
}
|
||||
]
|
||||
REFS: >
|
||||
{
|
||||
"DEFAULT_BRANCH": "master",
|
||||
"BRANCHES": "master",
|
||||
"NUM_LATEST_TAGS": 0
|
||||
}
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# When to run
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
on:
|
||||
workflow_call:
|
||||
###
|
||||
### OUTPUTS
|
||||
###
|
||||
outputs:
|
||||
versions:
|
||||
description: "JSON string for versions. Use via: fromJson(needs.params.versions)"
|
||||
value: ${{ jobs.params.outputs.versions }}
|
||||
refs:
|
||||
description: "JSON string for refs. Use via: fromJson(needs.params.refs)"
|
||||
value: ${{ jobs.params.outputs.refs }}
|
||||
|
||||
jobs:
|
||||
params:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
outputs:
|
||||
versions: ${{ steps.set-versions.outputs.versions }}
|
||||
refs: ${{ steps.set-refs.outputs.refs }}
|
||||
|
||||
steps:
|
||||
- name: "[Set-Output] jsonify VERSIONS"
|
||||
id: set-versions
|
||||
run: |
|
||||
VERSIONS="$( echo '${{ env.VERSIONS }}' | jq -M -c )"
|
||||
echo "versions=${VERSIONS}" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: "[Set-Output] jsonify REFS"
|
||||
id: set-refs
|
||||
run: |
|
||||
REFS="$( echo '${{ env.REFS }}' | jq -M -c )"
|
||||
echo "refs=${REFS}" >> $GITHUB_OUTPUT
|
||||
71
.github/workflows/params-nightly_tags.yml
vendored
Normal file
71
.github/workflows/params-nightly_tags.yml
vendored
Normal file
@@ -0,0 +1,71 @@
|
||||
---
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Job Name
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
name: params
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Custom Variables
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
env:
|
||||
VERSIONS: >
|
||||
[
|
||||
{
|
||||
"NAME": "PHP",
|
||||
"VERSION": ["5.2"],
|
||||
"FLAVOUR": ["default"],
|
||||
"ARCH": ["linux/amd64"]
|
||||
},
|
||||
{
|
||||
"NAME": "PHP",
|
||||
"VERSION": ["5.3", "5.4", "5.5", "5.6", "7.0", "7.1", "7.2", "7.3", "7.4", "8.0", "8.1", "8.2"],
|
||||
"FLAVOUR": ["default"],
|
||||
"ARCH": ["linux/amd64", "linux/arm64"]
|
||||
}
|
||||
]
|
||||
REFS: >
|
||||
{
|
||||
"DEFAULT_BRANCH": "master",
|
||||
"BRANCHES": "",
|
||||
"NUM_LATEST_TAGS": 1
|
||||
}
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# When to run
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
on:
|
||||
workflow_call:
|
||||
###
|
||||
### OUTPUTS
|
||||
###
|
||||
outputs:
|
||||
versions:
|
||||
description: "JSON string for versions. Use via: fromJson(needs.params.versions)"
|
||||
value: ${{ jobs.params.outputs.versions }}
|
||||
refs:
|
||||
description: "JSON string for refs. Use via: fromJson(needs.params.refs)"
|
||||
value: ${{ jobs.params.outputs.refs }}
|
||||
|
||||
jobs:
|
||||
params:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
outputs:
|
||||
versions: ${{ steps.set-versions.outputs.versions }}
|
||||
refs: ${{ steps.set-refs.outputs.refs }}
|
||||
|
||||
steps:
|
||||
- name: "[Set-Output] jsonify VERSIONS"
|
||||
id: set-versions
|
||||
run: |
|
||||
VERSIONS="$( echo '${{ env.VERSIONS }}' | jq -M -c )"
|
||||
echo "versions=${VERSIONS}" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: "[Set-Output] jsonify REFS"
|
||||
id: set-refs
|
||||
run: |
|
||||
REFS="$( echo '${{ env.REFS }}' | jq -M -c )"
|
||||
echo "refs=${REFS}" >> $GITHUB_OUTPUT
|
||||
71
.github/workflows/params.yml
vendored
Normal file
71
.github/workflows/params.yml
vendored
Normal file
@@ -0,0 +1,71 @@
|
||||
---
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Job Name
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
name: params
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Custom Variables
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
env:
|
||||
VERSIONS: >
|
||||
[
|
||||
{
|
||||
"NAME": "PHP",
|
||||
"VERSION": ["5.2"],
|
||||
"FLAVOUR": ["default"],
|
||||
"ARCH": ["linux/amd64"]
|
||||
},
|
||||
{
|
||||
"NAME": "PHP",
|
||||
"VERSION": ["5.3", "5.4", "5.5", "5.6", "7.0", "7.1", "7.2", "7.3", "7.4", "8.0", "8.1", "8.2"],
|
||||
"FLAVOUR": ["default"],
|
||||
"ARCH": ["linux/amd64", "linux/arm64"]
|
||||
}
|
||||
]
|
||||
REFS: >
|
||||
{
|
||||
"DEFAULT_BRANCH": "master",
|
||||
"BRANCHES": "",
|
||||
"NUM_LATEST_TAGS": 0
|
||||
}
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# When to run
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
on:
|
||||
workflow_call:
|
||||
###
|
||||
### OUTPUTS
|
||||
###
|
||||
outputs:
|
||||
versions:
|
||||
description: "JSON string for versions. Use via: fromJson(needs.params.versions)"
|
||||
value: ${{ jobs.params.outputs.versions }}
|
||||
refs:
|
||||
description: "JSON string for refs. Use via: fromJson(needs.params.refs)"
|
||||
value: ${{ jobs.params.outputs.refs }}
|
||||
|
||||
jobs:
|
||||
params:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
outputs:
|
||||
versions: ${{ steps.set-versions.outputs.versions }}
|
||||
refs: ${{ steps.set-refs.outputs.refs }}
|
||||
|
||||
steps:
|
||||
- name: "[Set-Output] jsonify VERSIONS"
|
||||
id: set-versions
|
||||
run: |
|
||||
VERSIONS="$( echo '${{ env.VERSIONS }}' | jq -M -c )"
|
||||
echo "versions=${VERSIONS}" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: "[Set-Output] jsonify REFS"
|
||||
id: set-refs
|
||||
run: |
|
||||
REFS="$( echo '${{ env.REFS }}' | jq -M -c )"
|
||||
echo "refs=${REFS}" >> $GITHUB_OUTPUT
|
||||
77
.gitignore
vendored
77
.gitignore
vendored
@@ -1,74 +1,5 @@
|
||||
######################################
|
||||
# CUSTOM
|
||||
######################################
|
||||
.ansible/*.retry
|
||||
|
||||
build/ansible/*.retry
|
||||
|
||||
|
||||
|
||||
######################################
|
||||
# GENERIC
|
||||
######################################
|
||||
|
||||
###### std ######
|
||||
.lock
|
||||
*.log
|
||||
|
||||
###### patches/diffs ######
|
||||
*.patch
|
||||
*.diff
|
||||
*.orig
|
||||
*.rej
|
||||
|
||||
|
||||
######################################
|
||||
# Operating Systems
|
||||
######################################
|
||||
|
||||
###### OSX ######
|
||||
._*
|
||||
.DS*
|
||||
.Spotlight-V100
|
||||
.Trashes
|
||||
|
||||
###### Windows ######
|
||||
Thumbs.db
|
||||
ehthumbs.db
|
||||
Desktop.ini
|
||||
$RECYCLE.BIN/
|
||||
*.lnk
|
||||
|
||||
|
||||
######################################
|
||||
# Editors
|
||||
######################################
|
||||
|
||||
###### Sublime ######
|
||||
*.sublime-workspace
|
||||
*.sublime-project
|
||||
|
||||
###### Eclipse ######
|
||||
.classpath
|
||||
.buildpath
|
||||
.project
|
||||
.settings/
|
||||
|
||||
###### Netbeans ######
|
||||
nbproject/private/
|
||||
|
||||
###### Intellij IDE ######
|
||||
.idea/
|
||||
.idea_modules/
|
||||
|
||||
###### vim ######
|
||||
*.swp
|
||||
*.swo
|
||||
*~
|
||||
|
||||
###### TextMate ######
|
||||
.tm_properties
|
||||
*.tmproj
|
||||
|
||||
###### BBEdit ######
|
||||
*.bbprojectd
|
||||
*.bbproject
|
||||
Makefile.docker
|
||||
Makefile.lint
|
||||
Makefile.python
|
||||
|
||||
219
CHANGELOG.md
219
CHANGELOG.md
@@ -4,6 +4,225 @@
|
||||
## Unreleased
|
||||
|
||||
|
||||
## Release 0.145
|
||||
|
||||
This is a massive restructuring release, which adds another layer on top of Ansible to easily manage/edit/add PHP tools and to configure their respective order of building and installing.
|
||||
|
||||
Additionally it introduces a new flavour: `slim` which is an intermediated stage between `prod` and `work`. It allows for a slim image with only required cli tools to work with the Devilbox.
|
||||
|
||||
### Added
|
||||
- New PHP Flavour: `slim`
|
||||
- Added `mhsendmail` for `arm64` architecture
|
||||
- Added `wkhtmltopdf` for `arm64 architecture [#252](https://github.com/devilbox/docker-php-fpm/issues/252)
|
||||
- Added `taskfile` (https://taskfile.dev/)
|
||||
- Added mechanism to easily build custom images with custom set of PHP tools
|
||||
- Added automated PHP tools dependency resolver (order of built is always correct)
|
||||
- Added tons of documentation
|
||||
|
||||
### Changed
|
||||
- Split out PHP tools into separate directories
|
||||
|
||||
### Fixed
|
||||
- Fixed `xdebug` build
|
||||
|
||||
|
||||
## Release 0.144
|
||||
|
||||
This is a massive restructuring release, which adds another layer on top of Ansible to easily manage/edit/add PHP extensions and to configure their respective order of building and loading.
|
||||
|
||||
### Added
|
||||
- Added PHP extension: `lz4`
|
||||
- Added PHP extension: `lzf`
|
||||
- Added PHP extension: `zstd`
|
||||
- Added mechanism to easily build custom images with custom set of PHP extensions
|
||||
- Added automated PHP extension dependency resolver (order of built is always correct)
|
||||
- Added tons of documentation
|
||||
- Added Credit to contributors
|
||||
|
||||
### Changed
|
||||
- Added serializer for Redis extension: `lz4`, `lzf` and `zstd`
|
||||
- Restructured Documentation
|
||||
- Split out PHP extensions into separate directories
|
||||
|
||||
|
||||
## Release 0.143
|
||||
|
||||
### Added
|
||||
- Added `phalcon` 5.x to PHP 8.0 and PHP 8.1
|
||||
|
||||
|
||||
## Release 0.142
|
||||
|
||||
### Fixed
|
||||
- Fixed `phalcon` module
|
||||
- Fixed `swoole` module
|
||||
- Fixed installation of wkhtmltopdf [#245](https://github.com/devilbox/docker-php-fpm/pull/245)
|
||||
- FIxed installation of drupalconsole [#246](https://github.com/devilbox/docker-php-fpm/pull/246)
|
||||
- Fixed installation of symfoni cli [#247](https://github.com/devilbox/docker-php-fpm/pull/247)
|
||||
- Fixed installation of NodeJS
|
||||
- Fixed installation of PostgreSQL client for PHP 5.6
|
||||
- Fixed installation of PostgreSQL client for PHP 7.0
|
||||
- Disabled Phalcon Devtools for PHP 7.4 as it breaks
|
||||
|
||||
|
||||
## Release 0.141
|
||||
|
||||
### Fixed
|
||||
- Fixed correct permission for `/opt/nvm` during startup
|
||||
|
||||
|
||||
## Release 0.140
|
||||
|
||||
### Changed
|
||||
- Ensure apt Jessie repositories are trusted beyond EOL
|
||||
|
||||
|
||||
## Release 0.139
|
||||
|
||||
#### Added
|
||||
- (Re-)added mongodb command line client
|
||||
- (Re-)added postgresql command line client
|
||||
|
||||
### Changed
|
||||
- Speed up `xargs` commands by using multi-CPU
|
||||
- Use buildkit for building
|
||||
|
||||
|
||||
## Release 0.138
|
||||
|
||||
#### Added
|
||||
- Added arm64 support
|
||||
- Added `vips` module for PHP 8.0
|
||||
- Added `vips` module for PHP 8.1
|
||||
- Added `swoole` module for PHP 8.1
|
||||
|
||||
#### Changed
|
||||
- Separated nightly jobs
|
||||
|
||||
|
||||
## Release 0.137
|
||||
|
||||
#### Fixed
|
||||
- Fixed imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
|
||||
#### Changed
|
||||
- Ensured CI tests are platform agnostic (amd64 vs arm64)
|
||||
- Ensured CI pipeline will work for long-running jobs
|
||||
|
||||
#### Removed
|
||||
- Removed homebrew due to arm64 issues
|
||||
- Removed postgres cmd client and apt repositories due to arm64 issues
|
||||
- Removed mongodb cmd client and apt repositories due to arm64 issues
|
||||
- Removed Ansible due to arm64 issues
|
||||
|
||||
|
||||
## Release 0.136
|
||||
|
||||
#### Fixed
|
||||
- Fixed `mongodb-org-shell` and `mongodb-org-tools` install
|
||||
|
||||
#### Added
|
||||
- Re-added `mongodb` for PHP 5.3
|
||||
|
||||
#### Changed
|
||||
- Switch PHP 5.4 base image to [devilbox/php-fpm-5.4](https://github.com/devilbox/docker-php-fpm-5.4) for potential arm64 support
|
||||
- Switch PHP 5.5 base image to [devilbox/php-fpm-5.5](https://github.com/devilbox/docker-php-fpm-5.5) for potential arm64 support
|
||||
- Changed base image back to Debian Jessie for PHP 5.2 and PHP 5.3
|
||||
|
||||
|
||||
## Release 0.135
|
||||
|
||||
#### Fixed
|
||||
- Fixed cloning of gitflow
|
||||
- Fixed pidof issue on QUEMU by replacing it with pgrep [#854](https://github.com/cytopia/devilbox/issues/854)
|
||||
|
||||
#### Changed
|
||||
- Changed PHP 5.2 and PHP 5.3 base images to Debian stretch
|
||||
- Removed photoncms binaries (their GitHub organization went private)
|
||||
- Removed `mongodb` extension from PHP 5.3 due to build errors
|
||||
- Removed `ioncube` extension for PHP 5.2, PHP 5.3 and PHP 5.4 (arm64 only supported from PHP 5.5 onwards)
|
||||
- Removed `codeception` from PHP 5.3
|
||||
|
||||
|
||||
## Release 0.134
|
||||
|
||||
#### Changed
|
||||
- Added extension `xdebug` to PHP 8.2
|
||||
|
||||
|
||||
## Release 0.133
|
||||
|
||||
#### Added
|
||||
- Added PHP 8.2: https://github.com/devilbox/docker-php-fpm-8.2
|
||||
|
||||
|
||||
## Release 0.132
|
||||
|
||||
#### Fixed
|
||||
- Fixed `nvm` PATH priority [#846](https://github.com/cytopia/devilbox/issues/846)
|
||||
|
||||
#### Added
|
||||
- added extension `sqlsrv` to php 8.1
|
||||
- added extension `pdo_sqlsrv` to php 8.1
|
||||
|
||||
#### Changed
|
||||
- Changed postfix hostname to `localhost` instead of GitHub runners long name
|
||||
|
||||
|
||||
## Release 0.131
|
||||
|
||||
#### Added
|
||||
- Added binary `sqlite3` to all PHP images [#856](https://github.com/cytopia/devilbox/issues/856)
|
||||
- Added binary `laravel` to PHP 8.0 and PHP 8.1 [#823](https://github.com/cytopia/devilbox/issues/823)
|
||||
- Added AVIF support in GD for PHP 8.1 [#834](https://github.com/cytopia/devilbox/issues/834)
|
||||
- Added extension `amqp` to PHP 8.0 and PHP 8.1 [#826](https://github.com/cytopia/devilbox/issues/826)
|
||||
- Added extension `uploadprogress` to PHP 8.0 and PHP 8.1 [#158](https://github.com/devilbox/docker-php-fpm/pull/158)
|
||||
- Added extension `imagick` to PHP 8.0 and PHP 8.1
|
||||
- Added extension `rdkafka` to PHP 8.0 and PHP 8.1
|
||||
- Added extension `xlswriter` to PHP 8.1
|
||||
- Added extension `pdo_dblib` to PHP 8.1
|
||||
- Added extension `uuid` to all PHP versions (except 5.2)
|
||||
|
||||
#### Changed
|
||||
- Updated `php-cs-fixer` to latest version [#219](https://github.com/devilbox/docker-php-fpm/pull/219)
|
||||
|
||||
|
||||
## Release 0.130
|
||||
|
||||
#### Fixed
|
||||
- Fixed correct keys for `apt`
|
||||
|
||||
#### Added
|
||||
- Added integration checks for `apt update`
|
||||
|
||||
|
||||
## Release 0.129
|
||||
|
||||
#### Fixed
|
||||
- Pinned module: `uploadprogress`
|
||||
- Pinned module: `mongodb`
|
||||
- Pinned lib: `libenchant`
|
||||
- Pinned lib: `libicu`
|
||||
- Pinned lib: `libvpx`
|
||||
- Pinned PHP 8.0: https://github.com/devilbox/docker-php-fpm-8.0/pull/16
|
||||
- Pinned PHP 8.1: https://github.com/devilbox/docker-php-fpm-8.1/pull/9
|
||||
- Fixed `pgsql` apt key
|
||||
- Fixed `deployer` download on cert issues
|
||||
- Fixed `phpmd` download on cert issues
|
||||
- Fixed `phpunit` download on cert issues
|
||||
- Fixed `php-cs-fixer` download on cert issues
|
||||
- Fixed building `sockets` on PHP 8.0 and PHP 8.1
|
||||
- Fixed building `ffi` on PHP 7.4
|
||||
|
||||
#### Changed
|
||||
- Removed `mcrypt` from PHP 8.1 as it is not yet supported
|
||||
- Removed `enchant` from PHP 7.3 and PHP 7.4 as libenchant1 is not available via apt
|
||||
- Updated PHP 8.0 base image to BullsEye: https://github.com/devilbox/docker-php-fpm-8.0/pull/17
|
||||
- Updated PHP 8.1 base image to BullsEye: https://github.com/devilbox/docker-php-fpm-8.1/pull/10
|
||||
- Updated PostgreSQL repos to Bullseye for PHP >= 7.3
|
||||
- Updated `pip` to use Python3 for PHP >= 7.3
|
||||
|
||||
|
||||
## Release 0.128
|
||||
|
||||
#### Added
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM devilbox/php-fpm-5.2
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -44,15 +45,10 @@ RUN set -eux \
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& rm -f /etc/apt/sources.list \
|
||||
&& { \
|
||||
echo "deb http://ftp.debian.org/debian jessie main"; \
|
||||
echo "#deb http://ftp.debian.org/debian jessie-updates main"; \
|
||||
echo "deb http://security.debian.org/debian-security jessie/updates main"; \
|
||||
} | tee /etc/apt/sources.list
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM devilbox/php-fpm-5.3
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -44,15 +45,10 @@ RUN set -eux \
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& rm -f /etc/apt/sources.list \
|
||||
&& { \
|
||||
echo "deb http://ftp.debian.org/debian jessie main"; \
|
||||
echo "#deb http://ftp.debian.org/debian jessie-updates main"; \
|
||||
echo "deb http://security.debian.org/debian-security jessie/updates main"; \
|
||||
} | tee /etc/apt/sources.list
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM php:5.4-fpm
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM devilbox/php-fpm-5.4
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
|
||||
@@ -44,15 +45,10 @@ RUN set -eux \
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& rm -f /etc/apt/sources.list \
|
||||
&& { \
|
||||
echo "deb http://ftp.debian.org/debian jessie main"; \
|
||||
echo "#deb http://ftp.debian.org/debian jessie-updates main"; \
|
||||
echo "deb http://security.debian.org/debian-security jessie/updates main"; \
|
||||
} | tee /etc/apt/sources.list
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM php:5.5-fpm
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM devilbox/php-fpm-5.5
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
|
||||
@@ -44,15 +45,10 @@ RUN set -eux \
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& rm -f /etc/apt/sources.list \
|
||||
&& { \
|
||||
echo "deb http://ftp.debian.org/debian jessie main"; \
|
||||
echo "#deb http://ftp.debian.org/debian jessie-updates main"; \
|
||||
echo "deb http://security.debian.org/debian-security jessie/updates main"; \
|
||||
} | tee /etc/apt/sources.list
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM php:5.6-fpm
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -44,8 +45,10 @@ RUN set -eux \
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM php:7.0-fpm
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -44,8 +45,10 @@ RUN set -eux \
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM php:7.1-fpm
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -44,8 +45,10 @@ RUN set -eux \
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM php:7.2-fpm
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -44,8 +45,10 @@ RUN set -eux \
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM php:7.3-fpm
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -44,8 +45,10 @@ RUN set -eux \
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM php:7.4-fpm
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -44,8 +45,10 @@ RUN set -eux \
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM devilbox/php-fpm-8.0
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -44,8 +45,10 @@ RUN set -eux \
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM devilbox/php-fpm-8.1
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -44,8 +45,10 @@ RUN set -eux \
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
|
||||
107
Dockerfiles/base/Dockerfile-8.2
Normal file
107
Dockerfiles/base/Dockerfile-8.2
Normal file
@@ -0,0 +1,107 @@
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM devilbox/php-fpm-8.2
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="8.2-base"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 8.2-base"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 8.2-base"
|
||||
|
||||
|
||||
###
|
||||
### Envs
|
||||
###
|
||||
ENV MY_USER="devilbox" \
|
||||
MY_GROUP="devilbox" \
|
||||
MY_UID="1000" \
|
||||
MY_GID="1000" \
|
||||
PHP_VERSION="8.2"
|
||||
|
||||
|
||||
###
|
||||
### User/Group
|
||||
###
|
||||
RUN set -eux \
|
||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||
|
||||
|
||||
###
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
###
|
||||
### Configure
|
||||
###
|
||||
RUN set -eux \
|
||||
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /var/lib/php/session \
|
||||
&& mkdir -p /var/lib/php/wsdlcache \
|
||||
&& chown -R devilbox:devilbox /var/lib/php/session \
|
||||
&& chown -R devilbox:devilbox /var/lib/php/wsdlcache
|
||||
|
||||
|
||||
###
|
||||
### Copy files
|
||||
###
|
||||
COPY ./data/php-ini.d/php-8.2.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
|
||||
COPY ./data/php-fpm.conf/php-fpm-8.2.conf /usr/local/etc/php-fpm.conf
|
||||
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^8.2' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
\
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
\
|
||||
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/local/sbin/php-fpm"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
48
Dockerfiles/base/data/php-ini.d/php-8.2.ini
Normal file
48
Dockerfiles/base/data/php-ini.d/php-8.2.ini
Normal file
@@ -0,0 +1,48 @@
|
||||
; ############################################################
|
||||
; # Devilbox PHP defaults for 8.2-base
|
||||
; ############################################################
|
||||
|
||||
; Each PHP flavour (base, mods, prod, work) might have its own php.ini.
|
||||
; If none is present, the one from the previous flavour is inherited.
|
||||
|
||||
|
||||
[PHP]
|
||||
|
||||
; Memory
|
||||
; Note: "memory_limit" should be larger than "post_max_size"
|
||||
memory_limit = 512M
|
||||
|
||||
|
||||
; Timeouts
|
||||
max_execution_time = 120
|
||||
max_input_time = 120
|
||||
|
||||
|
||||
; Uploads
|
||||
; Note: "post_max_size" should be greater than "upload_max_filesize"
|
||||
post_max_size = 72M
|
||||
upload_max_filesize = 64M
|
||||
max_file_uploads = 20
|
||||
|
||||
|
||||
; Vars
|
||||
variables_order = EGPCS
|
||||
max_input_vars = 8000
|
||||
max_input_nesting_level = 64
|
||||
|
||||
|
||||
; Error reporting
|
||||
; Note: error_log is dynamic and handled during start to set appropriate setting
|
||||
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
|
||||
xmlrpc_errors = Off
|
||||
report_memleaks = On
|
||||
display_errors = Off
|
||||
display_startup_errors = Off
|
||||
log_errors = On
|
||||
html_errors = Off
|
||||
|
||||
|
||||
; Xdebug settings
|
||||
xdebug.mode = Off
|
||||
xdebug.start_with_request = default
|
||||
xdebug.client_port = 9000
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:5.2-base as builder
|
||||
|
||||
|
||||
@@ -6,9 +7,8 @@ FROM devilbox/php-fpm:5.2-base as builder
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
firebird-dev \
|
||||
freetds-dev \
|
||||
libbz2-dev \
|
||||
@@ -26,24 +26,47 @@ RUN set -eux \
|
||||
libmagic-dev \
|
||||
libmcrypt-dev \
|
||||
libmemcached-dev \
|
||||
libmysqlclient-dev \
|
||||
libpcre3-dev \
|
||||
libpng-dev \
|
||||
libpq-dev \
|
||||
libpspell-dev \
|
||||
librabbitmq-dev \
|
||||
librecode-dev \
|
||||
libsasl2-dev \
|
||||
libsnmp-dev \
|
||||
libssl-dev \
|
||||
libtidy-dev \
|
||||
libvpx-dev \
|
||||
libwebp-dev \
|
||||
libxml2-dev \
|
||||
libxpm-dev \
|
||||
libxslt-dev \
|
||||
libzip-dev \
|
||||
snmp \
|
||||
zlib1g-dev \
|
||||
# Build tools
|
||||
autoconf \
|
||||
bison \
|
||||
bisonc++ \
|
||||
ca-certificates \
|
||||
git
|
||||
curl \
|
||||
dpkg-dev \
|
||||
file \
|
||||
flex \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
lemon \
|
||||
libc-client-dev \
|
||||
libc-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libssl-dev \
|
||||
make \
|
||||
patch \
|
||||
pkg-config \
|
||||
re2c \
|
||||
xz-utils \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||
@@ -60,29 +83,12 @@ RUN set -eux \
|
||||
echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \
|
||||
fi
|
||||
|
||||
# -------------------- Installing PHP Extension: ioncube --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Custom extension
|
||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
||||
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
|
||||
&& tar xvfz ioncube.tar.gz \
|
||||
&& cd ioncube \
|
||||
&& cp "ioncube_loader_lin_5.2.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||
&& cd ../ \
|
||||
&& rm -rf ioncube \
|
||||
&& rm -rf ioncube.tar.gz \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: amqp --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install amqp-1.4.0 \
|
||||
&& pecl install amqp-1.6.1 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable amqp \
|
||||
&& true
|
||||
@@ -150,22 +156,12 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ftp --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure ftp --with-openssl-dir \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: gd --------------------
|
||||
RUN set -eux \
|
||||
# Version specific pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libjpeg.* /usr/lib/ && \
|
||||
ln -s /usr/lib/x86_64-linux-gnu/libpng.* /usr/lib/ && \
|
||||
ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ && \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libjpeg.* /usr/lib/ && \
|
||||
ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libpng.* /usr/lib/ && \
|
||||
ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ && \
|
||||
mkdir /usr/include/freetype2/freetype && \
|
||||
ln -s /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype.h \
|
||||
\
|
||||
@@ -200,7 +196,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: imap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libkrb5* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -231,7 +227,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: ldap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libldap* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -249,17 +245,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install msgpack-0.5.7 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable msgpack \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcache --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -271,6 +256,17 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install msgpack-0.5.7 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable msgpack \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcached --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -293,6 +289,25 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: mysql --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure mysql --with-mysql --with-mysql-sock --with-zlib-dir=/usr --with-libdir="/lib/$(dpkg-architecture --query DEB_BUILD_MULTIARCH)" \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysql \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: mysqli --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: oauth --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -326,7 +341,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libsybdb.* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
||||
@@ -341,6 +356,17 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: pdo_mysql --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Default: configure command
|
||||
&& docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: pdo_pgsql --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -357,6 +383,22 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& if [ -f /usr/include/liblzf/lzf.h ]; then \
|
||||
ln -s /usr/include/liblzf/lzf.h /usr/include/; \
|
||||
fi \
|
||||
\
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install redis-2.2.7 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: phar --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -376,25 +418,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: recode --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install redis-2.2.7 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: shmop --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -408,11 +431,19 @@ RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure snmp --with-openssl-dir \
|
||||
&& docker-php-ext-configure snmp --with-snmp \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: soap --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: sockets --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -421,6 +452,17 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --enable-zip \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: sysvmsg --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -459,7 +501,7 @@ RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uploadprogress \
|
||||
&& pecl install uploadprogress-1.1.4 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uploadprogress \
|
||||
&& true
|
||||
@@ -504,22 +546,11 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
|
||||
|
||||
# Fix php.ini settings for enabled extensions
|
||||
RUN set -eux \
|
||||
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/*
|
||||
&& find "$(php -r 'echo ini_get("extension_dir");')/" -type f -exec chmod +x {} \;
|
||||
|
||||
# Fix oracle dir for images that don't have oci installed
|
||||
RUN set -eux \
|
||||
@@ -527,13 +558,13 @@ RUN set -eux \
|
||||
|
||||
# Shrink everything down
|
||||
RUN set -eux \
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:5.2-base as final
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -556,6 +587,42 @@ LABEL "org.opencontainers.image.title"="PHP-FPM 5.2-mods"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 5.2-mods"
|
||||
|
||||
|
||||
###
|
||||
### Install runtime libraries
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
libaspell15 \
|
||||
libc-client2007e \
|
||||
libenchant1c2a \
|
||||
libevent-2.0-5 \
|
||||
libfbclient2 \
|
||||
libfreetype6 \
|
||||
libicu52 \
|
||||
libjpeg62-turbo \
|
||||
libmagic1 \
|
||||
libmcrypt4 \
|
||||
libmemcachedutil2 \
|
||||
libmysqlclient18 \
|
||||
libpng12-0 \
|
||||
libpq5 \
|
||||
librabbitmq1 \
|
||||
librecode0 \
|
||||
libsybdb5 \
|
||||
libtidy-0.99-0 \
|
||||
libvpx1 \
|
||||
libwebp5 \
|
||||
libxpm4 \
|
||||
libxslt1.1 \
|
||||
libzip2 \
|
||||
snmp \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& update-ca-certificates
|
||||
|
||||
|
||||
###
|
||||
### Copy artifacts from builder
|
||||
###
|
||||
@@ -568,39 +635,7 @@ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libaspell15 \
|
||||
libc-client2007e \
|
||||
libenchant1c2a \
|
||||
libfbclient2 \
|
||||
libfreetype6 \
|
||||
libicu52 \
|
||||
libjpeg62-turbo \
|
||||
libmcrypt4 \
|
||||
libmemcachedutil2 \
|
||||
libmysqlclient18 \
|
||||
libpng12-0 \
|
||||
libpq5 \
|
||||
librabbitmq1 \
|
||||
librecode0 \
|
||||
libsybdb5 \
|
||||
libtidy-0.99-0 \
|
||||
libvpx1 \
|
||||
libxpm4 \
|
||||
libxslt1.1 \
|
||||
snmp \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& update-ca-certificates
|
||||
|
||||
|
||||
###
|
||||
### Post Install
|
||||
### Post Install executions
|
||||
###
|
||||
###
|
||||
### Verify
|
||||
@@ -633,12 +668,18 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^ctype$' \
|
||||
&& php -m | grep -oiE '^curl$' \
|
||||
&& php-fpm -m | grep -oiE '^curl$' \
|
||||
&& php -m | grep -oiE '^date$' \
|
||||
&& php-fpm -m | grep -oiE '^date$' \
|
||||
&& php -m | grep -oiE '^dba$' \
|
||||
&& php-fpm -m | grep -oiE '^dba$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^dom$' \
|
||||
&& php-fpm -m | grep -oiE '^dom$' \
|
||||
&& php -m | grep -oiE '^enchant$' \
|
||||
&& php-fpm -m | grep -oiE '^enchant$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^exif$' \
|
||||
&& php-fpm -m | grep -oiE '^exif$' \
|
||||
&& php -m | grep -oiE '^fileinfo$' \
|
||||
@@ -667,24 +708,24 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^json$' \
|
||||
&& php -m | grep -oiE '^ldap$' \
|
||||
&& php-fpm -m | grep -oiE '^ldap$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^mcrypt$' \
|
||||
&& php-fpm -m | grep -oiE '^mcrypt$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcache$' \
|
||||
&& php-fpm -m | grep -oiE '^memcache$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcached$' \
|
||||
&& php-fpm -m | grep -oiE '^memcached$' \
|
||||
&& php -m | grep -oiE '^mhash$' \
|
||||
&& php-fpm -m | grep -oiE '^mhash$' \
|
||||
&& php -m | grep -oiE '^mongo$' \
|
||||
&& php-fpm -m | grep -oiE '^mongo$' \
|
||||
&& php -m | grep -oiE '^mysql$' \
|
||||
&& php-fpm -m | grep -oiE '^mysql$' \
|
||||
&& php -m | grep -oiE '^mysqli$' \
|
||||
&& php-fpm -m | grep -oiE '^mysqli$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^oauth$' \
|
||||
&& php-fpm -m | grep -oiE '^oauth$' \
|
||||
&& php -m | grep -oiE '^Zend Opcache$' \
|
||||
@@ -693,8 +734,6 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^openssl$' \
|
||||
&& php -m | grep -oiE '^pcntl$' \
|
||||
&& php-fpm -m | grep -oiE '^pcntl$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^pdo$' \
|
||||
&& php-fpm -m | grep -oiE '^pdo$' \
|
||||
&& php -m | grep -oiE '^pdo_dblib$' \
|
||||
@@ -709,6 +748,8 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^pdo_sqlite$' \
|
||||
&& php -m | grep -oiE '^pgsql$' \
|
||||
&& php-fpm -m | grep -oiE '^pgsql$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^phar$' \
|
||||
&& php-fpm -m | grep -oiE '^phar$' \
|
||||
&& php -m | grep -oiE '^posix$' \
|
||||
@@ -718,8 +759,6 @@ RUN set -eux \
|
||||
&& php -m | grep -oiE '^readline$' \
|
||||
&& php -m | grep -oiE '^recode$' \
|
||||
&& php-fpm -m | grep -oiE '^recode$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^reflection$' \
|
||||
&& php-fpm -m | grep -oiE '^reflection$' \
|
||||
&& php -m | grep -oiE '^session$' \
|
||||
@@ -736,6 +775,12 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^sockets$' \
|
||||
&& php -m | grep -oiE '^spl$' \
|
||||
&& php-fpm -m | grep -oiE '^spl$' \
|
||||
&& php -m | grep -oiE '^sqlite$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlite$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^sysvmsg$' \
|
||||
&& php-fpm -m | grep -oiE '^sysvmsg$' \
|
||||
&& php -m | grep -oiE '^sysvsem$' \
|
||||
@@ -752,8 +797,6 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^wddx$' \
|
||||
&& php -m | grep -oiE '^xdebug$' \
|
||||
&& php-fpm -m | grep -oiE '^xdebug$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^xmlreader$' \
|
||||
&& php-fpm -m | grep -oiE '^xmlreader$' \
|
||||
&& php -m | grep -oiE '^xmlrpc$' \
|
||||
@@ -762,8 +805,8 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^xmlwriter$' \
|
||||
&& php -m | grep -oiE '^xsl$' \
|
||||
&& php-fpm -m | grep -oiE '^xsl$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^zlib$' \
|
||||
&& php-fpm -m | grep -oiE '^zlib$' \
|
||||
&& true
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:5.3-base as builder
|
||||
|
||||
|
||||
@@ -6,14 +7,14 @@ FROM devilbox/php-fpm:5.3-base as builder
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
alien \
|
||||
firebird-dev \
|
||||
freetds-dev \
|
||||
libaio-dev \
|
||||
libbz2-dev \
|
||||
libc-ares-dev \
|
||||
libc-client-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libenchant-dev \
|
||||
@@ -28,6 +29,7 @@ RUN set -eux \
|
||||
libldap2-dev \
|
||||
libmcrypt-dev \
|
||||
libmemcached-dev \
|
||||
libmysqlclient-dev \
|
||||
libnghttp2-dev \
|
||||
libpcre3-dev \
|
||||
libpng-dev \
|
||||
@@ -40,14 +42,39 @@ RUN set -eux \
|
||||
libssl-dev \
|
||||
libtidy-dev \
|
||||
libvpx-dev \
|
||||
libwebp-dev \
|
||||
libxml2-dev \
|
||||
libxpm-dev \
|
||||
libxslt-dev \
|
||||
libyaml-dev \
|
||||
libzip-dev \
|
||||
re2c \
|
||||
snmp \
|
||||
uuid-dev \
|
||||
zlib1g-dev \
|
||||
# Build tools
|
||||
autoconf \
|
||||
bison \
|
||||
bisonc++ \
|
||||
ca-certificates \
|
||||
git
|
||||
curl \
|
||||
dpkg-dev \
|
||||
file \
|
||||
flex \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
lemon \
|
||||
libc-client-dev \
|
||||
libc-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libssl-dev \
|
||||
make \
|
||||
patch \
|
||||
pkg-config \
|
||||
re2c \
|
||||
xz-utils \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||
@@ -64,23 +91,6 @@ RUN set -eux \
|
||||
echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \
|
||||
fi
|
||||
|
||||
# -------------------- Installing PHP Extension: ioncube --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Custom extension
|
||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
||||
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
|
||||
&& tar xvfz ioncube.tar.gz \
|
||||
&& cd ioncube \
|
||||
&& cp "ioncube_loader_lin_5.3.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||
&& cd ../ \
|
||||
&& rm -rf ioncube \
|
||||
&& rm -rf ioncube.tar.gz \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: amqp --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -151,20 +161,15 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ftp --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure ftp --with-openssl-dir \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: gd --------------------
|
||||
RUN set -eux \
|
||||
# Version specific pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ && mkdir /usr/include/freetype2/freetype && ln -s /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype.h \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libjpeg.* /usr/lib/ && \
|
||||
ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libpng.* /usr/lib/ && \
|
||||
ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ && \
|
||||
mkdir /usr/include/freetype2/freetype && \
|
||||
ln -s /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype.h \
|
||||
\
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -185,7 +190,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: gmp --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
|
||||
&& ln /usr/include/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/gmp.h /usr/include/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
||||
@@ -206,7 +211,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: imap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libkrb5* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -235,7 +240,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: ldap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libldap* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -244,14 +249,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: mbstring --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: mcrypt --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -261,17 +258,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install msgpack-0.5.7 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable msgpack \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcache --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -283,6 +269,17 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install msgpack-0.5.7 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable msgpack \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcached --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -316,10 +313,21 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: mysqli --------------------
|
||||
# -------------------- Installing PHP Extension: mysql --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure mysql --with-mysql --with-mysql-sock --with-zlib-dir=/usr --with-libdir="/lib/$(dpkg-architecture --query DEB_BUILD_MULTIARCH)" \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysql \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: mysqli --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \
|
||||
&& true
|
||||
|
||||
@@ -338,19 +346,32 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: oci8 --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
\
|
||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
\
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
@@ -358,7 +379,14 @@ RUN set -eux \
|
||||
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
||||
# Generic post-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
@@ -388,7 +416,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libsybdb.* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
||||
@@ -405,10 +433,11 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: pdo_mysql --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
# Default: configure command
|
||||
&& docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \
|
||||
&& true
|
||||
|
||||
@@ -429,6 +458,22 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& if [ -f /usr/include/liblzf/lzf.h ]; then \
|
||||
ln -s /usr/include/liblzf/lzf.h /usr/include/; \
|
||||
fi \
|
||||
\
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install redis-4.3.0 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: phalcon --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -452,17 +497,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install redis-4.3.0 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: rdkafka --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -487,7 +521,7 @@ RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure snmp --with-openssl-dir \
|
||||
&& docker-php-ext-configure snmp --with-snmp \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
|
||||
&& true
|
||||
|
||||
@@ -496,8 +530,6 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure soap --with-libxml-dir=/usr \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \
|
||||
&& true
|
||||
|
||||
@@ -510,6 +542,17 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --enable-zip --with-zlib-dir=/usr --with-pcre-dir=/usr \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: swoole --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -559,12 +602,23 @@ RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uploadprogress \
|
||||
&& pecl install uploadprogress-1.1.4 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uploadprogress \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: uuid --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uuid-1.0.5 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uuid \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: wddx --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -615,22 +669,11 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
|
||||
|
||||
# Fix php.ini settings for enabled extensions
|
||||
RUN set -eux \
|
||||
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/*
|
||||
&& find "$(php -r 'echo ini_get("extension_dir");')/" -type f -exec chmod +x {} \;
|
||||
|
||||
# Fix oracle dir for images that don't have oci installed
|
||||
RUN set -eux \
|
||||
@@ -638,13 +681,13 @@ RUN set -eux \
|
||||
|
||||
# Shrink everything down
|
||||
RUN set -eux \
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:5.3-base as final
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -668,26 +711,17 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 5.3-mods"
|
||||
|
||||
|
||||
###
|
||||
### Copy artifacts from builder
|
||||
###
|
||||
ARG EXT_DIR
|
||||
COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/
|
||||
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
|
||||
COPY --from=builder /usr/local/bin/ /usr/local/bin/
|
||||
COPY --from=builder /usr/local/lib/ /usr/local/lib/
|
||||
COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
### Install runtime libraries
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
libaio1 \
|
||||
libaspell15 \
|
||||
libc-ares2 \
|
||||
libc-client2007e \
|
||||
libenchant1c2a \
|
||||
libevent-2.0-5 \
|
||||
libfbclient2 \
|
||||
libfreetype6 \
|
||||
libicu52 \
|
||||
@@ -701,13 +735,18 @@ RUN set -eux \
|
||||
librabbitmq1 \
|
||||
librdkafka1 \
|
||||
librecode0 \
|
||||
libssl1.0.0 \
|
||||
libsybdb5 \
|
||||
libtidy-0.99-0 \
|
||||
libvpx1 \
|
||||
libwebp5 \
|
||||
libxpm4 \
|
||||
libxslt1.1 \
|
||||
libyaml-0-2 \
|
||||
libzip2 \
|
||||
snmp \
|
||||
uuid \
|
||||
zlib1g \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
@@ -715,11 +754,29 @@ RUN set -eux \
|
||||
|
||||
|
||||
###
|
||||
### Post Install
|
||||
### Copy artifacts from builder
|
||||
###
|
||||
ARG EXT_DIR
|
||||
COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/
|
||||
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
|
||||
COPY --from=builder /usr/local/bin/ /usr/local/bin/
|
||||
COPY --from=builder /usr/local/lib/ /usr/local/lib/
|
||||
COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Post Install executions
|
||||
###
|
||||
RUN set -eux \
|
||||
# ---------- oci8 ----------
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
@@ -748,6 +805,8 @@ RUN set -eux \
|
||||
\
|
||||
&& php -m | grep -oiE '^amqp$' \
|
||||
&& php-fpm -m | grep -oiE '^amqp$' \
|
||||
&& php -m | grep -oiE '^apc$' \
|
||||
&& php-fpm -m | grep -oiE '^apc$' \
|
||||
&& php -m | grep -oiE '^apcu$' \
|
||||
&& php-fpm -m | grep -oiE '^apcu$' \
|
||||
&& php -m | grep -oiE '^bcmath$' \
|
||||
@@ -760,12 +819,20 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^ctype$' \
|
||||
&& php -m | grep -oiE '^curl$' \
|
||||
&& php-fpm -m | grep -oiE '^curl$' \
|
||||
&& php -m | grep -oiE '^date$' \
|
||||
&& php-fpm -m | grep -oiE '^date$' \
|
||||
&& php -m | grep -oiE '^dba$' \
|
||||
&& php-fpm -m | grep -oiE '^dba$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^dom$' \
|
||||
&& php-fpm -m | grep -oiE '^dom$' \
|
||||
&& php -m | grep -oiE '^enchant$' \
|
||||
&& php-fpm -m | grep -oiE '^enchant$' \
|
||||
&& php -m | grep -oiE '^ereg$' \
|
||||
&& php-fpm -m | grep -oiE '^ereg$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^exif$' \
|
||||
&& php-fpm -m | grep -oiE '^exif$' \
|
||||
&& php -m | grep -oiE '^fileinfo$' \
|
||||
@@ -796,18 +863,16 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^json$' \
|
||||
&& php -m | grep -oiE '^ldap$' \
|
||||
&& php-fpm -m | grep -oiE '^ldap$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^mcrypt$' \
|
||||
&& php-fpm -m | grep -oiE '^mcrypt$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcache$' \
|
||||
&& php-fpm -m | grep -oiE '^memcache$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcached$' \
|
||||
&& php-fpm -m | grep -oiE '^memcached$' \
|
||||
&& php -m | grep -oiE '^mhash$' \
|
||||
&& php-fpm -m | grep -oiE '^mhash$' \
|
||||
&& php -m | grep -oiE '^mongo$' \
|
||||
&& php-fpm -m | grep -oiE '^mongo$' \
|
||||
&& php -m | grep -oiE '^mongodb$' \
|
||||
@@ -818,6 +883,8 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^mysqli$' \
|
||||
&& php -m | grep -oiE '^mysqlnd$' \
|
||||
&& php-fpm -m | grep -oiE '^mysqlnd$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^oauth$' \
|
||||
&& php-fpm -m | grep -oiE '^oauth$' \
|
||||
&& php -m | grep -oiE '^oci8$' \
|
||||
@@ -828,8 +895,6 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^openssl$' \
|
||||
&& php -m | grep -oiE '^pcntl$' \
|
||||
&& php-fpm -m | grep -oiE '^pcntl$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^pdo$' \
|
||||
&& php-fpm -m | grep -oiE '^pdo$' \
|
||||
&& php -m | grep -oiE '^pdo_dblib$' \
|
||||
@@ -844,6 +909,10 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^pdo_sqlite$' \
|
||||
&& php -m | grep -oiE '^pgsql$' \
|
||||
&& php-fpm -m | grep -oiE '^pgsql$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^sqlite3$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlite3$' \
|
||||
&& php -m | grep -oiE '^phalcon$' \
|
||||
&& php-fpm -m | grep -oiE '^phalcon$' \
|
||||
&& php -m | grep -oiE '^phar$' \
|
||||
@@ -852,15 +921,13 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^posix$' \
|
||||
&& php -m | grep -oiE '^pspell$' \
|
||||
&& php-fpm -m | grep -oiE '^pspell$' \
|
||||
&& php -m | grep -oiE '^rdkafka$' \
|
||||
&& php-fpm -m | grep -oiE '^rdkafka$' \
|
||||
&& php -m | grep -oiE '^readline$' \
|
||||
&& php -m | grep -oiE '^recode$' \
|
||||
&& php-fpm -m | grep -oiE '^recode$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^reflection$' \
|
||||
&& php-fpm -m | grep -oiE '^reflection$' \
|
||||
&& php -m | grep -oiE '^rdkafka$' \
|
||||
&& php-fpm -m | grep -oiE '^rdkafka$' \
|
||||
&& php -m | grep -oiE '^session$' \
|
||||
&& php-fpm -m | grep -oiE '^session$' \
|
||||
&& php -m | grep -oiE '^shmop$' \
|
||||
@@ -875,6 +942,12 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^sockets$' \
|
||||
&& php -m | grep -oiE '^spl$' \
|
||||
&& php-fpm -m | grep -oiE '^spl$' \
|
||||
&& php -m | grep -oiE '^sqlite$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlite$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^swoole$' \
|
||||
&& php-fpm -m | grep -oiE '^swoole$' \
|
||||
&& php -m | grep -oiE '^sysvmsg$' \
|
||||
@@ -889,12 +962,12 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
||||
&& php -m | grep -oiE '^uploadprogress$' \
|
||||
&& php-fpm -m | grep -oiE '^uploadprogress$' \
|
||||
&& php -m | grep -oiE '^uuid$' \
|
||||
&& php-fpm -m | grep -oiE '^uuid$' \
|
||||
&& php -m | grep -oiE '^wddx$' \
|
||||
&& php-fpm -m | grep -oiE '^wddx$' \
|
||||
&& php -m | grep -oiE '^xdebug$' \
|
||||
&& php-fpm -m | grep -oiE '^xdebug$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^xmlreader$' \
|
||||
&& php-fpm -m | grep -oiE '^xmlreader$' \
|
||||
&& php -m | grep -oiE '^xmlrpc$' \
|
||||
@@ -905,8 +978,8 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^xsl$' \
|
||||
&& php -m | grep -oiE '^yaml$' \
|
||||
&& php-fpm -m | grep -oiE '^yaml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^zlib$' \
|
||||
&& php-fpm -m | grep -oiE '^zlib$' \
|
||||
&& true
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:5.4-base as builder
|
||||
|
||||
|
||||
@@ -6,14 +7,14 @@ FROM devilbox/php-fpm:5.4-base as builder
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
alien \
|
||||
firebird-dev \
|
||||
freetds-dev \
|
||||
libaio-dev \
|
||||
libbz2-dev \
|
||||
libc-ares-dev \
|
||||
libc-client-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libenchant-dev \
|
||||
@@ -28,6 +29,7 @@ RUN set -eux \
|
||||
libldap2-dev \
|
||||
libmcrypt-dev \
|
||||
libmemcached-dev \
|
||||
libmysqlclient-dev \
|
||||
libnghttp2-dev \
|
||||
libpcre3-dev \
|
||||
libpng-dev \
|
||||
@@ -40,14 +42,39 @@ RUN set -eux \
|
||||
libssl-dev \
|
||||
libtidy-dev \
|
||||
libvpx-dev \
|
||||
libwebp-dev \
|
||||
libxml2-dev \
|
||||
libxpm-dev \
|
||||
libxslt-dev \
|
||||
libyaml-dev \
|
||||
libzip-dev \
|
||||
re2c \
|
||||
snmp \
|
||||
uuid-dev \
|
||||
zlib1g-dev \
|
||||
# Build tools
|
||||
autoconf \
|
||||
bison \
|
||||
bisonc++ \
|
||||
ca-certificates \
|
||||
git
|
||||
curl \
|
||||
dpkg-dev \
|
||||
file \
|
||||
flex \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
lemon \
|
||||
libc-client-dev \
|
||||
libc-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libssl-dev \
|
||||
make \
|
||||
patch \
|
||||
pkg-config \
|
||||
re2c \
|
||||
xz-utils \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||
@@ -64,23 +91,6 @@ RUN set -eux \
|
||||
echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \
|
||||
fi
|
||||
|
||||
# -------------------- Installing PHP Extension: ioncube --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Custom extension
|
||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
||||
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
|
||||
&& tar xvfz ioncube.tar.gz \
|
||||
&& cd ioncube \
|
||||
&& cp "ioncube_loader_lin_5.4.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||
&& cd ../ \
|
||||
&& rm -rf ioncube \
|
||||
&& rm -rf ioncube.tar.gz \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: amqp --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -107,7 +117,7 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install bcmath \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -115,7 +125,7 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install bz2 \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -123,7 +133,7 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install calendar \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -131,7 +141,7 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install dba \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -139,7 +149,7 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install enchant \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -147,30 +157,25 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install exif \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ftp --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure ftp --with-openssl-dir \
|
||||
&& docker-php-ext-install ftp \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: gd --------------------
|
||||
RUN set -eux \
|
||||
# Version specific pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libjpeg.* /usr/lib/ && \
|
||||
ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libpng.* /usr/lib/ && \
|
||||
ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ && \
|
||||
mkdir /usr/include/freetype2/freetype && \
|
||||
ln -s /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype.h \
|
||||
\
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure gd --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-native-ttf \
|
||||
# Installation
|
||||
&& docker-php-ext-install gd \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -178,17 +183,17 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install gettext \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: gmp --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
|
||||
&& ln /usr/include/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/gmp.h /usr/include/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install gmp \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -206,12 +211,12 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: imap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libkrb5* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \
|
||||
&& docker-php-ext-install imap \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -219,7 +224,7 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install interbase \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -228,27 +233,19 @@ RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Installation
|
||||
&& docker-php-ext-install intl \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ldap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libldap* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \
|
||||
&& docker-php-ext-install ldap \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: mbstring --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install mbstring \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -257,18 +254,7 @@ RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Installation
|
||||
&& docker-php-ext-install mcrypt \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install msgpack-0.5.7 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable msgpack \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -283,6 +269,17 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install msgpack-0.5.7 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable msgpack \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcached --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -320,15 +317,18 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install mysql \
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure mysql --with-mysql --with-mysql-sock --with-zlib-dir=/usr --with-libdir="/lib/$(dpkg-architecture --query DEB_BUILD_MULTIARCH)" \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysql \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: mysqli --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install mysqli \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -346,27 +346,47 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: oci8 --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
\
|
||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
\
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
||||
&& docker-php-ext-install oci8 \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
||||
# Generic post-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
@@ -389,17 +409,17 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install pcntl \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libsybdb.* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install pdo_dblib \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -407,17 +427,18 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install pdo_firebird \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: pdo_mysql --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
# Default: configure command
|
||||
&& docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \
|
||||
&& docker-php-ext-install pdo_mysql \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -425,7 +446,7 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install pdo_pgsql \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -433,7 +454,7 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install pgsql \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -448,6 +469,22 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& if [ -f /usr/include/liblzf/lzf.h ]; then \
|
||||
ln -s /usr/include/liblzf/lzf.h /usr/include/; \
|
||||
fi \
|
||||
\
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install redis-4.3.0 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: phalcon --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -467,18 +504,7 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install pspell \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install redis-4.3.0 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -497,7 +523,7 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install shmop \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -506,8 +532,8 @@ RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure snmp --with-openssl-dir \
|
||||
&& docker-php-ext-install snmp \
|
||||
&& docker-php-ext-configure snmp --with-snmp \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -515,9 +541,7 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure soap --with-libxml-dir=/usr \
|
||||
&& docker-php-ext-install soap \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -525,7 +549,18 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install sockets \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --enable-zip --with-zlib-dir=/usr --with-pcre-dir=/usr \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -544,7 +579,7 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install sysvmsg \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -552,7 +587,7 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install sysvsem \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -560,7 +595,7 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install sysvshm \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -569,7 +604,7 @@ RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Installation
|
||||
&& docker-php-ext-install tidy \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -578,19 +613,30 @@ RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uploadprogress \
|
||||
&& pecl install uploadprogress-1.1.4 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uploadprogress \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: uuid --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uuid-1.0.5 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uuid \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: wddx --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure wddx --with-libxml-dir=/usr \
|
||||
&& docker-php-ext-install wddx \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -611,7 +657,7 @@ RUN set -eux \
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \
|
||||
&& docker-php-ext-install xmlrpc \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -619,7 +665,7 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install xsl \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -634,22 +680,11 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr \
|
||||
# Installation
|
||||
&& docker-php-ext-install zip \
|
||||
&& true
|
||||
|
||||
|
||||
|
||||
|
||||
# Fix php.ini settings for enabled extensions
|
||||
RUN set -eux \
|
||||
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/*
|
||||
&& find "$(php -r 'echo ini_get("extension_dir");')/" -type f -exec chmod +x {} \;
|
||||
|
||||
# Fix oracle dir for images that don't have oci installed
|
||||
RUN set -eux \
|
||||
@@ -657,13 +692,13 @@ RUN set -eux \
|
||||
|
||||
# Shrink everything down
|
||||
RUN set -eux \
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:5.4-base as final
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -687,26 +722,17 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 5.4-mods"
|
||||
|
||||
|
||||
###
|
||||
### Copy artifacts from builder
|
||||
###
|
||||
ARG EXT_DIR
|
||||
COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/
|
||||
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
|
||||
COPY --from=builder /usr/local/bin/ /usr/local/bin/
|
||||
COPY --from=builder /usr/local/lib/ /usr/local/lib/
|
||||
COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
### Install runtime libraries
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
libaio1 \
|
||||
libaspell15 \
|
||||
libc-ares2 \
|
||||
libc-client2007e \
|
||||
libenchant1c2a \
|
||||
libevent-2.0-5 \
|
||||
libfbclient2 \
|
||||
libfreetype6 \
|
||||
libicu52 \
|
||||
@@ -720,13 +746,18 @@ RUN set -eux \
|
||||
librabbitmq1 \
|
||||
librdkafka1 \
|
||||
librecode0 \
|
||||
libssl1.0.0 \
|
||||
libsybdb5 \
|
||||
libtidy-0.99-0 \
|
||||
libvpx1 \
|
||||
libwebp5 \
|
||||
libxpm4 \
|
||||
libxslt1.1 \
|
||||
libyaml-0-2 \
|
||||
libzip2 \
|
||||
snmp \
|
||||
uuid \
|
||||
zlib1g \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
@@ -734,11 +765,29 @@ RUN set -eux \
|
||||
|
||||
|
||||
###
|
||||
### Post Install
|
||||
### Copy artifacts from builder
|
||||
###
|
||||
ARG EXT_DIR
|
||||
COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/
|
||||
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
|
||||
COPY --from=builder /usr/local/bin/ /usr/local/bin/
|
||||
COPY --from=builder /usr/local/lib/ /usr/local/lib/
|
||||
COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Post Install executions
|
||||
###
|
||||
RUN set -eux \
|
||||
# ---------- oci8 ----------
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
@@ -767,6 +816,8 @@ RUN set -eux \
|
||||
\
|
||||
&& php -m | grep -oiE '^amqp$' \
|
||||
&& php-fpm -m | grep -oiE '^amqp$' \
|
||||
&& php -m | grep -oiE '^apc$' \
|
||||
&& php-fpm -m | grep -oiE '^apc$' \
|
||||
&& php -m | grep -oiE '^apcu$' \
|
||||
&& php-fpm -m | grep -oiE '^apcu$' \
|
||||
&& php -m | grep -oiE '^bcmath$' \
|
||||
@@ -779,12 +830,20 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^ctype$' \
|
||||
&& php -m | grep -oiE '^curl$' \
|
||||
&& php-fpm -m | grep -oiE '^curl$' \
|
||||
&& php -m | grep -oiE '^date$' \
|
||||
&& php-fpm -m | grep -oiE '^date$' \
|
||||
&& php -m | grep -oiE '^dba$' \
|
||||
&& php-fpm -m | grep -oiE '^dba$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^dom$' \
|
||||
&& php-fpm -m | grep -oiE '^dom$' \
|
||||
&& php -m | grep -oiE '^enchant$' \
|
||||
&& php-fpm -m | grep -oiE '^enchant$' \
|
||||
&& php -m | grep -oiE '^ereg$' \
|
||||
&& php-fpm -m | grep -oiE '^ereg$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^exif$' \
|
||||
&& php-fpm -m | grep -oiE '^exif$' \
|
||||
&& php -m | grep -oiE '^fileinfo$' \
|
||||
@@ -815,18 +874,16 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^json$' \
|
||||
&& php -m | grep -oiE '^ldap$' \
|
||||
&& php-fpm -m | grep -oiE '^ldap$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^mcrypt$' \
|
||||
&& php-fpm -m | grep -oiE '^mcrypt$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcache$' \
|
||||
&& php-fpm -m | grep -oiE '^memcache$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcached$' \
|
||||
&& php-fpm -m | grep -oiE '^memcached$' \
|
||||
&& php -m | grep -oiE '^mhash$' \
|
||||
&& php-fpm -m | grep -oiE '^mhash$' \
|
||||
&& php -m | grep -oiE '^mongo$' \
|
||||
&& php-fpm -m | grep -oiE '^mongo$' \
|
||||
&& php -m | grep -oiE '^mongodb$' \
|
||||
@@ -837,6 +894,8 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^mysqli$' \
|
||||
&& php -m | grep -oiE '^mysqlnd$' \
|
||||
&& php-fpm -m | grep -oiE '^mysqlnd$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^oauth$' \
|
||||
&& php-fpm -m | grep -oiE '^oauth$' \
|
||||
&& php -m | grep -oiE '^oci8$' \
|
||||
@@ -847,8 +906,6 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^openssl$' \
|
||||
&& php -m | grep -oiE '^pcntl$' \
|
||||
&& php-fpm -m | grep -oiE '^pcntl$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^pdo$' \
|
||||
&& php-fpm -m | grep -oiE '^pdo$' \
|
||||
&& php -m | grep -oiE '^pdo_dblib$' \
|
||||
@@ -865,6 +922,10 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^pgsql$' \
|
||||
&& php -m | grep -oiE '^psr$' \
|
||||
&& php-fpm -m | grep -oiE '^psr$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^sqlite3$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlite3$' \
|
||||
&& php -m | grep -oiE '^phalcon$' \
|
||||
&& php-fpm -m | grep -oiE '^phalcon$' \
|
||||
&& php -m | grep -oiE '^phar$' \
|
||||
@@ -873,15 +934,13 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^posix$' \
|
||||
&& php -m | grep -oiE '^pspell$' \
|
||||
&& php-fpm -m | grep -oiE '^pspell$' \
|
||||
&& php -m | grep -oiE '^rdkafka$' \
|
||||
&& php-fpm -m | grep -oiE '^rdkafka$' \
|
||||
&& php -m | grep -oiE '^readline$' \
|
||||
&& php -m | grep -oiE '^recode$' \
|
||||
&& php-fpm -m | grep -oiE '^recode$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^reflection$' \
|
||||
&& php-fpm -m | grep -oiE '^reflection$' \
|
||||
&& php -m | grep -oiE '^rdkafka$' \
|
||||
&& php-fpm -m | grep -oiE '^rdkafka$' \
|
||||
&& php -m | grep -oiE '^session$' \
|
||||
&& php-fpm -m | grep -oiE '^session$' \
|
||||
&& php -m | grep -oiE '^shmop$' \
|
||||
@@ -896,6 +955,10 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^sockets$' \
|
||||
&& php -m | grep -oiE '^spl$' \
|
||||
&& php-fpm -m | grep -oiE '^spl$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^swoole$' \
|
||||
&& php-fpm -m | grep -oiE '^swoole$' \
|
||||
&& php -m | grep -oiE '^sysvmsg$' \
|
||||
@@ -910,12 +973,12 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
||||
&& php -m | grep -oiE '^uploadprogress$' \
|
||||
&& php-fpm -m | grep -oiE '^uploadprogress$' \
|
||||
&& php -m | grep -oiE '^uuid$' \
|
||||
&& php-fpm -m | grep -oiE '^uuid$' \
|
||||
&& php -m | grep -oiE '^wddx$' \
|
||||
&& php-fpm -m | grep -oiE '^wddx$' \
|
||||
&& php -m | grep -oiE '^xdebug$' \
|
||||
&& php-fpm -m | grep -oiE '^xdebug$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^xmlreader$' \
|
||||
&& php-fpm -m | grep -oiE '^xmlreader$' \
|
||||
&& php -m | grep -oiE '^xmlrpc$' \
|
||||
@@ -926,8 +989,8 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^xsl$' \
|
||||
&& php -m | grep -oiE '^yaml$' \
|
||||
&& php-fpm -m | grep -oiE '^yaml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^zlib$' \
|
||||
&& php-fpm -m | grep -oiE '^zlib$' \
|
||||
&& true
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:5.5-base as builder
|
||||
|
||||
|
||||
@@ -6,15 +7,15 @@ FROM devilbox/php-fpm:5.5-base as builder
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
alien \
|
||||
firebird-dev \
|
||||
freetds-dev \
|
||||
ghostscript \
|
||||
libaio-dev \
|
||||
libbz2-dev \
|
||||
libc-ares-dev \
|
||||
libc-client-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libenchant-dev \
|
||||
@@ -30,6 +31,7 @@ RUN set -eux \
|
||||
libmagickwand-dev \
|
||||
libmcrypt-dev \
|
||||
libmemcached-dev \
|
||||
libmysqlclient-dev \
|
||||
libnghttp2-dev \
|
||||
libpcre3-dev \
|
||||
libpng-dev \
|
||||
@@ -37,21 +39,44 @@ RUN set -eux \
|
||||
libpspell-dev \
|
||||
librabbitmq-dev \
|
||||
librdkafka-dev \
|
||||
librecode-dev \
|
||||
libsasl2-dev \
|
||||
libsnmp-dev \
|
||||
libssl-dev \
|
||||
libtidy-dev \
|
||||
libvpx-dev \
|
||||
libwebp5 \
|
||||
libwebp-dev \
|
||||
libxml2-dev \
|
||||
libxpm-dev \
|
||||
libxslt-dev \
|
||||
libyaml-dev \
|
||||
libzip-dev \
|
||||
re2c \
|
||||
snmp \
|
||||
uuid-dev \
|
||||
zlib1g-dev \
|
||||
# Build tools
|
||||
autoconf \
|
||||
bison \
|
||||
bisonc++ \
|
||||
ca-certificates \
|
||||
git
|
||||
curl \
|
||||
dpkg-dev \
|
||||
file \
|
||||
flex \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
lemon \
|
||||
libc-client-dev \
|
||||
libc-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libssl-dev \
|
||||
make \
|
||||
patch \
|
||||
pkg-config \
|
||||
re2c \
|
||||
xz-utils \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||
@@ -68,23 +93,6 @@ RUN set -eux \
|
||||
echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \
|
||||
fi
|
||||
|
||||
# -------------------- Installing PHP Extension: ioncube --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Custom extension
|
||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
||||
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
|
||||
&& tar xvfz ioncube.tar.gz \
|
||||
&& cd ioncube \
|
||||
&& cp "ioncube_loader_lin_5.5.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||
&& cd ../ \
|
||||
&& rm -rf ioncube \
|
||||
&& rm -rf ioncube.tar.gz \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: amqp --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -158,7 +166,12 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: gd --------------------
|
||||
RUN set -eux \
|
||||
# Version specific pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libjpeg.* /usr/lib/ && \
|
||||
ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libpng.* /usr/lib/ && \
|
||||
ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ && \
|
||||
mkdir /usr/include/freetype2/freetype && \
|
||||
ln -s /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype.h \
|
||||
\
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -179,7 +192,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: gmp --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
|
||||
&& ln /usr/include/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/gmp.h /usr/include/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
||||
@@ -222,7 +235,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: imap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libkrb5* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -248,10 +261,27 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ioncube --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Custom extension
|
||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
||||
&& curl -sS --fail -k https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_$(dpkg-architecture --query DEB_HOST_GNU_CPU | sed 's/_/-/g').tar.gz -L -o ioncube.tar.gz \
|
||||
&& tar xvfz ioncube.tar.gz \
|
||||
&& cd ioncube \
|
||||
&& cp "ioncube_loader_lin_5.5.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||
&& cd ../ \
|
||||
&& rm -rf ioncube \
|
||||
&& rm -rf ioncube.tar.gz \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ldap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libldap* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -269,17 +299,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install msgpack-0.5.7 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable msgpack \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcache --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -291,6 +310,17 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install msgpack-0.5.7 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable msgpack \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcached --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -328,14 +358,17 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure mysql --with-mysql --with-mysql-sock --with-zlib-dir=/usr --with-libdir="/lib/$(dpkg-architecture --query DEB_BUILD_MULTIARCH)" \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysql \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: mysqli --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \
|
||||
&& true
|
||||
|
||||
@@ -354,19 +387,32 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: oci8 --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
\
|
||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
\
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
@@ -374,7 +420,14 @@ RUN set -eux \
|
||||
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
||||
# Generic post-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
@@ -401,7 +454,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libsybdb.* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
||||
@@ -418,10 +471,11 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: pdo_mysql --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
# Default: configure command
|
||||
&& docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \
|
||||
&& true
|
||||
|
||||
@@ -453,6 +507,22 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& if [ -f /usr/include/liblzf/lzf.h ]; then \
|
||||
ln -s /usr/include/liblzf/lzf.h /usr/include/; \
|
||||
fi \
|
||||
\
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install redis-4.3.0 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: phalcon --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -476,25 +546,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: recode --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install redis-4.3.0 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: rdkafka --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -519,7 +570,7 @@ RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure snmp --with-openssl-dir \
|
||||
&& docker-php-ext-configure snmp --with-snmp \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
|
||||
&& true
|
||||
|
||||
@@ -528,8 +579,6 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure soap --with-libxml-dir=/usr \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \
|
||||
&& true
|
||||
|
||||
@@ -542,6 +591,17 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --enable-zip --with-zlib-dir=/usr --with-pcre-dir=/usr \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: swoole --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -591,12 +651,23 @@ RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uploadprogress \
|
||||
&& pecl install uploadprogress-1.1.4 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uploadprogress \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: uuid --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uuid-1.0.5 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uuid \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: wddx --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -647,22 +718,11 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
|
||||
|
||||
# Fix php.ini settings for enabled extensions
|
||||
RUN set -eux \
|
||||
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/*
|
||||
&& find "$(php -r 'echo ini_get("extension_dir");')/" -type f -exec chmod +x {} \;
|
||||
|
||||
# Fix oracle dir for images that don't have oci installed
|
||||
RUN set -eux \
|
||||
@@ -670,13 +730,13 @@ RUN set -eux \
|
||||
|
||||
# Shrink everything down
|
||||
RUN set -eux \
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:5.5-base as final
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -700,27 +760,18 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 5.5-mods"
|
||||
|
||||
|
||||
###
|
||||
### Copy artifacts from builder
|
||||
###
|
||||
ARG EXT_DIR
|
||||
COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/
|
||||
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
|
||||
COPY --from=builder /usr/local/bin/ /usr/local/bin/
|
||||
COPY --from=builder /usr/local/lib/ /usr/local/lib/
|
||||
COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
### Install runtime libraries
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
ghostscript \
|
||||
libaio1 \
|
||||
libaspell15 \
|
||||
libc-ares2 \
|
||||
libc-client2007e \
|
||||
libenchant1c2a \
|
||||
libevent-2.0-5 \
|
||||
libfbclient2 \
|
||||
libfreetype6 \
|
||||
libicu52 \
|
||||
@@ -735,6 +786,7 @@ RUN set -eux \
|
||||
librabbitmq1 \
|
||||
librdkafka1 \
|
||||
librecode0 \
|
||||
libssl1.0.0 \
|
||||
libsybdb5 \
|
||||
libtidy-0.99-0 \
|
||||
libvpx1 \
|
||||
@@ -742,7 +794,10 @@ RUN set -eux \
|
||||
libxpm4 \
|
||||
libxslt1.1 \
|
||||
libyaml-0-2 \
|
||||
libzip2 \
|
||||
snmp \
|
||||
uuid \
|
||||
zlib1g \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
@@ -750,7 +805,18 @@ RUN set -eux \
|
||||
|
||||
|
||||
###
|
||||
### Post Install
|
||||
### Copy artifacts from builder
|
||||
###
|
||||
ARG EXT_DIR
|
||||
COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/
|
||||
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
|
||||
COPY --from=builder /usr/local/bin/ /usr/local/bin/
|
||||
COPY --from=builder /usr/local/lib/ /usr/local/lib/
|
||||
COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Post Install executions
|
||||
###
|
||||
RUN set -eux \
|
||||
# ---------- imagick ----------
|
||||
@@ -765,7 +831,14 @@ RUN set -eux \
|
||||
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
\
|
||||
# ---------- oci8 ----------
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
@@ -794,6 +867,8 @@ RUN set -eux \
|
||||
\
|
||||
&& php -m | grep -oiE '^amqp$' \
|
||||
&& php-fpm -m | grep -oiE '^amqp$' \
|
||||
&& php -m | grep -oiE '^apc$' \
|
||||
&& php-fpm -m | grep -oiE '^apc$' \
|
||||
&& php -m | grep -oiE '^apcu$' \
|
||||
&& php-fpm -m | grep -oiE '^apcu$' \
|
||||
&& php -m | grep -oiE '^bcmath$' \
|
||||
@@ -806,12 +881,20 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^ctype$' \
|
||||
&& php -m | grep -oiE '^curl$' \
|
||||
&& php-fpm -m | grep -oiE '^curl$' \
|
||||
&& php -m | grep -oiE '^date$' \
|
||||
&& php-fpm -m | grep -oiE '^date$' \
|
||||
&& php -m | grep -oiE '^dba$' \
|
||||
&& php-fpm -m | grep -oiE '^dba$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^dom$' \
|
||||
&& php-fpm -m | grep -oiE '^dom$' \
|
||||
&& php -m | grep -oiE '^enchant$' \
|
||||
&& php-fpm -m | grep -oiE '^enchant$' \
|
||||
&& php -m | grep -oiE '^ereg$' \
|
||||
&& php-fpm -m | grep -oiE '^ereg$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^exif$' \
|
||||
&& php-fpm -m | grep -oiE '^exif$' \
|
||||
&& php -m | grep -oiE '^fileinfo$' \
|
||||
@@ -844,18 +927,16 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^json$' \
|
||||
&& php -m | grep -oiE '^ldap$' \
|
||||
&& php-fpm -m | grep -oiE '^ldap$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^mcrypt$' \
|
||||
&& php-fpm -m | grep -oiE '^mcrypt$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcache$' \
|
||||
&& php-fpm -m | grep -oiE '^memcache$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcached$' \
|
||||
&& php-fpm -m | grep -oiE '^memcached$' \
|
||||
&& php -m | grep -oiE '^mhash$' \
|
||||
&& php-fpm -m | grep -oiE '^mhash$' \
|
||||
&& php -m | grep -oiE '^mongo$' \
|
||||
&& php-fpm -m | grep -oiE '^mongo$' \
|
||||
&& php -m | grep -oiE '^mongodb$' \
|
||||
@@ -866,6 +947,8 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^mysqli$' \
|
||||
&& php -m | grep -oiE '^mysqlnd$' \
|
||||
&& php-fpm -m | grep -oiE '^mysqlnd$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^oauth$' \
|
||||
&& php-fpm -m | grep -oiE '^oauth$' \
|
||||
&& php -m | grep -oiE '^oci8$' \
|
||||
@@ -876,8 +959,6 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^openssl$' \
|
||||
&& php -m | grep -oiE '^pcntl$' \
|
||||
&& php-fpm -m | grep -oiE '^pcntl$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^pdo$' \
|
||||
&& php-fpm -m | grep -oiE '^pdo$' \
|
||||
&& php -m | grep -oiE '^pdo_dblib$' \
|
||||
@@ -894,6 +975,10 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^pgsql$' \
|
||||
&& php -m | grep -oiE '^psr$' \
|
||||
&& php-fpm -m | grep -oiE '^psr$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^sqlite3$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlite3$' \
|
||||
&& php -m | grep -oiE '^phalcon$' \
|
||||
&& php-fpm -m | grep -oiE '^phalcon$' \
|
||||
&& php -m | grep -oiE '^phar$' \
|
||||
@@ -902,15 +987,13 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^posix$' \
|
||||
&& php -m | grep -oiE '^pspell$' \
|
||||
&& php-fpm -m | grep -oiE '^pspell$' \
|
||||
&& php -m | grep -oiE '^rdkafka$' \
|
||||
&& php-fpm -m | grep -oiE '^rdkafka$' \
|
||||
&& php -m | grep -oiE '^readline$' \
|
||||
&& php -m | grep -oiE '^recode$' \
|
||||
&& php-fpm -m | grep -oiE '^recode$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^reflection$' \
|
||||
&& php-fpm -m | grep -oiE '^reflection$' \
|
||||
&& php -m | grep -oiE '^rdkafka$' \
|
||||
&& php-fpm -m | grep -oiE '^rdkafka$' \
|
||||
&& php -m | grep -oiE '^session$' \
|
||||
&& php-fpm -m | grep -oiE '^session$' \
|
||||
&& php -m | grep -oiE '^shmop$' \
|
||||
@@ -925,6 +1008,10 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^sockets$' \
|
||||
&& php -m | grep -oiE '^spl$' \
|
||||
&& php-fpm -m | grep -oiE '^spl$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^swoole$' \
|
||||
&& php-fpm -m | grep -oiE '^swoole$' \
|
||||
&& php -m | grep -oiE '^sysvmsg$' \
|
||||
@@ -939,12 +1026,12 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
||||
&& php -m | grep -oiE '^uploadprogress$' \
|
||||
&& php-fpm -m | grep -oiE '^uploadprogress$' \
|
||||
&& php -m | grep -oiE '^uuid$' \
|
||||
&& php-fpm -m | grep -oiE '^uuid$' \
|
||||
&& php -m | grep -oiE '^wddx$' \
|
||||
&& php-fpm -m | grep -oiE '^wddx$' \
|
||||
&& php -m | grep -oiE '^xdebug$' \
|
||||
&& php-fpm -m | grep -oiE '^xdebug$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^xmlreader$' \
|
||||
&& php-fpm -m | grep -oiE '^xmlreader$' \
|
||||
&& php -m | grep -oiE '^xmlrpc$' \
|
||||
@@ -955,8 +1042,8 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^xsl$' \
|
||||
&& php -m | grep -oiE '^yaml$' \
|
||||
&& php-fpm -m | grep -oiE '^yaml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^zlib$' \
|
||||
&& php-fpm -m | grep -oiE '^zlib$' \
|
||||
&& true
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:5.6-base as builder
|
||||
|
||||
|
||||
@@ -6,15 +7,15 @@ FROM devilbox/php-fpm:5.6-base as builder
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
alien \
|
||||
firebird-dev \
|
||||
freetds-dev \
|
||||
ghostscript \
|
||||
libaio-dev \
|
||||
libbz2-dev \
|
||||
libc-ares-dev \
|
||||
libc-client-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libenchant-dev \
|
||||
@@ -28,6 +29,7 @@ RUN set -eux \
|
||||
libkrb5-dev \
|
||||
libldap2-dev \
|
||||
libmagickwand-dev \
|
||||
libmariadbclient-dev \
|
||||
libmcrypt-dev \
|
||||
libmemcached-dev \
|
||||
libnghttp2-dev \
|
||||
@@ -44,16 +46,38 @@ RUN set -eux \
|
||||
libtidy-dev \
|
||||
libvpx-dev \
|
||||
libwebp-dev \
|
||||
libwebp6 \
|
||||
libxml2-dev \
|
||||
libxpm-dev \
|
||||
libxslt-dev \
|
||||
libyaml-dev \
|
||||
libzip-dev \
|
||||
re2c \
|
||||
snmp \
|
||||
uuid-dev \
|
||||
zlib1g-dev \
|
||||
# Build tools
|
||||
autoconf \
|
||||
bison \
|
||||
bisonc++ \
|
||||
ca-certificates \
|
||||
git
|
||||
curl \
|
||||
dpkg-dev \
|
||||
file \
|
||||
flex \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
lemon \
|
||||
libc-client-dev \
|
||||
libc-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libssl-dev \
|
||||
make \
|
||||
patch \
|
||||
pkg-config \
|
||||
re2c \
|
||||
xz-utils \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||
@@ -70,23 +94,6 @@ RUN set -eux \
|
||||
echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \
|
||||
fi
|
||||
|
||||
# -------------------- Installing PHP Extension: ioncube --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Custom extension
|
||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
||||
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
|
||||
&& tar xvfz ioncube.tar.gz \
|
||||
&& cd ioncube \
|
||||
&& cp "ioncube_loader_lin_5.6.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||
&& cd ../ \
|
||||
&& rm -rf ioncube \
|
||||
&& rm -rf ioncube.tar.gz \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: amqp --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -174,7 +181,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: gd --------------------
|
||||
RUN set -eux \
|
||||
# Version specific pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -195,7 +202,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: gmp --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
|
||||
&& ln /usr/include/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/gmp.h /usr/include/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
||||
@@ -238,7 +245,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: imap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libkrb5* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -264,10 +271,27 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ioncube --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Custom extension
|
||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
||||
&& curl -sS --fail -k https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_$(dpkg-architecture --query DEB_HOST_GNU_CPU | sed 's/_/-/g').tar.gz -L -o ioncube.tar.gz \
|
||||
&& tar xvfz ioncube.tar.gz \
|
||||
&& cd ioncube \
|
||||
&& cp "ioncube_loader_lin_5.6.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||
&& cd ../ \
|
||||
&& rm -rf ioncube \
|
||||
&& rm -rf ioncube.tar.gz \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ldap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libldap* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -285,17 +309,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install msgpack-0.5.7 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable msgpack \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcache --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -307,6 +320,17 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install msgpack-0.5.7 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable msgpack \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcached --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -344,6 +368,8 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Default: configure command
|
||||
&& docker-php-ext-configure mysql --with-mysql --with-mysql-sock --with-zlib-dir=/usr --with-libdir="/lib/$(dpkg-architecture --query DEB_BUILD_MULTIARCH)" \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysql \
|
||||
&& true
|
||||
@@ -351,8 +377,9 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: mysqli --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \
|
||||
&& true
|
||||
|
||||
@@ -371,19 +398,32 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: oci8 --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
\
|
||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
\
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
@@ -391,7 +431,14 @@ RUN set -eux \
|
||||
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
||||
# Generic post-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
@@ -418,7 +465,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libsybdb.* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
||||
@@ -435,10 +482,11 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: pdo_mysql --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
# Default: configure command
|
||||
&& docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \
|
||||
&& true
|
||||
|
||||
@@ -470,6 +518,22 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& if [ -f /usr/include/liblzf/lzf.h ]; then \
|
||||
ln -s /usr/include/liblzf/lzf.h /usr/include/; \
|
||||
fi \
|
||||
\
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install redis-4.3.0 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: phalcon --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -493,25 +557,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: recode --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install redis-4.3.0 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: rdkafka --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -523,6 +568,14 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: recode --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: shmop --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -536,7 +589,7 @@ RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure snmp --with-openssl-dir \
|
||||
&& docker-php-ext-configure snmp --with-snmp \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
|
||||
&& true
|
||||
|
||||
@@ -545,8 +598,6 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure soap --with-libxml-dir=/usr \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \
|
||||
&& true
|
||||
|
||||
@@ -559,6 +610,17 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --enable-zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip=/usr \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: swoole --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -608,12 +670,23 @@ RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uploadprogress \
|
||||
&& pecl install uploadprogress-1.1.4 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uploadprogress \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: uuid --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uuid-1.0.5 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uuid \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: wddx --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -664,21 +737,11 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
|
||||
|
||||
# Fix php.ini settings for enabled extensions
|
||||
RUN set -eux \
|
||||
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/*
|
||||
&& find "$(php -r 'echo ini_get("extension_dir");')/" -type f -exec chmod +x {} \;
|
||||
|
||||
# Fix oracle dir for images that don't have oci installed
|
||||
RUN set -eux \
|
||||
@@ -686,13 +749,13 @@ RUN set -eux \
|
||||
|
||||
# Shrink everything down
|
||||
RUN set -eux \
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:5.6-base as final
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -716,27 +779,18 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 5.6-mods"
|
||||
|
||||
|
||||
###
|
||||
### Copy artifacts from builder
|
||||
###
|
||||
ARG EXT_DIR
|
||||
COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/
|
||||
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
|
||||
COPY --from=builder /usr/local/bin/ /usr/local/bin/
|
||||
COPY --from=builder /usr/local/lib/ /usr/local/lib/
|
||||
COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
### Install runtime libraries
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
ghostscript \
|
||||
libaio1 \
|
||||
libaspell15 \
|
||||
libc-ares2 \
|
||||
libc-client2007e \
|
||||
libenchant1c2a \
|
||||
libevent-2.0-5 \
|
||||
libfbclient2 \
|
||||
libfreetype6 \
|
||||
libicu57 \
|
||||
@@ -760,6 +814,8 @@ RUN set -eux \
|
||||
libyaml-0-2 \
|
||||
libzip4 \
|
||||
snmp \
|
||||
uuid \
|
||||
zlib1g \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
@@ -767,7 +823,18 @@ RUN set -eux \
|
||||
|
||||
|
||||
###
|
||||
### Post Install
|
||||
### Copy artifacts from builder
|
||||
###
|
||||
ARG EXT_DIR
|
||||
COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/
|
||||
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
|
||||
COPY --from=builder /usr/local/bin/ /usr/local/bin/
|
||||
COPY --from=builder /usr/local/lib/ /usr/local/lib/
|
||||
COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Post Install executions
|
||||
###
|
||||
RUN set -eux \
|
||||
# ---------- imagick ----------
|
||||
@@ -782,7 +849,14 @@ RUN set -eux \
|
||||
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
\
|
||||
# ---------- oci8 ----------
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
@@ -811,6 +885,8 @@ RUN set -eux \
|
||||
\
|
||||
&& php -m | grep -oiE '^amqp$' \
|
||||
&& php-fpm -m | grep -oiE '^amqp$' \
|
||||
&& php -m | grep -oiE '^apc$' \
|
||||
&& php-fpm -m | grep -oiE '^apc$' \
|
||||
&& php -m | grep -oiE '^apcu$' \
|
||||
&& php-fpm -m | grep -oiE '^apcu$' \
|
||||
&& php -m | grep -oiE '^bcmath$' \
|
||||
@@ -823,12 +899,20 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^ctype$' \
|
||||
&& php -m | grep -oiE '^curl$' \
|
||||
&& php-fpm -m | grep -oiE '^curl$' \
|
||||
&& php -m | grep -oiE '^date$' \
|
||||
&& php-fpm -m | grep -oiE '^date$' \
|
||||
&& php -m | grep -oiE '^dba$' \
|
||||
&& php-fpm -m | grep -oiE '^dba$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^dom$' \
|
||||
&& php-fpm -m | grep -oiE '^dom$' \
|
||||
&& php -m | grep -oiE '^enchant$' \
|
||||
&& php-fpm -m | grep -oiE '^enchant$' \
|
||||
&& php -m | grep -oiE '^ereg$' \
|
||||
&& php-fpm -m | grep -oiE '^ereg$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^exif$' \
|
||||
&& php-fpm -m | grep -oiE '^exif$' \
|
||||
&& php -m | grep -oiE '^fileinfo$' \
|
||||
@@ -861,18 +945,16 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^json$' \
|
||||
&& php -m | grep -oiE '^ldap$' \
|
||||
&& php-fpm -m | grep -oiE '^ldap$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^mcrypt$' \
|
||||
&& php-fpm -m | grep -oiE '^mcrypt$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcache$' \
|
||||
&& php-fpm -m | grep -oiE '^memcache$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcached$' \
|
||||
&& php-fpm -m | grep -oiE '^memcached$' \
|
||||
&& php -m | grep -oiE '^mhash$' \
|
||||
&& php-fpm -m | grep -oiE '^mhash$' \
|
||||
&& php -m | grep -oiE '^mongo$' \
|
||||
&& php-fpm -m | grep -oiE '^mongo$' \
|
||||
&& php -m | grep -oiE '^mongodb$' \
|
||||
@@ -883,6 +965,8 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^mysqli$' \
|
||||
&& php -m | grep -oiE '^mysqlnd$' \
|
||||
&& php-fpm -m | grep -oiE '^mysqlnd$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^oauth$' \
|
||||
&& php-fpm -m | grep -oiE '^oauth$' \
|
||||
&& php -m | grep -oiE '^oci8$' \
|
||||
@@ -893,8 +977,6 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^openssl$' \
|
||||
&& php -m | grep -oiE '^pcntl$' \
|
||||
&& php-fpm -m | grep -oiE '^pcntl$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^pdo$' \
|
||||
&& php-fpm -m | grep -oiE '^pdo$' \
|
||||
&& php -m | grep -oiE '^pdo_dblib$' \
|
||||
@@ -911,6 +993,10 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^pgsql$' \
|
||||
&& php -m | grep -oiE '^psr$' \
|
||||
&& php-fpm -m | grep -oiE '^psr$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^sqlite3$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlite3$' \
|
||||
&& php -m | grep -oiE '^phalcon$' \
|
||||
&& php-fpm -m | grep -oiE '^phalcon$' \
|
||||
&& php -m | grep -oiE '^phar$' \
|
||||
@@ -919,15 +1005,13 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^posix$' \
|
||||
&& php -m | grep -oiE '^pspell$' \
|
||||
&& php-fpm -m | grep -oiE '^pspell$' \
|
||||
&& php -m | grep -oiE '^rdkafka$' \
|
||||
&& php-fpm -m | grep -oiE '^rdkafka$' \
|
||||
&& php -m | grep -oiE '^readline$' \
|
||||
&& php -m | grep -oiE '^recode$' \
|
||||
&& php-fpm -m | grep -oiE '^recode$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^reflection$' \
|
||||
&& php-fpm -m | grep -oiE '^reflection$' \
|
||||
&& php -m | grep -oiE '^rdkafka$' \
|
||||
&& php-fpm -m | grep -oiE '^rdkafka$' \
|
||||
&& php -m | grep -oiE '^session$' \
|
||||
&& php-fpm -m | grep -oiE '^session$' \
|
||||
&& php -m | grep -oiE '^shmop$' \
|
||||
@@ -942,6 +1026,10 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^sockets$' \
|
||||
&& php -m | grep -oiE '^spl$' \
|
||||
&& php-fpm -m | grep -oiE '^spl$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^swoole$' \
|
||||
&& php-fpm -m | grep -oiE '^swoole$' \
|
||||
&& php -m | grep -oiE '^sysvmsg$' \
|
||||
@@ -956,12 +1044,12 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
||||
&& php -m | grep -oiE '^uploadprogress$' \
|
||||
&& php-fpm -m | grep -oiE '^uploadprogress$' \
|
||||
&& php -m | grep -oiE '^uuid$' \
|
||||
&& php-fpm -m | grep -oiE '^uuid$' \
|
||||
&& php -m | grep -oiE '^wddx$' \
|
||||
&& php-fpm -m | grep -oiE '^wddx$' \
|
||||
&& php -m | grep -oiE '^xdebug$' \
|
||||
&& php-fpm -m | grep -oiE '^xdebug$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^xmlreader$' \
|
||||
&& php-fpm -m | grep -oiE '^xmlreader$' \
|
||||
&& php -m | grep -oiE '^xmlrpc$' \
|
||||
@@ -972,8 +1060,8 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^xsl$' \
|
||||
&& php -m | grep -oiE '^yaml$' \
|
||||
&& php-fpm -m | grep -oiE '^yaml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^zlib$' \
|
||||
&& php-fpm -m | grep -oiE '^zlib$' \
|
||||
&& true
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:7.0-base as builder
|
||||
|
||||
|
||||
@@ -6,71 +7,83 @@ FROM devilbox/php-fpm:7.0-base as builder
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
alien \
|
||||
fftw-dev \
|
||||
firebird-dev \
|
||||
freetds-dev \
|
||||
ghostscript \
|
||||
gobject-introspection \
|
||||
gtk-doc-tools \
|
||||
libaio-dev \
|
||||
libbz2-dev \
|
||||
libc-ares-dev \
|
||||
libc-client-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libenchant-dev \
|
||||
libevent-dev \
|
||||
libexif-dev \
|
||||
libexpat1-dev \
|
||||
libfbclient2 \
|
||||
libfftw3-dev \
|
||||
libfreetype6-dev \
|
||||
libgif-dev \
|
||||
libglib2.0-dev \
|
||||
libgmp-dev \
|
||||
libib-util \
|
||||
libicu-dev \
|
||||
libjpeg-dev \
|
||||
libkrb5-dev \
|
||||
libldap2-dev \
|
||||
libmagick++-dev \
|
||||
libmagickcore-6.q16-dev \
|
||||
liblz4-dev \
|
||||
libmagickwand-dev \
|
||||
libmariadbclient-dev \
|
||||
libmcrypt-dev \
|
||||
libmemcached-dev \
|
||||
libnghttp2-dev \
|
||||
libpcre3-dev \
|
||||
libpng-dev \
|
||||
libpoppler-glib-dev \
|
||||
libpq-dev \
|
||||
libpspell-dev \
|
||||
librabbitmq-dev \
|
||||
librdkafka-dev \
|
||||
librecode-dev \
|
||||
librsvg2-dev \
|
||||
libsasl2-dev \
|
||||
libsnmp-dev \
|
||||
libssh2-1-dev \
|
||||
libssl-dev \
|
||||
libtidy-dev \
|
||||
libtool \
|
||||
libvips-dev \
|
||||
libvips42 \
|
||||
libvpx-dev \
|
||||
libwebp-dev \
|
||||
libwebp6 \
|
||||
libwebpdemux2 \
|
||||
libwebpmux2 \
|
||||
libxml2-dev \
|
||||
libxpm-dev \
|
||||
libxslt-dev \
|
||||
libyaml-dev \
|
||||
libzip-dev \
|
||||
libzstd-dev \
|
||||
re2c \
|
||||
snmp \
|
||||
unixodbc-dev \
|
||||
uuid-dev \
|
||||
zlib1g-dev \
|
||||
# Build tools
|
||||
autoconf \
|
||||
bison \
|
||||
bisonc++ \
|
||||
ca-certificates \
|
||||
git
|
||||
curl \
|
||||
dpkg-dev \
|
||||
file \
|
||||
flex \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
lemon \
|
||||
libc-client-dev \
|
||||
libc-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libssl-dev \
|
||||
make \
|
||||
patch \
|
||||
pkg-config \
|
||||
re2c \
|
||||
xz-utils \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||
@@ -87,23 +100,6 @@ RUN set -eux \
|
||||
echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \
|
||||
fi
|
||||
|
||||
# -------------------- Installing PHP Extension: ioncube --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Custom extension
|
||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
||||
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
|
||||
&& tar xvfz ioncube.tar.gz \
|
||||
&& cd ioncube \
|
||||
&& cp "ioncube_loader_lin_7.0.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||
&& cd ../ \
|
||||
&& rm -rf ioncube \
|
||||
&& rm -rf ioncube.tar.gz \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: amqp --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -191,7 +187,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: gd --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -212,7 +208,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: gmp --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
|
||||
&& ln /usr/include/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/gmp.h /usr/include/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
||||
@@ -255,7 +251,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: imap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libkrb5* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -281,10 +277,27 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ioncube --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Custom extension
|
||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
||||
&& curl -sS --fail -k https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_$(dpkg-architecture --query DEB_HOST_GNU_CPU | sed 's/_/-/g').tar.gz -L -o ioncube.tar.gz \
|
||||
&& tar xvfz ioncube.tar.gz \
|
||||
&& cd ioncube \
|
||||
&& cp "ioncube_loader_lin_7.0.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||
&& cd ../ \
|
||||
&& rm -rf ioncube \
|
||||
&& rm -rf ioncube.tar.gz \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ldap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libldap* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -293,6 +306,35 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: lz4 --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/kjdev/php-ext-lz4 /tmp/lz4 \
|
||||
&& cd /tmp/lz4 \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \
|
||||
# Default: Install command
|
||||
&& phpize \
|
||||
&& ./configure --enable-lz4 --with-lz4-includedir=/usr \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable lz4 \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: lzf --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install lzf-1.6.8 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable lzf \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: mcrypt --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -302,17 +344,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install msgpack \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable msgpack \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcache --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -324,12 +355,23 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcached --------------------
|
||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install memcached \
|
||||
&& pecl install msgpack \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable msgpack \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcached --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Custom: Pecl command
|
||||
&& printf "\n\n\nyes\nyes\nyes\n" | pecl install memcached \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable memcached \
|
||||
&& true
|
||||
@@ -337,10 +379,10 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: mongodb --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install mongodb \
|
||||
&& pecl install mongodb-1.9.2 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable mongodb \
|
||||
&& true
|
||||
@@ -348,8 +390,9 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: mysqli --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \
|
||||
&& true
|
||||
|
||||
@@ -368,19 +411,32 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: oci8 --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
\
|
||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
\
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
@@ -388,7 +444,14 @@ RUN set -eux \
|
||||
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
||||
# Generic post-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
@@ -415,7 +478,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libsybdb.* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
||||
@@ -432,10 +495,11 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: pdo_mysql --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
# Default: configure command
|
||||
&& docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \
|
||||
&& true
|
||||
|
||||
@@ -443,19 +507,32 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: pdo_oci --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
\
|
||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
\
|
||||
# Installation: Generic
|
||||
@@ -495,15 +572,71 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: psr --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install psr \
|
||||
&& pecl install psr-1.1.0 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable psr \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zstd --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install zstd \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable zstd \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& if [ -f /usr/include/liblzf/lzf.h ]; then \
|
||||
ln -s /usr/include/liblzf/lzf.h /usr/include/; \
|
||||
fi \
|
||||
\
|
||||
# Installation: Version specific
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/phpredis/phpredis /tmp/redis \
|
||||
&& cd /tmp/redis \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \
|
||||
# Custom: Install command
|
||||
&& REDIS_ARGS=""; \
|
||||
if php -m | grep -q "igbinary"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \
|
||||
fi; \
|
||||
if php -m | grep -q "lz4"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-lz4 --with-liblz4=/usr"; \
|
||||
fi; \
|
||||
if php -m | grep -q "msgpack"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \
|
||||
fi; \
|
||||
phpize \
|
||||
&& ./configure --enable-redis ${REDIS_ARGS} \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
\
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: sqlsrv --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install sqlsrv-5.3.0 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable sqlsrv \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: phalcon --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -527,40 +660,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: recode --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/phpredis/phpredis /tmp/redis \
|
||||
&& cd /tmp/redis \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git for-each-ref --format='%(refname)' refs/tags | grep -E 'tags/[.0-9]+$' | sed 's|.*tags/||g' | sort -V | tail -1) \
|
||||
# Custom: Install command
|
||||
&& REDIS_ARGS=""; \
|
||||
if [ -d "/usr/local/include/php/ext/igbinary" ]; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \
|
||||
fi; \
|
||||
if [ -d "/usr/local/include/php/ext/msgpack" ]; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \
|
||||
fi; \
|
||||
phpize \
|
||||
&& ./configure --enable-redis ${REDIS_ARGS} \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
\
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: rdkafka --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -572,6 +671,14 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: recode --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: shmop --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -585,7 +692,7 @@ RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure snmp --with-openssl-dir \
|
||||
&& docker-php-ext-configure snmp --with-snmp \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
|
||||
&& true
|
||||
|
||||
@@ -594,8 +701,6 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure soap --with-libxml-dir=/usr \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \
|
||||
&& true
|
||||
|
||||
@@ -608,17 +713,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: sqlsrv --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install sqlsrv-5.3.0 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable sqlsrv \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ssh2 --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -630,6 +724,17 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --enable-zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip=/usr \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: swoole --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -676,31 +781,28 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: uploadprogress --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \
|
||||
&& cd /tmp/uploadprogress \
|
||||
# Default: Install command
|
||||
&& phpize \
|
||||
&& ./configure --enable-uploadprogress \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uploadprogress-1.1.4 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uploadprogress \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: uuid --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uuid \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uuid \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: vips --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& git clone https://github.com/libvips/libvips /tmp/libvips \
|
||||
&& cd /tmp/libvips \
|
||||
&& ./autogen.sh \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
&& cd /tmp \
|
||||
&& rm -rf /tmp/libvips \
|
||||
\
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
@@ -731,6 +833,17 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xlswriter --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install xlswriter \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable xlswriter \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xmlrpc --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -749,17 +862,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xlswriter --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install xlswriter \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable xlswriter \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: yaml --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -771,21 +873,11 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
|
||||
|
||||
# Fix php.ini settings for enabled extensions
|
||||
RUN set -eux \
|
||||
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/*
|
||||
&& find "$(php -r 'echo ini_get("extension_dir");')/" -type f -exec chmod +x {} \;
|
||||
|
||||
# Fix oracle dir for images that don't have oci installed
|
||||
RUN set -eux \
|
||||
@@ -793,13 +885,13 @@ RUN set -eux \
|
||||
|
||||
# Shrink everything down
|
||||
RUN set -eux \
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:7.0-base as final
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -822,6 +914,55 @@ LABEL "org.opencontainers.image.title"="PHP-FPM 7.0-mods"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 7.0-mods"
|
||||
|
||||
|
||||
###
|
||||
### Install runtime libraries
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
ghostscript \
|
||||
libaio1 \
|
||||
libaspell15 \
|
||||
libc-ares2 \
|
||||
libc-client2007e \
|
||||
libenchant1c2a \
|
||||
libevent-2.0-5 \
|
||||
libfbclient2 \
|
||||
libfreetype6 \
|
||||
libicu57 \
|
||||
libjpeg62-turbo \
|
||||
liblz4-1 \
|
||||
libmagickwand-6.q16-3 \
|
||||
libmariadbclient18 \
|
||||
libmcrypt4 \
|
||||
libmemcachedutil2 \
|
||||
libnghttp2-14 \
|
||||
libpng16-16 \
|
||||
libpq5 \
|
||||
librabbitmq4 \
|
||||
librdkafka1 \
|
||||
librecode0 \
|
||||
libssh2-1 \
|
||||
libsybdb5 \
|
||||
libtidy5 \
|
||||
libvips42 \
|
||||
libvpx4 \
|
||||
libwebp6 \
|
||||
libxpm4 \
|
||||
libxslt1.1 \
|
||||
libyaml-0-2 \
|
||||
libzip4 \
|
||||
libzstd1 \
|
||||
snmp \
|
||||
unixodbc \
|
||||
uuid \
|
||||
zlib1g \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& update-ca-certificates
|
||||
|
||||
|
||||
###
|
||||
### Copy artifacts from builder
|
||||
###
|
||||
@@ -834,65 +975,7 @@ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
fftw2 \
|
||||
ghostscript \
|
||||
gir1.2-poppler-0.18 \
|
||||
imagemagick-6.q16 \
|
||||
libaio1 \
|
||||
libaspell15 \
|
||||
libc-client2007e \
|
||||
libenchant1c2a \
|
||||
libexif12 \
|
||||
libexpat1 \
|
||||
libfbclient2 \
|
||||
libfftw3-3 \
|
||||
libfreetype6 \
|
||||
libgif7 \
|
||||
libglib2.0-0 \
|
||||
libicu57 \
|
||||
libjpeg62-turbo \
|
||||
libmagick++-6.q16-7 \
|
||||
libmagick++-6.q16hdri-7 \
|
||||
libmagickcore-6.q16-3 \
|
||||
libmagickcore-6.q16-3-extra \
|
||||
libmagickwand-6.q16-3 \
|
||||
libmagickwand-6.q16hdri-3 \
|
||||
libmcrypt4 \
|
||||
libmemcachedutil2 \
|
||||
libnghttp2-14 \
|
||||
libpng16-16 \
|
||||
libpoppler-glib8 \
|
||||
libpq5 \
|
||||
librabbitmq4 \
|
||||
librdkafka1 \
|
||||
librecode0 \
|
||||
librsvg2-2 \
|
||||
libssh2-1 \
|
||||
libsybdb5 \
|
||||
libtidy5 \
|
||||
libvpx4 \
|
||||
libwebp6 \
|
||||
libwebpdemux2 \
|
||||
libwebpmux2 \
|
||||
libxpm4 \
|
||||
libxslt1.1 \
|
||||
libyaml-0-2 \
|
||||
libzip4 \
|
||||
snmp \
|
||||
unixodbc \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& update-ca-certificates
|
||||
|
||||
|
||||
###
|
||||
### Post Install
|
||||
### Post Install executions
|
||||
###
|
||||
RUN set -eux \
|
||||
# ---------- imagick ----------
|
||||
@@ -907,7 +990,14 @@ RUN set -eux \
|
||||
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
\
|
||||
# ---------- oci8 ----------
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
@@ -948,12 +1038,18 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^ctype$' \
|
||||
&& php -m | grep -oiE '^curl$' \
|
||||
&& php-fpm -m | grep -oiE '^curl$' \
|
||||
&& php -m | grep -oiE '^date$' \
|
||||
&& php-fpm -m | grep -oiE '^date$' \
|
||||
&& php -m | grep -oiE '^dba$' \
|
||||
&& php-fpm -m | grep -oiE '^dba$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^dom$' \
|
||||
&& php-fpm -m | grep -oiE '^dom$' \
|
||||
&& php -m | grep -oiE '^enchant$' \
|
||||
&& php-fpm -m | grep -oiE '^enchant$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^exif$' \
|
||||
&& php-fpm -m | grep -oiE '^exif$' \
|
||||
&& php -m | grep -oiE '^fileinfo$' \
|
||||
@@ -986,16 +1082,16 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^json$' \
|
||||
&& php -m | grep -oiE '^ldap$' \
|
||||
&& php-fpm -m | grep -oiE '^ldap$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^lz4$' \
|
||||
&& php-fpm -m | grep -oiE '^lz4$' \
|
||||
&& php -m | grep -oiE '^lzf$' \
|
||||
&& php-fpm -m | grep -oiE '^lzf$' \
|
||||
&& php -m | grep -oiE '^mcrypt$' \
|
||||
&& php-fpm -m | grep -oiE '^mcrypt$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcache$' \
|
||||
&& php-fpm -m | grep -oiE '^memcache$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcached$' \
|
||||
&& php-fpm -m | grep -oiE '^memcached$' \
|
||||
&& php -m | grep -oiE '^mongodb$' \
|
||||
@@ -1004,6 +1100,8 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^mysqli$' \
|
||||
&& php -m | grep -oiE '^mysqlnd$' \
|
||||
&& php-fpm -m | grep -oiE '^mysqlnd$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^oauth$' \
|
||||
&& php-fpm -m | grep -oiE '^oauth$' \
|
||||
&& php -m | grep -oiE '^oci8$' \
|
||||
@@ -1014,8 +1112,6 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^openssl$' \
|
||||
&& php -m | grep -oiE '^pcntl$' \
|
||||
&& php-fpm -m | grep -oiE '^pcntl$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^pdo$' \
|
||||
&& php-fpm -m | grep -oiE '^pdo$' \
|
||||
&& php -m | grep -oiE '^pdo_dblib$' \
|
||||
@@ -1036,6 +1132,14 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^pgsql$' \
|
||||
&& php -m | grep -oiE '^psr$' \
|
||||
&& php-fpm -m | grep -oiE '^psr$' \
|
||||
&& php -m | grep -oiE '^zstd$' \
|
||||
&& php-fpm -m | grep -oiE '^zstd$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^sqlite3$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlite3$' \
|
||||
&& php -m | grep -oiE '^sqlsrv$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlsrv$' \
|
||||
&& php -m | grep -oiE '^phalcon$' \
|
||||
&& php-fpm -m | grep -oiE '^phalcon$' \
|
||||
&& php -m | grep -oiE '^phar$' \
|
||||
@@ -1044,15 +1148,13 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^posix$' \
|
||||
&& php -m | grep -oiE '^pspell$' \
|
||||
&& php-fpm -m | grep -oiE '^pspell$' \
|
||||
&& php -m | grep -oiE '^rdkafka$' \
|
||||
&& php-fpm -m | grep -oiE '^rdkafka$' \
|
||||
&& php -m | grep -oiE '^readline$' \
|
||||
&& php -m | grep -oiE '^recode$' \
|
||||
&& php-fpm -m | grep -oiE '^recode$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^reflection$' \
|
||||
&& php-fpm -m | grep -oiE '^reflection$' \
|
||||
&& php -m | grep -oiE '^rdkafka$' \
|
||||
&& php-fpm -m | grep -oiE '^rdkafka$' \
|
||||
&& php -m | grep -oiE '^session$' \
|
||||
&& php-fpm -m | grep -oiE '^session$' \
|
||||
&& php -m | grep -oiE '^shmop$' \
|
||||
@@ -1067,10 +1169,12 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^sockets$' \
|
||||
&& php -m | grep -oiE '^spl$' \
|
||||
&& php-fpm -m | grep -oiE '^spl$' \
|
||||
&& php -m | grep -oiE '^sqlsrv$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlsrv$' \
|
||||
&& php -m | grep -oiE '^ssh2$' \
|
||||
&& php-fpm -m | grep -oiE '^ssh2$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^swoole$' \
|
||||
&& php-fpm -m | grep -oiE '^swoole$' \
|
||||
&& php -m | grep -oiE '^sysvmsg$' \
|
||||
@@ -1085,14 +1189,16 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
||||
&& php -m | grep -oiE '^uploadprogress$' \
|
||||
&& php-fpm -m | grep -oiE '^uploadprogress$' \
|
||||
&& php -m | grep -oiE '^uuid$' \
|
||||
&& php-fpm -m | grep -oiE '^uuid$' \
|
||||
&& php -m | grep -oiE '^vips$' \
|
||||
&& php-fpm -m | grep -oiE '^vips$' \
|
||||
&& php -m | grep -oiE '^wddx$' \
|
||||
&& php-fpm -m | grep -oiE '^wddx$' \
|
||||
&& php -m | grep -oiE '^xdebug$' \
|
||||
&& php-fpm -m | grep -oiE '^xdebug$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^xlswriter$' \
|
||||
&& php-fpm -m | grep -oiE '^xlswriter$' \
|
||||
&& php -m | grep -oiE '^xmlreader$' \
|
||||
&& php-fpm -m | grep -oiE '^xmlreader$' \
|
||||
&& php -m | grep -oiE '^xmlrpc$' \
|
||||
@@ -1101,12 +1207,10 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^xmlwriter$' \
|
||||
&& php -m | grep -oiE '^xsl$' \
|
||||
&& php-fpm -m | grep -oiE '^xsl$' \
|
||||
&& php -m | grep -oiE '^xlswriter$' \
|
||||
&& php-fpm -m | grep -oiE '^xlswriter$' \
|
||||
&& php -m | grep -oiE '^yaml$' \
|
||||
&& php-fpm -m | grep -oiE '^yaml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^zlib$' \
|
||||
&& php-fpm -m | grep -oiE '^zlib$' \
|
||||
&& true
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:7.1-base as builder
|
||||
|
||||
|
||||
@@ -6,72 +7,83 @@ FROM devilbox/php-fpm:7.1-base as builder
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
alien \
|
||||
fftw-dev \
|
||||
firebird-dev \
|
||||
freetds-dev \
|
||||
ghostscript \
|
||||
gobject-introspection \
|
||||
gtk-doc-tools \
|
||||
libaio-dev \
|
||||
libbz2-dev \
|
||||
libc-ares-dev \
|
||||
libc-client-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libenchant-dev \
|
||||
libevent-dev \
|
||||
libexif-dev \
|
||||
libexpat1-dev \
|
||||
libfbclient2 \
|
||||
libfftw3-dev \
|
||||
libfreetype6-dev \
|
||||
libgif-dev \
|
||||
libglib2.0-dev \
|
||||
libgmp-dev \
|
||||
libib-util \
|
||||
libicu-dev \
|
||||
libimagequant-dev \
|
||||
libjpeg-dev \
|
||||
libkrb5-dev \
|
||||
libldap2-dev \
|
||||
libmagick++-dev \
|
||||
libmagickcore-6.q16-dev \
|
||||
liblz4-dev \
|
||||
libmagickwand-dev \
|
||||
libmariadb-dev \
|
||||
libmcrypt-dev \
|
||||
libmemcached-dev \
|
||||
libnghttp2-dev \
|
||||
libpcre3-dev \
|
||||
libpng-dev \
|
||||
libpoppler-glib-dev \
|
||||
libpq-dev \
|
||||
libpspell-dev \
|
||||
librabbitmq-dev \
|
||||
librdkafka-dev \
|
||||
librecode-dev \
|
||||
librsvg2-dev \
|
||||
libsasl2-dev \
|
||||
libsnmp-dev \
|
||||
libssh2-1-dev \
|
||||
libssl-dev \
|
||||
libtidy-dev \
|
||||
libtool \
|
||||
libvips-dev \
|
||||
libvips42 \
|
||||
libvpx-dev \
|
||||
libwebp-dev \
|
||||
libwebp6 \
|
||||
libwebpdemux2 \
|
||||
libwebpmux3 \
|
||||
libxml2-dev \
|
||||
libxpm-dev \
|
||||
libxslt-dev \
|
||||
libyaml-dev \
|
||||
libzip-dev \
|
||||
libzstd-dev \
|
||||
re2c \
|
||||
snmp \
|
||||
unixodbc-dev \
|
||||
uuid-dev \
|
||||
zlib1g-dev \
|
||||
# Build tools
|
||||
autoconf \
|
||||
bison \
|
||||
bisonc++ \
|
||||
ca-certificates \
|
||||
git
|
||||
curl \
|
||||
dpkg-dev \
|
||||
file \
|
||||
flex \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
lemon \
|
||||
libc-client-dev \
|
||||
libc-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libssl-dev \
|
||||
make \
|
||||
patch \
|
||||
pkg-config \
|
||||
re2c \
|
||||
xz-utils \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||
@@ -88,23 +100,6 @@ RUN set -eux \
|
||||
echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \
|
||||
fi
|
||||
|
||||
# -------------------- Installing PHP Extension: ioncube --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Custom extension
|
||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
||||
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
|
||||
&& tar xvfz ioncube.tar.gz \
|
||||
&& cd ioncube \
|
||||
&& cp "ioncube_loader_lin_7.1.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||
&& cd ../ \
|
||||
&& rm -rf ioncube \
|
||||
&& rm -rf ioncube.tar.gz \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: amqp --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -192,7 +187,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: gd --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -213,7 +208,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: gmp --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
|
||||
&& ln /usr/include/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/gmp.h /usr/include/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
||||
@@ -256,7 +251,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: imap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libkrb5* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -275,16 +270,34 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: intl --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ioncube --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Custom extension
|
||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
||||
&& curl -sS --fail -k https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_$(dpkg-architecture --query DEB_HOST_GNU_CPU | sed 's/_/-/g').tar.gz -L -o ioncube.tar.gz \
|
||||
&& tar xvfz ioncube.tar.gz \
|
||||
&& cd ioncube \
|
||||
&& cp "ioncube_loader_lin_7.1.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||
&& cd ../ \
|
||||
&& rm -rf ioncube \
|
||||
&& rm -rf ioncube.tar.gz \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ldap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libldap* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -293,6 +306,35 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: lz4 --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/kjdev/php-ext-lz4 /tmp/lz4 \
|
||||
&& cd /tmp/lz4 \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \
|
||||
# Default: Install command
|
||||
&& phpize \
|
||||
&& ./configure --enable-lz4 --with-lz4-includedir=/usr \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable lz4 \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: lzf --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install lzf-1.6.8 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable lzf \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: mcrypt --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -302,17 +344,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install msgpack \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable msgpack \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcache --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -324,12 +355,23 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcached --------------------
|
||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install memcached \
|
||||
&& pecl install msgpack \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable msgpack \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcached --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Custom: Pecl command
|
||||
&& printf "\n\n\nyes\nyes\nyes\n" | pecl install memcached \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable memcached \
|
||||
&& true
|
||||
@@ -337,10 +379,10 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: mongodb --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install mongodb \
|
||||
&& pecl install mongodb-1.11.1 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable mongodb \
|
||||
&& true
|
||||
@@ -368,19 +410,32 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: oci8 --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
\
|
||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
\
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
@@ -388,7 +443,14 @@ RUN set -eux \
|
||||
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
||||
# Generic post-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
@@ -415,7 +477,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libsybdb.* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
||||
@@ -443,19 +505,32 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: pdo_oci --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
\
|
||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
\
|
||||
# Installation: Generic
|
||||
@@ -495,15 +570,81 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: psr --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install psr \
|
||||
&& pecl install psr-1.1.0 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable psr \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zstd --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/kjdev/php-ext-zstd /tmp/zstd \
|
||||
&& cd /tmp/zstd \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \
|
||||
# Default: Install command
|
||||
&& phpize \
|
||||
&& ./configure --enable-zstd --with-libzstd \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable zstd \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& if [ -f /usr/include/liblzf/lzf.h ]; then \
|
||||
ln -s /usr/include/liblzf/lzf.h /usr/include/; \
|
||||
fi \
|
||||
\
|
||||
# Installation: Version specific
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/phpredis/phpredis /tmp/redis \
|
||||
&& cd /tmp/redis \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \
|
||||
# Custom: Install command
|
||||
&& REDIS_ARGS=""; \
|
||||
if php -m | grep -q "igbinary"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \
|
||||
fi; \
|
||||
if php -m | grep -q "lz4"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-lz4 --with-liblz4=/usr"; \
|
||||
fi; \
|
||||
if php -m | grep -q "msgpack"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \
|
||||
fi; \
|
||||
if php -m | grep -q "zstd"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-zstd"; \
|
||||
fi; \
|
||||
phpize \
|
||||
&& ./configure --enable-redis ${REDIS_ARGS} \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
\
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: sqlsrv --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install sqlsrv-5.6.1 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable sqlsrv \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: phalcon --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -527,40 +668,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: recode --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/phpredis/phpredis /tmp/redis \
|
||||
&& cd /tmp/redis \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git for-each-ref --format='%(refname)' refs/tags | grep -E 'tags/[.0-9]+$' | sed 's|.*tags/||g' | sort -V | tail -1) \
|
||||
# Custom: Install command
|
||||
&& REDIS_ARGS=""; \
|
||||
if [ -d "/usr/local/include/php/ext/igbinary" ]; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \
|
||||
fi; \
|
||||
if [ -d "/usr/local/include/php/ext/msgpack" ]; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \
|
||||
fi; \
|
||||
phpize \
|
||||
&& ./configure --enable-redis ${REDIS_ARGS} \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
\
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: rdkafka --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -572,6 +679,14 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: recode --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: shmop --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -585,7 +700,7 @@ RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure snmp --with-openssl-dir \
|
||||
&& docker-php-ext-configure snmp --with-snmp \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
|
||||
&& true
|
||||
|
||||
@@ -594,8 +709,6 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure soap --with-libxml-dir=/usr \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \
|
||||
&& true
|
||||
|
||||
@@ -619,17 +732,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: sqlsrv --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install sqlsrv-5.6.1 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable sqlsrv \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ssh2 --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -641,6 +743,17 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --enable-zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip=/usr \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: swoole --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -686,31 +799,28 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: uploadprogress --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \
|
||||
&& cd /tmp/uploadprogress \
|
||||
# Default: Install command
|
||||
&& phpize \
|
||||
&& ./configure --enable-uploadprogress \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uploadprogress-1.1.4 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uploadprogress \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: uuid --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uuid \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uuid \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: vips --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& git clone https://github.com/libvips/libvips /tmp/libvips \
|
||||
&& cd /tmp/libvips \
|
||||
&& ./autogen.sh \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
&& cd /tmp \
|
||||
&& rm -rf /tmp/libvips \
|
||||
\
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
@@ -741,6 +851,17 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xlswriter --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install xlswriter \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable xlswriter \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xmlrpc --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -759,17 +880,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xlswriter --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install xlswriter \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable xlswriter \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: yaml --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -781,21 +891,11 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
|
||||
|
||||
# Fix php.ini settings for enabled extensions
|
||||
RUN set -eux \
|
||||
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/*
|
||||
&& find "$(php -r 'echo ini_get("extension_dir");')/" -type f -exec chmod +x {} \;
|
||||
|
||||
# Fix oracle dir for images that don't have oci installed
|
||||
RUN set -eux \
|
||||
@@ -803,13 +903,13 @@ RUN set -eux \
|
||||
|
||||
# Shrink everything down
|
||||
RUN set -eux \
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:7.1-base as final
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -832,6 +932,55 @@ LABEL "org.opencontainers.image.title"="PHP-FPM 7.1-mods"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 7.1-mods"
|
||||
|
||||
|
||||
###
|
||||
### Install runtime libraries
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
ghostscript \
|
||||
libaio1 \
|
||||
libaspell15 \
|
||||
libc-ares2 \
|
||||
libc-client2007e \
|
||||
libenchant1c2a \
|
||||
libevent-2.1-6 \
|
||||
libfbclient2 \
|
||||
libfreetype6 \
|
||||
libicu63 \
|
||||
libjpeg62-turbo \
|
||||
liblz4-1 \
|
||||
libmagickwand-6.q16-6 \
|
||||
libmariadbd19 \
|
||||
libmcrypt4 \
|
||||
libmemcachedutil2 \
|
||||
libnghttp2-14 \
|
||||
libpng16-16 \
|
||||
libpq5 \
|
||||
librabbitmq4 \
|
||||
librdkafka1 \
|
||||
librecode0 \
|
||||
libssh2-1 \
|
||||
libsybdb5 \
|
||||
libtidy5deb1 \
|
||||
libvips42 \
|
||||
libvpx5 \
|
||||
libwebp6 \
|
||||
libxpm4 \
|
||||
libxslt1.1 \
|
||||
libyaml-0-2 \
|
||||
libzip4 \
|
||||
libzstd1 \
|
||||
snmp \
|
||||
unixodbc \
|
||||
uuid \
|
||||
zlib1g \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& update-ca-certificates
|
||||
|
||||
|
||||
###
|
||||
### Copy artifacts from builder
|
||||
###
|
||||
@@ -844,67 +993,7 @@ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
fftw2 \
|
||||
ghostscript \
|
||||
gir1.2-poppler-0.18 \
|
||||
imagemagick-6.q16 \
|
||||
libaio1 \
|
||||
libaspell15 \
|
||||
libc-client2007e \
|
||||
libenchant1c2a \
|
||||
libexif12 \
|
||||
libexpat1 \
|
||||
libfbclient2 \
|
||||
libfftw3-3 \
|
||||
libfreetype6 \
|
||||
libgif7 \
|
||||
libglib2.0-0 \
|
||||
libicu63 \
|
||||
libimagequant0 \
|
||||
libjpeg62-turbo \
|
||||
libmagick++-6.q16-8 \
|
||||
libmagick++-6.q16hdri-8 \
|
||||
libmagickcore-6.q16-6 \
|
||||
libmagickcore-6.q16-6-extra \
|
||||
libmagickwand-6.q16-6 \
|
||||
libmagickwand-6.q16hdri-6 \
|
||||
libmcrypt4 \
|
||||
libmemcachedutil2 \
|
||||
libnghttp2-14 \
|
||||
libpng16-16 \
|
||||
libpoppler-glib8 \
|
||||
libpq5 \
|
||||
librabbitmq4 \
|
||||
librdkafka1 \
|
||||
librecode0 \
|
||||
librsvg2-2 \
|
||||
libssh2-1 \
|
||||
libsybdb5 \
|
||||
libtidy5deb1 \
|
||||
libvpx5 \
|
||||
libwebp-dev \
|
||||
libwebp6 \
|
||||
libwebpdemux2 \
|
||||
libwebpmux3 \
|
||||
libxpm4 \
|
||||
libxslt1.1 \
|
||||
libyaml-0-2 \
|
||||
libzip4 \
|
||||
snmp \
|
||||
unixodbc \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& update-ca-certificates
|
||||
|
||||
|
||||
###
|
||||
### Post Install
|
||||
### Post Install executions
|
||||
###
|
||||
RUN set -eux \
|
||||
# ---------- imagick ----------
|
||||
@@ -919,7 +1008,14 @@ RUN set -eux \
|
||||
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
\
|
||||
# ---------- oci8 ----------
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
@@ -960,12 +1056,18 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^ctype$' \
|
||||
&& php -m | grep -oiE '^curl$' \
|
||||
&& php-fpm -m | grep -oiE '^curl$' \
|
||||
&& php -m | grep -oiE '^date$' \
|
||||
&& php-fpm -m | grep -oiE '^date$' \
|
||||
&& php -m | grep -oiE '^dba$' \
|
||||
&& php-fpm -m | grep -oiE '^dba$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^dom$' \
|
||||
&& php-fpm -m | grep -oiE '^dom$' \
|
||||
&& php -m | grep -oiE '^enchant$' \
|
||||
&& php-fpm -m | grep -oiE '^enchant$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^exif$' \
|
||||
&& php-fpm -m | grep -oiE '^exif$' \
|
||||
&& php -m | grep -oiE '^fileinfo$' \
|
||||
@@ -998,16 +1100,16 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^json$' \
|
||||
&& php -m | grep -oiE '^ldap$' \
|
||||
&& php-fpm -m | grep -oiE '^ldap$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^lz4$' \
|
||||
&& php-fpm -m | grep -oiE '^lz4$' \
|
||||
&& php -m | grep -oiE '^lzf$' \
|
||||
&& php-fpm -m | grep -oiE '^lzf$' \
|
||||
&& php -m | grep -oiE '^mcrypt$' \
|
||||
&& php-fpm -m | grep -oiE '^mcrypt$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcache$' \
|
||||
&& php-fpm -m | grep -oiE '^memcache$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcached$' \
|
||||
&& php-fpm -m | grep -oiE '^memcached$' \
|
||||
&& php -m | grep -oiE '^mongodb$' \
|
||||
@@ -1016,6 +1118,8 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^mysqli$' \
|
||||
&& php -m | grep -oiE '^mysqlnd$' \
|
||||
&& php-fpm -m | grep -oiE '^mysqlnd$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^oauth$' \
|
||||
&& php-fpm -m | grep -oiE '^oauth$' \
|
||||
&& php -m | grep -oiE '^oci8$' \
|
||||
@@ -1026,8 +1130,6 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^openssl$' \
|
||||
&& php -m | grep -oiE '^pcntl$' \
|
||||
&& php-fpm -m | grep -oiE '^pcntl$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^pdo$' \
|
||||
&& php-fpm -m | grep -oiE '^pdo$' \
|
||||
&& php -m | grep -oiE '^pdo_dblib$' \
|
||||
@@ -1048,6 +1150,14 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^pgsql$' \
|
||||
&& php -m | grep -oiE '^psr$' \
|
||||
&& php-fpm -m | grep -oiE '^psr$' \
|
||||
&& php -m | grep -oiE '^zstd$' \
|
||||
&& php-fpm -m | grep -oiE '^zstd$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^sqlite3$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlite3$' \
|
||||
&& php -m | grep -oiE '^sqlsrv$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlsrv$' \
|
||||
&& php -m | grep -oiE '^phalcon$' \
|
||||
&& php-fpm -m | grep -oiE '^phalcon$' \
|
||||
&& php -m | grep -oiE '^phar$' \
|
||||
@@ -1056,15 +1166,13 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^posix$' \
|
||||
&& php -m | grep -oiE '^pspell$' \
|
||||
&& php-fpm -m | grep -oiE '^pspell$' \
|
||||
&& php -m | grep -oiE '^rdkafka$' \
|
||||
&& php-fpm -m | grep -oiE '^rdkafka$' \
|
||||
&& php -m | grep -oiE '^readline$' \
|
||||
&& php -m | grep -oiE '^recode$' \
|
||||
&& php-fpm -m | grep -oiE '^recode$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^reflection$' \
|
||||
&& php-fpm -m | grep -oiE '^reflection$' \
|
||||
&& php -m | grep -oiE '^rdkafka$' \
|
||||
&& php-fpm -m | grep -oiE '^rdkafka$' \
|
||||
&& php -m | grep -oiE '^session$' \
|
||||
&& php-fpm -m | grep -oiE '^session$' \
|
||||
&& php -m | grep -oiE '^shmop$' \
|
||||
@@ -1081,10 +1189,12 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^solr$' \
|
||||
&& php -m | grep -oiE '^spl$' \
|
||||
&& php-fpm -m | grep -oiE '^spl$' \
|
||||
&& php -m | grep -oiE '^sqlsrv$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlsrv$' \
|
||||
&& php -m | grep -oiE '^ssh2$' \
|
||||
&& php-fpm -m | grep -oiE '^ssh2$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^swoole$' \
|
||||
&& php-fpm -m | grep -oiE '^swoole$' \
|
||||
&& php -m | grep -oiE '^sysvmsg$' \
|
||||
@@ -1099,14 +1209,16 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
||||
&& php -m | grep -oiE '^uploadprogress$' \
|
||||
&& php-fpm -m | grep -oiE '^uploadprogress$' \
|
||||
&& php -m | grep -oiE '^uuid$' \
|
||||
&& php-fpm -m | grep -oiE '^uuid$' \
|
||||
&& php -m | grep -oiE '^vips$' \
|
||||
&& php-fpm -m | grep -oiE '^vips$' \
|
||||
&& php -m | grep -oiE '^wddx$' \
|
||||
&& php-fpm -m | grep -oiE '^wddx$' \
|
||||
&& php -m | grep -oiE '^xdebug$' \
|
||||
&& php-fpm -m | grep -oiE '^xdebug$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^xlswriter$' \
|
||||
&& php-fpm -m | grep -oiE '^xlswriter$' \
|
||||
&& php -m | grep -oiE '^xmlreader$' \
|
||||
&& php-fpm -m | grep -oiE '^xmlreader$' \
|
||||
&& php -m | grep -oiE '^xmlrpc$' \
|
||||
@@ -1115,12 +1227,10 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^xmlwriter$' \
|
||||
&& php -m | grep -oiE '^xsl$' \
|
||||
&& php-fpm -m | grep -oiE '^xsl$' \
|
||||
&& php -m | grep -oiE '^xlswriter$' \
|
||||
&& php-fpm -m | grep -oiE '^xlswriter$' \
|
||||
&& php -m | grep -oiE '^yaml$' \
|
||||
&& php-fpm -m | grep -oiE '^yaml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^zlib$' \
|
||||
&& php-fpm -m | grep -oiE '^zlib$' \
|
||||
&& true
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:7.2-base as builder
|
||||
|
||||
|
||||
@@ -6,72 +7,83 @@ FROM devilbox/php-fpm:7.2-base as builder
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
alien \
|
||||
fftw-dev \
|
||||
firebird-dev \
|
||||
freetds-dev \
|
||||
ghostscript \
|
||||
gobject-introspection \
|
||||
gtk-doc-tools \
|
||||
libaio-dev \
|
||||
libbz2-dev \
|
||||
libc-ares-dev \
|
||||
libc-client-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libenchant-dev \
|
||||
libevent-dev \
|
||||
libexif-dev \
|
||||
libexpat1-dev \
|
||||
libfbclient2 \
|
||||
libfftw3-dev \
|
||||
libfreetype6-dev \
|
||||
libgif-dev \
|
||||
libglib2.0-dev \
|
||||
libgmp-dev \
|
||||
libib-util \
|
||||
libicu-dev \
|
||||
libimagequant-dev \
|
||||
libjpeg-dev \
|
||||
libkrb5-dev \
|
||||
libldap2-dev \
|
||||
libmagick++-dev \
|
||||
libmagickcore-6.q16-dev \
|
||||
liblz4-dev \
|
||||
libmagickwand-dev \
|
||||
libmariadb-dev \
|
||||
libmcrypt-dev \
|
||||
libmemcached-dev \
|
||||
libnghttp2-dev \
|
||||
libpcre3-dev \
|
||||
libpng-dev \
|
||||
libpoppler-glib-dev \
|
||||
libpq-dev \
|
||||
libpspell-dev \
|
||||
librabbitmq-dev \
|
||||
librdkafka-dev \
|
||||
librecode-dev \
|
||||
librsvg2-dev \
|
||||
libsasl2-dev \
|
||||
libsnmp-dev \
|
||||
libssh2-1-dev \
|
||||
libssl-dev \
|
||||
libtidy-dev \
|
||||
libtool \
|
||||
libvips-dev \
|
||||
libvips42 \
|
||||
libvpx-dev \
|
||||
libwebp-dev \
|
||||
libwebp6 \
|
||||
libwebpdemux2 \
|
||||
libwebpmux3 \
|
||||
libxml2-dev \
|
||||
libxpm-dev \
|
||||
libxslt-dev \
|
||||
libyaml-dev \
|
||||
libzip-dev \
|
||||
libzstd-dev \
|
||||
re2c \
|
||||
snmp \
|
||||
unixodbc-dev \
|
||||
uuid-dev \
|
||||
zlib1g-dev \
|
||||
# Build tools
|
||||
autoconf \
|
||||
bison \
|
||||
bisonc++ \
|
||||
ca-certificates \
|
||||
git
|
||||
curl \
|
||||
dpkg-dev \
|
||||
file \
|
||||
flex \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
lemon \
|
||||
libc-client-dev \
|
||||
libc-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libssl-dev \
|
||||
make \
|
||||
patch \
|
||||
pkg-config \
|
||||
re2c \
|
||||
xz-utils \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||
@@ -88,23 +100,6 @@ RUN set -eux \
|
||||
echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \
|
||||
fi
|
||||
|
||||
# -------------------- Installing PHP Extension: ioncube --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Custom extension
|
||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
||||
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
|
||||
&& tar xvfz ioncube.tar.gz \
|
||||
&& cd ioncube \
|
||||
&& cp "ioncube_loader_lin_7.2.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||
&& cd ../ \
|
||||
&& rm -rf ioncube \
|
||||
&& rm -rf ioncube.tar.gz \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: amqp --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -192,7 +187,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: gd --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -213,7 +208,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: gmp --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
|
||||
&& ln /usr/include/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/gmp.h /usr/include/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
||||
@@ -256,7 +251,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: imap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libkrb5* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -275,16 +270,34 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: intl --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ioncube --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Custom extension
|
||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
||||
&& curl -sS --fail -k https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_$(dpkg-architecture --query DEB_HOST_GNU_CPU | sed 's/_/-/g').tar.gz -L -o ioncube.tar.gz \
|
||||
&& tar xvfz ioncube.tar.gz \
|
||||
&& cd ioncube \
|
||||
&& cp "ioncube_loader_lin_7.2.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||
&& cd ../ \
|
||||
&& rm -rf ioncube \
|
||||
&& rm -rf ioncube.tar.gz \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ldap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libldap* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -293,6 +306,35 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: lz4 --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/kjdev/php-ext-lz4 /tmp/lz4 \
|
||||
&& cd /tmp/lz4 \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \
|
||||
# Default: Install command
|
||||
&& phpize \
|
||||
&& ./configure --enable-lz4 --with-lz4-includedir=/usr \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable lz4 \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: lzf --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install lzf \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable lzf \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: mcrypt --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -304,17 +346,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install msgpack \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable msgpack \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcache --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -326,12 +357,23 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcached --------------------
|
||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install memcached \
|
||||
&& pecl install msgpack \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable msgpack \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcached --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Custom: Pecl command
|
||||
&& printf "\n\n\nyes\nyes\nyes\n" | pecl install memcached \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable memcached \
|
||||
&& true
|
||||
@@ -370,19 +412,32 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: oci8 --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
\
|
||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
\
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
@@ -390,7 +445,14 @@ RUN set -eux \
|
||||
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
||||
# Generic post-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
@@ -417,7 +479,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libsybdb.* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
||||
@@ -445,19 +507,32 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: pdo_oci --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
\
|
||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
\
|
||||
# Installation: Version specific
|
||||
@@ -498,23 +573,89 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: psr --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install psr \
|
||||
&& pecl install psr-1.1.0 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable psr \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: phalcon --------------------
|
||||
# -------------------- Installing PHP Extension: zstd --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/kjdev/php-ext-zstd /tmp/zstd \
|
||||
&& cd /tmp/zstd \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \
|
||||
# Default: Install command
|
||||
&& phpize \
|
||||
&& ./configure --enable-zstd --with-libzstd \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable zstd \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& if [ -f /usr/include/liblzf/lzf.h ]; then \
|
||||
ln -s /usr/include/liblzf/lzf.h /usr/include/; \
|
||||
fi \
|
||||
\
|
||||
# Installation: Version specific
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/phpredis/phpredis /tmp/redis \
|
||||
&& cd /tmp/redis \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \
|
||||
# Custom: Install command
|
||||
&& REDIS_ARGS=""; \
|
||||
if php -m | grep -q "igbinary"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \
|
||||
fi; \
|
||||
if php -m | grep -q "lz4"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-lz4 --with-liblz4=/usr"; \
|
||||
fi; \
|
||||
if php -m | grep -q "msgpack"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \
|
||||
fi; \
|
||||
if php -m | grep -q "zstd"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-zstd"; \
|
||||
fi; \
|
||||
phpize \
|
||||
&& ./configure --enable-redis ${REDIS_ARGS} \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
\
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: sqlsrv --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install sqlsrv-5.8.1 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable sqlsrv \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: phalcon --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/phalcon/cphalcon /tmp/phalcon \
|
||||
&& cd /tmp/phalcon \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | sed 's/^.*tags\///g' | grep -E '^v[.0-9]+$' | tail -1) \
|
||||
&& git checkout v4.1.1 \
|
||||
# Custom: Install command
|
||||
&& cd build && ./install \
|
||||
# Enabling
|
||||
@@ -530,40 +671,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: recode --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/phpredis/phpredis /tmp/redis \
|
||||
&& cd /tmp/redis \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git for-each-ref --format='%(refname)' refs/tags | grep -E 'tags/[.0-9]+$' | sed 's|.*tags/||g' | sort -V | tail -1) \
|
||||
# Custom: Install command
|
||||
&& REDIS_ARGS=""; \
|
||||
if [ -d "/usr/local/include/php/ext/igbinary" ]; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \
|
||||
fi; \
|
||||
if [ -d "/usr/local/include/php/ext/msgpack" ]; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \
|
||||
fi; \
|
||||
phpize \
|
||||
&& ./configure --enable-redis ${REDIS_ARGS} \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
\
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: rdkafka --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -575,6 +682,14 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: recode --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: shmop --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -588,7 +703,7 @@ RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure snmp --with-openssl-dir \
|
||||
&& docker-php-ext-configure snmp --with-snmp \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
|
||||
&& true
|
||||
|
||||
@@ -597,8 +712,6 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure soap --with-libxml-dir=/usr \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \
|
||||
&& true
|
||||
|
||||
@@ -622,17 +735,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: sqlsrv --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install sqlsrv-5.8.1 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable sqlsrv \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ssh2 --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -644,12 +746,23 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --enable-zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip=/usr \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: swoole --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Custom: Pecl command
|
||||
&& yes yes | pecl install swoole \
|
||||
# Default: Pecl command
|
||||
&& pecl install swoole-4.8.12 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable swoole \
|
||||
&& true
|
||||
@@ -690,30 +803,27 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: uploadprogress --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \
|
||||
&& cd /tmp/uploadprogress \
|
||||
# Default: Install command
|
||||
&& phpize \
|
||||
&& ./configure --enable-uploadprogress \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uploadprogress \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uploadprogress \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: uuid --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uuid \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uuid \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: vips --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& git clone https://github.com/libvips/libvips /tmp/libvips \
|
||||
&& cd /tmp/libvips \
|
||||
&& ./autogen.sh \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
&& cd /tmp \
|
||||
&& rm -rf /tmp/libvips \
|
||||
\
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
@@ -734,13 +844,24 @@ RUN set -eux \
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xdebug --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install xdebug-3.1.6 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable xdebug \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xlswriter --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install xdebug \
|
||||
&& pecl install xlswriter \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable xdebug \
|
||||
&& docker-php-ext-enable xlswriter \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -762,17 +883,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xlswriter --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install xlswriter \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable xlswriter \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: yaml --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -784,21 +894,11 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
|
||||
|
||||
# Fix php.ini settings for enabled extensions
|
||||
RUN set -eux \
|
||||
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/*
|
||||
&& find "$(php -r 'echo ini_get("extension_dir");')/" -type f -exec chmod +x {} \;
|
||||
|
||||
# Fix oracle dir for images that don't have oci installed
|
||||
RUN set -eux \
|
||||
@@ -806,13 +906,13 @@ RUN set -eux \
|
||||
|
||||
# Shrink everything down
|
||||
RUN set -eux \
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:7.2-base as final
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -835,6 +935,55 @@ LABEL "org.opencontainers.image.title"="PHP-FPM 7.2-mods"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 7.2-mods"
|
||||
|
||||
|
||||
###
|
||||
### Install runtime libraries
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
ghostscript \
|
||||
libaio1 \
|
||||
libaspell15 \
|
||||
libc-ares2 \
|
||||
libc-client2007e \
|
||||
libenchant1c2a \
|
||||
libevent-2.1-6 \
|
||||
libfbclient2 \
|
||||
libfreetype6 \
|
||||
libicu63 \
|
||||
libjpeg62-turbo \
|
||||
liblz4-1 \
|
||||
libmagickwand-6.q16-6 \
|
||||
libmariadbd19 \
|
||||
libmcrypt4 \
|
||||
libmemcachedutil2 \
|
||||
libnghttp2-14 \
|
||||
libpng16-16 \
|
||||
libpq5 \
|
||||
librabbitmq4 \
|
||||
librdkafka1 \
|
||||
librecode0 \
|
||||
libssh2-1 \
|
||||
libsybdb5 \
|
||||
libtidy5deb1 \
|
||||
libvips42 \
|
||||
libvpx5 \
|
||||
libwebp6 \
|
||||
libxpm4 \
|
||||
libxslt1.1 \
|
||||
libyaml-0-2 \
|
||||
libzip4 \
|
||||
libzstd1 \
|
||||
snmp \
|
||||
unixodbc \
|
||||
uuid \
|
||||
zlib1g \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& update-ca-certificates
|
||||
|
||||
|
||||
###
|
||||
### Copy artifacts from builder
|
||||
###
|
||||
@@ -847,67 +996,7 @@ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
fftw2 \
|
||||
ghostscript \
|
||||
gir1.2-poppler-0.18 \
|
||||
imagemagick-6.q16 \
|
||||
libaio1 \
|
||||
libaspell15 \
|
||||
libc-client2007e \
|
||||
libenchant1c2a \
|
||||
libexif12 \
|
||||
libexpat1 \
|
||||
libfbclient2 \
|
||||
libfftw3-3 \
|
||||
libfreetype6 \
|
||||
libgif7 \
|
||||
libglib2.0-0 \
|
||||
libicu63 \
|
||||
libimagequant0 \
|
||||
libjpeg62-turbo \
|
||||
libmagick++-6.q16-8 \
|
||||
libmagick++-6.q16hdri-8 \
|
||||
libmagickcore-6.q16-6 \
|
||||
libmagickcore-6.q16-6-extra \
|
||||
libmagickwand-6.q16-6 \
|
||||
libmagickwand-6.q16hdri-6 \
|
||||
libmcrypt4 \
|
||||
libmemcachedutil2 \
|
||||
libnghttp2-14 \
|
||||
libpng16-16 \
|
||||
libpoppler-glib8 \
|
||||
libpq5 \
|
||||
librabbitmq4 \
|
||||
librdkafka1 \
|
||||
librecode0 \
|
||||
librsvg2-2 \
|
||||
libssh2-1 \
|
||||
libsybdb5 \
|
||||
libtidy5deb1 \
|
||||
libvpx5 \
|
||||
libwebp-dev \
|
||||
libwebp6 \
|
||||
libwebpdemux2 \
|
||||
libwebpmux3 \
|
||||
libxpm4 \
|
||||
libxslt1.1 \
|
||||
libyaml-0-2 \
|
||||
libzip4 \
|
||||
snmp \
|
||||
unixodbc \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& update-ca-certificates
|
||||
|
||||
|
||||
###
|
||||
### Post Install
|
||||
### Post Install executions
|
||||
###
|
||||
RUN set -eux \
|
||||
# ---------- imagick ----------
|
||||
@@ -922,7 +1011,14 @@ RUN set -eux \
|
||||
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
\
|
||||
# ---------- oci8 ----------
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
@@ -963,12 +1059,18 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^ctype$' \
|
||||
&& php -m | grep -oiE '^curl$' \
|
||||
&& php-fpm -m | grep -oiE '^curl$' \
|
||||
&& php -m | grep -oiE '^date$' \
|
||||
&& php-fpm -m | grep -oiE '^date$' \
|
||||
&& php -m | grep -oiE '^dba$' \
|
||||
&& php-fpm -m | grep -oiE '^dba$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^dom$' \
|
||||
&& php-fpm -m | grep -oiE '^dom$' \
|
||||
&& php -m | grep -oiE '^enchant$' \
|
||||
&& php-fpm -m | grep -oiE '^enchant$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^exif$' \
|
||||
&& php-fpm -m | grep -oiE '^exif$' \
|
||||
&& php -m | grep -oiE '^fileinfo$' \
|
||||
@@ -1001,16 +1103,16 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^json$' \
|
||||
&& php -m | grep -oiE '^ldap$' \
|
||||
&& php-fpm -m | grep -oiE '^ldap$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^lz4$' \
|
||||
&& php-fpm -m | grep -oiE '^lz4$' \
|
||||
&& php -m | grep -oiE '^lzf$' \
|
||||
&& php-fpm -m | grep -oiE '^lzf$' \
|
||||
&& php -m | grep -oiE '^mcrypt$' \
|
||||
&& php-fpm -m | grep -oiE '^mcrypt$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcache$' \
|
||||
&& php-fpm -m | grep -oiE '^memcache$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcached$' \
|
||||
&& php-fpm -m | grep -oiE '^memcached$' \
|
||||
&& php -m | grep -oiE '^mongodb$' \
|
||||
@@ -1019,6 +1121,8 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^mysqli$' \
|
||||
&& php -m | grep -oiE '^mysqlnd$' \
|
||||
&& php-fpm -m | grep -oiE '^mysqlnd$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^oauth$' \
|
||||
&& php-fpm -m | grep -oiE '^oauth$' \
|
||||
&& php -m | grep -oiE '^oci8$' \
|
||||
@@ -1029,8 +1133,6 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^openssl$' \
|
||||
&& php -m | grep -oiE '^pcntl$' \
|
||||
&& php-fpm -m | grep -oiE '^pcntl$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^pdo$' \
|
||||
&& php-fpm -m | grep -oiE '^pdo$' \
|
||||
&& php -m | grep -oiE '^pdo_dblib$' \
|
||||
@@ -1051,6 +1153,14 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^pgsql$' \
|
||||
&& php -m | grep -oiE '^psr$' \
|
||||
&& php-fpm -m | grep -oiE '^psr$' \
|
||||
&& php -m | grep -oiE '^zstd$' \
|
||||
&& php-fpm -m | grep -oiE '^zstd$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^sqlite3$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlite3$' \
|
||||
&& php -m | grep -oiE '^sqlsrv$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlsrv$' \
|
||||
&& php -m | grep -oiE '^phalcon$' \
|
||||
&& php-fpm -m | grep -oiE '^phalcon$' \
|
||||
&& php -m | grep -oiE '^phar$' \
|
||||
@@ -1059,15 +1169,13 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^posix$' \
|
||||
&& php -m | grep -oiE '^pspell$' \
|
||||
&& php-fpm -m | grep -oiE '^pspell$' \
|
||||
&& php -m | grep -oiE '^rdkafka$' \
|
||||
&& php-fpm -m | grep -oiE '^rdkafka$' \
|
||||
&& php -m | grep -oiE '^readline$' \
|
||||
&& php -m | grep -oiE '^recode$' \
|
||||
&& php-fpm -m | grep -oiE '^recode$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^reflection$' \
|
||||
&& php-fpm -m | grep -oiE '^reflection$' \
|
||||
&& php -m | grep -oiE '^rdkafka$' \
|
||||
&& php-fpm -m | grep -oiE '^rdkafka$' \
|
||||
&& php -m | grep -oiE '^session$' \
|
||||
&& php-fpm -m | grep -oiE '^session$' \
|
||||
&& php -m | grep -oiE '^shmop$' \
|
||||
@@ -1086,10 +1194,12 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^solr$' \
|
||||
&& php -m | grep -oiE '^spl$' \
|
||||
&& php-fpm -m | grep -oiE '^spl$' \
|
||||
&& php -m | grep -oiE '^sqlsrv$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlsrv$' \
|
||||
&& php -m | grep -oiE '^ssh2$' \
|
||||
&& php-fpm -m | grep -oiE '^ssh2$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^swoole$' \
|
||||
&& php-fpm -m | grep -oiE '^swoole$' \
|
||||
&& php -m | grep -oiE '^sysvmsg$' \
|
||||
@@ -1104,14 +1214,16 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
||||
&& php -m | grep -oiE '^uploadprogress$' \
|
||||
&& php-fpm -m | grep -oiE '^uploadprogress$' \
|
||||
&& php -m | grep -oiE '^uuid$' \
|
||||
&& php-fpm -m | grep -oiE '^uuid$' \
|
||||
&& php -m | grep -oiE '^vips$' \
|
||||
&& php-fpm -m | grep -oiE '^vips$' \
|
||||
&& php -m | grep -oiE '^wddx$' \
|
||||
&& php-fpm -m | grep -oiE '^wddx$' \
|
||||
&& php -m | grep -oiE '^xdebug$' \
|
||||
&& php-fpm -m | grep -oiE '^xdebug$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^xlswriter$' \
|
||||
&& php-fpm -m | grep -oiE '^xlswriter$' \
|
||||
&& php -m | grep -oiE '^xmlreader$' \
|
||||
&& php-fpm -m | grep -oiE '^xmlreader$' \
|
||||
&& php -m | grep -oiE '^xmlrpc$' \
|
||||
@@ -1120,12 +1232,10 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^xmlwriter$' \
|
||||
&& php -m | grep -oiE '^xsl$' \
|
||||
&& php-fpm -m | grep -oiE '^xsl$' \
|
||||
&& php -m | grep -oiE '^xlswriter$' \
|
||||
&& php-fpm -m | grep -oiE '^xlswriter$' \
|
||||
&& php -m | grep -oiE '^yaml$' \
|
||||
&& php-fpm -m | grep -oiE '^yaml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^zlib$' \
|
||||
&& php-fpm -m | grep -oiE '^zlib$' \
|
||||
&& true
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:7.3-base as builder
|
||||
|
||||
|
||||
@@ -6,72 +7,83 @@ FROM devilbox/php-fpm:7.3-base as builder
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
alien \
|
||||
fftw-dev \
|
||||
firebird-dev \
|
||||
freetds-dev \
|
||||
ghostscript \
|
||||
gobject-introspection \
|
||||
gtk-doc-tools \
|
||||
libaio-dev \
|
||||
libbz2-dev \
|
||||
libc-ares-dev \
|
||||
libc-client-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libenchant-dev \
|
||||
libevent-dev \
|
||||
libexif-dev \
|
||||
libexpat1-dev \
|
||||
libfbclient2 \
|
||||
libfftw3-dev \
|
||||
libfreetype6-dev \
|
||||
libgif-dev \
|
||||
libglib2.0-dev \
|
||||
libgmp-dev \
|
||||
libib-util \
|
||||
libicu-dev \
|
||||
libimagequant-dev \
|
||||
libjpeg-dev \
|
||||
libkrb5-dev \
|
||||
libldap2-dev \
|
||||
libmagick++-dev \
|
||||
libmagickcore-6.q16-dev \
|
||||
liblz4-dev \
|
||||
liblzf-dev \
|
||||
libmagickwand-dev \
|
||||
libmariadb-dev \
|
||||
libmcrypt-dev \
|
||||
libmemcached-dev \
|
||||
libnghttp2-dev \
|
||||
libpcre3-dev \
|
||||
libpng-dev \
|
||||
libpoppler-glib-dev \
|
||||
libpq-dev \
|
||||
libpspell-dev \
|
||||
librabbitmq-dev \
|
||||
librdkafka-dev \
|
||||
librecode-dev \
|
||||
librsvg2-dev \
|
||||
libsasl2-dev \
|
||||
libsnmp-dev \
|
||||
libssh2-1-dev \
|
||||
libssl-dev \
|
||||
libtidy-dev \
|
||||
libtool \
|
||||
libvips-dev \
|
||||
libvips42 \
|
||||
libvpx-dev \
|
||||
libwebp-dev \
|
||||
libwebp6 \
|
||||
libwebpdemux2 \
|
||||
libwebpmux3 \
|
||||
libxml2-dev \
|
||||
libxpm-dev \
|
||||
libxslt-dev \
|
||||
libyaml-dev \
|
||||
libzip-dev \
|
||||
libzstd-dev \
|
||||
re2c \
|
||||
snmp \
|
||||
unixodbc-dev \
|
||||
uuid-dev \
|
||||
zlib1g-dev \
|
||||
# Build tools
|
||||
autoconf \
|
||||
bison \
|
||||
bisonc++ \
|
||||
ca-certificates \
|
||||
git
|
||||
curl \
|
||||
dpkg-dev \
|
||||
file \
|
||||
flex \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
lemon \
|
||||
libc-client-dev \
|
||||
libc-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libssl-dev \
|
||||
make \
|
||||
patch \
|
||||
pkg-config \
|
||||
re2c \
|
||||
xz-utils \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||
@@ -88,23 +100,6 @@ RUN set -eux \
|
||||
echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \
|
||||
fi
|
||||
|
||||
# -------------------- Installing PHP Extension: ioncube --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Custom extension
|
||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
||||
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
|
||||
&& tar xvfz ioncube.tar.gz \
|
||||
&& cd ioncube \
|
||||
&& cp "ioncube_loader_lin_7.3.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||
&& cd ../ \
|
||||
&& rm -rf ioncube \
|
||||
&& rm -rf ioncube.tar.gz \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: amqp --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -173,14 +168,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: enchant --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: exif --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -192,7 +179,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: gd --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -213,7 +200,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: gmp --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
|
||||
&& ln /usr/include/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/gmp.h /usr/include/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
||||
@@ -256,7 +243,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: imap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libkrb5* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -281,10 +268,27 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ioncube --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Custom extension
|
||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
||||
&& curl -sS --fail -k https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_$(dpkg-architecture --query DEB_HOST_GNU_CPU | sed 's/_/-/g').tar.gz -L -o ioncube.tar.gz \
|
||||
&& tar xvfz ioncube.tar.gz \
|
||||
&& cd ioncube \
|
||||
&& cp "ioncube_loader_lin_7.3.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||
&& cd ../ \
|
||||
&& rm -rf ioncube \
|
||||
&& rm -rf ioncube.tar.gz \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ldap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libldap* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -293,6 +297,35 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: lz4 --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/kjdev/php-ext-lz4 /tmp/lz4 \
|
||||
&& cd /tmp/lz4 \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \
|
||||
# Default: Install command
|
||||
&& phpize \
|
||||
&& ./configure --enable-lz4 --with-lz4-includedir=/usr \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable lz4 \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: lzf --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install lzf \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable lzf \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: mcrypt --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -304,17 +337,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install msgpack \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable msgpack \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcache --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -326,12 +348,23 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcached --------------------
|
||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install memcached \
|
||||
&& pecl install msgpack \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable msgpack \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcached --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Custom: Pecl command
|
||||
&& printf "\n\n\nyes\nyes\nyes\n" | pecl install memcached \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable memcached \
|
||||
&& true
|
||||
@@ -370,19 +403,32 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: oci8 --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
\
|
||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
\
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
@@ -390,7 +436,14 @@ RUN set -eux \
|
||||
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
||||
# Generic post-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
@@ -417,7 +470,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libsybdb.* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
||||
@@ -445,19 +498,32 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: pdo_oci --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
\
|
||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
\
|
||||
# Installation: Version specific
|
||||
@@ -479,10 +545,10 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: pdo_sqlsrv --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install pdo_sqlsrv \
|
||||
&& pecl install pdo_sqlsrv-5.9.0 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable pdo_sqlsrv \
|
||||
&& true
|
||||
@@ -507,14 +573,83 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: phalcon --------------------
|
||||
# -------------------- Installing PHP Extension: zstd --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/kjdev/php-ext-zstd /tmp/zstd \
|
||||
&& cd /tmp/zstd \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \
|
||||
# Default: Install command
|
||||
&& phpize \
|
||||
&& ./configure --enable-zstd --with-libzstd \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable zstd \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& if [ -f /usr/include/liblzf/lzf.h ]; then \
|
||||
ln -s /usr/include/liblzf/lzf.h /usr/include/; \
|
||||
fi \
|
||||
\
|
||||
# Installation: Generic
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/phpredis/phpredis /tmp/redis \
|
||||
&& cd /tmp/redis \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \
|
||||
# Custom: Install command
|
||||
&& REDIS_ARGS=""; \
|
||||
if php -m | grep -q "igbinary"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \
|
||||
fi; \
|
||||
if php -m | grep -q "lz4"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-lz4 --with-liblz4=/usr"; \
|
||||
fi; \
|
||||
if php -m | grep -q "lzf"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-lzf --with-liblzf=/usr"; \
|
||||
fi; \
|
||||
if php -m | grep -q "msgpack"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \
|
||||
fi; \
|
||||
if php -m | grep -q "zstd"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-zstd"; \
|
||||
fi; \
|
||||
phpize \
|
||||
&& ./configure --enable-redis ${REDIS_ARGS} \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
\
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: sqlsrv --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install sqlsrv-5.9.0 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable sqlsrv \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: phalcon --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/phalcon/cphalcon /tmp/phalcon \
|
||||
&& cd /tmp/phalcon \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | sed 's/^.*tags\///g' | grep -E '^v[.0-9]+$' | tail -1) \
|
||||
&& git checkout v4.1.2 \
|
||||
# Custom: Install command
|
||||
&& cd build && ./install \
|
||||
# Enabling
|
||||
@@ -530,40 +665,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: recode --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/phpredis/phpredis /tmp/redis \
|
||||
&& cd /tmp/redis \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git for-each-ref --format='%(refname)' refs/tags | grep -E 'tags/[.0-9]+$' | sed 's|.*tags/||g' | sort -V | tail -1) \
|
||||
# Custom: Install command
|
||||
&& REDIS_ARGS=""; \
|
||||
if [ -d "/usr/local/include/php/ext/igbinary" ]; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \
|
||||
fi; \
|
||||
if [ -d "/usr/local/include/php/ext/msgpack" ]; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \
|
||||
fi; \
|
||||
phpize \
|
||||
&& ./configure --enable-redis ${REDIS_ARGS} \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
\
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: rdkafka --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -575,6 +676,14 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: recode --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: shmop --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -588,7 +697,7 @@ RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure snmp --with-openssl-dir \
|
||||
&& docker-php-ext-configure snmp --with-snmp \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
|
||||
&& true
|
||||
|
||||
@@ -597,8 +706,6 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure soap --with-libxml-dir=/usr \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \
|
||||
&& true
|
||||
|
||||
@@ -622,17 +729,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: sqlsrv --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install sqlsrv \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable sqlsrv \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ssh2 --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -644,12 +740,23 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --enable-zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip=/usr \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: swoole --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Custom: Pecl command
|
||||
&& yes yes | pecl install swoole \
|
||||
# Default: Pecl command
|
||||
&& pecl install swoole-4.8.12 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable swoole \
|
||||
&& true
|
||||
@@ -690,30 +797,27 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: uploadprogress --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \
|
||||
&& cd /tmp/uploadprogress \
|
||||
# Default: Install command
|
||||
&& phpize \
|
||||
&& ./configure --enable-uploadprogress \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uploadprogress \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uploadprogress \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: uuid --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uuid \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uuid \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: vips --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& git clone https://github.com/libvips/libvips /tmp/libvips \
|
||||
&& cd /tmp/libvips \
|
||||
&& ./autogen.sh \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
&& cd /tmp \
|
||||
&& rm -rf /tmp/libvips \
|
||||
\
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
@@ -734,13 +838,24 @@ RUN set -eux \
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xdebug --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install xdebug-3.1.6 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable xdebug \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xlswriter --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install xdebug \
|
||||
&& pecl install xlswriter \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable xdebug \
|
||||
&& docker-php-ext-enable xlswriter \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -762,17 +877,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xlswriter --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install xlswriter \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable xlswriter \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: yaml --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -784,21 +888,11 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
|
||||
|
||||
# Fix php.ini settings for enabled extensions
|
||||
RUN set -eux \
|
||||
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/*
|
||||
&& find "$(php -r 'echo ini_get("extension_dir");')/" -type f -exec chmod +x {} \;
|
||||
|
||||
# Fix oracle dir for images that don't have oci installed
|
||||
RUN set -eux \
|
||||
@@ -806,13 +900,13 @@ RUN set -eux \
|
||||
|
||||
# Shrink everything down
|
||||
RUN set -eux \
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:7.3-base as final
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -835,6 +929,55 @@ LABEL "org.opencontainers.image.title"="PHP-FPM 7.3-mods"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 7.3-mods"
|
||||
|
||||
|
||||
###
|
||||
### Install runtime libraries
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
ghostscript \
|
||||
libaio1 \
|
||||
libaspell15 \
|
||||
libc-ares2 \
|
||||
libc-client2007e \
|
||||
libevent-2.1-7 \
|
||||
libfbclient2 \
|
||||
libfreetype6 \
|
||||
libicu67 \
|
||||
libjpeg62-turbo \
|
||||
liblz4-1 \
|
||||
liblzf1 \
|
||||
libmagickwand-6.q16-6 \
|
||||
libmariadbd19 \
|
||||
libmcrypt4 \
|
||||
libmemcachedutil2 \
|
||||
libnghttp2-14 \
|
||||
libpng16-16 \
|
||||
libpq5 \
|
||||
librabbitmq4 \
|
||||
librdkafka1 \
|
||||
librecode0 \
|
||||
libssh2-1 \
|
||||
libsybdb5 \
|
||||
libtidy5deb1 \
|
||||
libvips42 \
|
||||
libvpx6 \
|
||||
libwebp6 \
|
||||
libxpm4 \
|
||||
libxslt1.1 \
|
||||
libyaml-0-2 \
|
||||
libzip4 \
|
||||
libzstd1 \
|
||||
snmp \
|
||||
unixodbc \
|
||||
uuid \
|
||||
zlib1g \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& update-ca-certificates
|
||||
|
||||
|
||||
###
|
||||
### Copy artifacts from builder
|
||||
###
|
||||
@@ -847,67 +990,7 @@ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
fftw2 \
|
||||
ghostscript \
|
||||
gir1.2-poppler-0.18 \
|
||||
imagemagick-6.q16 \
|
||||
libaio1 \
|
||||
libaspell15 \
|
||||
libc-client2007e \
|
||||
libenchant1c2a \
|
||||
libexif12 \
|
||||
libexpat1 \
|
||||
libfbclient2 \
|
||||
libfftw3-3 \
|
||||
libfreetype6 \
|
||||
libgif7 \
|
||||
libglib2.0-0 \
|
||||
libicu63 \
|
||||
libimagequant0 \
|
||||
libjpeg62-turbo \
|
||||
libmagick++-6.q16-8 \
|
||||
libmagick++-6.q16hdri-8 \
|
||||
libmagickcore-6.q16-6 \
|
||||
libmagickcore-6.q16-6-extra \
|
||||
libmagickwand-6.q16-6 \
|
||||
libmagickwand-6.q16hdri-6 \
|
||||
libmcrypt4 \
|
||||
libmemcachedutil2 \
|
||||
libnghttp2-14 \
|
||||
libpng16-16 \
|
||||
libpoppler-glib8 \
|
||||
libpq5 \
|
||||
librabbitmq4 \
|
||||
librdkafka1 \
|
||||
librecode0 \
|
||||
librsvg2-2 \
|
||||
libssh2-1 \
|
||||
libsybdb5 \
|
||||
libtidy5deb1 \
|
||||
libvpx5 \
|
||||
libwebp-dev \
|
||||
libwebp6 \
|
||||
libwebpdemux2 \
|
||||
libwebpmux3 \
|
||||
libxpm4 \
|
||||
libxslt1.1 \
|
||||
libyaml-0-2 \
|
||||
libzip4 \
|
||||
snmp \
|
||||
unixodbc \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& update-ca-certificates
|
||||
|
||||
|
||||
###
|
||||
### Post Install
|
||||
### Post Install executions
|
||||
###
|
||||
RUN set -eux \
|
||||
# ---------- imagick ----------
|
||||
@@ -922,7 +1005,14 @@ RUN set -eux \
|
||||
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
\
|
||||
# ---------- oci8 ----------
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
@@ -963,12 +1053,16 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^ctype$' \
|
||||
&& php -m | grep -oiE '^curl$' \
|
||||
&& php-fpm -m | grep -oiE '^curl$' \
|
||||
&& php -m | grep -oiE '^date$' \
|
||||
&& php-fpm -m | grep -oiE '^date$' \
|
||||
&& php -m | grep -oiE '^dba$' \
|
||||
&& php-fpm -m | grep -oiE '^dba$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^dom$' \
|
||||
&& php-fpm -m | grep -oiE '^dom$' \
|
||||
&& php -m | grep -oiE '^enchant$' \
|
||||
&& php-fpm -m | grep -oiE '^enchant$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^exif$' \
|
||||
&& php-fpm -m | grep -oiE '^exif$' \
|
||||
&& php -m | grep -oiE '^fileinfo$' \
|
||||
@@ -1001,16 +1095,16 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^json$' \
|
||||
&& php -m | grep -oiE '^ldap$' \
|
||||
&& php-fpm -m | grep -oiE '^ldap$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^lz4$' \
|
||||
&& php-fpm -m | grep -oiE '^lz4$' \
|
||||
&& php -m | grep -oiE '^lzf$' \
|
||||
&& php-fpm -m | grep -oiE '^lzf$' \
|
||||
&& php -m | grep -oiE '^mcrypt$' \
|
||||
&& php-fpm -m | grep -oiE '^mcrypt$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcache$' \
|
||||
&& php-fpm -m | grep -oiE '^memcache$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcached$' \
|
||||
&& php-fpm -m | grep -oiE '^memcached$' \
|
||||
&& php -m | grep -oiE '^mongodb$' \
|
||||
@@ -1019,6 +1113,8 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^mysqli$' \
|
||||
&& php -m | grep -oiE '^mysqlnd$' \
|
||||
&& php-fpm -m | grep -oiE '^mysqlnd$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^oauth$' \
|
||||
&& php-fpm -m | grep -oiE '^oauth$' \
|
||||
&& php -m | grep -oiE '^oci8$' \
|
||||
@@ -1029,8 +1125,6 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^openssl$' \
|
||||
&& php -m | grep -oiE '^pcntl$' \
|
||||
&& php-fpm -m | grep -oiE '^pcntl$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^pdo$' \
|
||||
&& php-fpm -m | grep -oiE '^pdo$' \
|
||||
&& php -m | grep -oiE '^pdo_dblib$' \
|
||||
@@ -1051,6 +1145,14 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^pgsql$' \
|
||||
&& php -m | grep -oiE '^psr$' \
|
||||
&& php-fpm -m | grep -oiE '^psr$' \
|
||||
&& php -m | grep -oiE '^zstd$' \
|
||||
&& php-fpm -m | grep -oiE '^zstd$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^sqlite3$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlite3$' \
|
||||
&& php -m | grep -oiE '^sqlsrv$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlsrv$' \
|
||||
&& php -m | grep -oiE '^phalcon$' \
|
||||
&& php-fpm -m | grep -oiE '^phalcon$' \
|
||||
&& php -m | grep -oiE '^phar$' \
|
||||
@@ -1059,15 +1161,13 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^posix$' \
|
||||
&& php -m | grep -oiE '^pspell$' \
|
||||
&& php-fpm -m | grep -oiE '^pspell$' \
|
||||
&& php -m | grep -oiE '^rdkafka$' \
|
||||
&& php-fpm -m | grep -oiE '^rdkafka$' \
|
||||
&& php -m | grep -oiE '^readline$' \
|
||||
&& php -m | grep -oiE '^recode$' \
|
||||
&& php-fpm -m | grep -oiE '^recode$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^reflection$' \
|
||||
&& php-fpm -m | grep -oiE '^reflection$' \
|
||||
&& php -m | grep -oiE '^rdkafka$' \
|
||||
&& php-fpm -m | grep -oiE '^rdkafka$' \
|
||||
&& php -m | grep -oiE '^session$' \
|
||||
&& php-fpm -m | grep -oiE '^session$' \
|
||||
&& php -m | grep -oiE '^shmop$' \
|
||||
@@ -1086,10 +1186,12 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^solr$' \
|
||||
&& php -m | grep -oiE '^spl$' \
|
||||
&& php-fpm -m | grep -oiE '^spl$' \
|
||||
&& php -m | grep -oiE '^sqlsrv$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlsrv$' \
|
||||
&& php -m | grep -oiE '^ssh2$' \
|
||||
&& php-fpm -m | grep -oiE '^ssh2$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^swoole$' \
|
||||
&& php-fpm -m | grep -oiE '^swoole$' \
|
||||
&& php -m | grep -oiE '^sysvmsg$' \
|
||||
@@ -1104,14 +1206,16 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
||||
&& php -m | grep -oiE '^uploadprogress$' \
|
||||
&& php-fpm -m | grep -oiE '^uploadprogress$' \
|
||||
&& php -m | grep -oiE '^uuid$' \
|
||||
&& php-fpm -m | grep -oiE '^uuid$' \
|
||||
&& php -m | grep -oiE '^vips$' \
|
||||
&& php-fpm -m | grep -oiE '^vips$' \
|
||||
&& php -m | grep -oiE '^wddx$' \
|
||||
&& php-fpm -m | grep -oiE '^wddx$' \
|
||||
&& php -m | grep -oiE '^xdebug$' \
|
||||
&& php-fpm -m | grep -oiE '^xdebug$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^xlswriter$' \
|
||||
&& php-fpm -m | grep -oiE '^xlswriter$' \
|
||||
&& php -m | grep -oiE '^xmlreader$' \
|
||||
&& php-fpm -m | grep -oiE '^xmlreader$' \
|
||||
&& php -m | grep -oiE '^xmlrpc$' \
|
||||
@@ -1120,12 +1224,10 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^xmlwriter$' \
|
||||
&& php -m | grep -oiE '^xsl$' \
|
||||
&& php-fpm -m | grep -oiE '^xsl$' \
|
||||
&& php -m | grep -oiE '^xlswriter$' \
|
||||
&& php-fpm -m | grep -oiE '^xlswriter$' \
|
||||
&& php -m | grep -oiE '^yaml$' \
|
||||
&& php-fpm -m | grep -oiE '^yaml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^zlib$' \
|
||||
&& php-fpm -m | grep -oiE '^zlib$' \
|
||||
&& true
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:7.4-base as builder
|
||||
|
||||
|
||||
@@ -6,72 +7,83 @@ FROM devilbox/php-fpm:7.4-base as builder
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
alien \
|
||||
fftw-dev \
|
||||
firebird-dev \
|
||||
freetds-dev \
|
||||
ghostscript \
|
||||
gobject-introspection \
|
||||
gtk-doc-tools \
|
||||
libaio-dev \
|
||||
libbz2-dev \
|
||||
libc-ares-dev \
|
||||
libc-client-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libenchant-dev \
|
||||
libevent-dev \
|
||||
libexif-dev \
|
||||
libexpat1-dev \
|
||||
libfbclient2 \
|
||||
libffi-dev \
|
||||
libfftw3-dev \
|
||||
libfreetype6-dev \
|
||||
libgif-dev \
|
||||
libglib2.0-dev \
|
||||
libgmp-dev \
|
||||
libib-util \
|
||||
libicu-dev \
|
||||
libimagequant-dev \
|
||||
libjpeg-dev \
|
||||
libkrb5-dev \
|
||||
libldap2-dev \
|
||||
libmagick++-dev \
|
||||
libmagickcore-6.q16-dev \
|
||||
liblz4-dev \
|
||||
liblzf-dev \
|
||||
libmagickwand-dev \
|
||||
libmariadb-dev \
|
||||
libmcrypt-dev \
|
||||
libmemcached-dev \
|
||||
libnghttp2-dev \
|
||||
libpcre3-dev \
|
||||
libpng-dev \
|
||||
libpoppler-glib-dev \
|
||||
libpq-dev \
|
||||
libpspell-dev \
|
||||
librabbitmq-dev \
|
||||
librdkafka-dev \
|
||||
librsvg2-dev \
|
||||
libsasl2-dev \
|
||||
libsnmp-dev \
|
||||
libssh2-1-dev \
|
||||
libssl-dev \
|
||||
libtidy-dev \
|
||||
libtool \
|
||||
libvips-dev \
|
||||
libvips42 \
|
||||
libvpx-dev \
|
||||
libwebp-dev \
|
||||
libwebp6 \
|
||||
libwebpdemux2 \
|
||||
libwebpmux3 \
|
||||
libxml2-dev \
|
||||
libxpm-dev \
|
||||
libxslt-dev \
|
||||
libyaml-dev \
|
||||
libzip-dev \
|
||||
libzstd-dev \
|
||||
re2c \
|
||||
snmp \
|
||||
unixodbc-dev \
|
||||
uuid-dev \
|
||||
zlib1g-dev \
|
||||
# Build tools
|
||||
autoconf \
|
||||
bison \
|
||||
bisonc++ \
|
||||
ca-certificates \
|
||||
git
|
||||
curl \
|
||||
dpkg-dev \
|
||||
file \
|
||||
flex \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
lemon \
|
||||
libc-client-dev \
|
||||
libc-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libssl-dev \
|
||||
make \
|
||||
patch \
|
||||
pkg-config \
|
||||
re2c \
|
||||
xz-utils \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||
@@ -88,23 +100,6 @@ RUN set -eux \
|
||||
echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \
|
||||
fi
|
||||
|
||||
# -------------------- Installing PHP Extension: ioncube --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Custom extension
|
||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
||||
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
|
||||
&& tar xvfz ioncube.tar.gz \
|
||||
&& cd ioncube \
|
||||
&& cp "ioncube_loader_lin_7.4.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||
&& cd ../ \
|
||||
&& rm -rf ioncube \
|
||||
&& rm -rf ioncube.tar.gz \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: amqp --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -173,14 +168,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: enchant --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: exif --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -192,24 +179,15 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: ffi --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/dstogov/php-ffi /tmp/ffi \
|
||||
&& cd /tmp/ffi \
|
||||
# Custom: Install command
|
||||
&& phpize \
|
||||
&& ./configure --with-ffi \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
\
|
||||
# Enabling
|
||||
&& docker-php-ext-enable ffi \
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ffi \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: gd --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -230,7 +208,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: gmp --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
|
||||
&& ln /usr/include/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/gmp.h /usr/include/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
||||
@@ -273,7 +251,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: imap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libkrb5* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -290,10 +268,27 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ioncube --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Custom extension
|
||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
||||
&& curl -sS --fail -k https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_$(dpkg-architecture --query DEB_HOST_GNU_CPU | sed 's/_/-/g').tar.gz -L -o ioncube.tar.gz \
|
||||
&& tar xvfz ioncube.tar.gz \
|
||||
&& cd ioncube \
|
||||
&& cp "ioncube_loader_lin_7.4.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||
&& cd ../ \
|
||||
&& rm -rf ioncube \
|
||||
&& rm -rf ioncube.tar.gz \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ldap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libldap* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -302,6 +297,35 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: lz4 --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/kjdev/php-ext-lz4 /tmp/lz4 \
|
||||
&& cd /tmp/lz4 \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \
|
||||
# Default: Install command
|
||||
&& phpize \
|
||||
&& ./configure --enable-lz4 --with-lz4-includedir=/usr \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable lz4 \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: lzf --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install lzf \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable lzf \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: mcrypt --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -313,17 +337,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install msgpack \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable msgpack \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcache --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -335,16 +348,23 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install msgpack \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable msgpack \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcached --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/php-memcached-dev/php-memcached /tmp/memcached \
|
||||
&& cd /tmp/memcached \
|
||||
# Custom: Branch
|
||||
&& git checkout master \
|
||||
# Custom: Install command
|
||||
&& phpize && ./configure --enable-memcached && make -j$(getconf _NPROCESSORS_ONLN) && make install \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Custom: Pecl command
|
||||
&& printf "\n\n\nyes\nyes\nyes\n" | pecl install memcached \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable memcached \
|
||||
&& true
|
||||
@@ -383,19 +403,32 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: oci8 --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
\
|
||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
\
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
@@ -403,7 +436,14 @@ RUN set -eux \
|
||||
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
||||
# Generic post-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
@@ -430,7 +470,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libsybdb.* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
||||
@@ -458,19 +498,32 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: pdo_oci --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
\
|
||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
\
|
||||
# Installation: Version specific
|
||||
@@ -520,6 +573,75 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zstd --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/kjdev/php-ext-zstd /tmp/zstd \
|
||||
&& cd /tmp/zstd \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \
|
||||
# Default: Install command
|
||||
&& phpize \
|
||||
&& ./configure --enable-zstd --with-libzstd \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable zstd \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& if [ -f /usr/include/liblzf/lzf.h ]; then \
|
||||
ln -s /usr/include/liblzf/lzf.h /usr/include/; \
|
||||
fi \
|
||||
\
|
||||
# Installation: Generic
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/phpredis/phpredis /tmp/redis \
|
||||
&& cd /tmp/redis \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \
|
||||
# Custom: Install command
|
||||
&& REDIS_ARGS=""; \
|
||||
if php -m | grep -q "igbinary"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \
|
||||
fi; \
|
||||
if php -m | grep -q "lz4"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-lz4 --with-liblz4=/usr"; \
|
||||
fi; \
|
||||
if php -m | grep -q "lzf"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-lzf --with-liblzf=/usr"; \
|
||||
fi; \
|
||||
if php -m | grep -q "msgpack"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \
|
||||
fi; \
|
||||
if php -m | grep -q "zstd"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-zstd"; \
|
||||
fi; \
|
||||
phpize \
|
||||
&& ./configure --enable-redis ${REDIS_ARGS} \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
\
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: sqlsrv --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install sqlsrv \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable sqlsrv \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: phalcon --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -527,7 +649,13 @@ RUN set -eux \
|
||||
&& git clone https://github.com/phalcon/cphalcon /tmp/phalcon \
|
||||
&& cd /tmp/phalcon \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | sed 's/^.*tags\///g' | grep -E '^v[.0-9]+$' | tail -1) \
|
||||
&& git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags \
|
||||
| sort -V \
|
||||
| sed 's/^.*tags\///g' \
|
||||
| grep -E '^v[.0-9]+$' \
|
||||
| tail -1 \
|
||||
) \
|
||||
\
|
||||
# Custom: Install command
|
||||
&& cd build && ./install \
|
||||
# Enabling
|
||||
@@ -543,32 +671,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/phpredis/phpredis /tmp/redis \
|
||||
&& cd /tmp/redis \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git for-each-ref --format='%(refname)' refs/tags | grep -E 'tags/[.0-9]+$' | sed 's|.*tags/||g' | sort -V | tail -1) \
|
||||
# Custom: Install command
|
||||
&& REDIS_ARGS=""; \
|
||||
if [ -d "/usr/local/include/php/ext/igbinary" ]; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \
|
||||
fi; \
|
||||
if [ -d "/usr/local/include/php/ext/msgpack" ]; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \
|
||||
fi; \
|
||||
phpize \
|
||||
&& ./configure --enable-redis ${REDIS_ARGS} \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
\
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: rdkafka --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -590,18 +692,18 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: snmp --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Installation
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure snmp --with-snmp \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: soap --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \
|
||||
&& true
|
||||
|
||||
@@ -625,17 +727,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: sqlsrv --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install sqlsrv \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable sqlsrv \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ssh2 --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -647,12 +738,22 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: swoole --------------------
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --with-zip \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: swoole --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Custom: Pecl command
|
||||
&& yes yes | pecl install swoole \
|
||||
# Default: Pecl command
|
||||
&& pecl install swoole-4.8.12 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable swoole \
|
||||
&& true
|
||||
@@ -693,30 +794,27 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: uploadprogress --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \
|
||||
&& cd /tmp/uploadprogress \
|
||||
# Default: Install command
|
||||
&& phpize \
|
||||
&& ./configure --enable-uploadprogress \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uploadprogress \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uploadprogress \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: uuid --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uuid \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uuid \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: vips --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& git clone https://github.com/libvips/libvips /tmp/libvips \
|
||||
&& cd /tmp/libvips \
|
||||
&& ./autogen.sh \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
&& cd /tmp \
|
||||
&& rm -rf /tmp/libvips \
|
||||
\
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
@@ -727,13 +825,24 @@ RUN set -eux \
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xdebug --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install xdebug-3.1.6 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable xdebug \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xlswriter --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install xdebug \
|
||||
&& pecl install xlswriter \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable xdebug \
|
||||
&& docker-php-ext-enable xlswriter \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -756,17 +865,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xlswriter --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install xlswriter \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable xlswriter \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: yaml --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -778,22 +876,11 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --with-zip \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
|
||||
|
||||
# Fix php.ini settings for enabled extensions
|
||||
RUN set -eux \
|
||||
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/*
|
||||
&& find "$(php -r 'echo ini_get("extension_dir");')/" -type f -exec chmod +x {} \;
|
||||
|
||||
# Fix oracle dir for images that don't have oci installed
|
||||
RUN set -eux \
|
||||
@@ -801,13 +888,13 @@ RUN set -eux \
|
||||
|
||||
# Shrink everything down
|
||||
RUN set -eux \
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:7.4-base as final
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -830,6 +917,54 @@ LABEL "org.opencontainers.image.title"="PHP-FPM 7.4-mods"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 7.4-mods"
|
||||
|
||||
|
||||
###
|
||||
### Install runtime libraries
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
ghostscript \
|
||||
libaio1 \
|
||||
libaspell15 \
|
||||
libc-ares2 \
|
||||
libc-client2007e \
|
||||
libevent-2.1-7 \
|
||||
libfbclient2 \
|
||||
libffi7 \
|
||||
libfreetype6 \
|
||||
libicu67 \
|
||||
libjpeg62-turbo \
|
||||
liblz4-1 \
|
||||
liblzf1 \
|
||||
libmagickwand-6.q16-6 \
|
||||
libmariadbd19 \
|
||||
libmcrypt4 \
|
||||
libmemcachedutil2 \
|
||||
libnghttp2-14 \
|
||||
libpng16-16 \
|
||||
libpq5 \
|
||||
librabbitmq4 \
|
||||
librdkafka1 \
|
||||
libssh2-1 \
|
||||
libsybdb5 \
|
||||
libtidy5deb1 \
|
||||
libvips42 \
|
||||
libvpx6 \
|
||||
libwebp6 \
|
||||
libxpm4 \
|
||||
libxslt1.1 \
|
||||
libyaml-0-2 \
|
||||
libzip4 \
|
||||
libzstd1 \
|
||||
snmp \
|
||||
unixodbc \
|
||||
uuid \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& update-ca-certificates
|
||||
|
||||
|
||||
###
|
||||
### Copy artifacts from builder
|
||||
###
|
||||
@@ -842,67 +977,7 @@ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
fftw2 \
|
||||
ghostscript \
|
||||
gir1.2-poppler-0.18 \
|
||||
imagemagick-6.q16 \
|
||||
libaio1 \
|
||||
libaspell15 \
|
||||
libc-client2007e \
|
||||
libenchant1c2a \
|
||||
libexif12 \
|
||||
libexpat1 \
|
||||
libfbclient2 \
|
||||
libffi6 \
|
||||
libfftw3-3 \
|
||||
libfreetype6 \
|
||||
libgif7 \
|
||||
libglib2.0-0 \
|
||||
libicu63 \
|
||||
libimagequant0 \
|
||||
libjpeg62-turbo \
|
||||
libmagick++-6.q16-8 \
|
||||
libmagick++-6.q16hdri-8 \
|
||||
libmagickcore-6.q16-6 \
|
||||
libmagickcore-6.q16-6-extra \
|
||||
libmagickwand-6.q16-6 \
|
||||
libmagickwand-6.q16hdri-6 \
|
||||
libmcrypt4 \
|
||||
libmemcachedutil2 \
|
||||
libnghttp2-14 \
|
||||
libpng16-16 \
|
||||
libpoppler-glib8 \
|
||||
libpq5 \
|
||||
librabbitmq4 \
|
||||
librdkafka1 \
|
||||
librsvg2-2 \
|
||||
libssh2-1 \
|
||||
libsybdb5 \
|
||||
libtidy5deb1 \
|
||||
libvpx5 \
|
||||
libwebp-dev \
|
||||
libwebp6 \
|
||||
libwebpdemux2 \
|
||||
libwebpmux3 \
|
||||
libxpm4 \
|
||||
libxslt1.1 \
|
||||
libyaml-0-2 \
|
||||
libzip4 \
|
||||
snmp \
|
||||
unixodbc \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& update-ca-certificates
|
||||
|
||||
|
||||
###
|
||||
### Post Install
|
||||
### Post Install executions
|
||||
###
|
||||
RUN set -eux \
|
||||
# ---------- imagick ----------
|
||||
@@ -917,7 +992,14 @@ RUN set -eux \
|
||||
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
\
|
||||
# ---------- oci8 ----------
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
@@ -958,12 +1040,16 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^ctype$' \
|
||||
&& php -m | grep -oiE '^curl$' \
|
||||
&& php-fpm -m | grep -oiE '^curl$' \
|
||||
&& php -m | grep -oiE '^date$' \
|
||||
&& php-fpm -m | grep -oiE '^date$' \
|
||||
&& php -m | grep -oiE '^dba$' \
|
||||
&& php-fpm -m | grep -oiE '^dba$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^dom$' \
|
||||
&& php-fpm -m | grep -oiE '^dom$' \
|
||||
&& php -m | grep -oiE '^enchant$' \
|
||||
&& php-fpm -m | grep -oiE '^enchant$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^exif$' \
|
||||
&& php-fpm -m | grep -oiE '^exif$' \
|
||||
&& php -m | grep -oiE '^ffi$' \
|
||||
@@ -996,16 +1082,16 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^json$' \
|
||||
&& php -m | grep -oiE '^ldap$' \
|
||||
&& php-fpm -m | grep -oiE '^ldap$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^lz4$' \
|
||||
&& php-fpm -m | grep -oiE '^lz4$' \
|
||||
&& php -m | grep -oiE '^lzf$' \
|
||||
&& php-fpm -m | grep -oiE '^lzf$' \
|
||||
&& php -m | grep -oiE '^mcrypt$' \
|
||||
&& php-fpm -m | grep -oiE '^mcrypt$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcache$' \
|
||||
&& php-fpm -m | grep -oiE '^memcache$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcached$' \
|
||||
&& php-fpm -m | grep -oiE '^memcached$' \
|
||||
&& php -m | grep -oiE '^mongodb$' \
|
||||
@@ -1014,6 +1100,8 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^mysqli$' \
|
||||
&& php -m | grep -oiE '^mysqlnd$' \
|
||||
&& php-fpm -m | grep -oiE '^mysqlnd$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^oauth$' \
|
||||
&& php-fpm -m | grep -oiE '^oauth$' \
|
||||
&& php -m | grep -oiE '^oci8$' \
|
||||
@@ -1024,8 +1112,6 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^openssl$' \
|
||||
&& php -m | grep -oiE '^pcntl$' \
|
||||
&& php-fpm -m | grep -oiE '^pcntl$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^pdo$' \
|
||||
&& php-fpm -m | grep -oiE '^pdo$' \
|
||||
&& php -m | grep -oiE '^pdo_dblib$' \
|
||||
@@ -1046,6 +1132,14 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^pgsql$' \
|
||||
&& php -m | grep -oiE '^psr$' \
|
||||
&& php-fpm -m | grep -oiE '^psr$' \
|
||||
&& php -m | grep -oiE '^zstd$' \
|
||||
&& php-fpm -m | grep -oiE '^zstd$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^sqlite3$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlite3$' \
|
||||
&& php -m | grep -oiE '^sqlsrv$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlsrv$' \
|
||||
&& php -m | grep -oiE '^phalcon$' \
|
||||
&& php-fpm -m | grep -oiE '^phalcon$' \
|
||||
&& php -m | grep -oiE '^phar$' \
|
||||
@@ -1054,13 +1148,11 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^posix$' \
|
||||
&& php -m | grep -oiE '^pspell$' \
|
||||
&& php-fpm -m | grep -oiE '^pspell$' \
|
||||
&& php -m | grep -oiE '^readline$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^reflection$' \
|
||||
&& php-fpm -m | grep -oiE '^reflection$' \
|
||||
&& php -m | grep -oiE '^rdkafka$' \
|
||||
&& php-fpm -m | grep -oiE '^rdkafka$' \
|
||||
&& php -m | grep -oiE '^readline$' \
|
||||
&& php -m | grep -oiE '^reflection$' \
|
||||
&& php-fpm -m | grep -oiE '^reflection$' \
|
||||
&& php -m | grep -oiE '^session$' \
|
||||
&& php-fpm -m | grep -oiE '^session$' \
|
||||
&& php -m | grep -oiE '^shmop$' \
|
||||
@@ -1079,10 +1171,12 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^solr$' \
|
||||
&& php -m | grep -oiE '^spl$' \
|
||||
&& php-fpm -m | grep -oiE '^spl$' \
|
||||
&& php -m | grep -oiE '^sqlsrv$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlsrv$' \
|
||||
&& php -m | grep -oiE '^ssh2$' \
|
||||
&& php-fpm -m | grep -oiE '^ssh2$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^swoole$' \
|
||||
&& php-fpm -m | grep -oiE '^swoole$' \
|
||||
&& php -m | grep -oiE '^sysvmsg$' \
|
||||
@@ -1097,12 +1191,14 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
||||
&& php -m | grep -oiE '^uploadprogress$' \
|
||||
&& php-fpm -m | grep -oiE '^uploadprogress$' \
|
||||
&& php -m | grep -oiE '^uuid$' \
|
||||
&& php-fpm -m | grep -oiE '^uuid$' \
|
||||
&& php -m | grep -oiE '^vips$' \
|
||||
&& php-fpm -m | grep -oiE '^vips$' \
|
||||
&& php -m | grep -oiE '^xdebug$' \
|
||||
&& php-fpm -m | grep -oiE '^xdebug$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^xlswriter$' \
|
||||
&& php-fpm -m | grep -oiE '^xlswriter$' \
|
||||
&& php -m | grep -oiE '^xmlreader$' \
|
||||
&& php-fpm -m | grep -oiE '^xmlreader$' \
|
||||
&& php -m | grep -oiE '^xmlrpc$' \
|
||||
@@ -1111,12 +1207,10 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^xmlwriter$' \
|
||||
&& php -m | grep -oiE '^xsl$' \
|
||||
&& php-fpm -m | grep -oiE '^xsl$' \
|
||||
&& php -m | grep -oiE '^xlswriter$' \
|
||||
&& php-fpm -m | grep -oiE '^xlswriter$' \
|
||||
&& php -m | grep -oiE '^yaml$' \
|
||||
&& php-fpm -m | grep -oiE '^yaml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^zlib$' \
|
||||
&& php-fpm -m | grep -oiE '^zlib$' \
|
||||
&& true
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:8.0-base as builder
|
||||
|
||||
|
||||
@@ -6,17 +7,18 @@ FROM devilbox/php-fpm:8.0-base as builder
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
alien \
|
||||
firebird-dev \
|
||||
freetds-dev \
|
||||
ghostscript \
|
||||
libaio-dev \
|
||||
libbz2-dev \
|
||||
libc-ares-dev \
|
||||
libc-client-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libenchant-dev \
|
||||
libenchant-2-dev \
|
||||
libevent-dev \
|
||||
libfbclient2 \
|
||||
libfreetype6-dev \
|
||||
@@ -26,6 +28,10 @@ RUN set -eux \
|
||||
libjpeg-dev \
|
||||
libkrb5-dev \
|
||||
libldap2-dev \
|
||||
liblz4-dev \
|
||||
liblzf-dev \
|
||||
libmagickwand-dev \
|
||||
libmariadb-dev \
|
||||
libmcrypt-dev \
|
||||
libmemcached-dev \
|
||||
libnghttp2-dev \
|
||||
@@ -33,11 +39,15 @@ RUN set -eux \
|
||||
libpng-dev \
|
||||
libpq-dev \
|
||||
libpspell-dev \
|
||||
librabbitmq-dev \
|
||||
librdkafka-dev \
|
||||
libsasl2-dev \
|
||||
libsnmp-dev \
|
||||
libsodium-dev \
|
||||
libssl-dev \
|
||||
libtidy-dev \
|
||||
libvips-dev \
|
||||
libvips42 \
|
||||
libvpx-dev \
|
||||
libwebp-dev \
|
||||
libxml2-dev \
|
||||
@@ -45,11 +55,35 @@ RUN set -eux \
|
||||
libxslt-dev \
|
||||
libyaml-dev \
|
||||
libzip-dev \
|
||||
libzstd-dev \
|
||||
re2c \
|
||||
snmp \
|
||||
unixodbc-dev \
|
||||
uuid-dev \
|
||||
zlib1g-dev \
|
||||
# Build tools
|
||||
autoconf \
|
||||
bison \
|
||||
bisonc++ \
|
||||
ca-certificates \
|
||||
git
|
||||
curl \
|
||||
dpkg-dev \
|
||||
file \
|
||||
flex \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
lemon \
|
||||
libc-client-dev \
|
||||
libc-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libssl-dev \
|
||||
make \
|
||||
patch \
|
||||
pkg-config \
|
||||
re2c \
|
||||
xz-utils \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||
@@ -66,6 +100,17 @@ RUN set -eux \
|
||||
echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \
|
||||
fi
|
||||
|
||||
# -------------------- Installing PHP Extension: amqp --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Custom: Pecl command
|
||||
&& echo "/usr" | pecl install amqp \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable amqp \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: apcu --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -142,7 +187,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: gd --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -163,7 +208,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: gmp --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
|
||||
&& ln /usr/include/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/gmp.h /usr/include/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
||||
@@ -181,10 +226,32 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: imagick --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install imagick \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable imagick \
|
||||
# Generic post-command
|
||||
&& sed -i'' 's|.*"thread".*| <policy domain="resource" name="thread" value="1"/>|g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS2".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS3".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"EPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PDF".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"XPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: imap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libkrb5* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -204,7 +271,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: ldap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libldap* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -213,6 +280,35 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: lz4 --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/kjdev/php-ext-lz4 /tmp/lz4 \
|
||||
&& cd /tmp/lz4 \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \
|
||||
# Default: Install command
|
||||
&& phpize \
|
||||
&& ./configure --enable-lz4 --with-lz4-includedir=/usr \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable lz4 \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: lzf --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install lzf \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable lzf \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: mcrypt --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -224,17 +320,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install msgpack \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable msgpack \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcache --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -246,23 +331,23 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install msgpack \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable msgpack \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcached --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/php-memcached-dev/php-memcached /tmp/memcached \
|
||||
&& cd /tmp/memcached \
|
||||
# Custom: Branch
|
||||
&& git checkout master \
|
||||
# Custom: Install command
|
||||
&& true \
|
||||
# FIXME: This is a work-around to mitigate compile error with PHP 8.0
|
||||
&& sed -i'' 's/\sTSRMLS_CC//g' php_memcached_session.c \
|
||||
&& phpize \
|
||||
&& ./configure --enable-memcached \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
\
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Custom: Pecl command
|
||||
&& printf "\n\n\nyes\nyes\nyes\n" | pecl install memcached \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable memcached \
|
||||
&& true
|
||||
@@ -301,19 +386,32 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: oci8 --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
\
|
||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
\
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
@@ -321,7 +419,14 @@ RUN set -eux \
|
||||
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
||||
# Generic post-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
@@ -348,7 +453,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libsybdb.* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
||||
@@ -376,19 +481,32 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: pdo_oci --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
\
|
||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
\
|
||||
# Installation: Version specific
|
||||
@@ -438,30 +556,54 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: pspell --------------------
|
||||
# -------------------- Installing PHP Extension: zstd --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/kjdev/php-ext-zstd /tmp/zstd \
|
||||
&& cd /tmp/zstd \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \
|
||||
# Default: Install command
|
||||
&& phpize \
|
||||
&& ./configure --enable-zstd --with-libzstd \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable zstd \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& if [ -f /usr/include/liblzf/lzf.h ]; then \
|
||||
ln -s /usr/include/liblzf/lzf.h /usr/include/; \
|
||||
fi \
|
||||
\
|
||||
# Installation: Generic
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/phpredis/phpredis /tmp/redis \
|
||||
&& cd /tmp/redis \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git for-each-ref --format='%(refname)' refs/tags | grep -E 'tags/[.0-9]+$' | sed 's|.*tags/||g' | sort -V | tail -1) \
|
||||
&& git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \
|
||||
# Custom: Install command
|
||||
&& REDIS_ARGS=""; \
|
||||
if [ -d "/usr/local/include/php/ext/igbinary" ]; then \
|
||||
if php -m | grep -q "igbinary"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \
|
||||
fi; \
|
||||
if [ -d "/usr/local/include/php/ext/msgpack" ]; then \
|
||||
if php -m | grep -q "lz4"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-lz4 --with-liblz4=/usr"; \
|
||||
fi; \
|
||||
if php -m | grep -q "lzf"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-lzf --with-liblzf=/usr"; \
|
||||
fi; \
|
||||
if php -m | grep -q "msgpack"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \
|
||||
fi; \
|
||||
if php -m | grep -q "zstd"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-zstd"; \
|
||||
fi; \
|
||||
phpize \
|
||||
&& ./configure --enable-redis ${REDIS_ARGS} \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
@@ -472,6 +614,57 @@ phpize \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: sqlsrv --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install sqlsrv \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable sqlsrv \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: phalcon --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/phalcon/cphalcon /tmp/phalcon \
|
||||
&& cd /tmp/phalcon \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags \
|
||||
| sort -V \
|
||||
| sed 's/^.*tags\///g' \
|
||||
| grep -E '^v[.0-9]+$' \
|
||||
| tail -1 \
|
||||
) \
|
||||
\
|
||||
# Custom: Install command
|
||||
&& cd build && ./install \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable phalcon \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: pspell --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: rdkafka --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install rdkafka \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable rdkafka \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: shmop --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -485,7 +678,7 @@ RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure snmp --with-openssl-dir \
|
||||
&& docker-php-ext-configure snmp --with-snmp \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
|
||||
&& true
|
||||
|
||||
@@ -494,14 +687,16 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure soap --with-libxml-dir=/usr \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: sockets --------------------
|
||||
RUN set -eux \
|
||||
# Version specific pre-command
|
||||
&& docker-php-ext-configure sockets \
|
||||
&& sed -i'' 's/.*ucred.*//g' /usr/src/php/ext/sockets/sendrecvmsg.c \
|
||||
\
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \
|
||||
@@ -527,14 +722,13 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: sqlsrv --------------------
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install sqlsrv \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable sqlsrv \
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --with-zip \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -543,7 +737,7 @@ RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Custom: Pecl command
|
||||
&& yes yes | pecl install swoole \
|
||||
&& pecl install -D 'enable-sockets="no" enable-openssl="yes" enable-http2="yes" enable-mysqlnd="yes" enable-swoole-json="no" enable-swoole-curl="yes" enable-cares="yes" with-postgres="yes"' swoole \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable swoole \
|
||||
&& true
|
||||
@@ -581,6 +775,39 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: uploadprogress --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uploadprogress \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uploadprogress \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: uuid --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uuid \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uuid \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: vips --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install vips \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable vips \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xdebug --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -592,14 +819,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xsl --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xlswriter --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -611,6 +830,14 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xsl --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: yaml --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -622,21 +849,11 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
|
||||
|
||||
# Fix php.ini settings for enabled extensions
|
||||
RUN set -eux \
|
||||
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/*
|
||||
&& find "$(php -r 'echo ini_get("extension_dir");')/" -type f -exec chmod +x {} \;
|
||||
|
||||
# Fix oracle dir for images that don't have oci installed
|
||||
RUN set -eux \
|
||||
@@ -644,13 +861,13 @@ RUN set -eux \
|
||||
|
||||
# Shrink everything down
|
||||
RUN set -eux \
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:8.0-base as final
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -673,6 +890,54 @@ LABEL "org.opencontainers.image.title"="PHP-FPM 8.0-mods"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 8.0-mods"
|
||||
|
||||
|
||||
###
|
||||
### Install runtime libraries
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
ghostscript \
|
||||
libaio1 \
|
||||
libaspell15 \
|
||||
libc-ares2 \
|
||||
libc-client2007e \
|
||||
libenchant-2-2 \
|
||||
libevent-2.1-7 \
|
||||
libfbclient2 \
|
||||
libffi7 \
|
||||
libfreetype6 \
|
||||
libicu67 \
|
||||
libjpeg62-turbo \
|
||||
liblz4-1 \
|
||||
liblzf1 \
|
||||
libmagickwand-6.q16-6 \
|
||||
libmariadbd19 \
|
||||
libmcrypt4 \
|
||||
libmemcachedutil2 \
|
||||
libnghttp2-14 \
|
||||
libpng16-16 \
|
||||
libpq5 \
|
||||
librabbitmq4 \
|
||||
librdkafka1 \
|
||||
libsybdb5 \
|
||||
libtidy5deb1 \
|
||||
libvips42 \
|
||||
libvpx6 \
|
||||
libwebp6 \
|
||||
libxpm4 \
|
||||
libxslt1.1 \
|
||||
libyaml-0-2 \
|
||||
libzip4 \
|
||||
libzstd1 \
|
||||
snmp \
|
||||
unixodbc \
|
||||
uuid \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& update-ca-certificates
|
||||
|
||||
|
||||
###
|
||||
### Copy artifacts from builder
|
||||
###
|
||||
@@ -685,47 +950,29 @@ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libaio1 \
|
||||
libaspell15 \
|
||||
libc-client2007e \
|
||||
libenchant1c2a \
|
||||
libfbclient2 \
|
||||
libffi6 \
|
||||
libfreetype6 \
|
||||
libicu63 \
|
||||
libjpeg62-turbo \
|
||||
libmcrypt4 \
|
||||
libmemcachedutil2 \
|
||||
libnghttp2-14 \
|
||||
libpng16-16 \
|
||||
libpq5 \
|
||||
libsybdb5 \
|
||||
libtidy5deb1 \
|
||||
libvpx5 \
|
||||
libwebp6 \
|
||||
libxpm4 \
|
||||
libxslt1.1 \
|
||||
libyaml-0-2 \
|
||||
libzip4 \
|
||||
snmp \
|
||||
unixodbc \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& update-ca-certificates
|
||||
|
||||
|
||||
###
|
||||
### Post Install
|
||||
### Post Install executions
|
||||
###
|
||||
RUN set -eux \
|
||||
# ---------- imagick ----------
|
||||
&& sed -i'' 's|.*"thread".*| <policy domain="resource" name="thread" value="1"/>|g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS2".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS3".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"EPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PDF".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"XPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
\
|
||||
# ---------- oci8 ----------
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
@@ -752,6 +999,8 @@ RUN set -eux \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini \
|
||||
\
|
||||
&& php -m | grep -oiE '^amqp$' \
|
||||
&& php-fpm -m | grep -oiE '^amqp$' \
|
||||
&& php -m | grep -oiE '^apcu$' \
|
||||
&& php-fpm -m | grep -oiE '^apcu$' \
|
||||
&& php -m | grep -oiE '^bcmath$' \
|
||||
@@ -764,12 +1013,18 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^ctype$' \
|
||||
&& php -m | grep -oiE '^curl$' \
|
||||
&& php-fpm -m | grep -oiE '^curl$' \
|
||||
&& php -m | grep -oiE '^date$' \
|
||||
&& php-fpm -m | grep -oiE '^date$' \
|
||||
&& php -m | grep -oiE '^dba$' \
|
||||
&& php-fpm -m | grep -oiE '^dba$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^dom$' \
|
||||
&& php-fpm -m | grep -oiE '^dom$' \
|
||||
&& php -m | grep -oiE '^enchant$' \
|
||||
&& php-fpm -m | grep -oiE '^enchant$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^exif$' \
|
||||
&& php-fpm -m | grep -oiE '^exif$' \
|
||||
&& php -m | grep -oiE '^ffi$' \
|
||||
@@ -792,6 +1047,8 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^iconv$' \
|
||||
&& php -m | grep -oiE '^igbinary$' \
|
||||
&& php-fpm -m | grep -oiE '^igbinary$' \
|
||||
&& php -m | grep -oiE '^imagick$' \
|
||||
&& php-fpm -m | grep -oiE '^imagick$' \
|
||||
&& php -m | grep -oiE '^imap$' \
|
||||
&& php-fpm -m | grep -oiE '^imap$' \
|
||||
&& php -m | grep -oiE '^intl$' \
|
||||
@@ -800,16 +1057,16 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^json$' \
|
||||
&& php -m | grep -oiE '^ldap$' \
|
||||
&& php-fpm -m | grep -oiE '^ldap$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^lz4$' \
|
||||
&& php-fpm -m | grep -oiE '^lz4$' \
|
||||
&& php -m | grep -oiE '^lzf$' \
|
||||
&& php-fpm -m | grep -oiE '^lzf$' \
|
||||
&& php -m | grep -oiE '^mcrypt$' \
|
||||
&& php-fpm -m | grep -oiE '^mcrypt$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcache$' \
|
||||
&& php-fpm -m | grep -oiE '^memcache$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcached$' \
|
||||
&& php-fpm -m | grep -oiE '^memcached$' \
|
||||
&& php -m | grep -oiE '^mongodb$' \
|
||||
@@ -818,6 +1075,8 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^mysqli$' \
|
||||
&& php -m | grep -oiE '^mysqlnd$' \
|
||||
&& php-fpm -m | grep -oiE '^mysqlnd$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^oauth$' \
|
||||
&& php-fpm -m | grep -oiE '^oauth$' \
|
||||
&& php -m | grep -oiE '^oci8$' \
|
||||
@@ -828,8 +1087,6 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^openssl$' \
|
||||
&& php -m | grep -oiE '^pcntl$' \
|
||||
&& php-fpm -m | grep -oiE '^pcntl$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^pdo$' \
|
||||
&& php-fpm -m | grep -oiE '^pdo$' \
|
||||
&& php -m | grep -oiE '^pdo_dblib$' \
|
||||
@@ -850,15 +1107,25 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^pgsql$' \
|
||||
&& php -m | grep -oiE '^psr$' \
|
||||
&& php-fpm -m | grep -oiE '^psr$' \
|
||||
&& php -m | grep -oiE '^zstd$' \
|
||||
&& php-fpm -m | grep -oiE '^zstd$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^sqlite3$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlite3$' \
|
||||
&& php -m | grep -oiE '^sqlsrv$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlsrv$' \
|
||||
&& php -m | grep -oiE '^phalcon$' \
|
||||
&& php-fpm -m | grep -oiE '^phalcon$' \
|
||||
&& php -m | grep -oiE '^phar$' \
|
||||
&& php-fpm -m | grep -oiE '^phar$' \
|
||||
&& php -m | grep -oiE '^posix$' \
|
||||
&& php-fpm -m | grep -oiE '^posix$' \
|
||||
&& php -m | grep -oiE '^pspell$' \
|
||||
&& php-fpm -m | grep -oiE '^pspell$' \
|
||||
&& php -m | grep -oiE '^rdkafka$' \
|
||||
&& php-fpm -m | grep -oiE '^rdkafka$' \
|
||||
&& php -m | grep -oiE '^readline$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^reflection$' \
|
||||
&& php-fpm -m | grep -oiE '^reflection$' \
|
||||
&& php -m | grep -oiE '^session$' \
|
||||
@@ -879,8 +1146,10 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^solr$' \
|
||||
&& php -m | grep -oiE '^spl$' \
|
||||
&& php-fpm -m | grep -oiE '^spl$' \
|
||||
&& php -m | grep -oiE '^sqlsrv$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlsrv$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^swoole$' \
|
||||
&& php-fpm -m | grep -oiE '^swoole$' \
|
||||
&& php -m | grep -oiE '^sysvmsg$' \
|
||||
@@ -893,22 +1162,26 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^tidy$' \
|
||||
&& php -m | grep -oiE '^tokenizer$' \
|
||||
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
||||
&& php -m | grep -oiE '^uploadprogress$' \
|
||||
&& php-fpm -m | grep -oiE '^uploadprogress$' \
|
||||
&& php -m | grep -oiE '^uuid$' \
|
||||
&& php-fpm -m | grep -oiE '^uuid$' \
|
||||
&& php -m | grep -oiE '^vips$' \
|
||||
&& php-fpm -m | grep -oiE '^vips$' \
|
||||
&& php -m | grep -oiE '^xdebug$' \
|
||||
&& php-fpm -m | grep -oiE '^xdebug$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^xlswriter$' \
|
||||
&& php-fpm -m | grep -oiE '^xlswriter$' \
|
||||
&& php -m | grep -oiE '^xmlreader$' \
|
||||
&& php-fpm -m | grep -oiE '^xmlreader$' \
|
||||
&& php -m | grep -oiE '^xmlwriter$' \
|
||||
&& php-fpm -m | grep -oiE '^xmlwriter$' \
|
||||
&& php -m | grep -oiE '^xsl$' \
|
||||
&& php-fpm -m | grep -oiE '^xsl$' \
|
||||
&& php -m | grep -oiE '^xlswriter$' \
|
||||
&& php-fpm -m | grep -oiE '^xlswriter$' \
|
||||
&& php -m | grep -oiE '^yaml$' \
|
||||
&& php-fpm -m | grep -oiE '^yaml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^zlib$' \
|
||||
&& php-fpm -m | grep -oiE '^zlib$' \
|
||||
&& true
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:8.1-base as builder
|
||||
|
||||
|
||||
@@ -6,16 +7,19 @@ FROM devilbox/php-fpm:8.1-base as builder
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
alien \
|
||||
firebird-dev \
|
||||
freetds-dev \
|
||||
ghostscript \
|
||||
libaio-dev \
|
||||
libavif-dev \
|
||||
libbz2-dev \
|
||||
libc-ares-dev \
|
||||
libc-client-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libenchant-dev \
|
||||
libenchant-2-dev \
|
||||
libevent-dev \
|
||||
libfbclient2 \
|
||||
libfreetype6-dev \
|
||||
@@ -25,17 +29,25 @@ RUN set -eux \
|
||||
libjpeg-dev \
|
||||
libkrb5-dev \
|
||||
libldap2-dev \
|
||||
libmcrypt-dev \
|
||||
liblz4-dev \
|
||||
liblzf-dev \
|
||||
libmagickwand-dev \
|
||||
libmariadb-dev \
|
||||
libmemcached-dev \
|
||||
libnghttp2-dev \
|
||||
libpcre3-dev \
|
||||
libpng-dev \
|
||||
libpq-dev \
|
||||
libpspell-dev \
|
||||
librabbitmq-dev \
|
||||
librdkafka-dev \
|
||||
libsasl2-dev \
|
||||
libsnmp-dev \
|
||||
libsodium-dev \
|
||||
libssl-dev \
|
||||
libtidy-dev \
|
||||
libvips-dev \
|
||||
libvips42 \
|
||||
libvpx-dev \
|
||||
libwebp-dev \
|
||||
libxml2-dev \
|
||||
@@ -43,10 +55,35 @@ RUN set -eux \
|
||||
libxslt-dev \
|
||||
libyaml-dev \
|
||||
libzip-dev \
|
||||
libzstd-dev \
|
||||
re2c \
|
||||
snmp \
|
||||
unixodbc-dev \
|
||||
uuid-dev \
|
||||
zlib1g-dev \
|
||||
# Build tools
|
||||
autoconf \
|
||||
bison \
|
||||
bisonc++ \
|
||||
ca-certificates \
|
||||
git
|
||||
curl \
|
||||
dpkg-dev \
|
||||
file \
|
||||
flex \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
lemon \
|
||||
libc-client-dev \
|
||||
libc-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libssl-dev \
|
||||
make \
|
||||
patch \
|
||||
pkg-config \
|
||||
re2c \
|
||||
xz-utils \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||
@@ -63,6 +100,17 @@ RUN set -eux \
|
||||
echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \
|
||||
fi
|
||||
|
||||
# -------------------- Installing PHP Extension: amqp --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Custom: Pecl command
|
||||
&& echo "/usr" | pecl install amqp \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable amqp \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: apcu --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -125,11 +173,11 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: gd --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure gd --enable-gd --with-webp --with-jpeg --with-xpm --with-freetype \
|
||||
&& docker-php-ext-configure gd --enable-gd --with-webp --with-jpeg --with-xpm --with-freetype --with-avif \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \
|
||||
&& true
|
||||
@@ -146,7 +194,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: gmp --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
|
||||
&& ln /usr/include/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/gmp.h /usr/include/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
||||
@@ -164,10 +212,32 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: imagick --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install imagick \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable imagick \
|
||||
# Generic post-command
|
||||
&& sed -i'' 's|.*"thread".*| <policy domain="resource" name="thread" value="1"/>|g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS2".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS3".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"EPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PDF".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"XPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: imap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libkrb5* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -187,7 +257,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: ldap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libldap* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -196,25 +266,32 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: mcrypt --------------------
|
||||
# -------------------- Installing PHP Extension: lz4 --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install mcrypt \
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/kjdev/php-ext-lz4 /tmp/lz4 \
|
||||
&& cd /tmp/lz4 \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \
|
||||
# Default: Install command
|
||||
&& phpize \
|
||||
&& ./configure --enable-lz4 --with-lz4-includedir=/usr \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable mcrypt \
|
||||
&& docker-php-ext-enable lz4 \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||
# -------------------- Installing PHP Extension: lzf --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install msgpack \
|
||||
&& pecl install lzf \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable msgpack \
|
||||
&& docker-php-ext-enable lzf \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -229,23 +306,23 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install msgpack \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable msgpack \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcached --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/php-memcached-dev/php-memcached /tmp/memcached \
|
||||
&& cd /tmp/memcached \
|
||||
# Custom: Branch
|
||||
&& git checkout master \
|
||||
# Custom: Install command
|
||||
&& true \
|
||||
# FIXME: This is a work-around to mitigate compile error with PHP 8.1
|
||||
&& sed -i'' 's/\sTSRMLS_CC//g' php_memcached_session.c \
|
||||
&& phpize \
|
||||
&& ./configure --enable-memcached \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
\
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Custom: Pecl command
|
||||
&& printf "\n\n\nyes\nyes\nyes\n" | pecl install memcached \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable memcached \
|
||||
&& true
|
||||
@@ -284,19 +361,32 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: oci8 --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
\
|
||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
\
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
@@ -304,7 +394,14 @@ RUN set -eux \
|
||||
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
||||
# Generic post-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
@@ -331,6 +428,16 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libsybdb.* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: pdo_firebird --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -352,19 +459,32 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: pdo_oci --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
\
|
||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
\
|
||||
# Installation: Version specific
|
||||
@@ -384,6 +504,17 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: pdo_sqlsrv --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install pdo_sqlsrv \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable pdo_sqlsrv \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: pgsql --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -403,6 +534,96 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zstd --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/kjdev/php-ext-zstd /tmp/zstd \
|
||||
&& cd /tmp/zstd \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \
|
||||
# Default: Install command
|
||||
&& phpize \
|
||||
&& ./configure --enable-zstd --with-libzstd \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable zstd \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& if [ -f /usr/include/liblzf/lzf.h ]; then \
|
||||
ln -s /usr/include/liblzf/lzf.h /usr/include/; \
|
||||
fi \
|
||||
\
|
||||
# Installation: Generic
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/phpredis/phpredis /tmp/redis \
|
||||
&& cd /tmp/redis \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \
|
||||
# Custom: Install command
|
||||
&& REDIS_ARGS=""; \
|
||||
if php -m | grep -q "igbinary"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \
|
||||
fi; \
|
||||
if php -m | grep -q "lz4"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-lz4 --with-liblz4=/usr"; \
|
||||
fi; \
|
||||
if php -m | grep -q "lzf"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-lzf --with-liblzf=/usr"; \
|
||||
fi; \
|
||||
if php -m | grep -q "msgpack"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \
|
||||
fi; \
|
||||
if php -m | grep -q "zstd"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-zstd"; \
|
||||
fi; \
|
||||
phpize \
|
||||
&& ./configure --enable-redis ${REDIS_ARGS} \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
\
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: sqlsrv --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install sqlsrv \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable sqlsrv \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: phalcon --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/phalcon/cphalcon /tmp/phalcon \
|
||||
&& cd /tmp/phalcon \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags \
|
||||
| sort -V \
|
||||
| sed 's/^.*tags\///g' \
|
||||
| grep -E '^v[.0-9]+$' \
|
||||
| tail -1 \
|
||||
) \
|
||||
\
|
||||
# Custom: Install command
|
||||
&& cd build && ./install \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable phalcon \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: pspell --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -411,31 +632,14 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
# -------------------- Installing PHP Extension: rdkafka --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/phpredis/phpredis /tmp/redis \
|
||||
&& cd /tmp/redis \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git for-each-ref --format='%(refname)' refs/tags | grep -E 'tags/[.0-9]+$' | sed 's|.*tags/||g' | sort -V | tail -1) \
|
||||
# Custom: Install command
|
||||
&& REDIS_ARGS=""; \
|
||||
if [ -d "/usr/local/include/php/ext/igbinary" ]; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \
|
||||
fi; \
|
||||
if [ -d "/usr/local/include/php/ext/msgpack" ]; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \
|
||||
fi; \
|
||||
phpize \
|
||||
&& ./configure --enable-redis ${REDIS_ARGS} \
|
||||
&& sed -i'' 's/ops->hash_init(ctx);/ops->hash_init(ctx, NULL);/g' library.c \
|
||||
&& sed -i'' 's/ops->hash_init(ctx);/ops->hash_init(ctx, NULL);/g' redis_array_impl.c \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
\
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install rdkafka \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& docker-php-ext-enable rdkafka \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -452,7 +656,7 @@ RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure snmp --with-openssl-dir \
|
||||
&& docker-php-ext-configure snmp --with-snmp \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
|
||||
&& true
|
||||
|
||||
@@ -461,14 +665,16 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure soap --with-libxml-dir=/usr \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: sockets --------------------
|
||||
RUN set -eux \
|
||||
# Version specific pre-command
|
||||
&& docker-php-ext-configure sockets \
|
||||
&& sed -i'' 's/.*ucred.*//g' /usr/src/php/ext/sockets/sendrecvmsg.c \
|
||||
\
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \
|
||||
@@ -494,6 +700,27 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --with-zip \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: swoole --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Custom: Pecl command
|
||||
&& pecl install -D 'enable-sockets="no" enable-openssl="yes" enable-http2="yes" enable-mysqlnd="yes" enable-swoole-json="no" enable-swoole-curl="yes" enable-cares="yes" with-postgres="yes"' swoole \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable swoole \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: sysvmsg --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -526,24 +753,61 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: uploadprogress --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uploadprogress \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uploadprogress \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: uuid --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uuid \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uuid \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: vips --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install vips \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable vips \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xdebug --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/xdebug/xdebug /tmp/xdebug \
|
||||
&& cd /tmp/xdebug \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git for-each-ref --format='%(refname)' refs/tags | grep -E 'tags/[.0-9]+$' | sed 's|.*tags/||g' | sort -V | tail -1) \
|
||||
# Default: Install command
|
||||
&& phpize \
|
||||
&& ./configure --enable-xdebug \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install xdebug \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable xdebug \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xlswriter --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install xlswriter \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable xlswriter \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xsl --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -563,21 +827,11 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
|
||||
|
||||
# Fix php.ini settings for enabled extensions
|
||||
RUN set -eux \
|
||||
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/*
|
||||
&& find "$(php -r 'echo ini_get("extension_dir");')/" -type f -exec chmod +x {} \;
|
||||
|
||||
# Fix oracle dir for images that don't have oci installed
|
||||
RUN set -eux \
|
||||
@@ -585,13 +839,13 @@ RUN set -eux \
|
||||
|
||||
# Shrink everything down
|
||||
RUN set -eux \
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:8.1-base as final
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -614,6 +868,54 @@ LABEL "org.opencontainers.image.title"="PHP-FPM 8.1-mods"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 8.1-mods"
|
||||
|
||||
|
||||
###
|
||||
### Install runtime libraries
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
ghostscript \
|
||||
libaio1 \
|
||||
libaspell15 \
|
||||
libavif9 \
|
||||
libc-ares2 \
|
||||
libc-client2007e \
|
||||
libenchant-2-2 \
|
||||
libevent-2.1-7 \
|
||||
libfbclient2 \
|
||||
libffi7 \
|
||||
libfreetype6 \
|
||||
libicu67 \
|
||||
libjpeg62-turbo \
|
||||
liblz4-1 \
|
||||
liblzf1 \
|
||||
libmagickwand-6.q16-6 \
|
||||
libmariadbd19 \
|
||||
libmemcachedutil2 \
|
||||
libnghttp2-14 \
|
||||
libpng16-16 \
|
||||
libpq5 \
|
||||
librabbitmq4 \
|
||||
librdkafka1 \
|
||||
libsybdb5 \
|
||||
libtidy5deb1 \
|
||||
libvips42 \
|
||||
libvpx6 \
|
||||
libwebp6 \
|
||||
libxpm4 \
|
||||
libxslt1.1 \
|
||||
libyaml-0-2 \
|
||||
libzip4 \
|
||||
libzstd1 \
|
||||
snmp \
|
||||
unixodbc \
|
||||
uuid \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& update-ca-certificates
|
||||
|
||||
|
||||
###
|
||||
### Copy artifacts from builder
|
||||
###
|
||||
@@ -626,44 +928,29 @@ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libaio1 \
|
||||
libaspell15 \
|
||||
libc-client2007e \
|
||||
libenchant1c2a \
|
||||
libfbclient2 \
|
||||
libffi6 \
|
||||
libfreetype6 \
|
||||
libicu63 \
|
||||
libjpeg62-turbo \
|
||||
libmcrypt4 \
|
||||
libmemcachedutil2 \
|
||||
libpng16-16 \
|
||||
libpq5 \
|
||||
libtidy5deb1 \
|
||||
libvpx5 \
|
||||
libwebp6 \
|
||||
libxpm4 \
|
||||
libxslt1.1 \
|
||||
libyaml-0-2 \
|
||||
libzip4 \
|
||||
snmp \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& update-ca-certificates
|
||||
|
||||
|
||||
###
|
||||
### Post Install
|
||||
### Post Install executions
|
||||
###
|
||||
RUN set -eux \
|
||||
# ---------- imagick ----------
|
||||
&& sed -i'' 's|.*"thread".*| <policy domain="resource" name="thread" value="1"/>|g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS2".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS3".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"EPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PDF".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"XPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
\
|
||||
# ---------- oci8 ----------
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
@@ -690,6 +977,8 @@ RUN set -eux \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini \
|
||||
\
|
||||
&& php -m | grep -oiE '^amqp$' \
|
||||
&& php-fpm -m | grep -oiE '^amqp$' \
|
||||
&& php -m | grep -oiE '^apcu$' \
|
||||
&& php-fpm -m | grep -oiE '^apcu$' \
|
||||
&& php -m | grep -oiE '^bcmath$' \
|
||||
@@ -702,12 +991,18 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^ctype$' \
|
||||
&& php -m | grep -oiE '^curl$' \
|
||||
&& php-fpm -m | grep -oiE '^curl$' \
|
||||
&& php -m | grep -oiE '^date$' \
|
||||
&& php-fpm -m | grep -oiE '^date$' \
|
||||
&& php -m | grep -oiE '^dba$' \
|
||||
&& php-fpm -m | grep -oiE '^dba$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^dom$' \
|
||||
&& php-fpm -m | grep -oiE '^dom$' \
|
||||
&& php -m | grep -oiE '^enchant$' \
|
||||
&& php-fpm -m | grep -oiE '^enchant$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^exif$' \
|
||||
&& php-fpm -m | grep -oiE '^exif$' \
|
||||
&& php -m | grep -oiE '^ffi$' \
|
||||
@@ -730,6 +1025,8 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^iconv$' \
|
||||
&& php -m | grep -oiE '^igbinary$' \
|
||||
&& php-fpm -m | grep -oiE '^igbinary$' \
|
||||
&& php -m | grep -oiE '^imagick$' \
|
||||
&& php-fpm -m | grep -oiE '^imagick$' \
|
||||
&& php -m | grep -oiE '^imap$' \
|
||||
&& php-fpm -m | grep -oiE '^imap$' \
|
||||
&& php -m | grep -oiE '^intl$' \
|
||||
@@ -738,16 +1035,14 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^json$' \
|
||||
&& php -m | grep -oiE '^ldap$' \
|
||||
&& php-fpm -m | grep -oiE '^ldap$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^mcrypt$' \
|
||||
&& php-fpm -m | grep -oiE '^mcrypt$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^lz4$' \
|
||||
&& php-fpm -m | grep -oiE '^lz4$' \
|
||||
&& php -m | grep -oiE '^lzf$' \
|
||||
&& php-fpm -m | grep -oiE '^lzf$' \
|
||||
&& php -m | grep -oiE '^memcache$' \
|
||||
&& php-fpm -m | grep -oiE '^memcache$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcached$' \
|
||||
&& php-fpm -m | grep -oiE '^memcached$' \
|
||||
&& php -m | grep -oiE '^mongodb$' \
|
||||
@@ -756,6 +1051,8 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^mysqli$' \
|
||||
&& php -m | grep -oiE '^mysqlnd$' \
|
||||
&& php-fpm -m | grep -oiE '^mysqlnd$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^oauth$' \
|
||||
&& php-fpm -m | grep -oiE '^oauth$' \
|
||||
&& php -m | grep -oiE '^oci8$' \
|
||||
@@ -766,10 +1063,10 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^openssl$' \
|
||||
&& php -m | grep -oiE '^pcntl$' \
|
||||
&& php-fpm -m | grep -oiE '^pcntl$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^pdo$' \
|
||||
&& php-fpm -m | grep -oiE '^pdo$' \
|
||||
&& php -m | grep -oiE '^pdo_dblib$' \
|
||||
&& php-fpm -m | grep -oiE '^pdo_dblib$' \
|
||||
&& php -m | grep -oiE '^pdo_firebird$' \
|
||||
&& php-fpm -m | grep -oiE '^pdo_firebird$' \
|
||||
&& php -m | grep -oiE '^pdo_mysql$' \
|
||||
@@ -780,19 +1077,31 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^pdo_pgsql$' \
|
||||
&& php -m | grep -oiE '^pdo_sqlite$' \
|
||||
&& php-fpm -m | grep -oiE '^pdo_sqlite$' \
|
||||
&& php -m | grep -oiE '^pdo_sqlsrv$' \
|
||||
&& php-fpm -m | grep -oiE '^pdo_sqlsrv$' \
|
||||
&& php -m | grep -oiE '^pgsql$' \
|
||||
&& php-fpm -m | grep -oiE '^pgsql$' \
|
||||
&& php -m | grep -oiE '^psr$' \
|
||||
&& php-fpm -m | grep -oiE '^psr$' \
|
||||
&& php -m | grep -oiE '^zstd$' \
|
||||
&& php-fpm -m | grep -oiE '^zstd$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^sqlite3$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlite3$' \
|
||||
&& php -m | grep -oiE '^sqlsrv$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlsrv$' \
|
||||
&& php -m | grep -oiE '^phalcon$' \
|
||||
&& php-fpm -m | grep -oiE '^phalcon$' \
|
||||
&& php -m | grep -oiE '^phar$' \
|
||||
&& php-fpm -m | grep -oiE '^phar$' \
|
||||
&& php -m | grep -oiE '^posix$' \
|
||||
&& php-fpm -m | grep -oiE '^posix$' \
|
||||
&& php -m | grep -oiE '^pspell$' \
|
||||
&& php-fpm -m | grep -oiE '^pspell$' \
|
||||
&& php -m | grep -oiE '^rdkafka$' \
|
||||
&& php-fpm -m | grep -oiE '^rdkafka$' \
|
||||
&& php -m | grep -oiE '^readline$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^reflection$' \
|
||||
&& php-fpm -m | grep -oiE '^reflection$' \
|
||||
&& php -m | grep -oiE '^session$' \
|
||||
@@ -813,6 +1122,12 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^solr$' \
|
||||
&& php -m | grep -oiE '^spl$' \
|
||||
&& php-fpm -m | grep -oiE '^spl$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^swoole$' \
|
||||
&& php-fpm -m | grep -oiE '^swoole$' \
|
||||
&& php -m | grep -oiE '^sysvmsg$' \
|
||||
&& php-fpm -m | grep -oiE '^sysvmsg$' \
|
||||
&& php -m | grep -oiE '^sysvsem$' \
|
||||
@@ -823,10 +1138,16 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^tidy$' \
|
||||
&& php -m | grep -oiE '^tokenizer$' \
|
||||
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
||||
&& php -m | grep -oiE '^uploadprogress$' \
|
||||
&& php-fpm -m | grep -oiE '^uploadprogress$' \
|
||||
&& php -m | grep -oiE '^uuid$' \
|
||||
&& php-fpm -m | grep -oiE '^uuid$' \
|
||||
&& php -m | grep -oiE '^vips$' \
|
||||
&& php-fpm -m | grep -oiE '^vips$' \
|
||||
&& php -m | grep -oiE '^xdebug$' \
|
||||
&& php-fpm -m | grep -oiE '^xdebug$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^xlswriter$' \
|
||||
&& php-fpm -m | grep -oiE '^xlswriter$' \
|
||||
&& php -m | grep -oiE '^xmlreader$' \
|
||||
&& php-fpm -m | grep -oiE '^xmlreader$' \
|
||||
&& php -m | grep -oiE '^xmlwriter$' \
|
||||
@@ -835,8 +1156,8 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^xsl$' \
|
||||
&& php -m | grep -oiE '^yaml$' \
|
||||
&& php-fpm -m | grep -oiE '^yaml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^zlib$' \
|
||||
&& php-fpm -m | grep -oiE '^zlib$' \
|
||||
&& true
|
||||
|
||||
|
||||
|
||||
1122
Dockerfiles/mods/Dockerfile-8.2
Normal file
1122
Dockerfiles/mods/Dockerfile-8.2
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
FROM devilbox/php-fpm:5.2-mods
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -26,9 +27,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 5.2-prod"
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
@@ -36,18 +36,21 @@ RUN set -eux \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# Fix: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
&& sed -i'' 's/.*imklog.*//g' /etc/rsyslog.conf \
|
||||
\
|
||||
# Setup Supervisor
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /etc/supervisor/custom.d \
|
||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
FROM devilbox/php-fpm:5.3-mods
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -26,9 +27,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 5.3-prod"
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
@@ -36,18 +36,21 @@ RUN set -eux \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# Fix: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
&& sed -i'' 's/.*imklog.*//g' /etc/rsyslog.conf \
|
||||
\
|
||||
# Setup Supervisor
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /etc/supervisor/custom.d \
|
||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
FROM devilbox/php-fpm:5.4-mods
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -26,9 +27,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 5.4-prod"
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
@@ -36,18 +36,21 @@ RUN set -eux \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# Fix: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
&& sed -i'' 's/.*imklog.*//g' /etc/rsyslog.conf \
|
||||
\
|
||||
# Setup Supervisor
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /etc/supervisor/custom.d \
|
||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
FROM devilbox/php-fpm:5.5-mods
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -26,9 +27,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 5.5-prod"
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
@@ -36,18 +36,21 @@ RUN set -eux \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# Fix: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
&& sed -i'' 's/.*imklog.*//g' /etc/rsyslog.conf \
|
||||
\
|
||||
# Setup Supervisor
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /etc/supervisor/custom.d \
|
||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
FROM devilbox/php-fpm:5.6-mods
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -26,9 +27,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 5.6-prod"
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
@@ -36,18 +36,21 @@ RUN set -eux \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# Fix: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
&& sed -i'' 's/.*imklog.*//g' /etc/rsyslog.conf \
|
||||
\
|
||||
# Setup Supervisor
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /etc/supervisor/custom.d \
|
||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
FROM devilbox/php-fpm:7.0-mods
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -26,9 +27,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 7.0-prod"
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
@@ -36,18 +36,21 @@ RUN set -eux \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# Fix: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
&& sed -i'' 's/.*imklog.*//g' /etc/rsyslog.conf \
|
||||
\
|
||||
# Setup Supervisor
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /etc/supervisor/custom.d \
|
||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
FROM devilbox/php-fpm:7.1-mods
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -26,9 +27,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 7.1-prod"
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
@@ -36,18 +36,21 @@ RUN set -eux \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# Fix: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
&& sed -i'' 's/.*imklog.*//g' /etc/rsyslog.conf \
|
||||
\
|
||||
# Setup Supervisor
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /etc/supervisor/custom.d \
|
||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
FROM devilbox/php-fpm:7.2-mods
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -26,9 +27,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 7.2-prod"
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
@@ -36,18 +36,21 @@ RUN set -eux \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# Fix: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
&& sed -i'' 's/.*imklog.*//g' /etc/rsyslog.conf \
|
||||
\
|
||||
# Setup Supervisor
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /etc/supervisor/custom.d \
|
||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
FROM devilbox/php-fpm:7.3-mods
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -26,9 +27,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 7.3-prod"
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
@@ -36,18 +36,21 @@ RUN set -eux \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# Fix: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
&& sed -i'' 's/.*imklog.*//g' /etc/rsyslog.conf \
|
||||
\
|
||||
# Setup Supervisor
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /etc/supervisor/custom.d \
|
||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
FROM devilbox/php-fpm:7.4-mods
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -26,9 +27,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 7.4-prod"
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
@@ -36,18 +36,21 @@ RUN set -eux \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# Fix: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
&& sed -i'' 's/.*imklog.*//g' /etc/rsyslog.conf \
|
||||
\
|
||||
# Setup Supervisor
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /etc/supervisor/custom.d \
|
||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
FROM devilbox/php-fpm:8.0-mods
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -26,9 +27,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 8.0-prod"
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
@@ -36,18 +36,21 @@ RUN set -eux \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# Fix: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
&& sed -i'' 's/.*imklog.*//g' /etc/rsyslog.conf \
|
||||
\
|
||||
# Setup Supervisor
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /etc/supervisor/custom.d \
|
||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
FROM devilbox/php-fpm:8.1-mods
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -26,9 +27,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 8.1-prod"
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
@@ -36,18 +36,21 @@ RUN set -eux \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# Fix: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
&& sed -i'' 's/.*imklog.*//g' /etc/rsyslog.conf \
|
||||
\
|
||||
# Setup Supervisor
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /etc/supervisor/custom.d \
|
||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
|
||||
102
Dockerfiles/prod/Dockerfile-8.2
Normal file
102
Dockerfiles/prod/Dockerfile-8.2
Normal file
@@ -0,0 +1,102 @@
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
FROM devilbox/php-fpm:8.2-mods
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="8.2-prod"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 8.2-prod"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 8.2-prod"
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
cron \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# Fix: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
&& sed -i'' 's/.*imklog.*//g' /etc/rsyslog.conf \
|
||||
\
|
||||
# Setup Supervisor
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /etc/supervisor/custom.d \
|
||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^8.2' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
\
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
\
|
||||
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
|
||||
###
|
||||
### Copy files
|
||||
###
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
|
||||
COPY ./data/postfix.sh /usr/local/sbin/postfix.sh
|
||||
COPY ./data/supervisord.conf /etc/supervisor/supervisord.conf
|
||||
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
@@ -88,6 +88,7 @@ set_postfix() {
|
||||
|
||||
# Postfix catch-all
|
||||
if [ "${enable_mail}" = "2" ]; then
|
||||
run "postconf -e 'myhostname=localhost'" "${debug}"
|
||||
run "postconf -e 'virtual_alias_maps=pcre:/etc/postfix/virtual'" "${debug}"
|
||||
run "echo '/.*@.*/ ${username}' >> /etc/postfix/virtual" "${debug}"
|
||||
run "newaliases" "${debug}"
|
||||
|
||||
@@ -29,15 +29,15 @@ MAILPID="/var/spool/postfix/pid/master.pid"
|
||||
###
|
||||
### Sanity checks
|
||||
###
|
||||
if ! command -v pidof >/dev/null 2>&1; then
|
||||
echo "pidof is required for cleaning up tail command."
|
||||
if ! command -v pgrep >/dev/null 2>&1; then
|
||||
echo "pgrep is required for cleaning up tail command."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Give rsyslogd some time to start up
|
||||
sleep 2
|
||||
|
||||
if ! pidof rsyslogd >/dev/null 2>&1; then
|
||||
if ! pgrep rsyslogd >/dev/null 2>&1; then
|
||||
echo "rsyslogd is not running, but required for mail logging."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
622
Dockerfiles/slim/Dockerfile-5.2
Normal file
622
Dockerfiles/slim/Dockerfile-5.2
Normal file
@@ -0,0 +1,622 @@
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-slim.j2 instead.
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 1/4: Devilbox slim image (BASE BUILDER)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Installs all cli tools required to run Devilbox and its intranet
|
||||
###
|
||||
FROM devilbox/php-fpm:5.2-prod as devilbox-slim-base-builder
|
||||
|
||||
###
|
||||
### Install apt Tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
dirmngr \
|
||||
gnupg
|
||||
|
||||
###
|
||||
### Add apt repositories
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until \
|
||||
&& echo "deb [trusted=yes] http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
|
||||
&& true
|
||||
|
||||
###
|
||||
### Install build_dep
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
libsnappy-dev \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
###
|
||||
### Add common tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
file \
|
||||
git \
|
||||
mysql-client \
|
||||
redis-tools \
|
||||
sqlite3
|
||||
|
||||
###
|
||||
### Install tools type: apt
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
# ---------- type: apt ----------
|
||||
dnsutils \
|
||||
iputils-ping \
|
||||
netcat-openbsd \
|
||||
sudo \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
###
|
||||
### Devilbox required cli tools from group_vars (slim.yml)
|
||||
###
|
||||
|
||||
# -------------------- dig --------------------
|
||||
RUN set -eux \
|
||||
&& dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \
|
||||
&& true
|
||||
|
||||
# -------------------- netcat --------------------
|
||||
RUN set -eux \
|
||||
&& nc -h 2>&1 | grep netcat \
|
||||
&& true
|
||||
|
||||
# -------------------- ping --------------------
|
||||
RUN set -eux \
|
||||
&& ping -V | grep ^ping \
|
||||
&& true
|
||||
|
||||
# -------------------- sudo --------------------
|
||||
RUN set -eux \
|
||||
&& sudo --version | grep -E 'version [0-9]+\.[0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- blackfire --------------------
|
||||
RUN set -eux \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
blackfire-agent \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& blackfire version \
|
||||
&& blackfire-agent -v \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mhsendmail --------------------
|
||||
RUN set -eux \
|
||||
&& DEB_HOST_ARCH="$( dpkg-architecture --query DEB_HOST_ARCH )" \
|
||||
&& if [ "${DEB_HOST_ARCH}" = "amd64" ] || [ "${DEB_HOST_ARCH}" = "arm64" ]; then \
|
||||
MHSENDMAIL_URL="https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_${DEB_HOST_ARCH}" \
|
||||
&& curl -sS -L --fail "${MHSENDMAIL_URL}" > /usr/local/bin/mhsendmail \
|
||||
&& chmod +x /usr/local/bin/mhsendmail; \
|
||||
else \
|
||||
printf '%s\n%s\n%s\n' '#!/bin/sh' 'echo "Not available for this platform."' 'exit 1' > /usr/local/bin/mhsendmail \
|
||||
&& chmod +x /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
&& mhsendmail -h 2>&1 | grep 'Usage' \
|
||||
&& true
|
||||
|
||||
# -------------------- mongo_client --------------------
|
||||
RUN set -eux \
|
||||
&& apt-get update \
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients; \
|
||||
fi \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& if echo '5.2' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '5.2' | grep -E '^(5.2|5.3|5.4|5.5)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongo --version; \
|
||||
fi \
|
||||
else \
|
||||
mongo --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
RUN set -eux \
|
||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||
&& cd /usr/local/src/mysqldump-secure \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
&& cp /usr/local/src/mysqldump-secure/bin/mysqldump-secure /usr/local/bin \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.conf /etc \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.cnf /etc \
|
||||
&& touch /var/log/mysqldump-secure.log \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /etc/mysqldump-secure.* \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /var/log/mysqldump-secure.log \
|
||||
&& chmod 0400 /etc/mysqldump-secure.conf \
|
||||
&& chmod 0400 /etc/mysqldump-secure.cnf \
|
||||
&& chmod 0644 /var/log/mysqldump-secure.log \
|
||||
&& sed -i'' 's/^COMPRESS_ARG=.*/COMPRESS_ARG="-9 -c"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR=.*/DUMP_DIR="\/shared\/backups\/mysql"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR_CHMOD=.*/DUMP_DIR_CHMOD="0755"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_FILE_CHMOD=.*/DUMP_FILE_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^LOG_CHMOD=.*/LOG_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^NAGIOS_LOG=.*/NAGIOS_LOG=0/g' /etc/mysqldump-secure.conf \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||
\
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- pgsql_client --------------------
|
||||
RUN set -eux \
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb https://apt-archive.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update; \
|
||||
fi \
|
||||
\
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client; \
|
||||
fi \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& if echo '5.2' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
###
|
||||
### Prepare required shared libraries for copying (keep symlinks)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
||||
&& USR_LIB_DIR="/usr/lib" \
|
||||
&& USR_LIB_GNU_DIR="/usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
||||
\
|
||||
&& mkdir /tmp/lib-gnu \
|
||||
&& mkdir /tmp/usr-lib \
|
||||
&& mkdir /tmp/usr-lib-gnu \
|
||||
\
|
||||
&& LIB_GNU="libreadline" \
|
||||
&& USR_LIB="libsnappy libtcmalloc libv8" \
|
||||
&& USR_LIB_GNU="liblua libpq libpcrecpp libboost libjemalloc libunwind libhiredis libedit libyaml-cpp libstemmer libsnappy libpcap libbsd liblzf" \
|
||||
\
|
||||
&& for lib in ${LIB_GNU}; do \
|
||||
if ls -1 "${LIB_GNU_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${LIB_GNU_DIR}"; \
|
||||
cp -r ${LIB_GNU_DIR}/${lib}* /tmp/lib-gnu/; \
|
||||
fi \
|
||||
done \
|
||||
&& for lib in ${USR_LIB}; do \
|
||||
if ls -1 "${USR_LIB_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${USR_LIB_DIR}"; \
|
||||
cp -r ${USR_LIB_DIR}/${lib}* /tmp/usr-lib/; \
|
||||
fi \
|
||||
done \
|
||||
&& for lib in ${USR_LIB_GNU}; do \
|
||||
if ls -1 "${USR_LIB_GNU_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${USR_LIB_GNU_DIR}"; \
|
||||
cp -r ${USR_LIB_GNU_DIR}/${lib}* /tmp/usr-lib-gnu/; \
|
||||
fi \
|
||||
done
|
||||
|
||||
###
|
||||
### Fix expected PostgreSQL directories
|
||||
###
|
||||
### This might not exist on arm64 as software was not available,
|
||||
### but they are still needed to be present, so we can copy them.
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if [ ! -d "/usr/lib/postgresql" ]; then \
|
||||
mkdir "/usr/lib/postgresql"; \
|
||||
fi \
|
||||
&& if [ ! -d "/usr/share/postgresql-common" ]; then \
|
||||
mkdir "/usr/share/postgresql-common"; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Prepare MongoDB binaries for copying.
|
||||
###
|
||||
### They might not be available on all architectures (e.g.: arm64).
|
||||
###
|
||||
RUN set -eux \
|
||||
&& mkdir /tmp/mongo \
|
||||
&& if ls -1 "/usr/bin/" | grep "^mongo" >/dev/null; then \
|
||||
cp -r /usr/bin/mongo* /tmp/mongo/; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Strip debugging information to smallen filesize
|
||||
###
|
||||
RUN set -eux \
|
||||
&& STRIP_USR_BINS="blackfire mongo mysql redis sqlite" \
|
||||
&& STRIP_DIRS="/usr/lib/postgresql/ /usr/share/postgresql-common/ /tmp" \
|
||||
\
|
||||
&& for bin in ${STRIP_USR_BINS}; do \
|
||||
( \
|
||||
find /usr/bin/ -name "${bin}"* -type f -print0 \
|
||||
| xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) sh -c \
|
||||
'if [ -f "${1}" ]; then echo "Strip: ${1}"; strip --strip-all -p "${1}" 2>/dev/null || true; fi' -- \
|
||||
) \
|
||||
done \
|
||||
\
|
||||
&& for dir in ${STRIP_DIRS}; do \
|
||||
( \
|
||||
find ${dir} -type f -print0 \
|
||||
| xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) sh -c \
|
||||
'if [ -f "${1}" ]; then echo "Strip: ${1}"; strip --strip-all -p "${1}" 2>/dev/null || true; fi' -- \
|
||||
) \
|
||||
done \
|
||||
\
|
||||
&& strip --strip-all -p /usr/local/bin/mhsendmail 2>/dev/null || true \
|
||||
&& strip --strip-all -p /usr/local/bin/mysqldump-secure 2>/dev/null || true
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 2/4: Devilbox slim image (BASE)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Copies all cli tools required to run Devilbox and its intranet into a clean image
|
||||
###
|
||||
FROM devilbox/php-fpm:5.2-prod as devilbox-slim-base
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Install tools type: apt
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
# ---------- type: apt ----------
|
||||
dnsutils \
|
||||
iputils-ping \
|
||||
netcat-openbsd \
|
||||
sudo \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
###
|
||||
### Copy shared libraries (required by MongoDB, MySQL, PostgreSQL and Redis)
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/
|
||||
COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/
|
||||
COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/
|
||||
|
||||
###
|
||||
### Copy system files
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /etc/group /etc/group
|
||||
COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd
|
||||
COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow
|
||||
|
||||
###
|
||||
### Copy Blackfire
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire
|
||||
COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/
|
||||
COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire
|
||||
|
||||
###
|
||||
### Copy mhsendmail
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/
|
||||
|
||||
###
|
||||
### Copy MongoDB client (if exists)
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /tmp/mongo/ /usr/bin/
|
||||
|
||||
###
|
||||
### Copy MysQL Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/
|
||||
|
||||
###
|
||||
### Copy mysqldump-secure
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/local/bin/mysqldump-secure /usr/local/bin/
|
||||
COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.conf /etc/
|
||||
COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.cnf /etc/
|
||||
COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/
|
||||
|
||||
###
|
||||
### Copy PostgreSQL
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql
|
||||
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
|
||||
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
|
||||
|
||||
###
|
||||
### Create PostgreSQL symlinks
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if [ -f "/usr/share/postgresql-common/pg_wrapper" ]; then \
|
||||
ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Copy Redis Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/
|
||||
|
||||
|
||||
###
|
||||
### Copy SQLite Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/
|
||||
|
||||
###
|
||||
### ADD PHP configuration files
|
||||
###
|
||||
COPY ./data/php-ini.d/php-5.2.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
|
||||
COPY ./data/php-fpm.conf/php-fpm-5.2.conf /usr/local/etc/php-fpm.conf
|
||||
|
||||
###
|
||||
### ADD Devilbox configuration files
|
||||
###
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
|
||||
COPY ./data/bash-devilbox /etc/bash-devilbox
|
||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||
|
||||
###
|
||||
### Configure Bash
|
||||
###
|
||||
RUN set -eux \
|
||||
&& { \
|
||||
echo; \
|
||||
echo "# [Devilbox] Ensure /usr/local(s)?bin is in PATH"; \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo "export PATH"; \
|
||||
echo; \
|
||||
echo "# [Devilbox] Source Devilbox main bash config"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo; \
|
||||
echo "# [Devilbox] Source Devilbox custom configs"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
echo " for f in /etc/bashrc-devilbox.d/*.sh ; do"; \
|
||||
echo " if [ -r \"\${f}\" ]; then"; \
|
||||
echo " . \"\${f}\""; \
|
||||
echo " fi"; \
|
||||
echo " done"; \
|
||||
echo " unset f"; \
|
||||
echo "fi"; \
|
||||
} | tee -a /home/${MY_USER}/.bashrc /root/.bashrc \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/.bashrc
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 3/4: Devilbox slim image (BASE TEST)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Test all Devilbox cli utils if copying was successful
|
||||
###
|
||||
FROM devilbox-slim-base as devilbox-slim-base-test
|
||||
RUN set -eux \
|
||||
&& mysql --version \
|
||||
&& redis-cli --version \
|
||||
&& sqlite3 --version
|
||||
|
||||
###
|
||||
### Check if available tools slim
|
||||
###
|
||||
|
||||
# -------------------- dig --------------------
|
||||
RUN set -eux \
|
||||
&& dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \
|
||||
&& true
|
||||
|
||||
# -------------------- netcat --------------------
|
||||
RUN set -eux \
|
||||
&& nc -h 2>&1 | grep netcat \
|
||||
&& true
|
||||
|
||||
# -------------------- ping --------------------
|
||||
RUN set -eux \
|
||||
&& ping -V | grep ^ping \
|
||||
&& true
|
||||
|
||||
# -------------------- sudo --------------------
|
||||
RUN set -eux \
|
||||
&& sudo --version | grep -E 'version [0-9]+\.[0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- blackfire --------------------
|
||||
RUN set -eux \
|
||||
&& blackfire version \
|
||||
&& blackfire-agent -v \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mhsendmail --------------------
|
||||
RUN set -eux \
|
||||
&& mhsendmail -h 2>&1 | grep 'Usage' \
|
||||
&& true
|
||||
|
||||
# -------------------- mongo_client --------------------
|
||||
RUN set -eux \
|
||||
&& if echo '5.2' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '5.2' | grep -E '^(5.2|5.3|5.4|5.5)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongo --version; \
|
||||
fi \
|
||||
else \
|
||||
mongo --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
RUN set -eux \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- pgsql_client --------------------
|
||||
RUN set -eux \
|
||||
&& if echo '5.2' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
###
|
||||
### Re-activate modules which have been deactivated in mods (for testing).
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if find /usr/local/lib/php/extensions/ -name phalcon.so | grep phalcon; then \
|
||||
echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if find /usr/local/lib/php/extensions/ -name psr.so | grep psr; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Check if PHP still works
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.2' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
\
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
\
|
||||
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 4/4: Devilbox slim image (FINAL)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Prepare final base image (STAGE: slim)
|
||||
###
|
||||
FROM devilbox-slim-base as slim
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="5.2-slim"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 5.2-slim"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 5.2-slim"
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /shared/backups
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
###
|
||||
### Where to start inside the container
|
||||
###
|
||||
WORKDIR /shared/httpd
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
622
Dockerfiles/slim/Dockerfile-5.3
Normal file
622
Dockerfiles/slim/Dockerfile-5.3
Normal file
@@ -0,0 +1,622 @@
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-slim.j2 instead.
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 1/4: Devilbox slim image (BASE BUILDER)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Installs all cli tools required to run Devilbox and its intranet
|
||||
###
|
||||
FROM devilbox/php-fpm:5.3-prod as devilbox-slim-base-builder
|
||||
|
||||
###
|
||||
### Install apt Tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
dirmngr \
|
||||
gnupg
|
||||
|
||||
###
|
||||
### Add apt repositories
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until \
|
||||
&& echo "deb [trusted=yes] http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
|
||||
&& true
|
||||
|
||||
###
|
||||
### Install build_dep
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
libsnappy-dev \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
###
|
||||
### Add common tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
file \
|
||||
git \
|
||||
mysql-client \
|
||||
redis-tools \
|
||||
sqlite3
|
||||
|
||||
###
|
||||
### Install tools type: apt
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
# ---------- type: apt ----------
|
||||
dnsutils \
|
||||
iputils-ping \
|
||||
netcat-openbsd \
|
||||
sudo \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
###
|
||||
### Devilbox required cli tools from group_vars (slim.yml)
|
||||
###
|
||||
|
||||
# -------------------- dig --------------------
|
||||
RUN set -eux \
|
||||
&& dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \
|
||||
&& true
|
||||
|
||||
# -------------------- netcat --------------------
|
||||
RUN set -eux \
|
||||
&& nc -h 2>&1 | grep netcat \
|
||||
&& true
|
||||
|
||||
# -------------------- ping --------------------
|
||||
RUN set -eux \
|
||||
&& ping -V | grep ^ping \
|
||||
&& true
|
||||
|
||||
# -------------------- sudo --------------------
|
||||
RUN set -eux \
|
||||
&& sudo --version | grep -E 'version [0-9]+\.[0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- blackfire --------------------
|
||||
RUN set -eux \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
blackfire-agent \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& blackfire version \
|
||||
&& blackfire-agent -v \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mhsendmail --------------------
|
||||
RUN set -eux \
|
||||
&& DEB_HOST_ARCH="$( dpkg-architecture --query DEB_HOST_ARCH )" \
|
||||
&& if [ "${DEB_HOST_ARCH}" = "amd64" ] || [ "${DEB_HOST_ARCH}" = "arm64" ]; then \
|
||||
MHSENDMAIL_URL="https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_${DEB_HOST_ARCH}" \
|
||||
&& curl -sS -L --fail "${MHSENDMAIL_URL}" > /usr/local/bin/mhsendmail \
|
||||
&& chmod +x /usr/local/bin/mhsendmail; \
|
||||
else \
|
||||
printf '%s\n%s\n%s\n' '#!/bin/sh' 'echo "Not available for this platform."' 'exit 1' > /usr/local/bin/mhsendmail \
|
||||
&& chmod +x /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
&& mhsendmail -h 2>&1 | grep 'Usage' \
|
||||
&& true
|
||||
|
||||
# -------------------- mongo_client --------------------
|
||||
RUN set -eux \
|
||||
&& apt-get update \
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients; \
|
||||
fi \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& if echo '5.3' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '5.3' | grep -E '^(5.2|5.3|5.4|5.5)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongo --version; \
|
||||
fi \
|
||||
else \
|
||||
mongo --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
RUN set -eux \
|
||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||
&& cd /usr/local/src/mysqldump-secure \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
&& cp /usr/local/src/mysqldump-secure/bin/mysqldump-secure /usr/local/bin \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.conf /etc \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.cnf /etc \
|
||||
&& touch /var/log/mysqldump-secure.log \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /etc/mysqldump-secure.* \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /var/log/mysqldump-secure.log \
|
||||
&& chmod 0400 /etc/mysqldump-secure.conf \
|
||||
&& chmod 0400 /etc/mysqldump-secure.cnf \
|
||||
&& chmod 0644 /var/log/mysqldump-secure.log \
|
||||
&& sed -i'' 's/^COMPRESS_ARG=.*/COMPRESS_ARG="-9 -c"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR=.*/DUMP_DIR="\/shared\/backups\/mysql"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR_CHMOD=.*/DUMP_DIR_CHMOD="0755"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_FILE_CHMOD=.*/DUMP_FILE_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^LOG_CHMOD=.*/LOG_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^NAGIOS_LOG=.*/NAGIOS_LOG=0/g' /etc/mysqldump-secure.conf \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||
\
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- pgsql_client --------------------
|
||||
RUN set -eux \
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb https://apt-archive.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update; \
|
||||
fi \
|
||||
\
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client; \
|
||||
fi \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& if echo '5.3' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
###
|
||||
### Prepare required shared libraries for copying (keep symlinks)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
||||
&& USR_LIB_DIR="/usr/lib" \
|
||||
&& USR_LIB_GNU_DIR="/usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
||||
\
|
||||
&& mkdir /tmp/lib-gnu \
|
||||
&& mkdir /tmp/usr-lib \
|
||||
&& mkdir /tmp/usr-lib-gnu \
|
||||
\
|
||||
&& LIB_GNU="libreadline" \
|
||||
&& USR_LIB="libsnappy libtcmalloc libv8" \
|
||||
&& USR_LIB_GNU="liblua libpq libpcrecpp libboost libjemalloc libunwind libhiredis libedit libyaml-cpp libstemmer libsnappy libpcap libbsd liblzf" \
|
||||
\
|
||||
&& for lib in ${LIB_GNU}; do \
|
||||
if ls -1 "${LIB_GNU_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${LIB_GNU_DIR}"; \
|
||||
cp -r ${LIB_GNU_DIR}/${lib}* /tmp/lib-gnu/; \
|
||||
fi \
|
||||
done \
|
||||
&& for lib in ${USR_LIB}; do \
|
||||
if ls -1 "${USR_LIB_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${USR_LIB_DIR}"; \
|
||||
cp -r ${USR_LIB_DIR}/${lib}* /tmp/usr-lib/; \
|
||||
fi \
|
||||
done \
|
||||
&& for lib in ${USR_LIB_GNU}; do \
|
||||
if ls -1 "${USR_LIB_GNU_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${USR_LIB_GNU_DIR}"; \
|
||||
cp -r ${USR_LIB_GNU_DIR}/${lib}* /tmp/usr-lib-gnu/; \
|
||||
fi \
|
||||
done
|
||||
|
||||
###
|
||||
### Fix expected PostgreSQL directories
|
||||
###
|
||||
### This might not exist on arm64 as software was not available,
|
||||
### but they are still needed to be present, so we can copy them.
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if [ ! -d "/usr/lib/postgresql" ]; then \
|
||||
mkdir "/usr/lib/postgresql"; \
|
||||
fi \
|
||||
&& if [ ! -d "/usr/share/postgresql-common" ]; then \
|
||||
mkdir "/usr/share/postgresql-common"; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Prepare MongoDB binaries for copying.
|
||||
###
|
||||
### They might not be available on all architectures (e.g.: arm64).
|
||||
###
|
||||
RUN set -eux \
|
||||
&& mkdir /tmp/mongo \
|
||||
&& if ls -1 "/usr/bin/" | grep "^mongo" >/dev/null; then \
|
||||
cp -r /usr/bin/mongo* /tmp/mongo/; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Strip debugging information to smallen filesize
|
||||
###
|
||||
RUN set -eux \
|
||||
&& STRIP_USR_BINS="blackfire mongo mysql redis sqlite" \
|
||||
&& STRIP_DIRS="/usr/lib/postgresql/ /usr/share/postgresql-common/ /tmp" \
|
||||
\
|
||||
&& for bin in ${STRIP_USR_BINS}; do \
|
||||
( \
|
||||
find /usr/bin/ -name "${bin}"* -type f -print0 \
|
||||
| xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) sh -c \
|
||||
'if [ -f "${1}" ]; then echo "Strip: ${1}"; strip --strip-all -p "${1}" 2>/dev/null || true; fi' -- \
|
||||
) \
|
||||
done \
|
||||
\
|
||||
&& for dir in ${STRIP_DIRS}; do \
|
||||
( \
|
||||
find ${dir} -type f -print0 \
|
||||
| xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) sh -c \
|
||||
'if [ -f "${1}" ]; then echo "Strip: ${1}"; strip --strip-all -p "${1}" 2>/dev/null || true; fi' -- \
|
||||
) \
|
||||
done \
|
||||
\
|
||||
&& strip --strip-all -p /usr/local/bin/mhsendmail 2>/dev/null || true \
|
||||
&& strip --strip-all -p /usr/local/bin/mysqldump-secure 2>/dev/null || true
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 2/4: Devilbox slim image (BASE)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Copies all cli tools required to run Devilbox and its intranet into a clean image
|
||||
###
|
||||
FROM devilbox/php-fpm:5.3-prod as devilbox-slim-base
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Install tools type: apt
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
# ---------- type: apt ----------
|
||||
dnsutils \
|
||||
iputils-ping \
|
||||
netcat-openbsd \
|
||||
sudo \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
###
|
||||
### Copy shared libraries (required by MongoDB, MySQL, PostgreSQL and Redis)
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/
|
||||
COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/
|
||||
COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/
|
||||
|
||||
###
|
||||
### Copy system files
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /etc/group /etc/group
|
||||
COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd
|
||||
COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow
|
||||
|
||||
###
|
||||
### Copy Blackfire
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire
|
||||
COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/
|
||||
COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire
|
||||
|
||||
###
|
||||
### Copy mhsendmail
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/
|
||||
|
||||
###
|
||||
### Copy MongoDB client (if exists)
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /tmp/mongo/ /usr/bin/
|
||||
|
||||
###
|
||||
### Copy MysQL Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/
|
||||
|
||||
###
|
||||
### Copy mysqldump-secure
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/local/bin/mysqldump-secure /usr/local/bin/
|
||||
COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.conf /etc/
|
||||
COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.cnf /etc/
|
||||
COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/
|
||||
|
||||
###
|
||||
### Copy PostgreSQL
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql
|
||||
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
|
||||
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
|
||||
|
||||
###
|
||||
### Create PostgreSQL symlinks
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if [ -f "/usr/share/postgresql-common/pg_wrapper" ]; then \
|
||||
ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Copy Redis Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/
|
||||
|
||||
|
||||
###
|
||||
### Copy SQLite Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/
|
||||
|
||||
###
|
||||
### ADD PHP configuration files
|
||||
###
|
||||
COPY ./data/php-ini.d/php-5.3.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
|
||||
COPY ./data/php-fpm.conf/php-fpm-5.3.conf /usr/local/etc/php-fpm.conf
|
||||
|
||||
###
|
||||
### ADD Devilbox configuration files
|
||||
###
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
|
||||
COPY ./data/bash-devilbox /etc/bash-devilbox
|
||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||
|
||||
###
|
||||
### Configure Bash
|
||||
###
|
||||
RUN set -eux \
|
||||
&& { \
|
||||
echo; \
|
||||
echo "# [Devilbox] Ensure /usr/local(s)?bin is in PATH"; \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo "export PATH"; \
|
||||
echo; \
|
||||
echo "# [Devilbox] Source Devilbox main bash config"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo; \
|
||||
echo "# [Devilbox] Source Devilbox custom configs"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
echo " for f in /etc/bashrc-devilbox.d/*.sh ; do"; \
|
||||
echo " if [ -r \"\${f}\" ]; then"; \
|
||||
echo " . \"\${f}\""; \
|
||||
echo " fi"; \
|
||||
echo " done"; \
|
||||
echo " unset f"; \
|
||||
echo "fi"; \
|
||||
} | tee -a /home/${MY_USER}/.bashrc /root/.bashrc \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/.bashrc
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 3/4: Devilbox slim image (BASE TEST)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Test all Devilbox cli utils if copying was successful
|
||||
###
|
||||
FROM devilbox-slim-base as devilbox-slim-base-test
|
||||
RUN set -eux \
|
||||
&& mysql --version \
|
||||
&& redis-cli --version \
|
||||
&& sqlite3 --version
|
||||
|
||||
###
|
||||
### Check if available tools slim
|
||||
###
|
||||
|
||||
# -------------------- dig --------------------
|
||||
RUN set -eux \
|
||||
&& dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \
|
||||
&& true
|
||||
|
||||
# -------------------- netcat --------------------
|
||||
RUN set -eux \
|
||||
&& nc -h 2>&1 | grep netcat \
|
||||
&& true
|
||||
|
||||
# -------------------- ping --------------------
|
||||
RUN set -eux \
|
||||
&& ping -V | grep ^ping \
|
||||
&& true
|
||||
|
||||
# -------------------- sudo --------------------
|
||||
RUN set -eux \
|
||||
&& sudo --version | grep -E 'version [0-9]+\.[0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- blackfire --------------------
|
||||
RUN set -eux \
|
||||
&& blackfire version \
|
||||
&& blackfire-agent -v \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mhsendmail --------------------
|
||||
RUN set -eux \
|
||||
&& mhsendmail -h 2>&1 | grep 'Usage' \
|
||||
&& true
|
||||
|
||||
# -------------------- mongo_client --------------------
|
||||
RUN set -eux \
|
||||
&& if echo '5.3' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '5.3' | grep -E '^(5.2|5.3|5.4|5.5)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongo --version; \
|
||||
fi \
|
||||
else \
|
||||
mongo --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
RUN set -eux \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- pgsql_client --------------------
|
||||
RUN set -eux \
|
||||
&& if echo '5.3' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
###
|
||||
### Re-activate modules which have been deactivated in mods (for testing).
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if find /usr/local/lib/php/extensions/ -name phalcon.so | grep phalcon; then \
|
||||
echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if find /usr/local/lib/php/extensions/ -name psr.so | grep psr; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Check if PHP still works
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.3' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
\
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
\
|
||||
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 4/4: Devilbox slim image (FINAL)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Prepare final base image (STAGE: slim)
|
||||
###
|
||||
FROM devilbox-slim-base as slim
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="5.3-slim"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 5.3-slim"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 5.3-slim"
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /shared/backups
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
###
|
||||
### Where to start inside the container
|
||||
###
|
||||
WORKDIR /shared/httpd
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
622
Dockerfiles/slim/Dockerfile-5.4
Normal file
622
Dockerfiles/slim/Dockerfile-5.4
Normal file
@@ -0,0 +1,622 @@
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-slim.j2 instead.
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 1/4: Devilbox slim image (BASE BUILDER)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Installs all cli tools required to run Devilbox and its intranet
|
||||
###
|
||||
FROM devilbox/php-fpm:5.4-prod as devilbox-slim-base-builder
|
||||
|
||||
###
|
||||
### Install apt Tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
dirmngr \
|
||||
gnupg
|
||||
|
||||
###
|
||||
### Add apt repositories
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until \
|
||||
&& echo "deb [trusted=yes] http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
|
||||
&& true
|
||||
|
||||
###
|
||||
### Install build_dep
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
libsnappy-dev \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
###
|
||||
### Add common tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
file \
|
||||
git \
|
||||
mysql-client \
|
||||
redis-tools \
|
||||
sqlite3
|
||||
|
||||
###
|
||||
### Install tools type: apt
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
# ---------- type: apt ----------
|
||||
dnsutils \
|
||||
iputils-ping \
|
||||
netcat-openbsd \
|
||||
sudo \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
###
|
||||
### Devilbox required cli tools from group_vars (slim.yml)
|
||||
###
|
||||
|
||||
# -------------------- dig --------------------
|
||||
RUN set -eux \
|
||||
&& dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \
|
||||
&& true
|
||||
|
||||
# -------------------- netcat --------------------
|
||||
RUN set -eux \
|
||||
&& nc -h 2>&1 | grep netcat \
|
||||
&& true
|
||||
|
||||
# -------------------- ping --------------------
|
||||
RUN set -eux \
|
||||
&& ping -V | grep ^ping \
|
||||
&& true
|
||||
|
||||
# -------------------- sudo --------------------
|
||||
RUN set -eux \
|
||||
&& sudo --version | grep -E 'version [0-9]+\.[0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- blackfire --------------------
|
||||
RUN set -eux \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
blackfire-agent \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& blackfire version \
|
||||
&& blackfire-agent -v \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mhsendmail --------------------
|
||||
RUN set -eux \
|
||||
&& DEB_HOST_ARCH="$( dpkg-architecture --query DEB_HOST_ARCH )" \
|
||||
&& if [ "${DEB_HOST_ARCH}" = "amd64" ] || [ "${DEB_HOST_ARCH}" = "arm64" ]; then \
|
||||
MHSENDMAIL_URL="https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_${DEB_HOST_ARCH}" \
|
||||
&& curl -sS -L --fail "${MHSENDMAIL_URL}" > /usr/local/bin/mhsendmail \
|
||||
&& chmod +x /usr/local/bin/mhsendmail; \
|
||||
else \
|
||||
printf '%s\n%s\n%s\n' '#!/bin/sh' 'echo "Not available for this platform."' 'exit 1' > /usr/local/bin/mhsendmail \
|
||||
&& chmod +x /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
&& mhsendmail -h 2>&1 | grep 'Usage' \
|
||||
&& true
|
||||
|
||||
# -------------------- mongo_client --------------------
|
||||
RUN set -eux \
|
||||
&& apt-get update \
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients; \
|
||||
fi \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& if echo '5.4' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '5.4' | grep -E '^(5.2|5.3|5.4|5.5)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongo --version; \
|
||||
fi \
|
||||
else \
|
||||
mongo --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
RUN set -eux \
|
||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||
&& cd /usr/local/src/mysqldump-secure \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
&& cp /usr/local/src/mysqldump-secure/bin/mysqldump-secure /usr/local/bin \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.conf /etc \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.cnf /etc \
|
||||
&& touch /var/log/mysqldump-secure.log \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /etc/mysqldump-secure.* \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /var/log/mysqldump-secure.log \
|
||||
&& chmod 0400 /etc/mysqldump-secure.conf \
|
||||
&& chmod 0400 /etc/mysqldump-secure.cnf \
|
||||
&& chmod 0644 /var/log/mysqldump-secure.log \
|
||||
&& sed -i'' 's/^COMPRESS_ARG=.*/COMPRESS_ARG="-9 -c"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR=.*/DUMP_DIR="\/shared\/backups\/mysql"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR_CHMOD=.*/DUMP_DIR_CHMOD="0755"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_FILE_CHMOD=.*/DUMP_FILE_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^LOG_CHMOD=.*/LOG_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^NAGIOS_LOG=.*/NAGIOS_LOG=0/g' /etc/mysqldump-secure.conf \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||
\
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- pgsql_client --------------------
|
||||
RUN set -eux \
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb https://apt-archive.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update; \
|
||||
fi \
|
||||
\
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client; \
|
||||
fi \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& if echo '5.4' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
###
|
||||
### Prepare required shared libraries for copying (keep symlinks)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
||||
&& USR_LIB_DIR="/usr/lib" \
|
||||
&& USR_LIB_GNU_DIR="/usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
||||
\
|
||||
&& mkdir /tmp/lib-gnu \
|
||||
&& mkdir /tmp/usr-lib \
|
||||
&& mkdir /tmp/usr-lib-gnu \
|
||||
\
|
||||
&& LIB_GNU="libreadline" \
|
||||
&& USR_LIB="libsnappy libtcmalloc libv8" \
|
||||
&& USR_LIB_GNU="liblua libpq libpcrecpp libboost libjemalloc libunwind libhiredis libedit libyaml-cpp libstemmer libsnappy libpcap libbsd liblzf" \
|
||||
\
|
||||
&& for lib in ${LIB_GNU}; do \
|
||||
if ls -1 "${LIB_GNU_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${LIB_GNU_DIR}"; \
|
||||
cp -r ${LIB_GNU_DIR}/${lib}* /tmp/lib-gnu/; \
|
||||
fi \
|
||||
done \
|
||||
&& for lib in ${USR_LIB}; do \
|
||||
if ls -1 "${USR_LIB_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${USR_LIB_DIR}"; \
|
||||
cp -r ${USR_LIB_DIR}/${lib}* /tmp/usr-lib/; \
|
||||
fi \
|
||||
done \
|
||||
&& for lib in ${USR_LIB_GNU}; do \
|
||||
if ls -1 "${USR_LIB_GNU_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${USR_LIB_GNU_DIR}"; \
|
||||
cp -r ${USR_LIB_GNU_DIR}/${lib}* /tmp/usr-lib-gnu/; \
|
||||
fi \
|
||||
done
|
||||
|
||||
###
|
||||
### Fix expected PostgreSQL directories
|
||||
###
|
||||
### This might not exist on arm64 as software was not available,
|
||||
### but they are still needed to be present, so we can copy them.
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if [ ! -d "/usr/lib/postgresql" ]; then \
|
||||
mkdir "/usr/lib/postgresql"; \
|
||||
fi \
|
||||
&& if [ ! -d "/usr/share/postgresql-common" ]; then \
|
||||
mkdir "/usr/share/postgresql-common"; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Prepare MongoDB binaries for copying.
|
||||
###
|
||||
### They might not be available on all architectures (e.g.: arm64).
|
||||
###
|
||||
RUN set -eux \
|
||||
&& mkdir /tmp/mongo \
|
||||
&& if ls -1 "/usr/bin/" | grep "^mongo" >/dev/null; then \
|
||||
cp -r /usr/bin/mongo* /tmp/mongo/; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Strip debugging information to smallen filesize
|
||||
###
|
||||
RUN set -eux \
|
||||
&& STRIP_USR_BINS="blackfire mongo mysql redis sqlite" \
|
||||
&& STRIP_DIRS="/usr/lib/postgresql/ /usr/share/postgresql-common/ /tmp" \
|
||||
\
|
||||
&& for bin in ${STRIP_USR_BINS}; do \
|
||||
( \
|
||||
find /usr/bin/ -name "${bin}"* -type f -print0 \
|
||||
| xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) sh -c \
|
||||
'if [ -f "${1}" ]; then echo "Strip: ${1}"; strip --strip-all -p "${1}" 2>/dev/null || true; fi' -- \
|
||||
) \
|
||||
done \
|
||||
\
|
||||
&& for dir in ${STRIP_DIRS}; do \
|
||||
( \
|
||||
find ${dir} -type f -print0 \
|
||||
| xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) sh -c \
|
||||
'if [ -f "${1}" ]; then echo "Strip: ${1}"; strip --strip-all -p "${1}" 2>/dev/null || true; fi' -- \
|
||||
) \
|
||||
done \
|
||||
\
|
||||
&& strip --strip-all -p /usr/local/bin/mhsendmail 2>/dev/null || true \
|
||||
&& strip --strip-all -p /usr/local/bin/mysqldump-secure 2>/dev/null || true
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 2/4: Devilbox slim image (BASE)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Copies all cli tools required to run Devilbox and its intranet into a clean image
|
||||
###
|
||||
FROM devilbox/php-fpm:5.4-prod as devilbox-slim-base
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Install tools type: apt
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
# ---------- type: apt ----------
|
||||
dnsutils \
|
||||
iputils-ping \
|
||||
netcat-openbsd \
|
||||
sudo \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
###
|
||||
### Copy shared libraries (required by MongoDB, MySQL, PostgreSQL and Redis)
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/
|
||||
COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/
|
||||
COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/
|
||||
|
||||
###
|
||||
### Copy system files
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /etc/group /etc/group
|
||||
COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd
|
||||
COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow
|
||||
|
||||
###
|
||||
### Copy Blackfire
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire
|
||||
COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/
|
||||
COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire
|
||||
|
||||
###
|
||||
### Copy mhsendmail
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/
|
||||
|
||||
###
|
||||
### Copy MongoDB client (if exists)
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /tmp/mongo/ /usr/bin/
|
||||
|
||||
###
|
||||
### Copy MysQL Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/
|
||||
|
||||
###
|
||||
### Copy mysqldump-secure
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/local/bin/mysqldump-secure /usr/local/bin/
|
||||
COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.conf /etc/
|
||||
COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.cnf /etc/
|
||||
COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/
|
||||
|
||||
###
|
||||
### Copy PostgreSQL
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql
|
||||
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
|
||||
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
|
||||
|
||||
###
|
||||
### Create PostgreSQL symlinks
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if [ -f "/usr/share/postgresql-common/pg_wrapper" ]; then \
|
||||
ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Copy Redis Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/
|
||||
|
||||
|
||||
###
|
||||
### Copy SQLite Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/
|
||||
|
||||
###
|
||||
### ADD PHP configuration files
|
||||
###
|
||||
COPY ./data/php-ini.d/php-5.4.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
|
||||
COPY ./data/php-fpm.conf/php-fpm-5.4.conf /usr/local/etc/php-fpm.conf
|
||||
|
||||
###
|
||||
### ADD Devilbox configuration files
|
||||
###
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
|
||||
COPY ./data/bash-devilbox /etc/bash-devilbox
|
||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||
|
||||
###
|
||||
### Configure Bash
|
||||
###
|
||||
RUN set -eux \
|
||||
&& { \
|
||||
echo; \
|
||||
echo "# [Devilbox] Ensure /usr/local(s)?bin is in PATH"; \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo "export PATH"; \
|
||||
echo; \
|
||||
echo "# [Devilbox] Source Devilbox main bash config"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo; \
|
||||
echo "# [Devilbox] Source Devilbox custom configs"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
echo " for f in /etc/bashrc-devilbox.d/*.sh ; do"; \
|
||||
echo " if [ -r \"\${f}\" ]; then"; \
|
||||
echo " . \"\${f}\""; \
|
||||
echo " fi"; \
|
||||
echo " done"; \
|
||||
echo " unset f"; \
|
||||
echo "fi"; \
|
||||
} | tee -a /home/${MY_USER}/.bashrc /root/.bashrc \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/.bashrc
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 3/4: Devilbox slim image (BASE TEST)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Test all Devilbox cli utils if copying was successful
|
||||
###
|
||||
FROM devilbox-slim-base as devilbox-slim-base-test
|
||||
RUN set -eux \
|
||||
&& mysql --version \
|
||||
&& redis-cli --version \
|
||||
&& sqlite3 --version
|
||||
|
||||
###
|
||||
### Check if available tools slim
|
||||
###
|
||||
|
||||
# -------------------- dig --------------------
|
||||
RUN set -eux \
|
||||
&& dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \
|
||||
&& true
|
||||
|
||||
# -------------------- netcat --------------------
|
||||
RUN set -eux \
|
||||
&& nc -h 2>&1 | grep netcat \
|
||||
&& true
|
||||
|
||||
# -------------------- ping --------------------
|
||||
RUN set -eux \
|
||||
&& ping -V | grep ^ping \
|
||||
&& true
|
||||
|
||||
# -------------------- sudo --------------------
|
||||
RUN set -eux \
|
||||
&& sudo --version | grep -E 'version [0-9]+\.[0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- blackfire --------------------
|
||||
RUN set -eux \
|
||||
&& blackfire version \
|
||||
&& blackfire-agent -v \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mhsendmail --------------------
|
||||
RUN set -eux \
|
||||
&& mhsendmail -h 2>&1 | grep 'Usage' \
|
||||
&& true
|
||||
|
||||
# -------------------- mongo_client --------------------
|
||||
RUN set -eux \
|
||||
&& if echo '5.4' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '5.4' | grep -E '^(5.2|5.3|5.4|5.5)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongo --version; \
|
||||
fi \
|
||||
else \
|
||||
mongo --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
RUN set -eux \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- pgsql_client --------------------
|
||||
RUN set -eux \
|
||||
&& if echo '5.4' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
###
|
||||
### Re-activate modules which have been deactivated in mods (for testing).
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if find /usr/local/lib/php/extensions/ -name phalcon.so | grep phalcon; then \
|
||||
echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if find /usr/local/lib/php/extensions/ -name psr.so | grep psr; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Check if PHP still works
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.4' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
\
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
\
|
||||
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 4/4: Devilbox slim image (FINAL)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Prepare final base image (STAGE: slim)
|
||||
###
|
||||
FROM devilbox-slim-base as slim
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="5.4-slim"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 5.4-slim"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 5.4-slim"
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /shared/backups
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
###
|
||||
### Where to start inside the container
|
||||
###
|
||||
WORKDIR /shared/httpd
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
622
Dockerfiles/slim/Dockerfile-5.5
Normal file
622
Dockerfiles/slim/Dockerfile-5.5
Normal file
@@ -0,0 +1,622 @@
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-slim.j2 instead.
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 1/4: Devilbox slim image (BASE BUILDER)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Installs all cli tools required to run Devilbox and its intranet
|
||||
###
|
||||
FROM devilbox/php-fpm:5.5-prod as devilbox-slim-base-builder
|
||||
|
||||
###
|
||||
### Install apt Tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
dirmngr \
|
||||
gnupg
|
||||
|
||||
###
|
||||
### Add apt repositories
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until \
|
||||
&& echo "deb [trusted=yes] http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
|
||||
&& true
|
||||
|
||||
###
|
||||
### Install build_dep
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
libsnappy-dev \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
###
|
||||
### Add common tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
file \
|
||||
git \
|
||||
mysql-client \
|
||||
redis-tools \
|
||||
sqlite3
|
||||
|
||||
###
|
||||
### Install tools type: apt
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
# ---------- type: apt ----------
|
||||
dnsutils \
|
||||
iputils-ping \
|
||||
netcat-openbsd \
|
||||
sudo \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
###
|
||||
### Devilbox required cli tools from group_vars (slim.yml)
|
||||
###
|
||||
|
||||
# -------------------- dig --------------------
|
||||
RUN set -eux \
|
||||
&& dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \
|
||||
&& true
|
||||
|
||||
# -------------------- netcat --------------------
|
||||
RUN set -eux \
|
||||
&& nc -h 2>&1 | grep netcat \
|
||||
&& true
|
||||
|
||||
# -------------------- ping --------------------
|
||||
RUN set -eux \
|
||||
&& ping -V | grep ^ping \
|
||||
&& true
|
||||
|
||||
# -------------------- sudo --------------------
|
||||
RUN set -eux \
|
||||
&& sudo --version | grep -E 'version [0-9]+\.[0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- blackfire --------------------
|
||||
RUN set -eux \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
blackfire-agent \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& blackfire version \
|
||||
&& blackfire-agent -v \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mhsendmail --------------------
|
||||
RUN set -eux \
|
||||
&& DEB_HOST_ARCH="$( dpkg-architecture --query DEB_HOST_ARCH )" \
|
||||
&& if [ "${DEB_HOST_ARCH}" = "amd64" ] || [ "${DEB_HOST_ARCH}" = "arm64" ]; then \
|
||||
MHSENDMAIL_URL="https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_${DEB_HOST_ARCH}" \
|
||||
&& curl -sS -L --fail "${MHSENDMAIL_URL}" > /usr/local/bin/mhsendmail \
|
||||
&& chmod +x /usr/local/bin/mhsendmail; \
|
||||
else \
|
||||
printf '%s\n%s\n%s\n' '#!/bin/sh' 'echo "Not available for this platform."' 'exit 1' > /usr/local/bin/mhsendmail \
|
||||
&& chmod +x /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
&& mhsendmail -h 2>&1 | grep 'Usage' \
|
||||
&& true
|
||||
|
||||
# -------------------- mongo_client --------------------
|
||||
RUN set -eux \
|
||||
&& apt-get update \
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients; \
|
||||
fi \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& if echo '5.5' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '5.5' | grep -E '^(5.2|5.3|5.4|5.5)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongo --version; \
|
||||
fi \
|
||||
else \
|
||||
mongo --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
RUN set -eux \
|
||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||
&& cd /usr/local/src/mysqldump-secure \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
&& cp /usr/local/src/mysqldump-secure/bin/mysqldump-secure /usr/local/bin \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.conf /etc \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.cnf /etc \
|
||||
&& touch /var/log/mysqldump-secure.log \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /etc/mysqldump-secure.* \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /var/log/mysqldump-secure.log \
|
||||
&& chmod 0400 /etc/mysqldump-secure.conf \
|
||||
&& chmod 0400 /etc/mysqldump-secure.cnf \
|
||||
&& chmod 0644 /var/log/mysqldump-secure.log \
|
||||
&& sed -i'' 's/^COMPRESS_ARG=.*/COMPRESS_ARG="-9 -c"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR=.*/DUMP_DIR="\/shared\/backups\/mysql"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR_CHMOD=.*/DUMP_DIR_CHMOD="0755"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_FILE_CHMOD=.*/DUMP_FILE_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^LOG_CHMOD=.*/LOG_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^NAGIOS_LOG=.*/NAGIOS_LOG=0/g' /etc/mysqldump-secure.conf \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||
\
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- pgsql_client --------------------
|
||||
RUN set -eux \
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb https://apt-archive.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update; \
|
||||
fi \
|
||||
\
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client; \
|
||||
fi \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& if echo '5.5' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
###
|
||||
### Prepare required shared libraries for copying (keep symlinks)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
||||
&& USR_LIB_DIR="/usr/lib" \
|
||||
&& USR_LIB_GNU_DIR="/usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
||||
\
|
||||
&& mkdir /tmp/lib-gnu \
|
||||
&& mkdir /tmp/usr-lib \
|
||||
&& mkdir /tmp/usr-lib-gnu \
|
||||
\
|
||||
&& LIB_GNU="libreadline" \
|
||||
&& USR_LIB="libsnappy libtcmalloc libv8" \
|
||||
&& USR_LIB_GNU="liblua libpq libpcrecpp libboost libjemalloc libunwind libhiredis libedit libyaml-cpp libstemmer libsnappy libpcap libbsd liblzf" \
|
||||
\
|
||||
&& for lib in ${LIB_GNU}; do \
|
||||
if ls -1 "${LIB_GNU_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${LIB_GNU_DIR}"; \
|
||||
cp -r ${LIB_GNU_DIR}/${lib}* /tmp/lib-gnu/; \
|
||||
fi \
|
||||
done \
|
||||
&& for lib in ${USR_LIB}; do \
|
||||
if ls -1 "${USR_LIB_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${USR_LIB_DIR}"; \
|
||||
cp -r ${USR_LIB_DIR}/${lib}* /tmp/usr-lib/; \
|
||||
fi \
|
||||
done \
|
||||
&& for lib in ${USR_LIB_GNU}; do \
|
||||
if ls -1 "${USR_LIB_GNU_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${USR_LIB_GNU_DIR}"; \
|
||||
cp -r ${USR_LIB_GNU_DIR}/${lib}* /tmp/usr-lib-gnu/; \
|
||||
fi \
|
||||
done
|
||||
|
||||
###
|
||||
### Fix expected PostgreSQL directories
|
||||
###
|
||||
### This might not exist on arm64 as software was not available,
|
||||
### but they are still needed to be present, so we can copy them.
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if [ ! -d "/usr/lib/postgresql" ]; then \
|
||||
mkdir "/usr/lib/postgresql"; \
|
||||
fi \
|
||||
&& if [ ! -d "/usr/share/postgresql-common" ]; then \
|
||||
mkdir "/usr/share/postgresql-common"; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Prepare MongoDB binaries for copying.
|
||||
###
|
||||
### They might not be available on all architectures (e.g.: arm64).
|
||||
###
|
||||
RUN set -eux \
|
||||
&& mkdir /tmp/mongo \
|
||||
&& if ls -1 "/usr/bin/" | grep "^mongo" >/dev/null; then \
|
||||
cp -r /usr/bin/mongo* /tmp/mongo/; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Strip debugging information to smallen filesize
|
||||
###
|
||||
RUN set -eux \
|
||||
&& STRIP_USR_BINS="blackfire mongo mysql redis sqlite" \
|
||||
&& STRIP_DIRS="/usr/lib/postgresql/ /usr/share/postgresql-common/ /tmp" \
|
||||
\
|
||||
&& for bin in ${STRIP_USR_BINS}; do \
|
||||
( \
|
||||
find /usr/bin/ -name "${bin}"* -type f -print0 \
|
||||
| xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) sh -c \
|
||||
'if [ -f "${1}" ]; then echo "Strip: ${1}"; strip --strip-all -p "${1}" 2>/dev/null || true; fi' -- \
|
||||
) \
|
||||
done \
|
||||
\
|
||||
&& for dir in ${STRIP_DIRS}; do \
|
||||
( \
|
||||
find ${dir} -type f -print0 \
|
||||
| xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) sh -c \
|
||||
'if [ -f "${1}" ]; then echo "Strip: ${1}"; strip --strip-all -p "${1}" 2>/dev/null || true; fi' -- \
|
||||
) \
|
||||
done \
|
||||
\
|
||||
&& strip --strip-all -p /usr/local/bin/mhsendmail 2>/dev/null || true \
|
||||
&& strip --strip-all -p /usr/local/bin/mysqldump-secure 2>/dev/null || true
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 2/4: Devilbox slim image (BASE)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Copies all cli tools required to run Devilbox and its intranet into a clean image
|
||||
###
|
||||
FROM devilbox/php-fpm:5.5-prod as devilbox-slim-base
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Install tools type: apt
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
# ---------- type: apt ----------
|
||||
dnsutils \
|
||||
iputils-ping \
|
||||
netcat-openbsd \
|
||||
sudo \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
###
|
||||
### Copy shared libraries (required by MongoDB, MySQL, PostgreSQL and Redis)
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/
|
||||
COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/
|
||||
COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/
|
||||
|
||||
###
|
||||
### Copy system files
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /etc/group /etc/group
|
||||
COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd
|
||||
COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow
|
||||
|
||||
###
|
||||
### Copy Blackfire
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire
|
||||
COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/
|
||||
COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire
|
||||
|
||||
###
|
||||
### Copy mhsendmail
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/
|
||||
|
||||
###
|
||||
### Copy MongoDB client (if exists)
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /tmp/mongo/ /usr/bin/
|
||||
|
||||
###
|
||||
### Copy MysQL Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/
|
||||
|
||||
###
|
||||
### Copy mysqldump-secure
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/local/bin/mysqldump-secure /usr/local/bin/
|
||||
COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.conf /etc/
|
||||
COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.cnf /etc/
|
||||
COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/
|
||||
|
||||
###
|
||||
### Copy PostgreSQL
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql
|
||||
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
|
||||
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
|
||||
|
||||
###
|
||||
### Create PostgreSQL symlinks
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if [ -f "/usr/share/postgresql-common/pg_wrapper" ]; then \
|
||||
ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Copy Redis Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/
|
||||
|
||||
|
||||
###
|
||||
### Copy SQLite Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/
|
||||
|
||||
###
|
||||
### ADD PHP configuration files
|
||||
###
|
||||
COPY ./data/php-ini.d/php-5.5.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
|
||||
COPY ./data/php-fpm.conf/php-fpm-5.5.conf /usr/local/etc/php-fpm.conf
|
||||
|
||||
###
|
||||
### ADD Devilbox configuration files
|
||||
###
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
|
||||
COPY ./data/bash-devilbox /etc/bash-devilbox
|
||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||
|
||||
###
|
||||
### Configure Bash
|
||||
###
|
||||
RUN set -eux \
|
||||
&& { \
|
||||
echo; \
|
||||
echo "# [Devilbox] Ensure /usr/local(s)?bin is in PATH"; \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo "export PATH"; \
|
||||
echo; \
|
||||
echo "# [Devilbox] Source Devilbox main bash config"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo; \
|
||||
echo "# [Devilbox] Source Devilbox custom configs"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
echo " for f in /etc/bashrc-devilbox.d/*.sh ; do"; \
|
||||
echo " if [ -r \"\${f}\" ]; then"; \
|
||||
echo " . \"\${f}\""; \
|
||||
echo " fi"; \
|
||||
echo " done"; \
|
||||
echo " unset f"; \
|
||||
echo "fi"; \
|
||||
} | tee -a /home/${MY_USER}/.bashrc /root/.bashrc \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/.bashrc
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 3/4: Devilbox slim image (BASE TEST)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Test all Devilbox cli utils if copying was successful
|
||||
###
|
||||
FROM devilbox-slim-base as devilbox-slim-base-test
|
||||
RUN set -eux \
|
||||
&& mysql --version \
|
||||
&& redis-cli --version \
|
||||
&& sqlite3 --version
|
||||
|
||||
###
|
||||
### Check if available tools slim
|
||||
###
|
||||
|
||||
# -------------------- dig --------------------
|
||||
RUN set -eux \
|
||||
&& dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \
|
||||
&& true
|
||||
|
||||
# -------------------- netcat --------------------
|
||||
RUN set -eux \
|
||||
&& nc -h 2>&1 | grep netcat \
|
||||
&& true
|
||||
|
||||
# -------------------- ping --------------------
|
||||
RUN set -eux \
|
||||
&& ping -V | grep ^ping \
|
||||
&& true
|
||||
|
||||
# -------------------- sudo --------------------
|
||||
RUN set -eux \
|
||||
&& sudo --version | grep -E 'version [0-9]+\.[0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- blackfire --------------------
|
||||
RUN set -eux \
|
||||
&& blackfire version \
|
||||
&& blackfire-agent -v \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mhsendmail --------------------
|
||||
RUN set -eux \
|
||||
&& mhsendmail -h 2>&1 | grep 'Usage' \
|
||||
&& true
|
||||
|
||||
# -------------------- mongo_client --------------------
|
||||
RUN set -eux \
|
||||
&& if echo '5.5' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '5.5' | grep -E '^(5.2|5.3|5.4|5.5)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongo --version; \
|
||||
fi \
|
||||
else \
|
||||
mongo --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
RUN set -eux \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- pgsql_client --------------------
|
||||
RUN set -eux \
|
||||
&& if echo '5.5' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
###
|
||||
### Re-activate modules which have been deactivated in mods (for testing).
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if find /usr/local/lib/php/extensions/ -name phalcon.so | grep phalcon; then \
|
||||
echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if find /usr/local/lib/php/extensions/ -name psr.so | grep psr; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Check if PHP still works
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.5' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
\
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
\
|
||||
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 4/4: Devilbox slim image (FINAL)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Prepare final base image (STAGE: slim)
|
||||
###
|
||||
FROM devilbox-slim-base as slim
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="5.5-slim"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 5.5-slim"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 5.5-slim"
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /shared/backups
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
###
|
||||
### Where to start inside the container
|
||||
###
|
||||
WORKDIR /shared/httpd
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
626
Dockerfiles/slim/Dockerfile-5.6
Normal file
626
Dockerfiles/slim/Dockerfile-5.6
Normal file
@@ -0,0 +1,626 @@
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-slim.j2 instead.
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 1/4: Devilbox slim image (BASE BUILDER)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Installs all cli tools required to run Devilbox and its intranet
|
||||
###
|
||||
FROM devilbox/php-fpm:5.6-prod as devilbox-slim-base-builder
|
||||
|
||||
###
|
||||
### Install apt Tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
dirmngr \
|
||||
gnupg
|
||||
|
||||
###
|
||||
### Add apt repositories
|
||||
###
|
||||
RUN set -eux \
|
||||
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138 \
|
||||
&& echo "deb http://ftp.debian.org/debian stretch-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
|
||||
&& true
|
||||
|
||||
###
|
||||
### Install build_dep
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
libsnappy-dev \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
###
|
||||
### Add common tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
file \
|
||||
git \
|
||||
mysql-client \
|
||||
redis-tools \
|
||||
sqlite3
|
||||
|
||||
###
|
||||
### Install tools type: apt
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
# ---------- type: apt ----------
|
||||
dnsutils \
|
||||
iputils-ping \
|
||||
netcat-openbsd \
|
||||
sudo \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
###
|
||||
### Devilbox required cli tools from group_vars (slim.yml)
|
||||
###
|
||||
|
||||
# -------------------- dig --------------------
|
||||
RUN set -eux \
|
||||
&& dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \
|
||||
&& true
|
||||
|
||||
# -------------------- netcat --------------------
|
||||
RUN set -eux \
|
||||
&& nc -h 2>&1 | grep netcat \
|
||||
&& true
|
||||
|
||||
# -------------------- ping --------------------
|
||||
RUN set -eux \
|
||||
&& ping -V | grep ^ping \
|
||||
&& true
|
||||
|
||||
# -------------------- sudo --------------------
|
||||
RUN set -eux \
|
||||
&& sudo --version | grep -E 'version [0-9]+\.[0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- blackfire --------------------
|
||||
RUN set -eux \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
blackfire-agent \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& blackfire version \
|
||||
&& blackfire-agent -v \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mhsendmail --------------------
|
||||
RUN set -eux \
|
||||
&& DEB_HOST_ARCH="$( dpkg-architecture --query DEB_HOST_ARCH )" \
|
||||
&& if [ "${DEB_HOST_ARCH}" = "amd64" ] || [ "${DEB_HOST_ARCH}" = "arm64" ]; then \
|
||||
MHSENDMAIL_URL="https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_${DEB_HOST_ARCH}" \
|
||||
&& curl -sS -L --fail "${MHSENDMAIL_URL}" > /usr/local/bin/mhsendmail \
|
||||
&& chmod +x /usr/local/bin/mhsendmail; \
|
||||
else \
|
||||
printf '%s\n%s\n%s\n' '#!/bin/sh' 'echo "Not available for this platform."' 'exit 1' > /usr/local/bin/mhsendmail \
|
||||
&& chmod +x /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
&& mhsendmail -h 2>&1 | grep 'Usage' \
|
||||
&& true
|
||||
|
||||
# -------------------- mongo_client --------------------
|
||||
RUN set -eux \
|
||||
&& apt-get update \
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients \
|
||||
mongo-tools; \
|
||||
else \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients; \
|
||||
fi \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& if echo '5.6' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '5.6' | grep -E '^(5.2|5.3|5.4|5.5)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongo --version; \
|
||||
fi \
|
||||
else \
|
||||
mongo --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
RUN set -eux \
|
||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||
&& cd /usr/local/src/mysqldump-secure \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
&& cp /usr/local/src/mysqldump-secure/bin/mysqldump-secure /usr/local/bin \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.conf /etc \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.cnf /etc \
|
||||
&& touch /var/log/mysqldump-secure.log \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /etc/mysqldump-secure.* \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /var/log/mysqldump-secure.log \
|
||||
&& chmod 0400 /etc/mysqldump-secure.conf \
|
||||
&& chmod 0400 /etc/mysqldump-secure.cnf \
|
||||
&& chmod 0644 /var/log/mysqldump-secure.log \
|
||||
&& sed -i'' 's/^COMPRESS_ARG=.*/COMPRESS_ARG="-9 -c"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR=.*/DUMP_DIR="\/shared\/backups\/mysql"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR_CHMOD=.*/DUMP_DIR_CHMOD="0755"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_FILE_CHMOD=.*/DUMP_FILE_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^LOG_CHMOD=.*/LOG_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^NAGIOS_LOG=.*/NAGIOS_LOG=0/g' /etc/mysqldump-secure.conf \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||
\
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- pgsql_client --------------------
|
||||
RUN set -eux \
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb https://apt-archive.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update; \
|
||||
fi \
|
||||
\
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client; \
|
||||
fi \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& if echo '5.6' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
###
|
||||
### Prepare required shared libraries for copying (keep symlinks)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
||||
&& USR_LIB_DIR="/usr/lib" \
|
||||
&& USR_LIB_GNU_DIR="/usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
||||
\
|
||||
&& mkdir /tmp/lib-gnu \
|
||||
&& mkdir /tmp/usr-lib \
|
||||
&& mkdir /tmp/usr-lib-gnu \
|
||||
\
|
||||
&& LIB_GNU="libreadline" \
|
||||
&& USR_LIB="libsnappy libtcmalloc libv8" \
|
||||
&& USR_LIB_GNU="liblua libpq libpcrecpp libboost libjemalloc libunwind libhiredis libedit libyaml-cpp libstemmer libsnappy libpcap libbsd liblzf" \
|
||||
\
|
||||
&& for lib in ${LIB_GNU}; do \
|
||||
if ls -1 "${LIB_GNU_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${LIB_GNU_DIR}"; \
|
||||
cp -r ${LIB_GNU_DIR}/${lib}* /tmp/lib-gnu/; \
|
||||
fi \
|
||||
done \
|
||||
&& for lib in ${USR_LIB}; do \
|
||||
if ls -1 "${USR_LIB_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${USR_LIB_DIR}"; \
|
||||
cp -r ${USR_LIB_DIR}/${lib}* /tmp/usr-lib/; \
|
||||
fi \
|
||||
done \
|
||||
&& for lib in ${USR_LIB_GNU}; do \
|
||||
if ls -1 "${USR_LIB_GNU_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${USR_LIB_GNU_DIR}"; \
|
||||
cp -r ${USR_LIB_GNU_DIR}/${lib}* /tmp/usr-lib-gnu/; \
|
||||
fi \
|
||||
done
|
||||
|
||||
###
|
||||
### Fix expected PostgreSQL directories
|
||||
###
|
||||
### This might not exist on arm64 as software was not available,
|
||||
### but they are still needed to be present, so we can copy them.
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if [ ! -d "/usr/lib/postgresql" ]; then \
|
||||
mkdir "/usr/lib/postgresql"; \
|
||||
fi \
|
||||
&& if [ ! -d "/usr/share/postgresql-common" ]; then \
|
||||
mkdir "/usr/share/postgresql-common"; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Prepare MongoDB binaries for copying.
|
||||
###
|
||||
### They might not be available on all architectures (e.g.: arm64).
|
||||
###
|
||||
RUN set -eux \
|
||||
&& mkdir /tmp/mongo \
|
||||
&& if ls -1 "/usr/bin/" | grep "^mongo" >/dev/null; then \
|
||||
cp -r /usr/bin/mongo* /tmp/mongo/; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Strip debugging information to smallen filesize
|
||||
###
|
||||
RUN set -eux \
|
||||
&& STRIP_USR_BINS="blackfire mongo mysql redis sqlite" \
|
||||
&& STRIP_DIRS="/usr/lib/postgresql/ /usr/share/postgresql-common/ /tmp" \
|
||||
\
|
||||
&& for bin in ${STRIP_USR_BINS}; do \
|
||||
( \
|
||||
find /usr/bin/ -name "${bin}"* -type f -print0 \
|
||||
| xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) sh -c \
|
||||
'if [ -f "${1}" ]; then echo "Strip: ${1}"; strip --strip-all -p "${1}" 2>/dev/null || true; fi' -- \
|
||||
) \
|
||||
done \
|
||||
\
|
||||
&& for dir in ${STRIP_DIRS}; do \
|
||||
( \
|
||||
find ${dir} -type f -print0 \
|
||||
| xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) sh -c \
|
||||
'if [ -f "${1}" ]; then echo "Strip: ${1}"; strip --strip-all -p "${1}" 2>/dev/null || true; fi' -- \
|
||||
) \
|
||||
done \
|
||||
\
|
||||
&& strip --strip-all -p /usr/local/bin/mhsendmail 2>/dev/null || true \
|
||||
&& strip --strip-all -p /usr/local/bin/mysqldump-secure 2>/dev/null || true
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 2/4: Devilbox slim image (BASE)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Copies all cli tools required to run Devilbox and its intranet into a clean image
|
||||
###
|
||||
FROM devilbox/php-fpm:5.6-prod as devilbox-slim-base
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Install tools type: apt
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
# ---------- type: apt ----------
|
||||
dnsutils \
|
||||
iputils-ping \
|
||||
netcat-openbsd \
|
||||
sudo \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
###
|
||||
### Copy shared libraries (required by MongoDB, MySQL, PostgreSQL and Redis)
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/
|
||||
COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/
|
||||
COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/
|
||||
|
||||
###
|
||||
### Copy system files
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /etc/group /etc/group
|
||||
COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd
|
||||
COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow
|
||||
|
||||
###
|
||||
### Copy Blackfire
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire
|
||||
COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/
|
||||
COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire
|
||||
|
||||
###
|
||||
### Copy mhsendmail
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/
|
||||
|
||||
###
|
||||
### Copy MongoDB client (if exists)
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /tmp/mongo/ /usr/bin/
|
||||
|
||||
###
|
||||
### Copy MysQL Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/
|
||||
|
||||
###
|
||||
### Copy mysqldump-secure
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/local/bin/mysqldump-secure /usr/local/bin/
|
||||
COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.conf /etc/
|
||||
COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.cnf /etc/
|
||||
COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/
|
||||
|
||||
###
|
||||
### Copy PostgreSQL
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql
|
||||
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
|
||||
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
|
||||
|
||||
###
|
||||
### Create PostgreSQL symlinks
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if [ -f "/usr/share/postgresql-common/pg_wrapper" ]; then \
|
||||
ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Copy Redis Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/
|
||||
|
||||
|
||||
###
|
||||
### Copy SQLite Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/
|
||||
|
||||
###
|
||||
### ADD PHP configuration files
|
||||
###
|
||||
COPY ./data/php-ini.d/php-5.6.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
|
||||
COPY ./data/php-fpm.conf/php-fpm-5.6.conf /usr/local/etc/php-fpm.conf
|
||||
|
||||
###
|
||||
### ADD Devilbox configuration files
|
||||
###
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
|
||||
COPY ./data/bash-devilbox /etc/bash-devilbox
|
||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||
|
||||
###
|
||||
### Configure Bash
|
||||
###
|
||||
RUN set -eux \
|
||||
&& { \
|
||||
echo; \
|
||||
echo "# [Devilbox] Ensure /usr/local(s)?bin is in PATH"; \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo "export PATH"; \
|
||||
echo; \
|
||||
echo "# [Devilbox] Source Devilbox main bash config"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo; \
|
||||
echo "# [Devilbox] Source Devilbox custom configs"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
echo " for f in /etc/bashrc-devilbox.d/*.sh ; do"; \
|
||||
echo " if [ -r \"\${f}\" ]; then"; \
|
||||
echo " . \"\${f}\""; \
|
||||
echo " fi"; \
|
||||
echo " done"; \
|
||||
echo " unset f"; \
|
||||
echo "fi"; \
|
||||
} | tee -a /home/${MY_USER}/.bashrc /root/.bashrc \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/.bashrc
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 3/4: Devilbox slim image (BASE TEST)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Test all Devilbox cli utils if copying was successful
|
||||
###
|
||||
FROM devilbox-slim-base as devilbox-slim-base-test
|
||||
RUN set -eux \
|
||||
&& mysql --version \
|
||||
&& redis-cli --version \
|
||||
&& sqlite3 --version
|
||||
|
||||
###
|
||||
### Check if available tools slim
|
||||
###
|
||||
|
||||
# -------------------- dig --------------------
|
||||
RUN set -eux \
|
||||
&& dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \
|
||||
&& true
|
||||
|
||||
# -------------------- netcat --------------------
|
||||
RUN set -eux \
|
||||
&& nc -h 2>&1 | grep netcat \
|
||||
&& true
|
||||
|
||||
# -------------------- ping --------------------
|
||||
RUN set -eux \
|
||||
&& ping -V | grep ^ping \
|
||||
&& true
|
||||
|
||||
# -------------------- sudo --------------------
|
||||
RUN set -eux \
|
||||
&& sudo --version | grep -E 'version [0-9]+\.[0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- blackfire --------------------
|
||||
RUN set -eux \
|
||||
&& blackfire version \
|
||||
&& blackfire-agent -v \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mhsendmail --------------------
|
||||
RUN set -eux \
|
||||
&& mhsendmail -h 2>&1 | grep 'Usage' \
|
||||
&& true
|
||||
|
||||
# -------------------- mongo_client --------------------
|
||||
RUN set -eux \
|
||||
&& if echo '5.6' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '5.6' | grep -E '^(5.2|5.3|5.4|5.5)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongo --version; \
|
||||
fi \
|
||||
else \
|
||||
mongo --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
RUN set -eux \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- pgsql_client --------------------
|
||||
RUN set -eux \
|
||||
&& if echo '5.6' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
###
|
||||
### Re-activate modules which have been deactivated in mods (for testing).
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if find /usr/local/lib/php/extensions/ -name phalcon.so | grep phalcon; then \
|
||||
echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if find /usr/local/lib/php/extensions/ -name psr.so | grep psr; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Check if PHP still works
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.6' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
\
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
\
|
||||
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 4/4: Devilbox slim image (FINAL)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Prepare final base image (STAGE: slim)
|
||||
###
|
||||
FROM devilbox-slim-base as slim
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="5.6-slim"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 5.6-slim"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 5.6-slim"
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /shared/backups
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
###
|
||||
### Where to start inside the container
|
||||
###
|
||||
WORKDIR /shared/httpd
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
626
Dockerfiles/slim/Dockerfile-7.0
Normal file
626
Dockerfiles/slim/Dockerfile-7.0
Normal file
@@ -0,0 +1,626 @@
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-slim.j2 instead.
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 1/4: Devilbox slim image (BASE BUILDER)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Installs all cli tools required to run Devilbox and its intranet
|
||||
###
|
||||
FROM devilbox/php-fpm:7.0-prod as devilbox-slim-base-builder
|
||||
|
||||
###
|
||||
### Install apt Tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
dirmngr \
|
||||
gnupg
|
||||
|
||||
###
|
||||
### Add apt repositories
|
||||
###
|
||||
RUN set -eux \
|
||||
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138 \
|
||||
&& echo "deb http://ftp.debian.org/debian stretch-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
|
||||
&& true
|
||||
|
||||
###
|
||||
### Install build_dep
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
libsnappy-dev \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
###
|
||||
### Add common tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
file \
|
||||
git \
|
||||
mysql-client \
|
||||
redis-tools \
|
||||
sqlite3
|
||||
|
||||
###
|
||||
### Install tools type: apt
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
# ---------- type: apt ----------
|
||||
dnsutils \
|
||||
iputils-ping \
|
||||
netcat-openbsd \
|
||||
sudo \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
###
|
||||
### Devilbox required cli tools from group_vars (slim.yml)
|
||||
###
|
||||
|
||||
# -------------------- dig --------------------
|
||||
RUN set -eux \
|
||||
&& dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \
|
||||
&& true
|
||||
|
||||
# -------------------- netcat --------------------
|
||||
RUN set -eux \
|
||||
&& nc -h 2>&1 | grep netcat \
|
||||
&& true
|
||||
|
||||
# -------------------- ping --------------------
|
||||
RUN set -eux \
|
||||
&& ping -V | grep ^ping \
|
||||
&& true
|
||||
|
||||
# -------------------- sudo --------------------
|
||||
RUN set -eux \
|
||||
&& sudo --version | grep -E 'version [0-9]+\.[0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- blackfire --------------------
|
||||
RUN set -eux \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
blackfire-agent \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& blackfire version \
|
||||
&& blackfire-agent -v \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mhsendmail --------------------
|
||||
RUN set -eux \
|
||||
&& DEB_HOST_ARCH="$( dpkg-architecture --query DEB_HOST_ARCH )" \
|
||||
&& if [ "${DEB_HOST_ARCH}" = "amd64" ] || [ "${DEB_HOST_ARCH}" = "arm64" ]; then \
|
||||
MHSENDMAIL_URL="https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_${DEB_HOST_ARCH}" \
|
||||
&& curl -sS -L --fail "${MHSENDMAIL_URL}" > /usr/local/bin/mhsendmail \
|
||||
&& chmod +x /usr/local/bin/mhsendmail; \
|
||||
else \
|
||||
printf '%s\n%s\n%s\n' '#!/bin/sh' 'echo "Not available for this platform."' 'exit 1' > /usr/local/bin/mhsendmail \
|
||||
&& chmod +x /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
&& mhsendmail -h 2>&1 | grep 'Usage' \
|
||||
&& true
|
||||
|
||||
# -------------------- mongo_client --------------------
|
||||
RUN set -eux \
|
||||
&& apt-get update \
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients \
|
||||
mongo-tools; \
|
||||
else \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients; \
|
||||
fi \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& if echo '7.0' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '7.0' | grep -E '^(5.2|5.3|5.4|5.5)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongo --version; \
|
||||
fi \
|
||||
else \
|
||||
mongo --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
RUN set -eux \
|
||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||
&& cd /usr/local/src/mysqldump-secure \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
&& cp /usr/local/src/mysqldump-secure/bin/mysqldump-secure /usr/local/bin \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.conf /etc \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.cnf /etc \
|
||||
&& touch /var/log/mysqldump-secure.log \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /etc/mysqldump-secure.* \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /var/log/mysqldump-secure.log \
|
||||
&& chmod 0400 /etc/mysqldump-secure.conf \
|
||||
&& chmod 0400 /etc/mysqldump-secure.cnf \
|
||||
&& chmod 0644 /var/log/mysqldump-secure.log \
|
||||
&& sed -i'' 's/^COMPRESS_ARG=.*/COMPRESS_ARG="-9 -c"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR=.*/DUMP_DIR="\/shared\/backups\/mysql"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR_CHMOD=.*/DUMP_DIR_CHMOD="0755"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_FILE_CHMOD=.*/DUMP_FILE_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^LOG_CHMOD=.*/LOG_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^NAGIOS_LOG=.*/NAGIOS_LOG=0/g' /etc/mysqldump-secure.conf \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||
\
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- pgsql_client --------------------
|
||||
RUN set -eux \
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb https://apt-archive.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update; \
|
||||
fi \
|
||||
\
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client; \
|
||||
fi \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& if echo '7.0' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
###
|
||||
### Prepare required shared libraries for copying (keep symlinks)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
||||
&& USR_LIB_DIR="/usr/lib" \
|
||||
&& USR_LIB_GNU_DIR="/usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
||||
\
|
||||
&& mkdir /tmp/lib-gnu \
|
||||
&& mkdir /tmp/usr-lib \
|
||||
&& mkdir /tmp/usr-lib-gnu \
|
||||
\
|
||||
&& LIB_GNU="libreadline" \
|
||||
&& USR_LIB="libsnappy libtcmalloc libv8" \
|
||||
&& USR_LIB_GNU="liblua libpq libpcrecpp libboost libjemalloc libunwind libhiredis libedit libyaml-cpp libstemmer libsnappy libpcap libbsd liblzf" \
|
||||
\
|
||||
&& for lib in ${LIB_GNU}; do \
|
||||
if ls -1 "${LIB_GNU_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${LIB_GNU_DIR}"; \
|
||||
cp -r ${LIB_GNU_DIR}/${lib}* /tmp/lib-gnu/; \
|
||||
fi \
|
||||
done \
|
||||
&& for lib in ${USR_LIB}; do \
|
||||
if ls -1 "${USR_LIB_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${USR_LIB_DIR}"; \
|
||||
cp -r ${USR_LIB_DIR}/${lib}* /tmp/usr-lib/; \
|
||||
fi \
|
||||
done \
|
||||
&& for lib in ${USR_LIB_GNU}; do \
|
||||
if ls -1 "${USR_LIB_GNU_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${USR_LIB_GNU_DIR}"; \
|
||||
cp -r ${USR_LIB_GNU_DIR}/${lib}* /tmp/usr-lib-gnu/; \
|
||||
fi \
|
||||
done
|
||||
|
||||
###
|
||||
### Fix expected PostgreSQL directories
|
||||
###
|
||||
### This might not exist on arm64 as software was not available,
|
||||
### but they are still needed to be present, so we can copy them.
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if [ ! -d "/usr/lib/postgresql" ]; then \
|
||||
mkdir "/usr/lib/postgresql"; \
|
||||
fi \
|
||||
&& if [ ! -d "/usr/share/postgresql-common" ]; then \
|
||||
mkdir "/usr/share/postgresql-common"; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Prepare MongoDB binaries for copying.
|
||||
###
|
||||
### They might not be available on all architectures (e.g.: arm64).
|
||||
###
|
||||
RUN set -eux \
|
||||
&& mkdir /tmp/mongo \
|
||||
&& if ls -1 "/usr/bin/" | grep "^mongo" >/dev/null; then \
|
||||
cp -r /usr/bin/mongo* /tmp/mongo/; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Strip debugging information to smallen filesize
|
||||
###
|
||||
RUN set -eux \
|
||||
&& STRIP_USR_BINS="blackfire mongo mysql redis sqlite" \
|
||||
&& STRIP_DIRS="/usr/lib/postgresql/ /usr/share/postgresql-common/ /tmp" \
|
||||
\
|
||||
&& for bin in ${STRIP_USR_BINS}; do \
|
||||
( \
|
||||
find /usr/bin/ -name "${bin}"* -type f -print0 \
|
||||
| xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) sh -c \
|
||||
'if [ -f "${1}" ]; then echo "Strip: ${1}"; strip --strip-all -p "${1}" 2>/dev/null || true; fi' -- \
|
||||
) \
|
||||
done \
|
||||
\
|
||||
&& for dir in ${STRIP_DIRS}; do \
|
||||
( \
|
||||
find ${dir} -type f -print0 \
|
||||
| xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) sh -c \
|
||||
'if [ -f "${1}" ]; then echo "Strip: ${1}"; strip --strip-all -p "${1}" 2>/dev/null || true; fi' -- \
|
||||
) \
|
||||
done \
|
||||
\
|
||||
&& strip --strip-all -p /usr/local/bin/mhsendmail 2>/dev/null || true \
|
||||
&& strip --strip-all -p /usr/local/bin/mysqldump-secure 2>/dev/null || true
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 2/4: Devilbox slim image (BASE)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Copies all cli tools required to run Devilbox and its intranet into a clean image
|
||||
###
|
||||
FROM devilbox/php-fpm:7.0-prod as devilbox-slim-base
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Install tools type: apt
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
# ---------- type: apt ----------
|
||||
dnsutils \
|
||||
iputils-ping \
|
||||
netcat-openbsd \
|
||||
sudo \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
###
|
||||
### Copy shared libraries (required by MongoDB, MySQL, PostgreSQL and Redis)
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/
|
||||
COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/
|
||||
COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/
|
||||
|
||||
###
|
||||
### Copy system files
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /etc/group /etc/group
|
||||
COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd
|
||||
COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow
|
||||
|
||||
###
|
||||
### Copy Blackfire
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire
|
||||
COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/
|
||||
COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire
|
||||
|
||||
###
|
||||
### Copy mhsendmail
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/
|
||||
|
||||
###
|
||||
### Copy MongoDB client (if exists)
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /tmp/mongo/ /usr/bin/
|
||||
|
||||
###
|
||||
### Copy MysQL Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/
|
||||
|
||||
###
|
||||
### Copy mysqldump-secure
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/local/bin/mysqldump-secure /usr/local/bin/
|
||||
COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.conf /etc/
|
||||
COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.cnf /etc/
|
||||
COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/
|
||||
|
||||
###
|
||||
### Copy PostgreSQL
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql
|
||||
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
|
||||
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
|
||||
|
||||
###
|
||||
### Create PostgreSQL symlinks
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if [ -f "/usr/share/postgresql-common/pg_wrapper" ]; then \
|
||||
ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Copy Redis Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/
|
||||
|
||||
|
||||
###
|
||||
### Copy SQLite Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/
|
||||
|
||||
###
|
||||
### ADD PHP configuration files
|
||||
###
|
||||
COPY ./data/php-ini.d/php-7.0.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
|
||||
COPY ./data/php-fpm.conf/php-fpm-7.0.conf /usr/local/etc/php-fpm.conf
|
||||
|
||||
###
|
||||
### ADD Devilbox configuration files
|
||||
###
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
|
||||
COPY ./data/bash-devilbox /etc/bash-devilbox
|
||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||
|
||||
###
|
||||
### Configure Bash
|
||||
###
|
||||
RUN set -eux \
|
||||
&& { \
|
||||
echo; \
|
||||
echo "# [Devilbox] Ensure /usr/local(s)?bin is in PATH"; \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo "export PATH"; \
|
||||
echo; \
|
||||
echo "# [Devilbox] Source Devilbox main bash config"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo; \
|
||||
echo "# [Devilbox] Source Devilbox custom configs"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
echo " for f in /etc/bashrc-devilbox.d/*.sh ; do"; \
|
||||
echo " if [ -r \"\${f}\" ]; then"; \
|
||||
echo " . \"\${f}\""; \
|
||||
echo " fi"; \
|
||||
echo " done"; \
|
||||
echo " unset f"; \
|
||||
echo "fi"; \
|
||||
} | tee -a /home/${MY_USER}/.bashrc /root/.bashrc \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/.bashrc
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 3/4: Devilbox slim image (BASE TEST)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Test all Devilbox cli utils if copying was successful
|
||||
###
|
||||
FROM devilbox-slim-base as devilbox-slim-base-test
|
||||
RUN set -eux \
|
||||
&& mysql --version \
|
||||
&& redis-cli --version \
|
||||
&& sqlite3 --version
|
||||
|
||||
###
|
||||
### Check if available tools slim
|
||||
###
|
||||
|
||||
# -------------------- dig --------------------
|
||||
RUN set -eux \
|
||||
&& dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \
|
||||
&& true
|
||||
|
||||
# -------------------- netcat --------------------
|
||||
RUN set -eux \
|
||||
&& nc -h 2>&1 | grep netcat \
|
||||
&& true
|
||||
|
||||
# -------------------- ping --------------------
|
||||
RUN set -eux \
|
||||
&& ping -V | grep ^ping \
|
||||
&& true
|
||||
|
||||
# -------------------- sudo --------------------
|
||||
RUN set -eux \
|
||||
&& sudo --version | grep -E 'version [0-9]+\.[0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- blackfire --------------------
|
||||
RUN set -eux \
|
||||
&& blackfire version \
|
||||
&& blackfire-agent -v \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mhsendmail --------------------
|
||||
RUN set -eux \
|
||||
&& mhsendmail -h 2>&1 | grep 'Usage' \
|
||||
&& true
|
||||
|
||||
# -------------------- mongo_client --------------------
|
||||
RUN set -eux \
|
||||
&& if echo '7.0' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '7.0' | grep -E '^(5.2|5.3|5.4|5.5)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongo --version; \
|
||||
fi \
|
||||
else \
|
||||
mongo --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
RUN set -eux \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- pgsql_client --------------------
|
||||
RUN set -eux \
|
||||
&& if echo '7.0' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
###
|
||||
### Re-activate modules which have been deactivated in mods (for testing).
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if find /usr/local/lib/php/extensions/ -name phalcon.so | grep phalcon; then \
|
||||
echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if find /usr/local/lib/php/extensions/ -name psr.so | grep psr; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Check if PHP still works
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.0' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
\
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
\
|
||||
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 4/4: Devilbox slim image (FINAL)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Prepare final base image (STAGE: slim)
|
||||
###
|
||||
FROM devilbox-slim-base as slim
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="7.0-slim"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 7.0-slim"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 7.0-slim"
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /shared/backups
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
###
|
||||
### Where to start inside the container
|
||||
###
|
||||
WORKDIR /shared/httpd
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
620
Dockerfiles/slim/Dockerfile-7.1
Normal file
620
Dockerfiles/slim/Dockerfile-7.1
Normal file
@@ -0,0 +1,620 @@
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-slim.j2 instead.
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 1/4: Devilbox slim image (BASE BUILDER)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Installs all cli tools required to run Devilbox and its intranet
|
||||
###
|
||||
FROM devilbox/php-fpm:7.1-prod as devilbox-slim-base-builder
|
||||
|
||||
###
|
||||
### Install apt Tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
dirmngr \
|
||||
gnupg
|
||||
|
||||
###
|
||||
### Add apt repositories
|
||||
###
|
||||
RUN set -eux \
|
||||
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138 \
|
||||
&& echo "deb http://ftp.debian.org/debian buster-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
|
||||
&& true
|
||||
|
||||
###
|
||||
### Install build_dep
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
libsnappy-dev \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
###
|
||||
### Add common tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
file \
|
||||
git \
|
||||
mariadb-client \
|
||||
redis-tools \
|
||||
sqlite3
|
||||
|
||||
###
|
||||
### Install tools type: apt
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
# ---------- type: apt ----------
|
||||
dnsutils \
|
||||
iputils-ping \
|
||||
netcat-openbsd \
|
||||
sudo \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
###
|
||||
### Devilbox required cli tools from group_vars (slim.yml)
|
||||
###
|
||||
|
||||
# -------------------- dig --------------------
|
||||
RUN set -eux \
|
||||
&& dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \
|
||||
&& true
|
||||
|
||||
# -------------------- netcat --------------------
|
||||
RUN set -eux \
|
||||
&& nc -h 2>&1 | grep netcat \
|
||||
&& true
|
||||
|
||||
# -------------------- ping --------------------
|
||||
RUN set -eux \
|
||||
&& ping -V | grep ^ping \
|
||||
&& true
|
||||
|
||||
# -------------------- sudo --------------------
|
||||
RUN set -eux \
|
||||
&& sudo --version | grep -E 'version [0-9]+\.[0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- blackfire --------------------
|
||||
RUN set -eux \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
blackfire-agent \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& blackfire version \
|
||||
&& blackfire-agent -v \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mhsendmail --------------------
|
||||
RUN set -eux \
|
||||
&& DEB_HOST_ARCH="$( dpkg-architecture --query DEB_HOST_ARCH )" \
|
||||
&& if [ "${DEB_HOST_ARCH}" = "amd64" ] || [ "${DEB_HOST_ARCH}" = "arm64" ]; then \
|
||||
MHSENDMAIL_URL="https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_${DEB_HOST_ARCH}" \
|
||||
&& curl -sS -L --fail "${MHSENDMAIL_URL}" > /usr/local/bin/mhsendmail \
|
||||
&& chmod +x /usr/local/bin/mhsendmail; \
|
||||
else \
|
||||
printf '%s\n%s\n%s\n' '#!/bin/sh' 'echo "Not available for this platform."' 'exit 1' > /usr/local/bin/mhsendmail \
|
||||
&& chmod +x /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
&& mhsendmail -h 2>&1 | grep 'Usage' \
|
||||
&& true
|
||||
|
||||
# -------------------- mongo_client --------------------
|
||||
RUN set -eux \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 20691EEC35216C63CAF66CE1656408E390CFB1F5 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-org-tools \
|
||||
mongodb-org-shell \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& if echo '7.1' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '7.1' | grep -E '^(5.2|5.3|5.4|5.5)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongo --version; \
|
||||
fi \
|
||||
else \
|
||||
mongo --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
RUN set -eux \
|
||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||
&& cd /usr/local/src/mysqldump-secure \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
&& cp /usr/local/src/mysqldump-secure/bin/mysqldump-secure /usr/local/bin \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.conf /etc \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.cnf /etc \
|
||||
&& touch /var/log/mysqldump-secure.log \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /etc/mysqldump-secure.* \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /var/log/mysqldump-secure.log \
|
||||
&& chmod 0400 /etc/mysqldump-secure.conf \
|
||||
&& chmod 0400 /etc/mysqldump-secure.cnf \
|
||||
&& chmod 0644 /var/log/mysqldump-secure.log \
|
||||
&& sed -i'' 's/^COMPRESS_ARG=.*/COMPRESS_ARG="-9 -c"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR=.*/DUMP_DIR="\/shared\/backups\/mysql"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR_CHMOD=.*/DUMP_DIR_CHMOD="0755"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_FILE_CHMOD=.*/DUMP_FILE_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^LOG_CHMOD=.*/LOG_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^NAGIOS_LOG=.*/NAGIOS_LOG=0/g' /etc/mysqldump-secure.conf \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||
\
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- pgsql_client --------------------
|
||||
RUN set -eux \
|
||||
&& curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& if echo '7.1' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
###
|
||||
### Prepare required shared libraries for copying (keep symlinks)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
||||
&& USR_LIB_DIR="/usr/lib" \
|
||||
&& USR_LIB_GNU_DIR="/usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
||||
\
|
||||
&& mkdir /tmp/lib-gnu \
|
||||
&& mkdir /tmp/usr-lib \
|
||||
&& mkdir /tmp/usr-lib-gnu \
|
||||
\
|
||||
&& LIB_GNU="libreadline" \
|
||||
&& USR_LIB="libsnappy libtcmalloc libv8" \
|
||||
&& USR_LIB_GNU="liblua libpq libpcrecpp libboost libjemalloc libunwind libhiredis libedit libyaml-cpp libstemmer libsnappy libpcap libbsd liblzf" \
|
||||
\
|
||||
&& for lib in ${LIB_GNU}; do \
|
||||
if ls -1 "${LIB_GNU_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${LIB_GNU_DIR}"; \
|
||||
cp -r ${LIB_GNU_DIR}/${lib}* /tmp/lib-gnu/; \
|
||||
fi \
|
||||
done \
|
||||
&& for lib in ${USR_LIB}; do \
|
||||
if ls -1 "${USR_LIB_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${USR_LIB_DIR}"; \
|
||||
cp -r ${USR_LIB_DIR}/${lib}* /tmp/usr-lib/; \
|
||||
fi \
|
||||
done \
|
||||
&& for lib in ${USR_LIB_GNU}; do \
|
||||
if ls -1 "${USR_LIB_GNU_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${USR_LIB_GNU_DIR}"; \
|
||||
cp -r ${USR_LIB_GNU_DIR}/${lib}* /tmp/usr-lib-gnu/; \
|
||||
fi \
|
||||
done
|
||||
|
||||
###
|
||||
### Fix expected PostgreSQL directories
|
||||
###
|
||||
### This might not exist on arm64 as software was not available,
|
||||
### but they are still needed to be present, so we can copy them.
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if [ ! -d "/usr/lib/postgresql" ]; then \
|
||||
mkdir "/usr/lib/postgresql"; \
|
||||
fi \
|
||||
&& if [ ! -d "/usr/share/postgresql-common" ]; then \
|
||||
mkdir "/usr/share/postgresql-common"; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Prepare MongoDB binaries for copying.
|
||||
###
|
||||
### They might not be available on all architectures (e.g.: arm64).
|
||||
###
|
||||
RUN set -eux \
|
||||
&& mkdir /tmp/mongo \
|
||||
&& if ls -1 "/usr/bin/" | grep "^mongo" >/dev/null; then \
|
||||
cp -r /usr/bin/mongo* /tmp/mongo/; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Strip debugging information to smallen filesize
|
||||
###
|
||||
RUN set -eux \
|
||||
&& STRIP_USR_BINS="blackfire mongo mysql redis sqlite" \
|
||||
&& STRIP_DIRS="/usr/lib/postgresql/ /usr/share/postgresql-common/ /tmp" \
|
||||
\
|
||||
&& for bin in ${STRIP_USR_BINS}; do \
|
||||
( \
|
||||
find /usr/bin/ -name "${bin}"* -type f -print0 \
|
||||
| xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) sh -c \
|
||||
'if [ -f "${1}" ]; then echo "Strip: ${1}"; strip --strip-all -p "${1}" 2>/dev/null || true; fi' -- \
|
||||
) \
|
||||
done \
|
||||
\
|
||||
&& for dir in ${STRIP_DIRS}; do \
|
||||
( \
|
||||
find ${dir} -type f -print0 \
|
||||
| xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) sh -c \
|
||||
'if [ -f "${1}" ]; then echo "Strip: ${1}"; strip --strip-all -p "${1}" 2>/dev/null || true; fi' -- \
|
||||
) \
|
||||
done \
|
||||
\
|
||||
&& strip --strip-all -p /usr/local/bin/mhsendmail 2>/dev/null || true \
|
||||
&& strip --strip-all -p /usr/local/bin/mysqldump-secure 2>/dev/null || true
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 2/4: Devilbox slim image (BASE)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Copies all cli tools required to run Devilbox and its intranet into a clean image
|
||||
###
|
||||
FROM devilbox/php-fpm:7.1-prod as devilbox-slim-base
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Install tools type: apt
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
# ---------- type: apt ----------
|
||||
dnsutils \
|
||||
iputils-ping \
|
||||
netcat-openbsd \
|
||||
sudo \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
###
|
||||
### Copy shared libraries (required by MongoDB, MySQL, PostgreSQL and Redis)
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/
|
||||
COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/
|
||||
COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/
|
||||
|
||||
###
|
||||
### Copy system files
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /etc/group /etc/group
|
||||
COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd
|
||||
COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow
|
||||
|
||||
###
|
||||
### Copy Blackfire
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire
|
||||
COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/
|
||||
COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire
|
||||
|
||||
###
|
||||
### Copy mhsendmail
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/
|
||||
|
||||
###
|
||||
### Copy MongoDB client (if exists)
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /tmp/mongo/ /usr/bin/
|
||||
|
||||
###
|
||||
### Copy MysQL Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/
|
||||
|
||||
###
|
||||
### Copy mysqldump-secure
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/local/bin/mysqldump-secure /usr/local/bin/
|
||||
COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.conf /etc/
|
||||
COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.cnf /etc/
|
||||
COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/
|
||||
|
||||
###
|
||||
### Copy PostgreSQL
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql
|
||||
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
|
||||
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
|
||||
|
||||
###
|
||||
### Create PostgreSQL symlinks
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if [ -f "/usr/share/postgresql-common/pg_wrapper" ]; then \
|
||||
ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Copy Redis Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/
|
||||
|
||||
|
||||
###
|
||||
### Copy SQLite Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/
|
||||
|
||||
###
|
||||
### ADD PHP configuration files
|
||||
###
|
||||
COPY ./data/php-ini.d/php-7.1.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
|
||||
COPY ./data/php-fpm.conf/php-fpm-7.1.conf /usr/local/etc/php-fpm.conf
|
||||
|
||||
###
|
||||
### ADD Devilbox configuration files
|
||||
###
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
|
||||
COPY ./data/bash-devilbox /etc/bash-devilbox
|
||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||
|
||||
###
|
||||
### Configure Bash
|
||||
###
|
||||
RUN set -eux \
|
||||
&& { \
|
||||
echo; \
|
||||
echo "# [Devilbox] Ensure /usr/local(s)?bin is in PATH"; \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo "export PATH"; \
|
||||
echo; \
|
||||
echo "# [Devilbox] Source Devilbox main bash config"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo; \
|
||||
echo "# [Devilbox] Source Devilbox custom configs"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
echo " for f in /etc/bashrc-devilbox.d/*.sh ; do"; \
|
||||
echo " if [ -r \"\${f}\" ]; then"; \
|
||||
echo " . \"\${f}\""; \
|
||||
echo " fi"; \
|
||||
echo " done"; \
|
||||
echo " unset f"; \
|
||||
echo "fi"; \
|
||||
} | tee -a /home/${MY_USER}/.bashrc /root/.bashrc \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/.bashrc
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 3/4: Devilbox slim image (BASE TEST)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Test all Devilbox cli utils if copying was successful
|
||||
###
|
||||
FROM devilbox-slim-base as devilbox-slim-base-test
|
||||
RUN set -eux \
|
||||
&& mysql --version \
|
||||
&& redis-cli --version \
|
||||
&& sqlite3 --version
|
||||
|
||||
###
|
||||
### Check if available tools slim
|
||||
###
|
||||
|
||||
# -------------------- dig --------------------
|
||||
RUN set -eux \
|
||||
&& dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \
|
||||
&& true
|
||||
|
||||
# -------------------- netcat --------------------
|
||||
RUN set -eux \
|
||||
&& nc -h 2>&1 | grep netcat \
|
||||
&& true
|
||||
|
||||
# -------------------- ping --------------------
|
||||
RUN set -eux \
|
||||
&& ping -V | grep ^ping \
|
||||
&& true
|
||||
|
||||
# -------------------- sudo --------------------
|
||||
RUN set -eux \
|
||||
&& sudo --version | grep -E 'version [0-9]+\.[0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- blackfire --------------------
|
||||
RUN set -eux \
|
||||
&& blackfire version \
|
||||
&& blackfire-agent -v \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mhsendmail --------------------
|
||||
RUN set -eux \
|
||||
&& mhsendmail -h 2>&1 | grep 'Usage' \
|
||||
&& true
|
||||
|
||||
# -------------------- mongo_client --------------------
|
||||
RUN set -eux \
|
||||
&& if echo '7.1' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '7.1' | grep -E '^(5.2|5.3|5.4|5.5)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongo --version; \
|
||||
fi \
|
||||
else \
|
||||
mongo --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
RUN set -eux \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- pgsql_client --------------------
|
||||
RUN set -eux \
|
||||
&& if echo '7.1' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
###
|
||||
### Re-activate modules which have been deactivated in mods (for testing).
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if find /usr/local/lib/php/extensions/ -name phalcon.so | grep phalcon; then \
|
||||
echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if find /usr/local/lib/php/extensions/ -name psr.so | grep psr; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Check if PHP still works
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.1' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
\
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
\
|
||||
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 4/4: Devilbox slim image (FINAL)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Prepare final base image (STAGE: slim)
|
||||
###
|
||||
FROM devilbox-slim-base as slim
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="7.1-slim"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 7.1-slim"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 7.1-slim"
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /shared/backups
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
###
|
||||
### Where to start inside the container
|
||||
###
|
||||
WORKDIR /shared/httpd
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
620
Dockerfiles/slim/Dockerfile-7.2
Normal file
620
Dockerfiles/slim/Dockerfile-7.2
Normal file
@@ -0,0 +1,620 @@
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-slim.j2 instead.
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 1/4: Devilbox slim image (BASE BUILDER)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Installs all cli tools required to run Devilbox and its intranet
|
||||
###
|
||||
FROM devilbox/php-fpm:7.2-prod as devilbox-slim-base-builder
|
||||
|
||||
###
|
||||
### Install apt Tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
dirmngr \
|
||||
gnupg
|
||||
|
||||
###
|
||||
### Add apt repositories
|
||||
###
|
||||
RUN set -eux \
|
||||
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138 \
|
||||
&& echo "deb http://ftp.debian.org/debian buster-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
|
||||
&& true
|
||||
|
||||
###
|
||||
### Install build_dep
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
libsnappy-dev \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
###
|
||||
### Add common tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
file \
|
||||
git \
|
||||
mariadb-client \
|
||||
redis-tools \
|
||||
sqlite3
|
||||
|
||||
###
|
||||
### Install tools type: apt
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
# ---------- type: apt ----------
|
||||
dnsutils \
|
||||
iputils-ping \
|
||||
netcat-openbsd \
|
||||
sudo \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
###
|
||||
### Devilbox required cli tools from group_vars (slim.yml)
|
||||
###
|
||||
|
||||
# -------------------- dig --------------------
|
||||
RUN set -eux \
|
||||
&& dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \
|
||||
&& true
|
||||
|
||||
# -------------------- netcat --------------------
|
||||
RUN set -eux \
|
||||
&& nc -h 2>&1 | grep netcat \
|
||||
&& true
|
||||
|
||||
# -------------------- ping --------------------
|
||||
RUN set -eux \
|
||||
&& ping -V | grep ^ping \
|
||||
&& true
|
||||
|
||||
# -------------------- sudo --------------------
|
||||
RUN set -eux \
|
||||
&& sudo --version | grep -E 'version [0-9]+\.[0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- blackfire --------------------
|
||||
RUN set -eux \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
blackfire-agent \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& blackfire version \
|
||||
&& blackfire-agent -v \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mhsendmail --------------------
|
||||
RUN set -eux \
|
||||
&& DEB_HOST_ARCH="$( dpkg-architecture --query DEB_HOST_ARCH )" \
|
||||
&& if [ "${DEB_HOST_ARCH}" = "amd64" ] || [ "${DEB_HOST_ARCH}" = "arm64" ]; then \
|
||||
MHSENDMAIL_URL="https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_${DEB_HOST_ARCH}" \
|
||||
&& curl -sS -L --fail "${MHSENDMAIL_URL}" > /usr/local/bin/mhsendmail \
|
||||
&& chmod +x /usr/local/bin/mhsendmail; \
|
||||
else \
|
||||
printf '%s\n%s\n%s\n' '#!/bin/sh' 'echo "Not available for this platform."' 'exit 1' > /usr/local/bin/mhsendmail \
|
||||
&& chmod +x /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
&& mhsendmail -h 2>&1 | grep 'Usage' \
|
||||
&& true
|
||||
|
||||
# -------------------- mongo_client --------------------
|
||||
RUN set -eux \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 20691EEC35216C63CAF66CE1656408E390CFB1F5 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-org-tools \
|
||||
mongodb-org-shell \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& if echo '7.2' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '7.2' | grep -E '^(5.2|5.3|5.4|5.5)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongo --version; \
|
||||
fi \
|
||||
else \
|
||||
mongo --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
RUN set -eux \
|
||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||
&& cd /usr/local/src/mysqldump-secure \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
&& cp /usr/local/src/mysqldump-secure/bin/mysqldump-secure /usr/local/bin \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.conf /etc \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.cnf /etc \
|
||||
&& touch /var/log/mysqldump-secure.log \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /etc/mysqldump-secure.* \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /var/log/mysqldump-secure.log \
|
||||
&& chmod 0400 /etc/mysqldump-secure.conf \
|
||||
&& chmod 0400 /etc/mysqldump-secure.cnf \
|
||||
&& chmod 0644 /var/log/mysqldump-secure.log \
|
||||
&& sed -i'' 's/^COMPRESS_ARG=.*/COMPRESS_ARG="-9 -c"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR=.*/DUMP_DIR="\/shared\/backups\/mysql"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR_CHMOD=.*/DUMP_DIR_CHMOD="0755"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_FILE_CHMOD=.*/DUMP_FILE_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^LOG_CHMOD=.*/LOG_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^NAGIOS_LOG=.*/NAGIOS_LOG=0/g' /etc/mysqldump-secure.conf \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||
\
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- pgsql_client --------------------
|
||||
RUN set -eux \
|
||||
&& curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& if echo '7.2' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
###
|
||||
### Prepare required shared libraries for copying (keep symlinks)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
||||
&& USR_LIB_DIR="/usr/lib" \
|
||||
&& USR_LIB_GNU_DIR="/usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
||||
\
|
||||
&& mkdir /tmp/lib-gnu \
|
||||
&& mkdir /tmp/usr-lib \
|
||||
&& mkdir /tmp/usr-lib-gnu \
|
||||
\
|
||||
&& LIB_GNU="libreadline" \
|
||||
&& USR_LIB="libsnappy libtcmalloc libv8" \
|
||||
&& USR_LIB_GNU="liblua libpq libpcrecpp libboost libjemalloc libunwind libhiredis libedit libyaml-cpp libstemmer libsnappy libpcap libbsd liblzf" \
|
||||
\
|
||||
&& for lib in ${LIB_GNU}; do \
|
||||
if ls -1 "${LIB_GNU_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${LIB_GNU_DIR}"; \
|
||||
cp -r ${LIB_GNU_DIR}/${lib}* /tmp/lib-gnu/; \
|
||||
fi \
|
||||
done \
|
||||
&& for lib in ${USR_LIB}; do \
|
||||
if ls -1 "${USR_LIB_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${USR_LIB_DIR}"; \
|
||||
cp -r ${USR_LIB_DIR}/${lib}* /tmp/usr-lib/; \
|
||||
fi \
|
||||
done \
|
||||
&& for lib in ${USR_LIB_GNU}; do \
|
||||
if ls -1 "${USR_LIB_GNU_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${USR_LIB_GNU_DIR}"; \
|
||||
cp -r ${USR_LIB_GNU_DIR}/${lib}* /tmp/usr-lib-gnu/; \
|
||||
fi \
|
||||
done
|
||||
|
||||
###
|
||||
### Fix expected PostgreSQL directories
|
||||
###
|
||||
### This might not exist on arm64 as software was not available,
|
||||
### but they are still needed to be present, so we can copy them.
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if [ ! -d "/usr/lib/postgresql" ]; then \
|
||||
mkdir "/usr/lib/postgresql"; \
|
||||
fi \
|
||||
&& if [ ! -d "/usr/share/postgresql-common" ]; then \
|
||||
mkdir "/usr/share/postgresql-common"; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Prepare MongoDB binaries for copying.
|
||||
###
|
||||
### They might not be available on all architectures (e.g.: arm64).
|
||||
###
|
||||
RUN set -eux \
|
||||
&& mkdir /tmp/mongo \
|
||||
&& if ls -1 "/usr/bin/" | grep "^mongo" >/dev/null; then \
|
||||
cp -r /usr/bin/mongo* /tmp/mongo/; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Strip debugging information to smallen filesize
|
||||
###
|
||||
RUN set -eux \
|
||||
&& STRIP_USR_BINS="blackfire mongo mysql redis sqlite" \
|
||||
&& STRIP_DIRS="/usr/lib/postgresql/ /usr/share/postgresql-common/ /tmp" \
|
||||
\
|
||||
&& for bin in ${STRIP_USR_BINS}; do \
|
||||
( \
|
||||
find /usr/bin/ -name "${bin}"* -type f -print0 \
|
||||
| xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) sh -c \
|
||||
'if [ -f "${1}" ]; then echo "Strip: ${1}"; strip --strip-all -p "${1}" 2>/dev/null || true; fi' -- \
|
||||
) \
|
||||
done \
|
||||
\
|
||||
&& for dir in ${STRIP_DIRS}; do \
|
||||
( \
|
||||
find ${dir} -type f -print0 \
|
||||
| xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) sh -c \
|
||||
'if [ -f "${1}" ]; then echo "Strip: ${1}"; strip --strip-all -p "${1}" 2>/dev/null || true; fi' -- \
|
||||
) \
|
||||
done \
|
||||
\
|
||||
&& strip --strip-all -p /usr/local/bin/mhsendmail 2>/dev/null || true \
|
||||
&& strip --strip-all -p /usr/local/bin/mysqldump-secure 2>/dev/null || true
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 2/4: Devilbox slim image (BASE)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Copies all cli tools required to run Devilbox and its intranet into a clean image
|
||||
###
|
||||
FROM devilbox/php-fpm:7.2-prod as devilbox-slim-base
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Install tools type: apt
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
# ---------- type: apt ----------
|
||||
dnsutils \
|
||||
iputils-ping \
|
||||
netcat-openbsd \
|
||||
sudo \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
###
|
||||
### Copy shared libraries (required by MongoDB, MySQL, PostgreSQL and Redis)
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/
|
||||
COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/
|
||||
COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/
|
||||
|
||||
###
|
||||
### Copy system files
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /etc/group /etc/group
|
||||
COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd
|
||||
COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow
|
||||
|
||||
###
|
||||
### Copy Blackfire
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire
|
||||
COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/
|
||||
COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire
|
||||
|
||||
###
|
||||
### Copy mhsendmail
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/
|
||||
|
||||
###
|
||||
### Copy MongoDB client (if exists)
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /tmp/mongo/ /usr/bin/
|
||||
|
||||
###
|
||||
### Copy MysQL Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/
|
||||
|
||||
###
|
||||
### Copy mysqldump-secure
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/local/bin/mysqldump-secure /usr/local/bin/
|
||||
COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.conf /etc/
|
||||
COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.cnf /etc/
|
||||
COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/
|
||||
|
||||
###
|
||||
### Copy PostgreSQL
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql
|
||||
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
|
||||
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
|
||||
|
||||
###
|
||||
### Create PostgreSQL symlinks
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if [ -f "/usr/share/postgresql-common/pg_wrapper" ]; then \
|
||||
ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Copy Redis Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/
|
||||
|
||||
|
||||
###
|
||||
### Copy SQLite Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/
|
||||
|
||||
###
|
||||
### ADD PHP configuration files
|
||||
###
|
||||
COPY ./data/php-ini.d/php-7.2.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
|
||||
COPY ./data/php-fpm.conf/php-fpm-7.2.conf /usr/local/etc/php-fpm.conf
|
||||
|
||||
###
|
||||
### ADD Devilbox configuration files
|
||||
###
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
|
||||
COPY ./data/bash-devilbox /etc/bash-devilbox
|
||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||
|
||||
###
|
||||
### Configure Bash
|
||||
###
|
||||
RUN set -eux \
|
||||
&& { \
|
||||
echo; \
|
||||
echo "# [Devilbox] Ensure /usr/local(s)?bin is in PATH"; \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo "export PATH"; \
|
||||
echo; \
|
||||
echo "# [Devilbox] Source Devilbox main bash config"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo; \
|
||||
echo "# [Devilbox] Source Devilbox custom configs"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
echo " for f in /etc/bashrc-devilbox.d/*.sh ; do"; \
|
||||
echo " if [ -r \"\${f}\" ]; then"; \
|
||||
echo " . \"\${f}\""; \
|
||||
echo " fi"; \
|
||||
echo " done"; \
|
||||
echo " unset f"; \
|
||||
echo "fi"; \
|
||||
} | tee -a /home/${MY_USER}/.bashrc /root/.bashrc \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/.bashrc
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 3/4: Devilbox slim image (BASE TEST)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Test all Devilbox cli utils if copying was successful
|
||||
###
|
||||
FROM devilbox-slim-base as devilbox-slim-base-test
|
||||
RUN set -eux \
|
||||
&& mysql --version \
|
||||
&& redis-cli --version \
|
||||
&& sqlite3 --version
|
||||
|
||||
###
|
||||
### Check if available tools slim
|
||||
###
|
||||
|
||||
# -------------------- dig --------------------
|
||||
RUN set -eux \
|
||||
&& dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \
|
||||
&& true
|
||||
|
||||
# -------------------- netcat --------------------
|
||||
RUN set -eux \
|
||||
&& nc -h 2>&1 | grep netcat \
|
||||
&& true
|
||||
|
||||
# -------------------- ping --------------------
|
||||
RUN set -eux \
|
||||
&& ping -V | grep ^ping \
|
||||
&& true
|
||||
|
||||
# -------------------- sudo --------------------
|
||||
RUN set -eux \
|
||||
&& sudo --version | grep -E 'version [0-9]+\.[0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- blackfire --------------------
|
||||
RUN set -eux \
|
||||
&& blackfire version \
|
||||
&& blackfire-agent -v \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mhsendmail --------------------
|
||||
RUN set -eux \
|
||||
&& mhsendmail -h 2>&1 | grep 'Usage' \
|
||||
&& true
|
||||
|
||||
# -------------------- mongo_client --------------------
|
||||
RUN set -eux \
|
||||
&& if echo '7.2' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '7.2' | grep -E '^(5.2|5.3|5.4|5.5)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongo --version; \
|
||||
fi \
|
||||
else \
|
||||
mongo --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
RUN set -eux \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- pgsql_client --------------------
|
||||
RUN set -eux \
|
||||
&& if echo '7.2' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
###
|
||||
### Re-activate modules which have been deactivated in mods (for testing).
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if find /usr/local/lib/php/extensions/ -name phalcon.so | grep phalcon; then \
|
||||
echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if find /usr/local/lib/php/extensions/ -name psr.so | grep psr; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Check if PHP still works
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.2' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
\
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
\
|
||||
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 4/4: Devilbox slim image (FINAL)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Prepare final base image (STAGE: slim)
|
||||
###
|
||||
FROM devilbox-slim-base as slim
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="7.2-slim"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 7.2-slim"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 7.2-slim"
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /shared/backups
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
###
|
||||
### Where to start inside the container
|
||||
###
|
||||
WORKDIR /shared/httpd
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
620
Dockerfiles/slim/Dockerfile-7.3
Normal file
620
Dockerfiles/slim/Dockerfile-7.3
Normal file
@@ -0,0 +1,620 @@
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-slim.j2 instead.
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 1/4: Devilbox slim image (BASE BUILDER)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Installs all cli tools required to run Devilbox and its intranet
|
||||
###
|
||||
FROM devilbox/php-fpm:7.3-prod as devilbox-slim-base-builder
|
||||
|
||||
###
|
||||
### Install apt Tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
dirmngr \
|
||||
gnupg
|
||||
|
||||
###
|
||||
### Add apt repositories
|
||||
###
|
||||
RUN set -eux \
|
||||
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138 \
|
||||
&& echo "deb http://ftp.debian.org/debian bullseye-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
|
||||
&& true
|
||||
|
||||
###
|
||||
### Install build_dep
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
libsnappy-dev \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
###
|
||||
### Add common tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
file \
|
||||
git \
|
||||
mariadb-client \
|
||||
redis-tools \
|
||||
sqlite3
|
||||
|
||||
###
|
||||
### Install tools type: apt
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
# ---------- type: apt ----------
|
||||
dnsutils \
|
||||
iputils-ping \
|
||||
netcat-openbsd \
|
||||
sudo \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
###
|
||||
### Devilbox required cli tools from group_vars (slim.yml)
|
||||
###
|
||||
|
||||
# -------------------- dig --------------------
|
||||
RUN set -eux \
|
||||
&& dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \
|
||||
&& true
|
||||
|
||||
# -------------------- netcat --------------------
|
||||
RUN set -eux \
|
||||
&& nc -h 2>&1 | grep netcat \
|
||||
&& true
|
||||
|
||||
# -------------------- ping --------------------
|
||||
RUN set -eux \
|
||||
&& ping -V | grep ^ping \
|
||||
&& true
|
||||
|
||||
# -------------------- sudo --------------------
|
||||
RUN set -eux \
|
||||
&& sudo --version | grep -E 'version [0-9]+\.[0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- blackfire --------------------
|
||||
RUN set -eux \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
blackfire-agent \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& blackfire version \
|
||||
&& blackfire-agent -v \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mhsendmail --------------------
|
||||
RUN set -eux \
|
||||
&& DEB_HOST_ARCH="$( dpkg-architecture --query DEB_HOST_ARCH )" \
|
||||
&& if [ "${DEB_HOST_ARCH}" = "amd64" ] || [ "${DEB_HOST_ARCH}" = "arm64" ]; then \
|
||||
MHSENDMAIL_URL="https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_${DEB_HOST_ARCH}" \
|
||||
&& curl -sS -L --fail "${MHSENDMAIL_URL}" > /usr/local/bin/mhsendmail \
|
||||
&& chmod +x /usr/local/bin/mhsendmail; \
|
||||
else \
|
||||
printf '%s\n%s\n%s\n' '#!/bin/sh' 'echo "Not available for this platform."' 'exit 1' > /usr/local/bin/mhsendmail \
|
||||
&& chmod +x /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
&& mhsendmail -h 2>&1 | grep 'Usage' \
|
||||
&& true
|
||||
|
||||
# -------------------- mongo_client --------------------
|
||||
RUN set -eux \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 20691EEC35216C63CAF66CE1656408E390CFB1F5 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-org-tools \
|
||||
mongodb-org-shell \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& if echo '7.3' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '7.3' | grep -E '^(5.2|5.3|5.4|5.5)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongo --version; \
|
||||
fi \
|
||||
else \
|
||||
mongo --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
RUN set -eux \
|
||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||
&& cd /usr/local/src/mysqldump-secure \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
&& cp /usr/local/src/mysqldump-secure/bin/mysqldump-secure /usr/local/bin \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.conf /etc \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.cnf /etc \
|
||||
&& touch /var/log/mysqldump-secure.log \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /etc/mysqldump-secure.* \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /var/log/mysqldump-secure.log \
|
||||
&& chmod 0400 /etc/mysqldump-secure.conf \
|
||||
&& chmod 0400 /etc/mysqldump-secure.cnf \
|
||||
&& chmod 0644 /var/log/mysqldump-secure.log \
|
||||
&& sed -i'' 's/^COMPRESS_ARG=.*/COMPRESS_ARG="-9 -c"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR=.*/DUMP_DIR="\/shared\/backups\/mysql"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR_CHMOD=.*/DUMP_DIR_CHMOD="0755"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_FILE_CHMOD=.*/DUMP_FILE_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^LOG_CHMOD=.*/LOG_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^NAGIOS_LOG=.*/NAGIOS_LOG=0/g' /etc/mysqldump-secure.conf \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||
\
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- pgsql_client --------------------
|
||||
RUN set -eux \
|
||||
&& curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& if echo '7.3' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
###
|
||||
### Prepare required shared libraries for copying (keep symlinks)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
||||
&& USR_LIB_DIR="/usr/lib" \
|
||||
&& USR_LIB_GNU_DIR="/usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
||||
\
|
||||
&& mkdir /tmp/lib-gnu \
|
||||
&& mkdir /tmp/usr-lib \
|
||||
&& mkdir /tmp/usr-lib-gnu \
|
||||
\
|
||||
&& LIB_GNU="libreadline" \
|
||||
&& USR_LIB="libsnappy libtcmalloc libv8" \
|
||||
&& USR_LIB_GNU="liblua libpq libpcrecpp libboost libjemalloc libunwind libhiredis libedit libyaml-cpp libstemmer libsnappy libpcap libbsd liblzf" \
|
||||
\
|
||||
&& for lib in ${LIB_GNU}; do \
|
||||
if ls -1 "${LIB_GNU_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${LIB_GNU_DIR}"; \
|
||||
cp -r ${LIB_GNU_DIR}/${lib}* /tmp/lib-gnu/; \
|
||||
fi \
|
||||
done \
|
||||
&& for lib in ${USR_LIB}; do \
|
||||
if ls -1 "${USR_LIB_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${USR_LIB_DIR}"; \
|
||||
cp -r ${USR_LIB_DIR}/${lib}* /tmp/usr-lib/; \
|
||||
fi \
|
||||
done \
|
||||
&& for lib in ${USR_LIB_GNU}; do \
|
||||
if ls -1 "${USR_LIB_GNU_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${USR_LIB_GNU_DIR}"; \
|
||||
cp -r ${USR_LIB_GNU_DIR}/${lib}* /tmp/usr-lib-gnu/; \
|
||||
fi \
|
||||
done
|
||||
|
||||
###
|
||||
### Fix expected PostgreSQL directories
|
||||
###
|
||||
### This might not exist on arm64 as software was not available,
|
||||
### but they are still needed to be present, so we can copy them.
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if [ ! -d "/usr/lib/postgresql" ]; then \
|
||||
mkdir "/usr/lib/postgresql"; \
|
||||
fi \
|
||||
&& if [ ! -d "/usr/share/postgresql-common" ]; then \
|
||||
mkdir "/usr/share/postgresql-common"; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Prepare MongoDB binaries for copying.
|
||||
###
|
||||
### They might not be available on all architectures (e.g.: arm64).
|
||||
###
|
||||
RUN set -eux \
|
||||
&& mkdir /tmp/mongo \
|
||||
&& if ls -1 "/usr/bin/" | grep "^mongo" >/dev/null; then \
|
||||
cp -r /usr/bin/mongo* /tmp/mongo/; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Strip debugging information to smallen filesize
|
||||
###
|
||||
RUN set -eux \
|
||||
&& STRIP_USR_BINS="blackfire mongo mysql redis sqlite" \
|
||||
&& STRIP_DIRS="/usr/lib/postgresql/ /usr/share/postgresql-common/ /tmp" \
|
||||
\
|
||||
&& for bin in ${STRIP_USR_BINS}; do \
|
||||
( \
|
||||
find /usr/bin/ -name "${bin}"* -type f -print0 \
|
||||
| xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) sh -c \
|
||||
'if [ -f "${1}" ]; then echo "Strip: ${1}"; strip --strip-all -p "${1}" 2>/dev/null || true; fi' -- \
|
||||
) \
|
||||
done \
|
||||
\
|
||||
&& for dir in ${STRIP_DIRS}; do \
|
||||
( \
|
||||
find ${dir} -type f -print0 \
|
||||
| xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) sh -c \
|
||||
'if [ -f "${1}" ]; then echo "Strip: ${1}"; strip --strip-all -p "${1}" 2>/dev/null || true; fi' -- \
|
||||
) \
|
||||
done \
|
||||
\
|
||||
&& strip --strip-all -p /usr/local/bin/mhsendmail 2>/dev/null || true \
|
||||
&& strip --strip-all -p /usr/local/bin/mysqldump-secure 2>/dev/null || true
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 2/4: Devilbox slim image (BASE)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Copies all cli tools required to run Devilbox and its intranet into a clean image
|
||||
###
|
||||
FROM devilbox/php-fpm:7.3-prod as devilbox-slim-base
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Install tools type: apt
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
# ---------- type: apt ----------
|
||||
dnsutils \
|
||||
iputils-ping \
|
||||
netcat-openbsd \
|
||||
sudo \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
###
|
||||
### Copy shared libraries (required by MongoDB, MySQL, PostgreSQL and Redis)
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/
|
||||
COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/
|
||||
COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/
|
||||
|
||||
###
|
||||
### Copy system files
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /etc/group /etc/group
|
||||
COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd
|
||||
COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow
|
||||
|
||||
###
|
||||
### Copy Blackfire
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire
|
||||
COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/
|
||||
COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire
|
||||
|
||||
###
|
||||
### Copy mhsendmail
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/
|
||||
|
||||
###
|
||||
### Copy MongoDB client (if exists)
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /tmp/mongo/ /usr/bin/
|
||||
|
||||
###
|
||||
### Copy MysQL Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/
|
||||
|
||||
###
|
||||
### Copy mysqldump-secure
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/local/bin/mysqldump-secure /usr/local/bin/
|
||||
COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.conf /etc/
|
||||
COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.cnf /etc/
|
||||
COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/
|
||||
|
||||
###
|
||||
### Copy PostgreSQL
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql
|
||||
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
|
||||
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
|
||||
|
||||
###
|
||||
### Create PostgreSQL symlinks
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if [ -f "/usr/share/postgresql-common/pg_wrapper" ]; then \
|
||||
ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Copy Redis Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/
|
||||
|
||||
|
||||
###
|
||||
### Copy SQLite Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/
|
||||
|
||||
###
|
||||
### ADD PHP configuration files
|
||||
###
|
||||
COPY ./data/php-ini.d/php-7.3.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
|
||||
COPY ./data/php-fpm.conf/php-fpm-7.3.conf /usr/local/etc/php-fpm.conf
|
||||
|
||||
###
|
||||
### ADD Devilbox configuration files
|
||||
###
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
|
||||
COPY ./data/bash-devilbox /etc/bash-devilbox
|
||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||
|
||||
###
|
||||
### Configure Bash
|
||||
###
|
||||
RUN set -eux \
|
||||
&& { \
|
||||
echo; \
|
||||
echo "# [Devilbox] Ensure /usr/local(s)?bin is in PATH"; \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo "export PATH"; \
|
||||
echo; \
|
||||
echo "# [Devilbox] Source Devilbox main bash config"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo; \
|
||||
echo "# [Devilbox] Source Devilbox custom configs"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
echo " for f in /etc/bashrc-devilbox.d/*.sh ; do"; \
|
||||
echo " if [ -r \"\${f}\" ]; then"; \
|
||||
echo " . \"\${f}\""; \
|
||||
echo " fi"; \
|
||||
echo " done"; \
|
||||
echo " unset f"; \
|
||||
echo "fi"; \
|
||||
} | tee -a /home/${MY_USER}/.bashrc /root/.bashrc \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/.bashrc
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 3/4: Devilbox slim image (BASE TEST)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Test all Devilbox cli utils if copying was successful
|
||||
###
|
||||
FROM devilbox-slim-base as devilbox-slim-base-test
|
||||
RUN set -eux \
|
||||
&& mysql --version \
|
||||
&& redis-cli --version \
|
||||
&& sqlite3 --version
|
||||
|
||||
###
|
||||
### Check if available tools slim
|
||||
###
|
||||
|
||||
# -------------------- dig --------------------
|
||||
RUN set -eux \
|
||||
&& dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \
|
||||
&& true
|
||||
|
||||
# -------------------- netcat --------------------
|
||||
RUN set -eux \
|
||||
&& nc -h 2>&1 | grep netcat \
|
||||
&& true
|
||||
|
||||
# -------------------- ping --------------------
|
||||
RUN set -eux \
|
||||
&& ping -V | grep ^ping \
|
||||
&& true
|
||||
|
||||
# -------------------- sudo --------------------
|
||||
RUN set -eux \
|
||||
&& sudo --version | grep -E 'version [0-9]+\.[0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- blackfire --------------------
|
||||
RUN set -eux \
|
||||
&& blackfire version \
|
||||
&& blackfire-agent -v \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mhsendmail --------------------
|
||||
RUN set -eux \
|
||||
&& mhsendmail -h 2>&1 | grep 'Usage' \
|
||||
&& true
|
||||
|
||||
# -------------------- mongo_client --------------------
|
||||
RUN set -eux \
|
||||
&& if echo '7.3' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '7.3' | grep -E '^(5.2|5.3|5.4|5.5)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongo --version; \
|
||||
fi \
|
||||
else \
|
||||
mongo --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
RUN set -eux \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- pgsql_client --------------------
|
||||
RUN set -eux \
|
||||
&& if echo '7.3' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
###
|
||||
### Re-activate modules which have been deactivated in mods (for testing).
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if find /usr/local/lib/php/extensions/ -name phalcon.so | grep phalcon; then \
|
||||
echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if find /usr/local/lib/php/extensions/ -name psr.so | grep psr; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Check if PHP still works
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.3' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
\
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
\
|
||||
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 4/4: Devilbox slim image (FINAL)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Prepare final base image (STAGE: slim)
|
||||
###
|
||||
FROM devilbox-slim-base as slim
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="7.3-slim"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 7.3-slim"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 7.3-slim"
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /shared/backups
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
###
|
||||
### Where to start inside the container
|
||||
###
|
||||
WORKDIR /shared/httpd
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
620
Dockerfiles/slim/Dockerfile-7.4
Normal file
620
Dockerfiles/slim/Dockerfile-7.4
Normal file
@@ -0,0 +1,620 @@
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-slim.j2 instead.
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 1/4: Devilbox slim image (BASE BUILDER)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Installs all cli tools required to run Devilbox and its intranet
|
||||
###
|
||||
FROM devilbox/php-fpm:7.4-prod as devilbox-slim-base-builder
|
||||
|
||||
###
|
||||
### Install apt Tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
dirmngr \
|
||||
gnupg
|
||||
|
||||
###
|
||||
### Add apt repositories
|
||||
###
|
||||
RUN set -eux \
|
||||
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138 \
|
||||
&& echo "deb http://ftp.debian.org/debian bullseye-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
|
||||
&& true
|
||||
|
||||
###
|
||||
### Install build_dep
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
libsnappy-dev \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
###
|
||||
### Add common tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
file \
|
||||
git \
|
||||
mariadb-client \
|
||||
redis-tools \
|
||||
sqlite3
|
||||
|
||||
###
|
||||
### Install tools type: apt
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
# ---------- type: apt ----------
|
||||
dnsutils \
|
||||
iputils-ping \
|
||||
netcat-openbsd \
|
||||
sudo \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
###
|
||||
### Devilbox required cli tools from group_vars (slim.yml)
|
||||
###
|
||||
|
||||
# -------------------- dig --------------------
|
||||
RUN set -eux \
|
||||
&& dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \
|
||||
&& true
|
||||
|
||||
# -------------------- netcat --------------------
|
||||
RUN set -eux \
|
||||
&& nc -h 2>&1 | grep netcat \
|
||||
&& true
|
||||
|
||||
# -------------------- ping --------------------
|
||||
RUN set -eux \
|
||||
&& ping -V | grep ^ping \
|
||||
&& true
|
||||
|
||||
# -------------------- sudo --------------------
|
||||
RUN set -eux \
|
||||
&& sudo --version | grep -E 'version [0-9]+\.[0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- blackfire --------------------
|
||||
RUN set -eux \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
blackfire-agent \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& blackfire version \
|
||||
&& blackfire-agent -v \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mhsendmail --------------------
|
||||
RUN set -eux \
|
||||
&& DEB_HOST_ARCH="$( dpkg-architecture --query DEB_HOST_ARCH )" \
|
||||
&& if [ "${DEB_HOST_ARCH}" = "amd64" ] || [ "${DEB_HOST_ARCH}" = "arm64" ]; then \
|
||||
MHSENDMAIL_URL="https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_${DEB_HOST_ARCH}" \
|
||||
&& curl -sS -L --fail "${MHSENDMAIL_URL}" > /usr/local/bin/mhsendmail \
|
||||
&& chmod +x /usr/local/bin/mhsendmail; \
|
||||
else \
|
||||
printf '%s\n%s\n%s\n' '#!/bin/sh' 'echo "Not available for this platform."' 'exit 1' > /usr/local/bin/mhsendmail \
|
||||
&& chmod +x /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
&& mhsendmail -h 2>&1 | grep 'Usage' \
|
||||
&& true
|
||||
|
||||
# -------------------- mongo_client --------------------
|
||||
RUN set -eux \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 20691EEC35216C63CAF66CE1656408E390CFB1F5 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-org-tools \
|
||||
mongodb-org-shell \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& if echo '7.4' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '7.4' | grep -E '^(5.2|5.3|5.4|5.5)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongo --version; \
|
||||
fi \
|
||||
else \
|
||||
mongo --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
RUN set -eux \
|
||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||
&& cd /usr/local/src/mysqldump-secure \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
&& cp /usr/local/src/mysqldump-secure/bin/mysqldump-secure /usr/local/bin \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.conf /etc \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.cnf /etc \
|
||||
&& touch /var/log/mysqldump-secure.log \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /etc/mysqldump-secure.* \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /var/log/mysqldump-secure.log \
|
||||
&& chmod 0400 /etc/mysqldump-secure.conf \
|
||||
&& chmod 0400 /etc/mysqldump-secure.cnf \
|
||||
&& chmod 0644 /var/log/mysqldump-secure.log \
|
||||
&& sed -i'' 's/^COMPRESS_ARG=.*/COMPRESS_ARG="-9 -c"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR=.*/DUMP_DIR="\/shared\/backups\/mysql"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR_CHMOD=.*/DUMP_DIR_CHMOD="0755"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_FILE_CHMOD=.*/DUMP_FILE_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^LOG_CHMOD=.*/LOG_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^NAGIOS_LOG=.*/NAGIOS_LOG=0/g' /etc/mysqldump-secure.conf \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||
\
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- pgsql_client --------------------
|
||||
RUN set -eux \
|
||||
&& curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& if echo '7.4' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
###
|
||||
### Prepare required shared libraries for copying (keep symlinks)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
||||
&& USR_LIB_DIR="/usr/lib" \
|
||||
&& USR_LIB_GNU_DIR="/usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
||||
\
|
||||
&& mkdir /tmp/lib-gnu \
|
||||
&& mkdir /tmp/usr-lib \
|
||||
&& mkdir /tmp/usr-lib-gnu \
|
||||
\
|
||||
&& LIB_GNU="libreadline" \
|
||||
&& USR_LIB="libsnappy libtcmalloc libv8" \
|
||||
&& USR_LIB_GNU="liblua libpq libpcrecpp libboost libjemalloc libunwind libhiredis libedit libyaml-cpp libstemmer libsnappy libpcap libbsd liblzf" \
|
||||
\
|
||||
&& for lib in ${LIB_GNU}; do \
|
||||
if ls -1 "${LIB_GNU_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${LIB_GNU_DIR}"; \
|
||||
cp -r ${LIB_GNU_DIR}/${lib}* /tmp/lib-gnu/; \
|
||||
fi \
|
||||
done \
|
||||
&& for lib in ${USR_LIB}; do \
|
||||
if ls -1 "${USR_LIB_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${USR_LIB_DIR}"; \
|
||||
cp -r ${USR_LIB_DIR}/${lib}* /tmp/usr-lib/; \
|
||||
fi \
|
||||
done \
|
||||
&& for lib in ${USR_LIB_GNU}; do \
|
||||
if ls -1 "${USR_LIB_GNU_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${USR_LIB_GNU_DIR}"; \
|
||||
cp -r ${USR_LIB_GNU_DIR}/${lib}* /tmp/usr-lib-gnu/; \
|
||||
fi \
|
||||
done
|
||||
|
||||
###
|
||||
### Fix expected PostgreSQL directories
|
||||
###
|
||||
### This might not exist on arm64 as software was not available,
|
||||
### but they are still needed to be present, so we can copy them.
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if [ ! -d "/usr/lib/postgresql" ]; then \
|
||||
mkdir "/usr/lib/postgresql"; \
|
||||
fi \
|
||||
&& if [ ! -d "/usr/share/postgresql-common" ]; then \
|
||||
mkdir "/usr/share/postgresql-common"; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Prepare MongoDB binaries for copying.
|
||||
###
|
||||
### They might not be available on all architectures (e.g.: arm64).
|
||||
###
|
||||
RUN set -eux \
|
||||
&& mkdir /tmp/mongo \
|
||||
&& if ls -1 "/usr/bin/" | grep "^mongo" >/dev/null; then \
|
||||
cp -r /usr/bin/mongo* /tmp/mongo/; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Strip debugging information to smallen filesize
|
||||
###
|
||||
RUN set -eux \
|
||||
&& STRIP_USR_BINS="blackfire mongo mysql redis sqlite" \
|
||||
&& STRIP_DIRS="/usr/lib/postgresql/ /usr/share/postgresql-common/ /tmp" \
|
||||
\
|
||||
&& for bin in ${STRIP_USR_BINS}; do \
|
||||
( \
|
||||
find /usr/bin/ -name "${bin}"* -type f -print0 \
|
||||
| xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) sh -c \
|
||||
'if [ -f "${1}" ]; then echo "Strip: ${1}"; strip --strip-all -p "${1}" 2>/dev/null || true; fi' -- \
|
||||
) \
|
||||
done \
|
||||
\
|
||||
&& for dir in ${STRIP_DIRS}; do \
|
||||
( \
|
||||
find ${dir} -type f -print0 \
|
||||
| xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) sh -c \
|
||||
'if [ -f "${1}" ]; then echo "Strip: ${1}"; strip --strip-all -p "${1}" 2>/dev/null || true; fi' -- \
|
||||
) \
|
||||
done \
|
||||
\
|
||||
&& strip --strip-all -p /usr/local/bin/mhsendmail 2>/dev/null || true \
|
||||
&& strip --strip-all -p /usr/local/bin/mysqldump-secure 2>/dev/null || true
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 2/4: Devilbox slim image (BASE)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Copies all cli tools required to run Devilbox and its intranet into a clean image
|
||||
###
|
||||
FROM devilbox/php-fpm:7.4-prod as devilbox-slim-base
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Install tools type: apt
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
# ---------- type: apt ----------
|
||||
dnsutils \
|
||||
iputils-ping \
|
||||
netcat-openbsd \
|
||||
sudo \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
###
|
||||
### Copy shared libraries (required by MongoDB, MySQL, PostgreSQL and Redis)
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/
|
||||
COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/
|
||||
COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/
|
||||
|
||||
###
|
||||
### Copy system files
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /etc/group /etc/group
|
||||
COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd
|
||||
COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow
|
||||
|
||||
###
|
||||
### Copy Blackfire
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire
|
||||
COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/
|
||||
COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire
|
||||
|
||||
###
|
||||
### Copy mhsendmail
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/
|
||||
|
||||
###
|
||||
### Copy MongoDB client (if exists)
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /tmp/mongo/ /usr/bin/
|
||||
|
||||
###
|
||||
### Copy MysQL Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/
|
||||
|
||||
###
|
||||
### Copy mysqldump-secure
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/local/bin/mysqldump-secure /usr/local/bin/
|
||||
COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.conf /etc/
|
||||
COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.cnf /etc/
|
||||
COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/
|
||||
|
||||
###
|
||||
### Copy PostgreSQL
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql
|
||||
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
|
||||
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
|
||||
|
||||
###
|
||||
### Create PostgreSQL symlinks
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if [ -f "/usr/share/postgresql-common/pg_wrapper" ]; then \
|
||||
ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Copy Redis Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/
|
||||
|
||||
|
||||
###
|
||||
### Copy SQLite Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/
|
||||
|
||||
###
|
||||
### ADD PHP configuration files
|
||||
###
|
||||
COPY ./data/php-ini.d/php-7.4.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
|
||||
COPY ./data/php-fpm.conf/php-fpm-7.4.conf /usr/local/etc/php-fpm.conf
|
||||
|
||||
###
|
||||
### ADD Devilbox configuration files
|
||||
###
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
|
||||
COPY ./data/bash-devilbox /etc/bash-devilbox
|
||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||
|
||||
###
|
||||
### Configure Bash
|
||||
###
|
||||
RUN set -eux \
|
||||
&& { \
|
||||
echo; \
|
||||
echo "# [Devilbox] Ensure /usr/local(s)?bin is in PATH"; \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo "export PATH"; \
|
||||
echo; \
|
||||
echo "# [Devilbox] Source Devilbox main bash config"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo; \
|
||||
echo "# [Devilbox] Source Devilbox custom configs"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
echo " for f in /etc/bashrc-devilbox.d/*.sh ; do"; \
|
||||
echo " if [ -r \"\${f}\" ]; then"; \
|
||||
echo " . \"\${f}\""; \
|
||||
echo " fi"; \
|
||||
echo " done"; \
|
||||
echo " unset f"; \
|
||||
echo "fi"; \
|
||||
} | tee -a /home/${MY_USER}/.bashrc /root/.bashrc \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/.bashrc
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 3/4: Devilbox slim image (BASE TEST)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Test all Devilbox cli utils if copying was successful
|
||||
###
|
||||
FROM devilbox-slim-base as devilbox-slim-base-test
|
||||
RUN set -eux \
|
||||
&& mysql --version \
|
||||
&& redis-cli --version \
|
||||
&& sqlite3 --version
|
||||
|
||||
###
|
||||
### Check if available tools slim
|
||||
###
|
||||
|
||||
# -------------------- dig --------------------
|
||||
RUN set -eux \
|
||||
&& dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \
|
||||
&& true
|
||||
|
||||
# -------------------- netcat --------------------
|
||||
RUN set -eux \
|
||||
&& nc -h 2>&1 | grep netcat \
|
||||
&& true
|
||||
|
||||
# -------------------- ping --------------------
|
||||
RUN set -eux \
|
||||
&& ping -V | grep ^ping \
|
||||
&& true
|
||||
|
||||
# -------------------- sudo --------------------
|
||||
RUN set -eux \
|
||||
&& sudo --version | grep -E 'version [0-9]+\.[0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- blackfire --------------------
|
||||
RUN set -eux \
|
||||
&& blackfire version \
|
||||
&& blackfire-agent -v \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mhsendmail --------------------
|
||||
RUN set -eux \
|
||||
&& mhsendmail -h 2>&1 | grep 'Usage' \
|
||||
&& true
|
||||
|
||||
# -------------------- mongo_client --------------------
|
||||
RUN set -eux \
|
||||
&& if echo '7.4' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '7.4' | grep -E '^(5.2|5.3|5.4|5.5)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongo --version; \
|
||||
fi \
|
||||
else \
|
||||
mongo --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
RUN set -eux \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- pgsql_client --------------------
|
||||
RUN set -eux \
|
||||
&& if echo '7.4' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
###
|
||||
### Re-activate modules which have been deactivated in mods (for testing).
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if find /usr/local/lib/php/extensions/ -name phalcon.so | grep phalcon; then \
|
||||
echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if find /usr/local/lib/php/extensions/ -name psr.so | grep psr; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Check if PHP still works
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.4' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
\
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
\
|
||||
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 4/4: Devilbox slim image (FINAL)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Prepare final base image (STAGE: slim)
|
||||
###
|
||||
FROM devilbox-slim-base as slim
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="7.4-slim"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 7.4-slim"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 7.4-slim"
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /shared/backups
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
###
|
||||
### Where to start inside the container
|
||||
###
|
||||
WORKDIR /shared/httpd
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
620
Dockerfiles/slim/Dockerfile-8.0
Normal file
620
Dockerfiles/slim/Dockerfile-8.0
Normal file
@@ -0,0 +1,620 @@
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-slim.j2 instead.
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 1/4: Devilbox slim image (BASE BUILDER)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Installs all cli tools required to run Devilbox and its intranet
|
||||
###
|
||||
FROM devilbox/php-fpm:8.0-prod as devilbox-slim-base-builder
|
||||
|
||||
###
|
||||
### Install apt Tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
dirmngr \
|
||||
gnupg
|
||||
|
||||
###
|
||||
### Add apt repositories
|
||||
###
|
||||
RUN set -eux \
|
||||
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138 \
|
||||
&& echo "deb http://ftp.debian.org/debian bullseye-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
|
||||
&& true
|
||||
|
||||
###
|
||||
### Install build_dep
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
libsnappy-dev \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
###
|
||||
### Add common tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
file \
|
||||
git \
|
||||
mariadb-client \
|
||||
redis-tools \
|
||||
sqlite3
|
||||
|
||||
###
|
||||
### Install tools type: apt
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
# ---------- type: apt ----------
|
||||
dnsutils \
|
||||
iputils-ping \
|
||||
netcat-openbsd \
|
||||
sudo \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
###
|
||||
### Devilbox required cli tools from group_vars (slim.yml)
|
||||
###
|
||||
|
||||
# -------------------- dig --------------------
|
||||
RUN set -eux \
|
||||
&& dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \
|
||||
&& true
|
||||
|
||||
# -------------------- netcat --------------------
|
||||
RUN set -eux \
|
||||
&& nc -h 2>&1 | grep netcat \
|
||||
&& true
|
||||
|
||||
# -------------------- ping --------------------
|
||||
RUN set -eux \
|
||||
&& ping -V | grep ^ping \
|
||||
&& true
|
||||
|
||||
# -------------------- sudo --------------------
|
||||
RUN set -eux \
|
||||
&& sudo --version | grep -E 'version [0-9]+\.[0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- blackfire --------------------
|
||||
RUN set -eux \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
blackfire-agent \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& blackfire version \
|
||||
&& blackfire-agent -v \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mhsendmail --------------------
|
||||
RUN set -eux \
|
||||
&& DEB_HOST_ARCH="$( dpkg-architecture --query DEB_HOST_ARCH )" \
|
||||
&& if [ "${DEB_HOST_ARCH}" = "amd64" ] || [ "${DEB_HOST_ARCH}" = "arm64" ]; then \
|
||||
MHSENDMAIL_URL="https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_${DEB_HOST_ARCH}" \
|
||||
&& curl -sS -L --fail "${MHSENDMAIL_URL}" > /usr/local/bin/mhsendmail \
|
||||
&& chmod +x /usr/local/bin/mhsendmail; \
|
||||
else \
|
||||
printf '%s\n%s\n%s\n' '#!/bin/sh' 'echo "Not available for this platform."' 'exit 1' > /usr/local/bin/mhsendmail \
|
||||
&& chmod +x /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
&& mhsendmail -h 2>&1 | grep 'Usage' \
|
||||
&& true
|
||||
|
||||
# -------------------- mongo_client --------------------
|
||||
RUN set -eux \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 20691EEC35216C63CAF66CE1656408E390CFB1F5 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-org-tools \
|
||||
mongodb-org-shell \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& if echo '8.0' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '8.0' | grep -E '^(5.2|5.3|5.4|5.5)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongo --version; \
|
||||
fi \
|
||||
else \
|
||||
mongo --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
RUN set -eux \
|
||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||
&& cd /usr/local/src/mysqldump-secure \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
&& cp /usr/local/src/mysqldump-secure/bin/mysqldump-secure /usr/local/bin \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.conf /etc \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.cnf /etc \
|
||||
&& touch /var/log/mysqldump-secure.log \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /etc/mysqldump-secure.* \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /var/log/mysqldump-secure.log \
|
||||
&& chmod 0400 /etc/mysqldump-secure.conf \
|
||||
&& chmod 0400 /etc/mysqldump-secure.cnf \
|
||||
&& chmod 0644 /var/log/mysqldump-secure.log \
|
||||
&& sed -i'' 's/^COMPRESS_ARG=.*/COMPRESS_ARG="-9 -c"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR=.*/DUMP_DIR="\/shared\/backups\/mysql"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR_CHMOD=.*/DUMP_DIR_CHMOD="0755"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_FILE_CHMOD=.*/DUMP_FILE_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^LOG_CHMOD=.*/LOG_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^NAGIOS_LOG=.*/NAGIOS_LOG=0/g' /etc/mysqldump-secure.conf \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||
\
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- pgsql_client --------------------
|
||||
RUN set -eux \
|
||||
&& curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& if echo '8.0' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
###
|
||||
### Prepare required shared libraries for copying (keep symlinks)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
||||
&& USR_LIB_DIR="/usr/lib" \
|
||||
&& USR_LIB_GNU_DIR="/usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
||||
\
|
||||
&& mkdir /tmp/lib-gnu \
|
||||
&& mkdir /tmp/usr-lib \
|
||||
&& mkdir /tmp/usr-lib-gnu \
|
||||
\
|
||||
&& LIB_GNU="libreadline" \
|
||||
&& USR_LIB="libsnappy libtcmalloc libv8" \
|
||||
&& USR_LIB_GNU="liblua libpq libpcrecpp libboost libjemalloc libunwind libhiredis libedit libyaml-cpp libstemmer libsnappy libpcap libbsd liblzf" \
|
||||
\
|
||||
&& for lib in ${LIB_GNU}; do \
|
||||
if ls -1 "${LIB_GNU_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${LIB_GNU_DIR}"; \
|
||||
cp -r ${LIB_GNU_DIR}/${lib}* /tmp/lib-gnu/; \
|
||||
fi \
|
||||
done \
|
||||
&& for lib in ${USR_LIB}; do \
|
||||
if ls -1 "${USR_LIB_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${USR_LIB_DIR}"; \
|
||||
cp -r ${USR_LIB_DIR}/${lib}* /tmp/usr-lib/; \
|
||||
fi \
|
||||
done \
|
||||
&& for lib in ${USR_LIB_GNU}; do \
|
||||
if ls -1 "${USR_LIB_GNU_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${USR_LIB_GNU_DIR}"; \
|
||||
cp -r ${USR_LIB_GNU_DIR}/${lib}* /tmp/usr-lib-gnu/; \
|
||||
fi \
|
||||
done
|
||||
|
||||
###
|
||||
### Fix expected PostgreSQL directories
|
||||
###
|
||||
### This might not exist on arm64 as software was not available,
|
||||
### but they are still needed to be present, so we can copy them.
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if [ ! -d "/usr/lib/postgresql" ]; then \
|
||||
mkdir "/usr/lib/postgresql"; \
|
||||
fi \
|
||||
&& if [ ! -d "/usr/share/postgresql-common" ]; then \
|
||||
mkdir "/usr/share/postgresql-common"; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Prepare MongoDB binaries for copying.
|
||||
###
|
||||
### They might not be available on all architectures (e.g.: arm64).
|
||||
###
|
||||
RUN set -eux \
|
||||
&& mkdir /tmp/mongo \
|
||||
&& if ls -1 "/usr/bin/" | grep "^mongo" >/dev/null; then \
|
||||
cp -r /usr/bin/mongo* /tmp/mongo/; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Strip debugging information to smallen filesize
|
||||
###
|
||||
RUN set -eux \
|
||||
&& STRIP_USR_BINS="blackfire mongo mysql redis sqlite" \
|
||||
&& STRIP_DIRS="/usr/lib/postgresql/ /usr/share/postgresql-common/ /tmp" \
|
||||
\
|
||||
&& for bin in ${STRIP_USR_BINS}; do \
|
||||
( \
|
||||
find /usr/bin/ -name "${bin}"* -type f -print0 \
|
||||
| xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) sh -c \
|
||||
'if [ -f "${1}" ]; then echo "Strip: ${1}"; strip --strip-all -p "${1}" 2>/dev/null || true; fi' -- \
|
||||
) \
|
||||
done \
|
||||
\
|
||||
&& for dir in ${STRIP_DIRS}; do \
|
||||
( \
|
||||
find ${dir} -type f -print0 \
|
||||
| xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) sh -c \
|
||||
'if [ -f "${1}" ]; then echo "Strip: ${1}"; strip --strip-all -p "${1}" 2>/dev/null || true; fi' -- \
|
||||
) \
|
||||
done \
|
||||
\
|
||||
&& strip --strip-all -p /usr/local/bin/mhsendmail 2>/dev/null || true \
|
||||
&& strip --strip-all -p /usr/local/bin/mysqldump-secure 2>/dev/null || true
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 2/4: Devilbox slim image (BASE)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Copies all cli tools required to run Devilbox and its intranet into a clean image
|
||||
###
|
||||
FROM devilbox/php-fpm:8.0-prod as devilbox-slim-base
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Install tools type: apt
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
# ---------- type: apt ----------
|
||||
dnsutils \
|
||||
iputils-ping \
|
||||
netcat-openbsd \
|
||||
sudo \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
###
|
||||
### Copy shared libraries (required by MongoDB, MySQL, PostgreSQL and Redis)
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/
|
||||
COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/
|
||||
COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/
|
||||
|
||||
###
|
||||
### Copy system files
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /etc/group /etc/group
|
||||
COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd
|
||||
COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow
|
||||
|
||||
###
|
||||
### Copy Blackfire
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire
|
||||
COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/
|
||||
COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire
|
||||
|
||||
###
|
||||
### Copy mhsendmail
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/
|
||||
|
||||
###
|
||||
### Copy MongoDB client (if exists)
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /tmp/mongo/ /usr/bin/
|
||||
|
||||
###
|
||||
### Copy MysQL Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/
|
||||
|
||||
###
|
||||
### Copy mysqldump-secure
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/local/bin/mysqldump-secure /usr/local/bin/
|
||||
COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.conf /etc/
|
||||
COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.cnf /etc/
|
||||
COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/
|
||||
|
||||
###
|
||||
### Copy PostgreSQL
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql
|
||||
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
|
||||
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
|
||||
|
||||
###
|
||||
### Create PostgreSQL symlinks
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if [ -f "/usr/share/postgresql-common/pg_wrapper" ]; then \
|
||||
ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Copy Redis Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/
|
||||
|
||||
|
||||
###
|
||||
### Copy SQLite Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/
|
||||
|
||||
###
|
||||
### ADD PHP configuration files
|
||||
###
|
||||
COPY ./data/php-ini.d/php-8.0.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
|
||||
COPY ./data/php-fpm.conf/php-fpm-8.0.conf /usr/local/etc/php-fpm.conf
|
||||
|
||||
###
|
||||
### ADD Devilbox configuration files
|
||||
###
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
|
||||
COPY ./data/bash-devilbox /etc/bash-devilbox
|
||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||
|
||||
###
|
||||
### Configure Bash
|
||||
###
|
||||
RUN set -eux \
|
||||
&& { \
|
||||
echo; \
|
||||
echo "# [Devilbox] Ensure /usr/local(s)?bin is in PATH"; \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo "export PATH"; \
|
||||
echo; \
|
||||
echo "# [Devilbox] Source Devilbox main bash config"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo; \
|
||||
echo "# [Devilbox] Source Devilbox custom configs"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
echo " for f in /etc/bashrc-devilbox.d/*.sh ; do"; \
|
||||
echo " if [ -r \"\${f}\" ]; then"; \
|
||||
echo " . \"\${f}\""; \
|
||||
echo " fi"; \
|
||||
echo " done"; \
|
||||
echo " unset f"; \
|
||||
echo "fi"; \
|
||||
} | tee -a /home/${MY_USER}/.bashrc /root/.bashrc \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/.bashrc
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 3/4: Devilbox slim image (BASE TEST)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Test all Devilbox cli utils if copying was successful
|
||||
###
|
||||
FROM devilbox-slim-base as devilbox-slim-base-test
|
||||
RUN set -eux \
|
||||
&& mysql --version \
|
||||
&& redis-cli --version \
|
||||
&& sqlite3 --version
|
||||
|
||||
###
|
||||
### Check if available tools slim
|
||||
###
|
||||
|
||||
# -------------------- dig --------------------
|
||||
RUN set -eux \
|
||||
&& dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \
|
||||
&& true
|
||||
|
||||
# -------------------- netcat --------------------
|
||||
RUN set -eux \
|
||||
&& nc -h 2>&1 | grep netcat \
|
||||
&& true
|
||||
|
||||
# -------------------- ping --------------------
|
||||
RUN set -eux \
|
||||
&& ping -V | grep ^ping \
|
||||
&& true
|
||||
|
||||
# -------------------- sudo --------------------
|
||||
RUN set -eux \
|
||||
&& sudo --version | grep -E 'version [0-9]+\.[0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- blackfire --------------------
|
||||
RUN set -eux \
|
||||
&& blackfire version \
|
||||
&& blackfire-agent -v \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mhsendmail --------------------
|
||||
RUN set -eux \
|
||||
&& mhsendmail -h 2>&1 | grep 'Usage' \
|
||||
&& true
|
||||
|
||||
# -------------------- mongo_client --------------------
|
||||
RUN set -eux \
|
||||
&& if echo '8.0' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '8.0' | grep -E '^(5.2|5.3|5.4|5.5)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongo --version; \
|
||||
fi \
|
||||
else \
|
||||
mongo --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
RUN set -eux \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- pgsql_client --------------------
|
||||
RUN set -eux \
|
||||
&& if echo '8.0' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
###
|
||||
### Re-activate modules which have been deactivated in mods (for testing).
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if find /usr/local/lib/php/extensions/ -name phalcon.so | grep phalcon; then \
|
||||
echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if find /usr/local/lib/php/extensions/ -name psr.so | grep psr; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Check if PHP still works
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^8.0' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
\
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
\
|
||||
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 4/4: Devilbox slim image (FINAL)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Prepare final base image (STAGE: slim)
|
||||
###
|
||||
FROM devilbox-slim-base as slim
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="8.0-slim"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 8.0-slim"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 8.0-slim"
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /shared/backups
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
###
|
||||
### Where to start inside the container
|
||||
###
|
||||
WORKDIR /shared/httpd
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
620
Dockerfiles/slim/Dockerfile-8.1
Normal file
620
Dockerfiles/slim/Dockerfile-8.1
Normal file
@@ -0,0 +1,620 @@
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-slim.j2 instead.
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 1/4: Devilbox slim image (BASE BUILDER)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Installs all cli tools required to run Devilbox and its intranet
|
||||
###
|
||||
FROM devilbox/php-fpm:8.1-prod as devilbox-slim-base-builder
|
||||
|
||||
###
|
||||
### Install apt Tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
dirmngr \
|
||||
gnupg
|
||||
|
||||
###
|
||||
### Add apt repositories
|
||||
###
|
||||
RUN set -eux \
|
||||
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138 \
|
||||
&& echo "deb http://ftp.debian.org/debian bullseye-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
|
||||
&& true
|
||||
|
||||
###
|
||||
### Install build_dep
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
libsnappy-dev \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
###
|
||||
### Add common tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
file \
|
||||
git \
|
||||
mariadb-client \
|
||||
redis-tools \
|
||||
sqlite3
|
||||
|
||||
###
|
||||
### Install tools type: apt
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
# ---------- type: apt ----------
|
||||
dnsutils \
|
||||
iputils-ping \
|
||||
netcat-openbsd \
|
||||
sudo \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
###
|
||||
### Devilbox required cli tools from group_vars (slim.yml)
|
||||
###
|
||||
|
||||
# -------------------- dig --------------------
|
||||
RUN set -eux \
|
||||
&& dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \
|
||||
&& true
|
||||
|
||||
# -------------------- netcat --------------------
|
||||
RUN set -eux \
|
||||
&& nc -h 2>&1 | grep netcat \
|
||||
&& true
|
||||
|
||||
# -------------------- ping --------------------
|
||||
RUN set -eux \
|
||||
&& ping -V | grep ^ping \
|
||||
&& true
|
||||
|
||||
# -------------------- sudo --------------------
|
||||
RUN set -eux \
|
||||
&& sudo --version | grep -E 'version [0-9]+\.[0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- blackfire --------------------
|
||||
RUN set -eux \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
blackfire-agent \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& blackfire version \
|
||||
&& blackfire-agent -v \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mhsendmail --------------------
|
||||
RUN set -eux \
|
||||
&& DEB_HOST_ARCH="$( dpkg-architecture --query DEB_HOST_ARCH )" \
|
||||
&& if [ "${DEB_HOST_ARCH}" = "amd64" ] || [ "${DEB_HOST_ARCH}" = "arm64" ]; then \
|
||||
MHSENDMAIL_URL="https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_${DEB_HOST_ARCH}" \
|
||||
&& curl -sS -L --fail "${MHSENDMAIL_URL}" > /usr/local/bin/mhsendmail \
|
||||
&& chmod +x /usr/local/bin/mhsendmail; \
|
||||
else \
|
||||
printf '%s\n%s\n%s\n' '#!/bin/sh' 'echo "Not available for this platform."' 'exit 1' > /usr/local/bin/mhsendmail \
|
||||
&& chmod +x /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
&& mhsendmail -h 2>&1 | grep 'Usage' \
|
||||
&& true
|
||||
|
||||
# -------------------- mongo_client --------------------
|
||||
RUN set -eux \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 20691EEC35216C63CAF66CE1656408E390CFB1F5 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-org-tools \
|
||||
mongodb-org-shell \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& if echo '8.1' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '8.1' | grep -E '^(5.2|5.3|5.4|5.5)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongo --version; \
|
||||
fi \
|
||||
else \
|
||||
mongo --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
RUN set -eux \
|
||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||
&& cd /usr/local/src/mysqldump-secure \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
&& cp /usr/local/src/mysqldump-secure/bin/mysqldump-secure /usr/local/bin \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.conf /etc \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.cnf /etc \
|
||||
&& touch /var/log/mysqldump-secure.log \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /etc/mysqldump-secure.* \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /var/log/mysqldump-secure.log \
|
||||
&& chmod 0400 /etc/mysqldump-secure.conf \
|
||||
&& chmod 0400 /etc/mysqldump-secure.cnf \
|
||||
&& chmod 0644 /var/log/mysqldump-secure.log \
|
||||
&& sed -i'' 's/^COMPRESS_ARG=.*/COMPRESS_ARG="-9 -c"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR=.*/DUMP_DIR="\/shared\/backups\/mysql"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR_CHMOD=.*/DUMP_DIR_CHMOD="0755"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_FILE_CHMOD=.*/DUMP_FILE_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^LOG_CHMOD=.*/LOG_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^NAGIOS_LOG=.*/NAGIOS_LOG=0/g' /etc/mysqldump-secure.conf \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||
\
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- pgsql_client --------------------
|
||||
RUN set -eux \
|
||||
&& curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& if echo '8.1' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
###
|
||||
### Prepare required shared libraries for copying (keep symlinks)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
||||
&& USR_LIB_DIR="/usr/lib" \
|
||||
&& USR_LIB_GNU_DIR="/usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
||||
\
|
||||
&& mkdir /tmp/lib-gnu \
|
||||
&& mkdir /tmp/usr-lib \
|
||||
&& mkdir /tmp/usr-lib-gnu \
|
||||
\
|
||||
&& LIB_GNU="libreadline" \
|
||||
&& USR_LIB="libsnappy libtcmalloc libv8" \
|
||||
&& USR_LIB_GNU="liblua libpq libpcrecpp libboost libjemalloc libunwind libhiredis libedit libyaml-cpp libstemmer libsnappy libpcap libbsd liblzf" \
|
||||
\
|
||||
&& for lib in ${LIB_GNU}; do \
|
||||
if ls -1 "${LIB_GNU_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${LIB_GNU_DIR}"; \
|
||||
cp -r ${LIB_GNU_DIR}/${lib}* /tmp/lib-gnu/; \
|
||||
fi \
|
||||
done \
|
||||
&& for lib in ${USR_LIB}; do \
|
||||
if ls -1 "${USR_LIB_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${USR_LIB_DIR}"; \
|
||||
cp -r ${USR_LIB_DIR}/${lib}* /tmp/usr-lib/; \
|
||||
fi \
|
||||
done \
|
||||
&& for lib in ${USR_LIB_GNU}; do \
|
||||
if ls -1 "${USR_LIB_GNU_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${USR_LIB_GNU_DIR}"; \
|
||||
cp -r ${USR_LIB_GNU_DIR}/${lib}* /tmp/usr-lib-gnu/; \
|
||||
fi \
|
||||
done
|
||||
|
||||
###
|
||||
### Fix expected PostgreSQL directories
|
||||
###
|
||||
### This might not exist on arm64 as software was not available,
|
||||
### but they are still needed to be present, so we can copy them.
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if [ ! -d "/usr/lib/postgresql" ]; then \
|
||||
mkdir "/usr/lib/postgresql"; \
|
||||
fi \
|
||||
&& if [ ! -d "/usr/share/postgresql-common" ]; then \
|
||||
mkdir "/usr/share/postgresql-common"; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Prepare MongoDB binaries for copying.
|
||||
###
|
||||
### They might not be available on all architectures (e.g.: arm64).
|
||||
###
|
||||
RUN set -eux \
|
||||
&& mkdir /tmp/mongo \
|
||||
&& if ls -1 "/usr/bin/" | grep "^mongo" >/dev/null; then \
|
||||
cp -r /usr/bin/mongo* /tmp/mongo/; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Strip debugging information to smallen filesize
|
||||
###
|
||||
RUN set -eux \
|
||||
&& STRIP_USR_BINS="blackfire mongo mysql redis sqlite" \
|
||||
&& STRIP_DIRS="/usr/lib/postgresql/ /usr/share/postgresql-common/ /tmp" \
|
||||
\
|
||||
&& for bin in ${STRIP_USR_BINS}; do \
|
||||
( \
|
||||
find /usr/bin/ -name "${bin}"* -type f -print0 \
|
||||
| xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) sh -c \
|
||||
'if [ -f "${1}" ]; then echo "Strip: ${1}"; strip --strip-all -p "${1}" 2>/dev/null || true; fi' -- \
|
||||
) \
|
||||
done \
|
||||
\
|
||||
&& for dir in ${STRIP_DIRS}; do \
|
||||
( \
|
||||
find ${dir} -type f -print0 \
|
||||
| xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) sh -c \
|
||||
'if [ -f "${1}" ]; then echo "Strip: ${1}"; strip --strip-all -p "${1}" 2>/dev/null || true; fi' -- \
|
||||
) \
|
||||
done \
|
||||
\
|
||||
&& strip --strip-all -p /usr/local/bin/mhsendmail 2>/dev/null || true \
|
||||
&& strip --strip-all -p /usr/local/bin/mysqldump-secure 2>/dev/null || true
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 2/4: Devilbox slim image (BASE)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Copies all cli tools required to run Devilbox and its intranet into a clean image
|
||||
###
|
||||
FROM devilbox/php-fpm:8.1-prod as devilbox-slim-base
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Install tools type: apt
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
# ---------- type: apt ----------
|
||||
dnsutils \
|
||||
iputils-ping \
|
||||
netcat-openbsd \
|
||||
sudo \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
###
|
||||
### Copy shared libraries (required by MongoDB, MySQL, PostgreSQL and Redis)
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/
|
||||
COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/
|
||||
COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/
|
||||
|
||||
###
|
||||
### Copy system files
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /etc/group /etc/group
|
||||
COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd
|
||||
COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow
|
||||
|
||||
###
|
||||
### Copy Blackfire
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire
|
||||
COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/
|
||||
COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire
|
||||
|
||||
###
|
||||
### Copy mhsendmail
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/
|
||||
|
||||
###
|
||||
### Copy MongoDB client (if exists)
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /tmp/mongo/ /usr/bin/
|
||||
|
||||
###
|
||||
### Copy MysQL Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/
|
||||
|
||||
###
|
||||
### Copy mysqldump-secure
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/local/bin/mysqldump-secure /usr/local/bin/
|
||||
COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.conf /etc/
|
||||
COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.cnf /etc/
|
||||
COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/
|
||||
|
||||
###
|
||||
### Copy PostgreSQL
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql
|
||||
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
|
||||
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
|
||||
|
||||
###
|
||||
### Create PostgreSQL symlinks
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if [ -f "/usr/share/postgresql-common/pg_wrapper" ]; then \
|
||||
ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Copy Redis Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/
|
||||
|
||||
|
||||
###
|
||||
### Copy SQLite Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/
|
||||
|
||||
###
|
||||
### ADD PHP configuration files
|
||||
###
|
||||
COPY ./data/php-ini.d/php-8.1.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
|
||||
COPY ./data/php-fpm.conf/php-fpm-8.1.conf /usr/local/etc/php-fpm.conf
|
||||
|
||||
###
|
||||
### ADD Devilbox configuration files
|
||||
###
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
|
||||
COPY ./data/bash-devilbox /etc/bash-devilbox
|
||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||
|
||||
###
|
||||
### Configure Bash
|
||||
###
|
||||
RUN set -eux \
|
||||
&& { \
|
||||
echo; \
|
||||
echo "# [Devilbox] Ensure /usr/local(s)?bin is in PATH"; \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo "export PATH"; \
|
||||
echo; \
|
||||
echo "# [Devilbox] Source Devilbox main bash config"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo; \
|
||||
echo "# [Devilbox] Source Devilbox custom configs"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
echo " for f in /etc/bashrc-devilbox.d/*.sh ; do"; \
|
||||
echo " if [ -r \"\${f}\" ]; then"; \
|
||||
echo " . \"\${f}\""; \
|
||||
echo " fi"; \
|
||||
echo " done"; \
|
||||
echo " unset f"; \
|
||||
echo "fi"; \
|
||||
} | tee -a /home/${MY_USER}/.bashrc /root/.bashrc \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/.bashrc
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 3/4: Devilbox slim image (BASE TEST)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Test all Devilbox cli utils if copying was successful
|
||||
###
|
||||
FROM devilbox-slim-base as devilbox-slim-base-test
|
||||
RUN set -eux \
|
||||
&& mysql --version \
|
||||
&& redis-cli --version \
|
||||
&& sqlite3 --version
|
||||
|
||||
###
|
||||
### Check if available tools slim
|
||||
###
|
||||
|
||||
# -------------------- dig --------------------
|
||||
RUN set -eux \
|
||||
&& dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \
|
||||
&& true
|
||||
|
||||
# -------------------- netcat --------------------
|
||||
RUN set -eux \
|
||||
&& nc -h 2>&1 | grep netcat \
|
||||
&& true
|
||||
|
||||
# -------------------- ping --------------------
|
||||
RUN set -eux \
|
||||
&& ping -V | grep ^ping \
|
||||
&& true
|
||||
|
||||
# -------------------- sudo --------------------
|
||||
RUN set -eux \
|
||||
&& sudo --version | grep -E 'version [0-9]+\.[0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- blackfire --------------------
|
||||
RUN set -eux \
|
||||
&& blackfire version \
|
||||
&& blackfire-agent -v \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mhsendmail --------------------
|
||||
RUN set -eux \
|
||||
&& mhsendmail -h 2>&1 | grep 'Usage' \
|
||||
&& true
|
||||
|
||||
# -------------------- mongo_client --------------------
|
||||
RUN set -eux \
|
||||
&& if echo '8.1' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '8.1' | grep -E '^(5.2|5.3|5.4|5.5)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongo --version; \
|
||||
fi \
|
||||
else \
|
||||
mongo --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
RUN set -eux \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- pgsql_client --------------------
|
||||
RUN set -eux \
|
||||
&& if echo '8.1' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
###
|
||||
### Re-activate modules which have been deactivated in mods (for testing).
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if find /usr/local/lib/php/extensions/ -name phalcon.so | grep phalcon; then \
|
||||
echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if find /usr/local/lib/php/extensions/ -name psr.so | grep psr; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Check if PHP still works
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^8.1' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
\
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
\
|
||||
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 4/4: Devilbox slim image (FINAL)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Prepare final base image (STAGE: slim)
|
||||
###
|
||||
FROM devilbox-slim-base as slim
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="8.1-slim"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 8.1-slim"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 8.1-slim"
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /shared/backups
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
###
|
||||
### Where to start inside the container
|
||||
###
|
||||
WORKDIR /shared/httpd
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
620
Dockerfiles/slim/Dockerfile-8.2
Normal file
620
Dockerfiles/slim/Dockerfile-8.2
Normal file
@@ -0,0 +1,620 @@
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-slim.j2 instead.
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 1/4: Devilbox slim image (BASE BUILDER)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Installs all cli tools required to run Devilbox and its intranet
|
||||
###
|
||||
FROM devilbox/php-fpm:8.2-prod as devilbox-slim-base-builder
|
||||
|
||||
###
|
||||
### Install apt Tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
dirmngr \
|
||||
gnupg
|
||||
|
||||
###
|
||||
### Add apt repositories
|
||||
###
|
||||
RUN set -eux \
|
||||
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138 \
|
||||
&& echo "deb http://ftp.debian.org/debian bullseye-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
|
||||
&& true
|
||||
|
||||
###
|
||||
### Install build_dep
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
libsnappy-dev \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
###
|
||||
### Add common tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
file \
|
||||
git \
|
||||
mariadb-client \
|
||||
redis-tools \
|
||||
sqlite3
|
||||
|
||||
###
|
||||
### Install tools type: apt
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
# ---------- type: apt ----------
|
||||
dnsutils \
|
||||
iputils-ping \
|
||||
netcat-openbsd \
|
||||
sudo \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
###
|
||||
### Devilbox required cli tools from group_vars (slim.yml)
|
||||
###
|
||||
|
||||
# -------------------- dig --------------------
|
||||
RUN set -eux \
|
||||
&& dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \
|
||||
&& true
|
||||
|
||||
# -------------------- netcat --------------------
|
||||
RUN set -eux \
|
||||
&& nc -h 2>&1 | grep netcat \
|
||||
&& true
|
||||
|
||||
# -------------------- ping --------------------
|
||||
RUN set -eux \
|
||||
&& ping -V | grep ^ping \
|
||||
&& true
|
||||
|
||||
# -------------------- sudo --------------------
|
||||
RUN set -eux \
|
||||
&& sudo --version | grep -E 'version [0-9]+\.[0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- blackfire --------------------
|
||||
RUN set -eux \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
blackfire-agent \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& blackfire version \
|
||||
&& blackfire-agent -v \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mhsendmail --------------------
|
||||
RUN set -eux \
|
||||
&& DEB_HOST_ARCH="$( dpkg-architecture --query DEB_HOST_ARCH )" \
|
||||
&& if [ "${DEB_HOST_ARCH}" = "amd64" ] || [ "${DEB_HOST_ARCH}" = "arm64" ]; then \
|
||||
MHSENDMAIL_URL="https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_${DEB_HOST_ARCH}" \
|
||||
&& curl -sS -L --fail "${MHSENDMAIL_URL}" > /usr/local/bin/mhsendmail \
|
||||
&& chmod +x /usr/local/bin/mhsendmail; \
|
||||
else \
|
||||
printf '%s\n%s\n%s\n' '#!/bin/sh' 'echo "Not available for this platform."' 'exit 1' > /usr/local/bin/mhsendmail \
|
||||
&& chmod +x /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
&& mhsendmail -h 2>&1 | grep 'Usage' \
|
||||
&& true
|
||||
|
||||
# -------------------- mongo_client --------------------
|
||||
RUN set -eux \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 20691EEC35216C63CAF66CE1656408E390CFB1F5 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-org-tools \
|
||||
mongodb-org-shell \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& if echo '8.2' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '8.2' | grep -E '^(5.2|5.3|5.4|5.5)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongo --version; \
|
||||
fi \
|
||||
else \
|
||||
mongo --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
RUN set -eux \
|
||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||
&& cd /usr/local/src/mysqldump-secure \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
&& cp /usr/local/src/mysqldump-secure/bin/mysqldump-secure /usr/local/bin \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.conf /etc \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.cnf /etc \
|
||||
&& touch /var/log/mysqldump-secure.log \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /etc/mysqldump-secure.* \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /var/log/mysqldump-secure.log \
|
||||
&& chmod 0400 /etc/mysqldump-secure.conf \
|
||||
&& chmod 0400 /etc/mysqldump-secure.cnf \
|
||||
&& chmod 0644 /var/log/mysqldump-secure.log \
|
||||
&& sed -i'' 's/^COMPRESS_ARG=.*/COMPRESS_ARG="-9 -c"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR=.*/DUMP_DIR="\/shared\/backups\/mysql"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR_CHMOD=.*/DUMP_DIR_CHMOD="0755"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_FILE_CHMOD=.*/DUMP_FILE_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^LOG_CHMOD=.*/LOG_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^NAGIOS_LOG=.*/NAGIOS_LOG=0/g' /etc/mysqldump-secure.conf \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||
\
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- pgsql_client --------------------
|
||||
RUN set -eux \
|
||||
&& curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& if echo '8.2' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
###
|
||||
### Prepare required shared libraries for copying (keep symlinks)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
||||
&& USR_LIB_DIR="/usr/lib" \
|
||||
&& USR_LIB_GNU_DIR="/usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
||||
\
|
||||
&& mkdir /tmp/lib-gnu \
|
||||
&& mkdir /tmp/usr-lib \
|
||||
&& mkdir /tmp/usr-lib-gnu \
|
||||
\
|
||||
&& LIB_GNU="libreadline" \
|
||||
&& USR_LIB="libsnappy libtcmalloc libv8" \
|
||||
&& USR_LIB_GNU="liblua libpq libpcrecpp libboost libjemalloc libunwind libhiredis libedit libyaml-cpp libstemmer libsnappy libpcap libbsd liblzf" \
|
||||
\
|
||||
&& for lib in ${LIB_GNU}; do \
|
||||
if ls -1 "${LIB_GNU_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${LIB_GNU_DIR}"; \
|
||||
cp -r ${LIB_GNU_DIR}/${lib}* /tmp/lib-gnu/; \
|
||||
fi \
|
||||
done \
|
||||
&& for lib in ${USR_LIB}; do \
|
||||
if ls -1 "${USR_LIB_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${USR_LIB_DIR}"; \
|
||||
cp -r ${USR_LIB_DIR}/${lib}* /tmp/usr-lib/; \
|
||||
fi \
|
||||
done \
|
||||
&& for lib in ${USR_LIB_GNU}; do \
|
||||
if ls -1 "${USR_LIB_GNU_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${USR_LIB_GNU_DIR}"; \
|
||||
cp -r ${USR_LIB_GNU_DIR}/${lib}* /tmp/usr-lib-gnu/; \
|
||||
fi \
|
||||
done
|
||||
|
||||
###
|
||||
### Fix expected PostgreSQL directories
|
||||
###
|
||||
### This might not exist on arm64 as software was not available,
|
||||
### but they are still needed to be present, so we can copy them.
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if [ ! -d "/usr/lib/postgresql" ]; then \
|
||||
mkdir "/usr/lib/postgresql"; \
|
||||
fi \
|
||||
&& if [ ! -d "/usr/share/postgresql-common" ]; then \
|
||||
mkdir "/usr/share/postgresql-common"; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Prepare MongoDB binaries for copying.
|
||||
###
|
||||
### They might not be available on all architectures (e.g.: arm64).
|
||||
###
|
||||
RUN set -eux \
|
||||
&& mkdir /tmp/mongo \
|
||||
&& if ls -1 "/usr/bin/" | grep "^mongo" >/dev/null; then \
|
||||
cp -r /usr/bin/mongo* /tmp/mongo/; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Strip debugging information to smallen filesize
|
||||
###
|
||||
RUN set -eux \
|
||||
&& STRIP_USR_BINS="blackfire mongo mysql redis sqlite" \
|
||||
&& STRIP_DIRS="/usr/lib/postgresql/ /usr/share/postgresql-common/ /tmp" \
|
||||
\
|
||||
&& for bin in ${STRIP_USR_BINS}; do \
|
||||
( \
|
||||
find /usr/bin/ -name "${bin}"* -type f -print0 \
|
||||
| xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) sh -c \
|
||||
'if [ -f "${1}" ]; then echo "Strip: ${1}"; strip --strip-all -p "${1}" 2>/dev/null || true; fi' -- \
|
||||
) \
|
||||
done \
|
||||
\
|
||||
&& for dir in ${STRIP_DIRS}; do \
|
||||
( \
|
||||
find ${dir} -type f -print0 \
|
||||
| xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) sh -c \
|
||||
'if [ -f "${1}" ]; then echo "Strip: ${1}"; strip --strip-all -p "${1}" 2>/dev/null || true; fi' -- \
|
||||
) \
|
||||
done \
|
||||
\
|
||||
&& strip --strip-all -p /usr/local/bin/mhsendmail 2>/dev/null || true \
|
||||
&& strip --strip-all -p /usr/local/bin/mysqldump-secure 2>/dev/null || true
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 2/4: Devilbox slim image (BASE)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Copies all cli tools required to run Devilbox and its intranet into a clean image
|
||||
###
|
||||
FROM devilbox/php-fpm:8.2-prod as devilbox-slim-base
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Install tools type: apt
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
# ---------- type: apt ----------
|
||||
dnsutils \
|
||||
iputils-ping \
|
||||
netcat-openbsd \
|
||||
sudo \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
###
|
||||
### Copy shared libraries (required by MongoDB, MySQL, PostgreSQL and Redis)
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/
|
||||
COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/
|
||||
COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/
|
||||
|
||||
###
|
||||
### Copy system files
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /etc/group /etc/group
|
||||
COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd
|
||||
COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow
|
||||
|
||||
###
|
||||
### Copy Blackfire
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire
|
||||
COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/
|
||||
COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire
|
||||
|
||||
###
|
||||
### Copy mhsendmail
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/
|
||||
|
||||
###
|
||||
### Copy MongoDB client (if exists)
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /tmp/mongo/ /usr/bin/
|
||||
|
||||
###
|
||||
### Copy MysQL Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/
|
||||
|
||||
###
|
||||
### Copy mysqldump-secure
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/local/bin/mysqldump-secure /usr/local/bin/
|
||||
COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.conf /etc/
|
||||
COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.cnf /etc/
|
||||
COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/
|
||||
|
||||
###
|
||||
### Copy PostgreSQL
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql
|
||||
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
|
||||
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
|
||||
|
||||
###
|
||||
### Create PostgreSQL symlinks
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if [ -f "/usr/share/postgresql-common/pg_wrapper" ]; then \
|
||||
ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Copy Redis Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/
|
||||
|
||||
|
||||
###
|
||||
### Copy SQLite Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/
|
||||
|
||||
###
|
||||
### ADD PHP configuration files
|
||||
###
|
||||
COPY ./data/php-ini.d/php-8.2.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
|
||||
COPY ./data/php-fpm.conf/php-fpm-8.2.conf /usr/local/etc/php-fpm.conf
|
||||
|
||||
###
|
||||
### ADD Devilbox configuration files
|
||||
###
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
|
||||
COPY ./data/bash-devilbox /etc/bash-devilbox
|
||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||
|
||||
###
|
||||
### Configure Bash
|
||||
###
|
||||
RUN set -eux \
|
||||
&& { \
|
||||
echo; \
|
||||
echo "# [Devilbox] Ensure /usr/local(s)?bin is in PATH"; \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo "export PATH"; \
|
||||
echo; \
|
||||
echo "# [Devilbox] Source Devilbox main bash config"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo; \
|
||||
echo "# [Devilbox] Source Devilbox custom configs"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
echo " for f in /etc/bashrc-devilbox.d/*.sh ; do"; \
|
||||
echo " if [ -r \"\${f}\" ]; then"; \
|
||||
echo " . \"\${f}\""; \
|
||||
echo " fi"; \
|
||||
echo " done"; \
|
||||
echo " unset f"; \
|
||||
echo "fi"; \
|
||||
} | tee -a /home/${MY_USER}/.bashrc /root/.bashrc \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/.bashrc
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 3/4: Devilbox slim image (BASE TEST)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Test all Devilbox cli utils if copying was successful
|
||||
###
|
||||
FROM devilbox-slim-base as devilbox-slim-base-test
|
||||
RUN set -eux \
|
||||
&& mysql --version \
|
||||
&& redis-cli --version \
|
||||
&& sqlite3 --version
|
||||
|
||||
###
|
||||
### Check if available tools slim
|
||||
###
|
||||
|
||||
# -------------------- dig --------------------
|
||||
RUN set -eux \
|
||||
&& dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \
|
||||
&& true
|
||||
|
||||
# -------------------- netcat --------------------
|
||||
RUN set -eux \
|
||||
&& nc -h 2>&1 | grep netcat \
|
||||
&& true
|
||||
|
||||
# -------------------- ping --------------------
|
||||
RUN set -eux \
|
||||
&& ping -V | grep ^ping \
|
||||
&& true
|
||||
|
||||
# -------------------- sudo --------------------
|
||||
RUN set -eux \
|
||||
&& sudo --version | grep -E 'version [0-9]+\.[0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- blackfire --------------------
|
||||
RUN set -eux \
|
||||
&& blackfire version \
|
||||
&& blackfire-agent -v \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mhsendmail --------------------
|
||||
RUN set -eux \
|
||||
&& mhsendmail -h 2>&1 | grep 'Usage' \
|
||||
&& true
|
||||
|
||||
# -------------------- mongo_client --------------------
|
||||
RUN set -eux \
|
||||
&& if echo '8.2' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '8.2' | grep -E '^(5.2|5.3|5.4|5.5)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongo --version; \
|
||||
fi \
|
||||
else \
|
||||
mongo --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
RUN set -eux \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& true
|
||||
|
||||
# -------------------- pgsql_client --------------------
|
||||
RUN set -eux \
|
||||
&& if echo '8.2' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& true
|
||||
|
||||
###
|
||||
### Re-activate modules which have been deactivated in mods (for testing).
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if find /usr/local/lib/php/extensions/ -name phalcon.so | grep phalcon; then \
|
||||
echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if find /usr/local/lib/php/extensions/ -name psr.so | grep psr; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Check if PHP still works
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^8.2' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
\
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
\
|
||||
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 4/4: Devilbox slim image (FINAL)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Prepare final base image (STAGE: slim)
|
||||
###
|
||||
FROM devilbox-slim-base as slim
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="8.2-slim"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 8.2-slim"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 8.2-slim"
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /shared/backups
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
###
|
||||
### Where to start inside the container
|
||||
###
|
||||
WORKDIR /shared/httpd
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
@@ -17,6 +17,7 @@ update_ca_certificates() {
|
||||
local debug="${2}"
|
||||
|
||||
if [ -d "${dir}" ]; then
|
||||
# shellcheck disable=SC2044
|
||||
for cert in $( find "${dir}" -name \*.crt ); do
|
||||
name="$( basename "${cert}" )"
|
||||
run "cp ${cert} /usr/local/share/ca-certificates/devilbox-${name}" "${debug}"
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user