mirror of
https://github.com/devilbox/docker-php-fpm.git
synced 2025-12-12 03:51:15 +00:00
Compare commits
283 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
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 |
@@ -3,10 +3,16 @@
|
||||
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 +59,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 -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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/*
|
||||
|
||||
|
||||
@@ -31,14 +31,34 @@ FROM devilbox/php-fpm:{{ php_version }}-base as builder
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 +114,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 +180,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 --------------------
|
||||
-#}
|
||||
@@ -289,9 +312,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 +342,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 -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 +377,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 = {} -%}
|
||||
@@ -26,9 +26,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM {{ php_version }}-prod"
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 +35,21 @@ RUN set -eux \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -q -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 %}
|
||||
@@ -2,6 +2,7 @@
|
||||
FROM devilbox/php-fpm:{{ php_version }}-prod
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Labels
|
||||
@@ -45,9 +46,8 @@ ENV BASH_PROFILE=".bashrc"
|
||||
### Install Tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
@@ -80,8 +80,8 @@ RUN set -eux \
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}{{ "\n\t" }}\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 \
|
||||
ack-grep \
|
||||
aspell \
|
||||
autoconf \
|
||||
@@ -91,7 +91,7 @@ RUN set -eux \
|
||||
blackfire-agent \
|
||||
build-essential \
|
||||
bzip2 \
|
||||
{% if php_version != 5.2 and php_version != 5.3 and php_version != 5.4 and php_version != 5.5 %}
|
||||
{% if php_version not in [5.2, 5.3, 5.4, 5.5] %}
|
||||
certbot \
|
||||
{% endif %}
|
||||
coreutils \
|
||||
@@ -118,14 +118,14 @@ RUN set -eux \
|
||||
libyaml-dev \
|
||||
locales \
|
||||
make \
|
||||
mongodb-org-shell \
|
||||
mongodb-org-tools \
|
||||
moreutils \
|
||||
{% if php_version in [7.1, 7.2, 7.3, 7.4, 8.0, 8.1] %}
|
||||
\
|
||||
{% if php_version in [7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2] %}
|
||||
mariadb-client \
|
||||
{% else %}
|
||||
mysql-client \
|
||||
{% endif %}
|
||||
\
|
||||
mupdf \
|
||||
mupdf-tools \
|
||||
nano \
|
||||
@@ -134,7 +134,6 @@ RUN set -eux \
|
||||
openssh-client \
|
||||
patch \
|
||||
patchelf \
|
||||
postgresql-client \
|
||||
redis-tools \
|
||||
rsync \
|
||||
rubygems \
|
||||
@@ -152,19 +151,17 @@ RUN set -eux \
|
||||
wget \
|
||||
whois \
|
||||
xz-utils \
|
||||
yarn \
|
||||
zip \
|
||||
zlib1g-dev \
|
||||
zsh \
|
||||
{% if php_version in [5.6, 7.0] %}
|
||||
zsh-common \
|
||||
{% endif %}
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -q -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
@@ -219,19 +216,17 @@ RUN set -eux \
|
||||
{%- else -%}
|
||||
{{ "\n\t" }}\{{ "\n" }}
|
||||
{%- endif %}
|
||||
&& (rm -rf /root/.gem || true ) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
{% for f in directory_to_clean %}
|
||||
&& (rm -rf /home/devilbox/{{ f }} || true) \
|
||||
{% endfor %}
|
||||
\
|
||||
{% for f in directory_to_clean %}
|
||||
&& (rm -rf /root/{{ f }} || true) \
|
||||
{% endfor %}
|
||||
\
|
||||
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||
&& rm -rf /tmp/* \
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
@@ -280,12 +275,21 @@ RUN set -eux \
|
||||
{%- else -%}
|
||||
{{ "\n\t" }}\{{ "\n" }}
|
||||
{%- endif %}
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
{% for f in directory_to_clean %}
|
||||
&& (rm -rf /home/devilbox/{{ f }} || true) \
|
||||
{% endfor %}
|
||||
\
|
||||
{% for f in directory_to_clean %}
|
||||
&& (rm -rf /root/{{ f }} || true) \
|
||||
{% endfor %}
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
@@ -303,18 +307,18 @@ RUN set -eux \
|
||||
{%- endif -%}
|
||||
{#- Version specific gem version available? -#}
|
||||
{%- if php_version in npm_available[tool] and 'version' in npm_available[tool][php_version] -%}
|
||||
{{ "\n\t" }}&& su -c '. /opt/nvm/nvm.sh; npm install -g --force {{ npm_available[tool]['name'] }} {{ npm_available[tool][php_version]['version'] }}' devilbox \
|
||||
{{ "\n\t" }}&& su -c '. {{ nvm_home }}/nvm.sh; npm install -g --force {{ npm_available[tool]['name'] }} {{ npm_available[tool][php_version]['version'] }}' devilbox \
|
||||
{#- Generic gem version available? -#}
|
||||
{%- elif 'all' in npm_available[tool] and 'version' in npm_available[tool]['all'] -%}
|
||||
{{ "\n\t" }}&& su -c '. /opt/nvm/nvm.sh; npm install -g --force {{ npm_available[tool]['name'] }} {{ npm_available[tool]['all']['version'] }}' devilbox \
|
||||
{{ "\n\t" }}&& su -c '. {{ nvm_home }}/nvm.sh; npm install -g --force {{ npm_available[tool]['name'] }} {{ npm_available[tool]['all']['version'] }}' devilbox \
|
||||
{#- No version info available -#}
|
||||
{%- else -%}
|
||||
{{ "\n\t" }}&& su -c '. /opt/nvm/nvm.sh; npm install -g --force {{ npm_available[tool]['name'] }}' devilbox \
|
||||
{{ "\n\t" }}&& su -c '. {{ nvm_home }}/nvm.sh; npm install -g --force {{ npm_available[tool]['name'] }}' devilbox \
|
||||
{%- endif -%}
|
||||
{#- Fail fast version -#}
|
||||
{%- if build_fail_fast -%}
|
||||
{%- if 'check' in npm_available[tool] -%}
|
||||
{{ "\n\t" }}&& PATH=$PATH:/opt/nvm/versions/node/$(/bin/ls -1 /opt/nvm/versions/node/ | sort -V | tail -1)/bin /opt/nvm/versions/node/$(/bin/ls -1 /opt/nvm/versions/node/ | sort -V | tail -1)/bin/{{ npm_available[tool]['check'] }}{{ "\n\n" }}
|
||||
{{ "\n\t" }}&& PATH=$PATH:{{ nvm_home }}/versions/node/$(/bin/ls -1 {{ nvm_home }}/versions/node/ | sort -V | tail -1)/bin {{ nvm_home }}/versions/node/$(/bin/ls -1 {{ nvm_home }}/versions/node/ | sort -V | tail -1)/bin/{{ npm_available[tool]['check'] }}{{ "\n\n" }}
|
||||
{%- else -%}
|
||||
{{ "\n\t" }}&& true{{ "\n\n" }}
|
||||
{%- endif -%}
|
||||
@@ -329,17 +333,26 @@ RUN set -eux \
|
||||
{%- else -%}
|
||||
{{ "\n\t" }}\{{ "\n" }}
|
||||
{%- endif %}
|
||||
&& ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox \
|
||||
&& rm -rf /home/devilbox/.npm \
|
||||
&& rm -rf /home/devilbox/.cache \
|
||||
&& rm -rf /home/devilbox/.config \
|
||||
&& rm -rf /tmp/* \
|
||||
&& if [ -f "{{ nvm_home }}/nvm.sh" ]; then \
|
||||
ln -sf $(dirname $(su -c '. {{ nvm_home }}/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. {{ nvm_home }}/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. {{ nvm_home }}/nvm.sh; nvm cache clear --force' devilbox; \
|
||||
fi \
|
||||
\
|
||||
{% for f in directory_to_clean %}
|
||||
&& (rm -rf /home/devilbox/{{ f }} || true) \
|
||||
{% endfor %}
|
||||
\
|
||||
{% for f in directory_to_clean %}
|
||||
&& (rm -rf /root/{{ f }} || true) \
|
||||
{% endfor %}
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find {{ nvm_home }} -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
@@ -383,13 +396,21 @@ RUN set -eux \
|
||||
{%- else -%}
|
||||
{{ "\n\t" }}\{{ "\n" }}
|
||||
{%- endif %}
|
||||
&& rm -rf /root/.gem \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
{% for f in directory_to_clean %}
|
||||
&& (rm -rf /home/devilbox/{{ f }} || true) \
|
||||
{% endfor %}
|
||||
\
|
||||
{% for f in directory_to_clean %}
|
||||
&& (rm -rf /root/{{ f }} || true) \
|
||||
{% endfor %}
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
@@ -433,13 +454,21 @@ RUN set -eux \
|
||||
{%- else -%}
|
||||
{{ "\n\t" }}\{{ "\n" }}
|
||||
{%- endif %}
|
||||
&& rm -rf /root/.cache/pip \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
{% for f in directory_to_clean %}
|
||||
&& (rm -rf /home/devilbox/{{ f }} || true) \
|
||||
{% endfor %}
|
||||
\
|
||||
{% for f in directory_to_clean %}
|
||||
&& (rm -rf /root/{{ f }} || true) \
|
||||
{% endfor %}
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
@@ -447,10 +476,10 @@ RUN set -eux \
|
||||
###
|
||||
RUN \
|
||||
{ \
|
||||
echo 'PATH="${PATH}:${HOME}/.yarn/bin"'; \
|
||||
echo 'PATH="${PATH}:${HOME}/.composer/vendor/bin"'; \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo 'PATH="${PATH}:/opt/nvm/versions/node/$(nvm version default)/bin"'; \
|
||||
echo 'PATH="${HOME}/.yarn/bin:${PATH}"'; \
|
||||
echo 'PATH="${HOME}/.composer/vendor/bin:${PATH}"'; \
|
||||
echo 'PATH="{{ nvm_home }}/versions/node/$(nvm version default)/bin:${PATH}"'; \
|
||||
echo "export PATH"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
@@ -532,14 +561,16 @@ RUN set -eux \
|
||||
{%- endif -%}
|
||||
{% endfor %}{{ "\n\t" }}\
|
||||
# -------------------- Cleanup --------------------
|
||||
&& rm -rf /home/devilbox/.cache/ \
|
||||
&& rm -rf /home/devilbox/.config/ \
|
||||
&& rm -rf /root/.ansible \
|
||||
&& rm -rf /root/.console \
|
||||
&& rm -rf /root/.composer \
|
||||
&& rm -rf /root/.drush \
|
||||
&& rm -rf /root/.pm2 \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
{% for f in directory_to_clean %}
|
||||
&& (rm -rf /home/devilbox/{{ f }} || true) \
|
||||
{% endfor %}
|
||||
\
|
||||
{% for f in directory_to_clean %}
|
||||
&& (rm -rf /root/{{ f }} || true) \
|
||||
{% endfor %}
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
[defaults]
|
||||
roles_path = ./roles
|
||||
inventory = inventory
|
||||
inventory = inventory.ini
|
||||
@@ -3,10 +3,10 @@
|
||||
# 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_work: "# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-work.j2 instead."
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
@@ -34,6 +34,7 @@ php_all_versions:
|
||||
- 7.4
|
||||
- 8.0
|
||||
- 8.1
|
||||
- 8.2
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
@@ -41,13 +42,13 @@ php_all_versions:
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
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-work.j2
|
||||
dst: "../../Dockerfiles/work/Dockerfile-{{ php_version }}"
|
||||
dst: "../Dockerfiles/work/Dockerfile-{{ php_version }}"
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
@@ -56,23 +57,23 @@ template_dockerfiles:
|
||||
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/work/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'
|
||||
# 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/work/data/php-fpm.conf/php-fpm-{{ php_version }}.conf"
|
||||
cfg: "{{ php_settings_fpm }}"
|
||||
key: work
|
||||
alt: base
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
1
.github/FUNDING.yml
vendored
1
.github/FUNDING.yml
vendored
@@ -1,2 +1,3 @@
|
||||
---
|
||||
github: [cytopia]
|
||||
patreon: devilbox
|
||||
|
||||
298
.github/workflows/action-schedule_master.yml
vendored
Normal file
298
.github/workflows/action-schedule_master.yml
vendored
Normal file
@@ -0,0 +1,298 @@
|
||||
---
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# 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/8) Determine parameter settings
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
params:
|
||||
uses: ./.github/workflows/params-nightly_master.yml
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (2/8) 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/8) 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/8) 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/8) 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/8) Build & Test work
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-work:
|
||||
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: work
|
||||
stage_prev: prod
|
||||
|
||||
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
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (7/8) Push images
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
push-base:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-prod
|
||||
- test-mods
|
||||
- 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-prod
|
||||
- test-mods
|
||||
- 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-prod
|
||||
- test-mods
|
||||
- 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-work:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-prod
|
||||
- test-mods
|
||||
- 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 }}
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (8/8) 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-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 }}
|
||||
298
.github/workflows/action-schedule_tags.yml
vendored
Normal file
298
.github/workflows/action-schedule_tags.yml
vendored
Normal file
@@ -0,0 +1,298 @@
|
||||
---
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# 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/8) Determine parameter settings
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
params:
|
||||
uses: ./.github/workflows/params-nightly_tags.yml
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (2/8) 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/8) 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/8) 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/8) 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/8) Build & Test work
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-work:
|
||||
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: work
|
||||
stage_prev: prod
|
||||
|
||||
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
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (7/8) Push images
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
push-base:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-prod
|
||||
- test-mods
|
||||
- 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-prod
|
||||
- test-mods
|
||||
- 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-prod
|
||||
- test-mods
|
||||
- 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-work:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-prod
|
||||
- test-mods
|
||||
- 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 }}
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (8/8) 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-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 }}
|
||||
298
.github/workflows/action.yml
vendored
Normal file
298
.github/workflows/action.yml
vendored
Normal file
@@ -0,0 +1,298 @@
|
||||
---
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# 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/8) Determine parameter settings
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
params:
|
||||
uses: ./.github/workflows/params.yml
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (2/8) 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/8) 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/8) 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/8) 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/8) Build & Test work
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-work:
|
||||
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: work
|
||||
stage_prev: prod
|
||||
|
||||
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
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (7/8) Push images
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
push-base:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-prod
|
||||
- test-mods
|
||||
- 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-prod
|
||||
- test-mods
|
||||
- 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-prod
|
||||
- test-mods
|
||||
- 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-work:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-prod
|
||||
- test-mods
|
||||
- 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 }}
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (8/8) 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-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-'))
|
||||
)
|
||||
20
.github/workflows/linting.yml
vendored
20
.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,14 +52,15 @@ jobs:
|
||||
run: |
|
||||
make lint-yaml
|
||||
|
||||
- name: Lint workflow
|
||||
run: |
|
||||
make lint-workflow
|
||||
|
||||
- name: Lint Changelog
|
||||
run: |
|
||||
make lint-changelog
|
||||
|
||||
- name: Diff generated PHP modules
|
||||
run: |
|
||||
make gen-modules
|
||||
git diff --quiet || { echo "Build Changes"; git diff; git status; false; }
|
||||
|
||||
- name: Diff generated Docker files
|
||||
run: |
|
||||
make gen-dockerfiles
|
||||
|
||||
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.131'
|
||||
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
|
||||
|
||||
143
CHANGELOG.md
143
CHANGELOG.md
@@ -4,6 +4,149 @@
|
||||
## Unreleased
|
||||
|
||||
|
||||
## 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
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM devilbox/php-fpm-5.2
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -44,15 +44,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 -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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,4 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM devilbox/php-fpm-5.3
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -44,15 +44,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 -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM php:5.4-fpm
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM devilbox/php-fpm-5.4
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
|
||||
@@ -44,15 +44,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 -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM php:5.5-fpm
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM devilbox/php-fpm-5.5
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
|
||||
@@ -44,15 +44,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 -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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,4 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM php:5.6-fpm
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -44,8 +44,10 @@ RUN set -eux \
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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,4 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM php:7.0-fpm
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -44,8 +44,10 @@ RUN set -eux \
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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,4 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM php:7.1-fpm
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -44,8 +44,10 @@ RUN set -eux \
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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,4 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM php:7.2-fpm
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -44,8 +44,10 @@ RUN set -eux \
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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,4 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM php:7.3-fpm
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -44,8 +44,10 @@ RUN set -eux \
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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,4 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM php:7.4-fpm
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -44,8 +44,10 @@ RUN set -eux \
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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,4 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM devilbox/php-fpm-8.0
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -44,8 +44,10 @@ RUN set -eux \
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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,4 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM devilbox/php-fpm-8.1
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -44,8 +44,10 @@ RUN set -eux \
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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/*
|
||||
|
||||
|
||||
|
||||
106
Dockerfiles/base/Dockerfile-8.2
Normal file
106
Dockerfiles/base/Dockerfile-8.2
Normal file
@@ -0,0 +1,106 @@
|
||||
# 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"]
|
||||
134
Dockerfiles/base/data/php-fpm.conf/php-fpm-8.2.conf
Normal file
134
Dockerfiles/base/data/php-fpm.conf/php-fpm-8.2.conf
Normal file
@@ -0,0 +1,134 @@
|
||||
; ################################################################################
|
||||
; ####
|
||||
; #### The following settings can be overwritten by later includes
|
||||
; ####
|
||||
; ################################################################################
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Timeouts
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; The timeout for serving a single request after which the worker process will be killed.
|
||||
; This option should be used when the 'max_execution_time' ini option does not stop script
|
||||
; execution for some reason.
|
||||
request_terminate_timeout = 120s
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Logging
|
||||
; ############################################################
|
||||
|
||||
[global]
|
||||
error_log = /proc/self/fd/2
|
||||
log_level = notice
|
||||
|
||||
[www]
|
||||
; if we send this to /proc/self/fd/1, it never appears
|
||||
access.log = /proc/self/fd/2
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Backlog configuration
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; A maximum of backlog incoming connections will be queued for processing.
|
||||
; If a connection request arrives with the queue full the client may receive an error with an
|
||||
; indication of ECONNREFUSED, or, if the underlying protocol supports retransmission,
|
||||
; the request may be ignored so that retries may succeed.
|
||||
|
||||
; This should not be greater than `cat /proc/sys/net/core/somaxconn`, otherwise connections
|
||||
; are silently truncated
|
||||
listen.backlog = 1024
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Worker configuration
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; static - the number of child processes is fixed (pm.max_children).
|
||||
;
|
||||
; dynamic - the number of child processes is set dynamically based on the following directives:
|
||||
; pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers.
|
||||
;
|
||||
; ondemand - the processes spawn on demand (when requested, as opposed to dynamic, where
|
||||
; pm.start_servers are started when the service is started.
|
||||
pm = ondemand
|
||||
|
||||
; The maximum number of child processes to be created
|
||||
pm.max_children = 50
|
||||
|
||||
; The number of child processes created on startup. Used only when pm is set to dynamic.
|
||||
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.
|
||||
pm.start_servers = 4
|
||||
|
||||
; The desired minimum number of idle server processes.
|
||||
pm.min_spare_servers = 2
|
||||
|
||||
; The desired maximum number of idle server processes.
|
||||
pm.max_spare_servers = 6
|
||||
|
||||
; The number of requests each child process should execute before respawning.
|
||||
; This can be useful to work around memory leaks in 3rd party libraries.
|
||||
; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
|
||||
; Default value: 0.
|
||||
pm.max_requests = 500
|
||||
|
||||
; The number of seconds after which an idle process will be killed. Used only when pm is set to ondemand
|
||||
pm.process_idle_timeout = 10s
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Include
|
||||
; ############################################################
|
||||
|
||||
|
||||
[global]
|
||||
include = /usr/local/etc/php-fpm.d/*.conf
|
||||
|
||||
|
||||
; ################################################################################
|
||||
; ####
|
||||
; #### The following settings overwrite any includes again
|
||||
; ####
|
||||
; ################################################################################
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Required for Dockerization
|
||||
; ############################################################
|
||||
|
||||
[global]
|
||||
daemonize = no
|
||||
|
||||
[www]
|
||||
; Keep env variables set by docker
|
||||
clear_env = no
|
||||
|
||||
; Redirect worker stdout and stderr into main error log. If not set, stdout and
|
||||
; stderr will be redirected to /dev/null according to FastCGI specs.
|
||||
; Note: on highloaded environement, this can cause some delay in the page
|
||||
; process time (several ms).
|
||||
; Default Value: no
|
||||
catch_workers_output = yes
|
||||
|
||||
|
||||
; ############################################################
|
||||
; User and Group
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
user = devilbox
|
||||
group = devilbox
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Networking
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; Ensure to listen here
|
||||
listen = 9000
|
||||
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,4 @@
|
||||
# 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 builder
|
||||
|
||||
|
||||
@@ -6,9 +6,8 @@ FROM devilbox/php-fpm:5.2-base as builder
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 +25,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 +82,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 +155,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 +195,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 +226,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 +244,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 +255,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 +288,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 +340,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 +355,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 +382,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 +417,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 +430,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 +451,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
|
||||
@@ -504,17 +545,6 @@ 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
|
||||
@@ -527,13 +557,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 +586,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 +634,7 @@ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 +667,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 +707,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 +733,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 +747,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 +758,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 +774,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 +796,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 +804,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,4 @@
|
||||
# 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 builder
|
||||
|
||||
|
||||
@@ -6,14 +6,14 @@ FROM devilbox/php-fpm:5.3-base as builder
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 +28,7 @@ RUN set -eux \
|
||||
libldap2-dev \
|
||||
libmcrypt-dev \
|
||||
libmemcached-dev \
|
||||
libmysqlclient-dev \
|
||||
libnghttp2-dev \
|
||||
libpcre3-dev \
|
||||
libpng-dev \
|
||||
@@ -40,15 +41,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)
|
||||
@@ -65,23 +90,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
|
||||
@@ -152,20 +160,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
|
||||
@@ -186,7 +189,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 \
|
||||
@@ -207,7 +210,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
|
||||
@@ -236,7 +239,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
|
||||
@@ -245,14 +248,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
|
||||
@@ -262,17 +257,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
|
||||
@@ -284,6 +268,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
|
||||
@@ -317,10 +312,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
|
||||
|
||||
@@ -339,19 +345,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
|
||||
@@ -359,7 +378,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) \
|
||||
@@ -389,7 +415,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 \
|
||||
@@ -406,10 +432,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
|
||||
|
||||
@@ -430,6 +457,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
|
||||
@@ -453,17 +496,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
|
||||
@@ -488,7 +520,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
|
||||
|
||||
@@ -497,8 +529,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
|
||||
|
||||
@@ -511,6 +541,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
|
||||
@@ -627,17 +668,6 @@ 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
|
||||
@@ -650,13 +680,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>
|
||||
|
||||
@@ -680,26 +710,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 -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 \
|
||||
@@ -713,14 +734,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/* \
|
||||
\
|
||||
@@ -728,11 +753,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) \
|
||||
@@ -761,6 +804,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$' \
|
||||
@@ -773,12 +818,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$' \
|
||||
@@ -809,18 +862,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$' \
|
||||
@@ -831,6 +882,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$' \
|
||||
@@ -841,8 +894,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$' \
|
||||
@@ -857,6 +908,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$' \
|
||||
@@ -865,15 +920,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$' \
|
||||
@@ -888,6 +941,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$' \
|
||||
@@ -908,8 +967,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$' \
|
||||
@@ -920,8 +977,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,4 @@
|
||||
# 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 builder
|
||||
|
||||
|
||||
@@ -6,14 +6,14 @@ FROM devilbox/php-fpm:5.4-base as builder
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 +28,7 @@ RUN set -eux \
|
||||
libldap2-dev \
|
||||
libmcrypt-dev \
|
||||
libmemcached-dev \
|
||||
libmysqlclient-dev \
|
||||
libnghttp2-dev \
|
||||
libpcre3-dev \
|
||||
libpng-dev \
|
||||
@@ -40,15 +41,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)
|
||||
@@ -65,23 +90,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
|
||||
@@ -108,7 +116,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
|
||||
|
||||
|
||||
@@ -116,7 +124,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
|
||||
|
||||
|
||||
@@ -124,7 +132,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
|
||||
|
||||
|
||||
@@ -132,7 +140,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
|
||||
|
||||
|
||||
@@ -140,7 +148,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
|
||||
|
||||
|
||||
@@ -148,30 +156,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
|
||||
|
||||
|
||||
@@ -179,17 +182,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
|
||||
|
||||
|
||||
@@ -207,12 +210,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
|
||||
|
||||
|
||||
@@ -220,7 +223,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
|
||||
|
||||
|
||||
@@ -229,27 +232,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
|
||||
|
||||
|
||||
@@ -258,18 +253,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
|
||||
|
||||
|
||||
@@ -284,6 +268,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
|
||||
@@ -321,15 +316,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
|
||||
|
||||
|
||||
@@ -347,27 +345,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) \
|
||||
@@ -390,17 +408,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
|
||||
|
||||
|
||||
@@ -408,17 +426,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
|
||||
|
||||
|
||||
@@ -426,7 +445,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
|
||||
|
||||
|
||||
@@ -434,7 +453,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
|
||||
|
||||
|
||||
@@ -449,6 +468,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
|
||||
@@ -468,18 +503,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
|
||||
|
||||
|
||||
@@ -498,7 +522,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
|
||||
|
||||
|
||||
@@ -507,8 +531,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
|
||||
|
||||
|
||||
@@ -516,9 +540,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
|
||||
|
||||
|
||||
@@ -526,7 +548,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
|
||||
|
||||
|
||||
@@ -545,7 +578,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
|
||||
|
||||
|
||||
@@ -553,7 +586,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
|
||||
|
||||
|
||||
@@ -561,7 +594,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
|
||||
|
||||
|
||||
@@ -570,7 +603,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
|
||||
|
||||
|
||||
@@ -602,7 +635,7 @@ RUN set -eux \
|
||||
# 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
|
||||
|
||||
|
||||
@@ -623,7 +656,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
|
||||
|
||||
|
||||
@@ -631,7 +664,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
|
||||
|
||||
|
||||
@@ -646,17 +679,6 @@ 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
|
||||
@@ -669,13 +691,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>
|
||||
|
||||
@@ -699,26 +721,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 -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 \
|
||||
@@ -732,14 +745,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/* \
|
||||
\
|
||||
@@ -747,11 +764,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) \
|
||||
@@ -780,6 +815,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$' \
|
||||
@@ -792,12 +829,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$' \
|
||||
@@ -828,18 +873,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$' \
|
||||
@@ -850,6 +893,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$' \
|
||||
@@ -860,8 +905,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$' \
|
||||
@@ -878,6 +921,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$' \
|
||||
@@ -886,15 +933,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$' \
|
||||
@@ -909,6 +954,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$' \
|
||||
@@ -929,8 +978,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$' \
|
||||
@@ -941,8 +988,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,4 @@
|
||||
# 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 builder
|
||||
|
||||
|
||||
@@ -6,15 +6,15 @@ FROM devilbox/php-fpm:5.5-base as builder
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 +30,7 @@ RUN set -eux \
|
||||
libmagickwand-dev \
|
||||
libmcrypt-dev \
|
||||
libmemcached-dev \
|
||||
libmysqlclient-dev \
|
||||
libnghttp2-dev \
|
||||
libpcre3-dev \
|
||||
libpng-dev \
|
||||
@@ -37,22 +38,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)
|
||||
@@ -69,23 +92,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
|
||||
@@ -159,7 +165,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
|
||||
@@ -180,7 +191,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 \
|
||||
@@ -223,7 +234,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
|
||||
@@ -249,10 +260,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
|
||||
@@ -270,17 +298,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
|
||||
@@ -292,6 +309,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
|
||||
@@ -329,14 +357,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
|
||||
|
||||
@@ -355,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
|
||||
@@ -375,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) \
|
||||
@@ -402,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 \
|
||||
@@ -419,10 +470,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
|
||||
|
||||
@@ -454,6 +506,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
|
||||
@@ -477,25 +545,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
|
||||
@@ -520,7 +569,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
|
||||
|
||||
@@ -529,8 +578,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
|
||||
|
||||
@@ -543,6 +590,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
|
||||
@@ -659,17 +717,6 @@ 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
|
||||
@@ -682,13 +729,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>
|
||||
|
||||
@@ -712,27 +759,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 -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 \
|
||||
@@ -747,6 +785,7 @@ RUN set -eux \
|
||||
librabbitmq1 \
|
||||
librdkafka1 \
|
||||
librecode0 \
|
||||
libssl1.0.0 \
|
||||
libsybdb5 \
|
||||
libtidy-0.99-0 \
|
||||
libvpx1 \
|
||||
@@ -754,8 +793,10 @@ RUN set -eux \
|
||||
libxpm4 \
|
||||
libxslt1.1 \
|
||||
libyaml-0-2 \
|
||||
libzip2 \
|
||||
snmp \
|
||||
uuid \
|
||||
zlib1g \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
@@ -763,7 +804,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 ----------
|
||||
@@ -778,7 +830,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) \
|
||||
@@ -807,6 +866,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$' \
|
||||
@@ -819,12 +880,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$' \
|
||||
@@ -857,18 +926,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$' \
|
||||
@@ -879,6 +946,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$' \
|
||||
@@ -889,8 +958,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$' \
|
||||
@@ -907,6 +974,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$' \
|
||||
@@ -915,15 +986,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$' \
|
||||
@@ -938,6 +1007,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$' \
|
||||
@@ -958,8 +1031,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$' \
|
||||
@@ -970,8 +1041,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,4 @@
|
||||
# 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 builder
|
||||
|
||||
|
||||
@@ -6,15 +6,15 @@ FROM devilbox/php-fpm:5.6-base as builder
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 +28,7 @@ RUN set -eux \
|
||||
libkrb5-dev \
|
||||
libldap2-dev \
|
||||
libmagickwand-dev \
|
||||
libmariadbclient-dev \
|
||||
libmcrypt-dev \
|
||||
libmemcached-dev \
|
||||
libnghttp2-dev \
|
||||
@@ -44,17 +45,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)
|
||||
@@ -71,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.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
|
||||
@@ -175,7 +180,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
|
||||
@@ -196,7 +201,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 \
|
||||
@@ -239,7 +244,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
|
||||
@@ -265,10 +270,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
|
||||
@@ -286,17 +308,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
|
||||
@@ -308,6 +319,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
|
||||
@@ -345,6 +367,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
|
||||
@@ -352,8 +376,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
|
||||
|
||||
@@ -372,19 +397,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
|
||||
@@ -392,7 +430,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) \
|
||||
@@ -419,7 +464,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 \
|
||||
@@ -436,10 +481,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
|
||||
|
||||
@@ -471,6 +517,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
|
||||
@@ -494,25 +556,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
|
||||
@@ -524,6 +567,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
|
||||
@@ -537,7 +588,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
|
||||
|
||||
@@ -546,8 +597,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
|
||||
|
||||
@@ -560,6 +609,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,16 +736,6 @@ 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
|
||||
@@ -698,13 +748,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>
|
||||
|
||||
@@ -728,27 +778,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 -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 \
|
||||
@@ -773,6 +814,7 @@ RUN set -eux \
|
||||
libzip4 \
|
||||
snmp \
|
||||
uuid \
|
||||
zlib1g \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
@@ -780,7 +822,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 ----------
|
||||
@@ -795,7 +848,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) \
|
||||
@@ -824,6 +884,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$' \
|
||||
@@ -836,12 +898,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$' \
|
||||
@@ -874,18 +944,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$' \
|
||||
@@ -896,6 +964,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$' \
|
||||
@@ -906,8 +976,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$' \
|
||||
@@ -924,6 +992,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$' \
|
||||
@@ -932,15 +1004,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$' \
|
||||
@@ -955,6 +1025,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$' \
|
||||
@@ -975,8 +1049,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$' \
|
||||
@@ -987,8 +1059,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,4 @@
|
||||
# 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 builder
|
||||
|
||||
|
||||
@@ -6,72 +6,83 @@ FROM devilbox/php-fpm:7.0-base as builder
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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)
|
||||
@@ -88,23 +99,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
|
||||
@@ -192,7 +186,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 +207,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 +250,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
|
||||
@@ -282,10 +276,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
|
||||
@@ -294,6 +305,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
|
||||
@@ -303,17 +343,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
|
||||
@@ -325,12 +354,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
|
||||
@@ -349,8 +389,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
|
||||
|
||||
@@ -369,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
|
||||
@@ -389,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) \
|
||||
@@ -416,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 \
|
||||
@@ -433,10 +494,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
|
||||
|
||||
@@ -444,19 +506,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
|
||||
@@ -505,6 +580,62 @@ RUN set -eux \
|
||||
&& 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
|
||||
@@ -528,40 +659,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
|
||||
@@ -573,6 +670,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
|
||||
@@ -586,7 +691,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
|
||||
|
||||
@@ -595,8 +700,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
|
||||
|
||||
@@ -609,17 +712,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
|
||||
@@ -631,6 +723,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
|
||||
@@ -699,15 +802,6 @@ RUN set -eux \
|
||||
|
||||
# -------------------- 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
|
||||
@@ -738,6 +832,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
|
||||
@@ -756,17 +861,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
|
||||
@@ -778,16 +872,6 @@ 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
|
||||
@@ -800,13 +884,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>
|
||||
|
||||
@@ -829,6 +913,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
|
||||
###
|
||||
@@ -841,66 +974,7 @@ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 \
|
||||
uuid \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& update-ca-certificates
|
||||
|
||||
|
||||
###
|
||||
### Post Install
|
||||
### Post Install executions
|
||||
###
|
||||
RUN set -eux \
|
||||
# ---------- imagick ----------
|
||||
@@ -915,7 +989,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) \
|
||||
@@ -956,12 +1037,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$' \
|
||||
@@ -994,16 +1081,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$' \
|
||||
@@ -1012,6 +1099,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$' \
|
||||
@@ -1022,8 +1111,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$' \
|
||||
@@ -1044,6 +1131,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$' \
|
||||
@@ -1052,15 +1147,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$' \
|
||||
@@ -1075,10 +1168,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$' \
|
||||
@@ -1101,8 +1196,8 @@ 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 '^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 +1206,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,4 @@
|
||||
# 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 builder
|
||||
|
||||
|
||||
@@ -6,73 +6,83 @@ FROM devilbox/php-fpm:7.1-base as builder
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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)
|
||||
@@ -89,23 +99,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
|
||||
@@ -193,7 +186,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
|
||||
@@ -214,7 +207,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 \
|
||||
@@ -257,7 +250,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
|
||||
@@ -283,10 +276,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.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
|
||||
@@ -295,6 +305,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
|
||||
@@ -304,17 +343,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 +354,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 +409,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 +442,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 +476,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 +504,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
|
||||
@@ -506,6 +578,72 @@ 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: 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
|
||||
@@ -529,40 +667,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
|
||||
@@ -574,6 +678,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
|
||||
@@ -587,7 +699,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
|
||||
|
||||
@@ -596,8 +708,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
|
||||
|
||||
@@ -621,17 +731,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
|
||||
@@ -643,6 +742,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
|
||||
@@ -710,15 +820,6 @@ RUN set -eux \
|
||||
|
||||
# -------------------- 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
|
||||
@@ -749,6 +850,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
|
||||
@@ -767,17 +879,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
|
||||
@@ -789,16 +890,6 @@ 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
|
||||
@@ -811,13 +902,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>
|
||||
|
||||
@@ -840,6 +931,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
|
||||
###
|
||||
@@ -852,68 +992,7 @@ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 \
|
||||
uuid \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& update-ca-certificates
|
||||
|
||||
|
||||
###
|
||||
### Post Install
|
||||
### Post Install executions
|
||||
###
|
||||
RUN set -eux \
|
||||
# ---------- imagick ----------
|
||||
@@ -928,7 +1007,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) \
|
||||
@@ -969,12 +1055,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$' \
|
||||
@@ -1007,16 +1099,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$' \
|
||||
@@ -1025,6 +1117,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$' \
|
||||
@@ -1035,8 +1129,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$' \
|
||||
@@ -1057,6 +1149,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$' \
|
||||
@@ -1065,15 +1165,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$' \
|
||||
@@ -1090,10 +1188,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$' \
|
||||
@@ -1116,8 +1216,8 @@ 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 '^xlswriter$' \
|
||||
&& php-fpm -m | grep -oiE '^xlswriter$' \
|
||||
&& php -m | grep -oiE '^xmlreader$' \
|
||||
&& php-fpm -m | grep -oiE '^xmlreader$' \
|
||||
&& php -m | grep -oiE '^xmlrpc$' \
|
||||
@@ -1126,12 +1226,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,4 @@
|
||||
# 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 builder
|
||||
|
||||
|
||||
@@ -6,73 +6,83 @@ FROM devilbox/php-fpm:7.2-base as builder
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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)
|
||||
@@ -89,23 +99,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
|
||||
@@ -193,7 +186,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
|
||||
@@ -214,7 +207,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 \
|
||||
@@ -257,7 +250,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
|
||||
@@ -283,10 +276,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.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
|
||||
@@ -295,6 +305,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
|
||||
@@ -306,17 +345,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
|
||||
@@ -328,12 +356,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
|
||||
@@ -372,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
|
||||
@@ -392,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) \
|
||||
@@ -419,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 \
|
||||
@@ -447,19 +506,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
|
||||
@@ -509,14 +581,80 @@ 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: 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
|
||||
@@ -532,40 +670,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
|
||||
@@ -577,6 +681,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
|
||||
@@ -590,7 +702,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
|
||||
|
||||
@@ -599,8 +711,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
|
||||
|
||||
@@ -624,17 +734,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
|
||||
@@ -646,12 +745,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
|
||||
@@ -713,15 +823,6 @@ RUN set -eux \
|
||||
|
||||
# -------------------- 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
|
||||
@@ -752,6 +853,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
|
||||
@@ -770,17 +882,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
|
||||
@@ -792,16 +893,6 @@ 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
|
||||
@@ -814,13 +905,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>
|
||||
|
||||
@@ -843,6 +934,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
|
||||
###
|
||||
@@ -855,68 +995,7 @@ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 \
|
||||
uuid \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& update-ca-certificates
|
||||
|
||||
|
||||
###
|
||||
### Post Install
|
||||
### Post Install executions
|
||||
###
|
||||
RUN set -eux \
|
||||
# ---------- imagick ----------
|
||||
@@ -931,7 +1010,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) \
|
||||
@@ -972,12 +1058,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$' \
|
||||
@@ -1010,16 +1102,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$' \
|
||||
@@ -1028,6 +1120,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$' \
|
||||
@@ -1038,8 +1132,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$' \
|
||||
@@ -1060,6 +1152,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$' \
|
||||
@@ -1068,15 +1168,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$' \
|
||||
@@ -1095,10 +1193,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$' \
|
||||
@@ -1121,8 +1221,8 @@ 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 '^xlswriter$' \
|
||||
&& php-fpm -m | grep -oiE '^xlswriter$' \
|
||||
&& php -m | grep -oiE '^xmlreader$' \
|
||||
&& php-fpm -m | grep -oiE '^xmlreader$' \
|
||||
&& php -m | grep -oiE '^xmlrpc$' \
|
||||
@@ -1131,12 +1231,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,4 @@
|
||||
# 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 builder
|
||||
|
||||
|
||||
@@ -6,72 +6,83 @@ FROM devilbox/php-fpm:7.3-base as builder
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 \
|
||||
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 +99,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
|
||||
@@ -184,7 +178,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
|
||||
@@ -205,7 +199,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 \
|
||||
@@ -248,7 +242,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
|
||||
@@ -273,10 +267,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
|
||||
@@ -285,6 +296,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
|
||||
@@ -296,17 +336,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
|
||||
@@ -318,12 +347,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
|
||||
@@ -362,19 +402,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
|
||||
@@ -382,7 +435,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) \
|
||||
@@ -409,7 +469,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 \
|
||||
@@ -437,19 +497,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
|
||||
@@ -471,10 +544,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
|
||||
@@ -499,14 +572,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
|
||||
@@ -522,40 +664,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
|
||||
@@ -567,6 +675,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
|
||||
@@ -580,7 +696,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
|
||||
|
||||
@@ -589,8 +705,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
|
||||
|
||||
@@ -614,17 +728,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
|
||||
@@ -636,12 +739,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
|
||||
@@ -703,15 +817,6 @@ RUN set -eux \
|
||||
|
||||
# -------------------- 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
|
||||
@@ -742,6 +847,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
|
||||
@@ -760,17 +876,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
|
||||
@@ -782,16 +887,6 @@ 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
|
||||
@@ -804,13 +899,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>
|
||||
|
||||
@@ -833,6 +928,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
|
||||
###
|
||||
@@ -845,67 +989,7 @@ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests \
|
||||
fftw2 \
|
||||
ghostscript \
|
||||
gir1.2-poppler-0.18 \
|
||||
imagemagick-6.q16 \
|
||||
libaio1 \
|
||||
libaspell15 \
|
||||
libc-client2007e \
|
||||
libexif12 \
|
||||
libexpat1 \
|
||||
libfbclient2 \
|
||||
libfftw3-3 \
|
||||
libfreetype6 \
|
||||
libgif7 \
|
||||
libglib2.0-0 \
|
||||
libicu67 \
|
||||
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 \
|
||||
libvpx6 \
|
||||
libwebp-dev \
|
||||
libwebp6 \
|
||||
libwebpdemux2 \
|
||||
libwebpmux3 \
|
||||
libxpm4 \
|
||||
libxslt1.1 \
|
||||
libyaml-0-2 \
|
||||
libzip4 \
|
||||
snmp \
|
||||
unixodbc \
|
||||
uuid \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& update-ca-certificates
|
||||
|
||||
|
||||
###
|
||||
### Post Install
|
||||
### Post Install executions
|
||||
###
|
||||
RUN set -eux \
|
||||
# ---------- imagick ----------
|
||||
@@ -920,7 +1004,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) \
|
||||
@@ -961,10 +1052,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 '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^exif$' \
|
||||
&& php-fpm -m | grep -oiE '^exif$' \
|
||||
&& php -m | grep -oiE '^fileinfo$' \
|
||||
@@ -997,16 +1094,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$' \
|
||||
@@ -1015,6 +1112,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$' \
|
||||
@@ -1025,8 +1124,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$' \
|
||||
@@ -1047,6 +1144,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$' \
|
||||
@@ -1055,15 +1160,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$' \
|
||||
@@ -1082,10 +1185,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$' \
|
||||
@@ -1108,8 +1213,8 @@ 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 '^xlswriter$' \
|
||||
&& php-fpm -m | grep -oiE '^xlswriter$' \
|
||||
&& php -m | grep -oiE '^xmlreader$' \
|
||||
&& php-fpm -m | grep -oiE '^xmlreader$' \
|
||||
&& php -m | grep -oiE '^xmlrpc$' \
|
||||
@@ -1118,12 +1223,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,4 @@
|
||||
# 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 builder
|
||||
|
||||
|
||||
@@ -6,72 +6,83 @@ FROM devilbox/php-fpm:7.4-base as builder
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 \
|
||||
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 +99,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
|
||||
@@ -192,7 +186,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 +207,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 +250,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
|
||||
@@ -273,10 +267,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
|
||||
@@ -285,6 +296,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
|
||||
@@ -296,17 +336,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
|
||||
@@ -318,16 +347,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
|
||||
@@ -366,19 +402,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
|
||||
@@ -386,7 +435,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) \
|
||||
@@ -413,7 +469,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 \
|
||||
@@ -441,19 +497,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
|
||||
@@ -503,6 +572,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
|
||||
@@ -510,7 +648,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
|
||||
@@ -526,32 +670,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
|
||||
@@ -573,18 +691,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
|
||||
|
||||
@@ -608,17 +726,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
|
||||
@@ -630,12 +737,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
|
||||
@@ -697,15 +814,6 @@ RUN set -eux \
|
||||
|
||||
# -------------------- 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
|
||||
@@ -726,6 +834,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: Version specific
|
||||
@@ -745,17 +864,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
|
||||
@@ -767,17 +875,6 @@ 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
|
||||
@@ -790,13 +887,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>
|
||||
|
||||
@@ -819,6 +916,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
|
||||
###
|
||||
@@ -831,67 +976,7 @@ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests \
|
||||
fftw2 \
|
||||
ghostscript \
|
||||
gir1.2-poppler-0.18 \
|
||||
imagemagick-6.q16 \
|
||||
libaio1 \
|
||||
libaspell15 \
|
||||
libc-client2007e \
|
||||
libexif12 \
|
||||
libexpat1 \
|
||||
libfbclient2 \
|
||||
libffi7 \
|
||||
libfftw3-3 \
|
||||
libfreetype6 \
|
||||
libgif7 \
|
||||
libglib2.0-0 \
|
||||
libicu67 \
|
||||
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 \
|
||||
libvpx6 \
|
||||
libwebp-dev \
|
||||
libwebp6 \
|
||||
libwebpdemux2 \
|
||||
libwebpmux3 \
|
||||
libxpm4 \
|
||||
libxslt1.1 \
|
||||
libyaml-0-2 \
|
||||
libzip4 \
|
||||
snmp \
|
||||
unixodbc \
|
||||
uuid \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& update-ca-certificates
|
||||
|
||||
|
||||
###
|
||||
### Post Install
|
||||
### Post Install executions
|
||||
###
|
||||
RUN set -eux \
|
||||
# ---------- imagick ----------
|
||||
@@ -906,7 +991,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) \
|
||||
@@ -947,10 +1039,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 '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^exif$' \
|
||||
&& php-fpm -m | grep -oiE '^exif$' \
|
||||
&& php -m | grep -oiE '^ffi$' \
|
||||
@@ -983,16 +1081,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$' \
|
||||
@@ -1001,6 +1099,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$' \
|
||||
@@ -1011,8 +1111,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$' \
|
||||
@@ -1033,6 +1131,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$' \
|
||||
@@ -1041,13 +1147,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$' \
|
||||
@@ -1066,10 +1170,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$' \
|
||||
@@ -1090,8 +1196,8 @@ RUN set -eux \
|
||||
&& 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$' \
|
||||
@@ -1100,12 +1206,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,4 @@
|
||||
# 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 builder
|
||||
|
||||
|
||||
@@ -6,15 +6,15 @@ FROM devilbox/php-fpm:8.0-base as builder
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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-2-dev \
|
||||
@@ -27,7 +27,10 @@ RUN set -eux \
|
||||
libjpeg-dev \
|
||||
libkrb5-dev \
|
||||
libldap2-dev \
|
||||
liblz4-dev \
|
||||
liblzf-dev \
|
||||
libmagickwand-dev \
|
||||
libmariadb-dev \
|
||||
libmcrypt-dev \
|
||||
libmemcached-dev \
|
||||
libnghttp2-dev \
|
||||
@@ -42,20 +45,44 @@ RUN set -eux \
|
||||
libsodium-dev \
|
||||
libssl-dev \
|
||||
libtidy-dev \
|
||||
libvips-dev \
|
||||
libvips42 \
|
||||
libvpx-dev \
|
||||
libwebp-dev \
|
||||
libwebp6 \
|
||||
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)
|
||||
@@ -159,7 +186,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
|
||||
@@ -180,7 +207,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 \
|
||||
@@ -223,7 +250,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
|
||||
@@ -243,7 +270,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
|
||||
@@ -252,6 +279,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
|
||||
@@ -263,17 +319,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
|
||||
@@ -285,23 +330,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
|
||||
@@ -340,19 +385,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
|
||||
@@ -360,7 +418,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) \
|
||||
@@ -387,7 +452,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 \
|
||||
@@ -415,19 +480,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
|
||||
@@ -477,30 +555,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) \
|
||||
@@ -511,6 +613,46 @@ 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
|
||||
@@ -535,7 +677,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
|
||||
|
||||
@@ -544,8 +686,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
|
||||
|
||||
@@ -581,14 +721,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
|
||||
|
||||
|
||||
@@ -597,7 +736,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
|
||||
@@ -657,6 +796,17 @@ RUN set -eux \
|
||||
&& 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
|
||||
@@ -668,14 +818,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
|
||||
@@ -687,6 +829,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
|
||||
@@ -698,16 +848,6 @@ 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
|
||||
@@ -720,13 +860,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>
|
||||
|
||||
@@ -749,6 +889,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
|
||||
###
|
||||
@@ -761,49 +949,7 @@ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests \
|
||||
ghostscript \
|
||||
libaio1 \
|
||||
libaspell15 \
|
||||
libc-client2007e \
|
||||
libenchant-2-2 \
|
||||
libfbclient2 \
|
||||
libffi7 \
|
||||
libfreetype6 \
|
||||
libicu67 \
|
||||
libjpeg62-turbo \
|
||||
libmagickwand-6.q16-6 \
|
||||
libmcrypt4 \
|
||||
libmemcachedutil2 \
|
||||
libnghttp2-14 \
|
||||
libpng16-16 \
|
||||
libpq5 \
|
||||
librabbitmq4 \
|
||||
librdkafka1 \
|
||||
libsybdb5 \
|
||||
libtidy5deb1 \
|
||||
libvpx6 \
|
||||
libwebp-dev \
|
||||
libwebp6 \
|
||||
libxpm4 \
|
||||
libxslt1.1 \
|
||||
libyaml-0-2 \
|
||||
libzip4 \
|
||||
snmp \
|
||||
unixodbc \
|
||||
uuid \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& update-ca-certificates
|
||||
|
||||
|
||||
###
|
||||
### Post Install
|
||||
### Post Install executions
|
||||
###
|
||||
RUN set -eux \
|
||||
# ---------- imagick ----------
|
||||
@@ -818,7 +964,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) \
|
||||
@@ -859,12 +1012,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$' \
|
||||
@@ -897,16 +1056,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$' \
|
||||
@@ -915,6 +1074,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$' \
|
||||
@@ -925,8 +1086,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$' \
|
||||
@@ -947,19 +1106,27 @@ 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 '^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$' \
|
||||
@@ -978,8 +1145,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$' \
|
||||
@@ -996,22 +1165,22 @@ RUN set -eux \
|
||||
&& 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,4 @@
|
||||
# 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 builder
|
||||
|
||||
|
||||
@@ -6,9 +6,8 @@ FROM devilbox/php-fpm:8.1-base as builder
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 \
|
||||
@@ -16,6 +15,7 @@ RUN set -eux \
|
||||
libaio-dev \
|
||||
libavif-dev \
|
||||
libbz2-dev \
|
||||
libc-ares-dev \
|
||||
libc-client-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libenchant-2-dev \
|
||||
@@ -28,8 +28,12 @@ RUN set -eux \
|
||||
libjpeg-dev \
|
||||
libkrb5-dev \
|
||||
libldap2-dev \
|
||||
liblz4-dev \
|
||||
liblzf-dev \
|
||||
libmagickwand-dev \
|
||||
libmariadb-dev \
|
||||
libmemcached-dev \
|
||||
libnghttp2-dev \
|
||||
libpcre3-dev \
|
||||
libpng-dev \
|
||||
libpq-dev \
|
||||
@@ -41,19 +45,44 @@ RUN set -eux \
|
||||
libsodium-dev \
|
||||
libssl-dev \
|
||||
libtidy-dev \
|
||||
libvips-dev \
|
||||
libvips42 \
|
||||
libvpx-dev \
|
||||
libwebp-dev \
|
||||
libwebp6 \
|
||||
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)
|
||||
@@ -143,7 +172,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
|
||||
@@ -164,7 +193,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 \
|
||||
@@ -207,7 +236,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
|
||||
@@ -227,7 +256,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
|
||||
@@ -236,14 +265,32 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||
# -------------------- 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 msgpack \
|
||||
&& pecl install lzf \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable msgpack \
|
||||
&& docker-php-ext-enable lzf \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -258,23 +305,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
|
||||
@@ -313,19 +360,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
|
||||
@@ -333,7 +393,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) \
|
||||
@@ -363,7 +430,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 \
|
||||
@@ -391,19 +458,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
|
||||
@@ -423,6 +503,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
|
||||
@@ -442,34 +533,56 @@ 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 \
|
||||
# Installation: Version specific
|
||||
# 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} \
|
||||
&& 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 \
|
||||
\
|
||||
@@ -478,6 +591,46 @@ 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
|
||||
@@ -502,7 +655,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
|
||||
|
||||
@@ -511,8 +664,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
|
||||
|
||||
@@ -548,6 +699,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
|
||||
@@ -602,6 +774,17 @@ RUN set -eux \
|
||||
&& 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
|
||||
@@ -609,7 +792,7 @@ RUN set -eux \
|
||||
&& 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) \
|
||||
&& git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \
|
||||
# Default: Install command
|
||||
&& phpize \
|
||||
&& ./configure --enable-xdebug \
|
||||
@@ -620,14 +803,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
|
||||
@@ -639,6 +814,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
|
||||
@@ -650,16 +833,6 @@ 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
|
||||
@@ -672,13 +845,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>
|
||||
|
||||
@@ -701,6 +874,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
|
||||
###
|
||||
@@ -713,47 +934,7 @@ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests \
|
||||
ghostscript \
|
||||
libaio1 \
|
||||
libaspell15 \
|
||||
libavif9 \
|
||||
libc-client2007e \
|
||||
libenchant-2-2 \
|
||||
libfbclient2 \
|
||||
libffi7 \
|
||||
libfreetype6 \
|
||||
libicu67 \
|
||||
libjpeg62-turbo \
|
||||
libmagickwand-6.q16-6 \
|
||||
libmemcachedutil2 \
|
||||
libpng16-16 \
|
||||
libpq5 \
|
||||
librabbitmq4 \
|
||||
librdkafka1 \
|
||||
libsybdb5 \
|
||||
libtidy5deb1 \
|
||||
libvpx6 \
|
||||
libwebp-dev \
|
||||
libwebp6 \
|
||||
libxpm4 \
|
||||
libxslt1.1 \
|
||||
libyaml-0-2 \
|
||||
libzip4 \
|
||||
snmp \
|
||||
uuid \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& update-ca-certificates
|
||||
|
||||
|
||||
###
|
||||
### Post Install
|
||||
### Post Install executions
|
||||
###
|
||||
RUN set -eux \
|
||||
# ---------- imagick ----------
|
||||
@@ -768,7 +949,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) \
|
||||
@@ -809,12 +997,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$' \
|
||||
@@ -847,14 +1041,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 '^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$' \
|
||||
@@ -863,6 +1057,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$' \
|
||||
@@ -873,8 +1069,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$' \
|
||||
@@ -889,23 +1083,33 @@ 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 '^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$' \
|
||||
@@ -924,6 +1128,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$' \
|
||||
@@ -938,22 +1148,22 @@ RUN set -eux \
|
||||
&& 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
|
||||
|
||||
|
||||
|
||||
1128
Dockerfiles/mods/Dockerfile-8.2
Normal file
1128
Dockerfiles/mods/Dockerfile-8.2
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,4 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
# 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 +26,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 5.2-prod"
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 +35,21 @@ RUN set -eux \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -q -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,4 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
# 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 +26,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 5.3-prod"
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 +35,21 @@ RUN set -eux \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -q -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,4 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
# 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 +26,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 5.4-prod"
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 +35,21 @@ RUN set -eux \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -q -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,4 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
# 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 +26,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 5.5-prod"
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 +35,21 @@ RUN set -eux \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -q -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,4 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
# 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 +26,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 5.6-prod"
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 +35,21 @@ RUN set -eux \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -q -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,4 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
# 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 +26,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 7.0-prod"
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 +35,21 @@ RUN set -eux \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -q -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,4 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
# 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 +26,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 7.1-prod"
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 +35,21 @@ RUN set -eux \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -q -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,4 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
# 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 +26,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 7.2-prod"
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 +35,21 @@ RUN set -eux \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -q -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,4 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
# 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 +26,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 7.3-prod"
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 +35,21 @@ RUN set -eux \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -q -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,4 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
# 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 +26,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 7.4-prod"
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 +35,21 @@ RUN set -eux \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -q -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,4 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
# 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 +26,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 8.0-prod"
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 +35,21 @@ RUN set -eux \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -q -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,4 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
# 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 +26,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 8.1-prod"
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 +35,21 @@ RUN set -eux \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -q -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)
|
||||
|
||||
|
||||
###
|
||||
|
||||
101
Dockerfiles/prod/Dockerfile-8.2
Normal file
101
Dockerfiles/prod/Dockerfile-8.2
Normal file
@@ -0,0 +1,101 @@
|
||||
# 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
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-work.j2 instead.
|
||||
FROM devilbox/php-fpm:5.2-prod
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Labels
|
||||
@@ -45,9 +46,8 @@ ENV BASH_PROFILE=".bashrc"
|
||||
### Install Tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
@@ -55,20 +55,12 @@ RUN set -eux \
|
||||
gnupg \
|
||||
\
|
||||
&& echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until \
|
||||
&& echo "deb http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& 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 \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv A1715D88E1DF1F24 \
|
||||
&& echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu wily main" > /etc/apt/sources.list.d/git.list \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& 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 \
|
||||
&& curl -sS -k -L --fail https://dl.yarnpkg.com/debian/pubkey.gpg | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 \
|
||||
ack-grep \
|
||||
aspell \
|
||||
autoconf \
|
||||
@@ -102,10 +94,10 @@ RUN set -eux \
|
||||
libyaml-dev \
|
||||
locales \
|
||||
make \
|
||||
mongodb-org-shell \
|
||||
mongodb-org-tools \
|
||||
moreutils \
|
||||
\
|
||||
mysql-client \
|
||||
\
|
||||
mupdf \
|
||||
mupdf-tools \
|
||||
nano \
|
||||
@@ -114,7 +106,6 @@ RUN set -eux \
|
||||
openssh-client \
|
||||
patch \
|
||||
patchelf \
|
||||
postgresql-client \
|
||||
redis-tools \
|
||||
rsync \
|
||||
rubygems \
|
||||
@@ -132,16 +123,14 @@ RUN set -eux \
|
||||
wget \
|
||||
whois \
|
||||
xz-utils \
|
||||
yarn \
|
||||
zip \
|
||||
zlib1g-dev \
|
||||
zsh \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -q -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
@@ -159,9 +148,18 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- nvm --------------------
|
||||
&& git clone https://github.com/creationix/nvm /opt/nvm \
|
||||
&& cd /opt/nvm \
|
||||
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
|
||||
&& NODE_VERSION="17" \
|
||||
\
|
||||
&& 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 /opt/nvm \
|
||||
&& curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh" \
|
||||
| NVM_DIR="/opt/nvm" bash \
|
||||
\
|
||||
&& { \
|
||||
echo 'export NVM_DIR="/opt/nvm"'; \
|
||||
@@ -169,13 +167,40 @@ RUN set -eux \
|
||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||
} >> /home/devilbox/.bashrc \
|
||||
\
|
||||
&& chown -R devilbox:devilbox /opt/nvm \
|
||||
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm install node' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; nvm install ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; nvm use ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; corepack enable" devilbox \
|
||||
\
|
||||
&& chmod 0777 /opt/nvm \
|
||||
&& find /opt/nvm -type f -print0 | xargs -n1 -0 chmod go+w \
|
||||
&& find /opt/nvm -type d -print0 | xargs -n1 -0 chmod 0777 \
|
||||
\
|
||||
\
|
||||
# -------------------- pgsql_client --------------------
|
||||
&& 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/* \
|
||||
\
|
||||
# -------------------- mongo_client --------------------
|
||||
&& 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/* \
|
||||
\
|
||||
# -------------------- awesomeci --------------------
|
||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||
&& cd /usr/local/src/awesome-ci \
|
||||
@@ -187,33 +212,23 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- gitflow --------------------
|
||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
||||
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||
&& cd /tmp/gitflow \
|
||||
&& make install \
|
||||
&& cd / && rm -rf /tmp/gitflow \
|
||||
\
|
||||
\
|
||||
# -------------------- homebrew --------------------
|
||||
&& git clone https://github.com/Homebrew/brew.git /usr/local/src/brew \
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/brew \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "PATH=/usr/local/src/brew/bin:/usr/local/src/brew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export MANPATH=/usr/local/src/brew/manpages:${MANPATH}" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export INFOPATH=/usr/local/src/brew/manpages:${INFOPATH}" >> /home/devilbox/${v}' \
|
||||
&& su - ${MY_USER} -c '/usr/local/src/brew/bin/brew config' \
|
||||
\
|
||||
\
|
||||
# -------------------- linkcheck --------------------
|
||||
&& curl -sS -L --fail https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||
&& chmod +x /usr/local/bin/linkcheck \
|
||||
\
|
||||
\
|
||||
# -------------------- mhsendmail --------------------
|
||||
&& curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
@@ -250,53 +265,60 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- wkhtmltopdf --------------------
|
||||
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+jessie_amd64\.deb' | head -1 )" \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb \
|
||||
&& VERSION="$(curl -sSL -L --fail https://api.github.com/repos/wkhtmltopdf/wkhtmltopdf/releases | awk -F\" '/wkhtmltopdf.*.jessie_amd64\.deb/{print $(NF-1)}' | head -1 )" \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb ${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||
fi \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
\
|
||||
# -------------------- cleanup --------------------
|
||||
&& rm -rf /home/${MY_USER}/.*json \
|
||||
&& rm -rf /home/${MY_USER}/.cache \
|
||||
&& rm -rf /home/${MY_USER}/.composer \
|
||||
&& rm -rf /home/${MY_USER}/.config \
|
||||
&& rm -rf /home/${MY_USER}/.drush \
|
||||
&& rm -rf /home/${MY_USER}/.subversion \
|
||||
&& rm -rf /home/${MY_USER}/.v8* \
|
||||
\
|
||||
&& rm -rf /root/.*json \
|
||||
&& rm -rf /root/.cache \
|
||||
&& rm -rf /root/.composer \
|
||||
&& rm -rf /root/.config \
|
||||
&& rm -rf /root/.drush \
|
||||
&& rm -rf /root/.subversion \
|
||||
&& rm -rf /root/.v8* \
|
||||
\
|
||||
&& rm -rf /tmp/* \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/*; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /root/.gem || true ) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||
&& rm -rf /tmp/* \
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
@@ -305,12 +327,47 @@ RUN set -eux \
|
||||
###
|
||||
RUN set -eux \
|
||||
\
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
@@ -360,17 +417,52 @@ RUN set -eux \
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||
\
|
||||
\
|
||||
&& ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox \
|
||||
&& rm -rf /home/devilbox/.npm \
|
||||
&& rm -rf /home/devilbox/.cache \
|
||||
&& rm -rf /home/devilbox/.config \
|
||||
&& rm -rf /tmp/* \
|
||||
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||
fi \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
@@ -390,22 +482,53 @@ RUN set -eux \
|
||||
&& gem install mdl -v 0.5.0 \
|
||||
\
|
||||
\
|
||||
&& rm -rf /root/.gem \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
### Install pip (Python) packages
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- ansible --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall ansible==3.4.0 || true \
|
||||
\
|
||||
# -------------------- yamllint --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||
\
|
||||
@@ -413,13 +536,47 @@ RUN set -eux \
|
||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||
\
|
||||
\
|
||||
&& rm -rf /root/.cache/pip \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
@@ -427,10 +584,10 @@ RUN set -eux \
|
||||
###
|
||||
RUN \
|
||||
{ \
|
||||
echo 'PATH="${PATH}:${HOME}/.yarn/bin"'; \
|
||||
echo 'PATH="${PATH}:${HOME}/.composer/vendor/bin"'; \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo 'PATH="${PATH}:/opt/nvm/versions/node/$(nvm version default)/bin"'; \
|
||||
echo 'PATH="${HOME}/.yarn/bin:${PATH}"'; \
|
||||
echo 'PATH="${HOME}/.composer/vendor/bin:${PATH}"'; \
|
||||
echo 'PATH="/opt/nvm/versions/node/$(nvm version default)/bin:${PATH}"'; \
|
||||
echo "export PATH"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
@@ -466,19 +623,36 @@ RUN set -eux \
|
||||
|
||||
RUN set -eux \
|
||||
# -------------------- Software --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; yarn --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
\
|
||||
&& 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 \
|
||||
\
|
||||
&& 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 \
|
||||
\
|
||||
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||
&& git-flow version | grep -E '[0-9][.0-9]+' \
|
||||
&& linkcheck --version | grep -E '^linkcheck\sv[0-9][.0-9]+' \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& phpcs --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& phpcbf --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)" \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)"; fi \
|
||||
\
|
||||
# -------------------- Composer --------------------
|
||||
\
|
||||
# -------------------- PIP --------------------
|
||||
&& ansible --version | grep -E '^ansible [0-9][.0-9]+$' \
|
||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||
\
|
||||
@@ -499,14 +673,42 @@ RUN set -eux \
|
||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Cleanup --------------------
|
||||
&& rm -rf /home/devilbox/.cache/ \
|
||||
&& rm -rf /home/devilbox/.config/ \
|
||||
&& rm -rf /root/.ansible \
|
||||
&& rm -rf /root/.console \
|
||||
&& rm -rf /root/.composer \
|
||||
&& rm -rf /root/.drush \
|
||||
&& rm -rf /root/.pm2 \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-work.j2 instead.
|
||||
FROM devilbox/php-fpm:5.3-prod
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Labels
|
||||
@@ -45,9 +46,8 @@ ENV BASH_PROFILE=".bashrc"
|
||||
### Install Tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
@@ -55,20 +55,12 @@ RUN set -eux \
|
||||
gnupg \
|
||||
\
|
||||
&& echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until \
|
||||
&& echo "deb http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& 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 \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv A1715D88E1DF1F24 \
|
||||
&& echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu wily main" > /etc/apt/sources.list.d/git.list \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& 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 \
|
||||
&& curl -sS -k -L --fail https://dl.yarnpkg.com/debian/pubkey.gpg | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 \
|
||||
ack-grep \
|
||||
aspell \
|
||||
autoconf \
|
||||
@@ -102,10 +94,10 @@ RUN set -eux \
|
||||
libyaml-dev \
|
||||
locales \
|
||||
make \
|
||||
mongodb-org-shell \
|
||||
mongodb-org-tools \
|
||||
moreutils \
|
||||
\
|
||||
mysql-client \
|
||||
\
|
||||
mupdf \
|
||||
mupdf-tools \
|
||||
nano \
|
||||
@@ -114,7 +106,6 @@ RUN set -eux \
|
||||
openssh-client \
|
||||
patch \
|
||||
patchelf \
|
||||
postgresql-client \
|
||||
redis-tools \
|
||||
rsync \
|
||||
rubygems \
|
||||
@@ -132,16 +123,14 @@ RUN set -eux \
|
||||
wget \
|
||||
whois \
|
||||
xz-utils \
|
||||
yarn \
|
||||
zip \
|
||||
zlib1g-dev \
|
||||
zsh \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -q -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
@@ -149,11 +138,15 @@ RUN set -eux \
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- composer --------------------
|
||||
&& curl -sS -L --fail https://getcomposer.org/composer-1.phar > /usr/local/bin/composer-1 \
|
||||
&& curl -sS -L --fail https://getcomposer.org/composer-2.phar > /usr/local/bin/composer-2 \
|
||||
&& COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.2.x" \
|
||||
\
|
||||
&& 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 \
|
||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||
\
|
||||
&& ln -sf /usr/local/bin/composer-1 /usr/local/bin/composer \
|
||||
\
|
||||
\
|
||||
# -------------------- pip --------------------
|
||||
@@ -167,9 +160,18 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- nvm --------------------
|
||||
&& git clone https://github.com/creationix/nvm /opt/nvm \
|
||||
&& cd /opt/nvm \
|
||||
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
|
||||
&& NODE_VERSION="17" \
|
||||
\
|
||||
&& 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 /opt/nvm \
|
||||
&& curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh" \
|
||||
| NVM_DIR="/opt/nvm" bash \
|
||||
\
|
||||
&& { \
|
||||
echo 'export NVM_DIR="/opt/nvm"'; \
|
||||
@@ -177,13 +179,40 @@ RUN set -eux \
|
||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||
} >> /home/devilbox/.bashrc \
|
||||
\
|
||||
&& chown -R devilbox:devilbox /opt/nvm \
|
||||
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm install node' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; nvm install ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; nvm use ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; corepack enable" devilbox \
|
||||
\
|
||||
&& chmod 0777 /opt/nvm \
|
||||
&& find /opt/nvm -type f -print0 | xargs -n1 -0 chmod go+w \
|
||||
&& find /opt/nvm -type d -print0 | xargs -n1 -0 chmod 0777 \
|
||||
\
|
||||
\
|
||||
# -------------------- pgsql_client --------------------
|
||||
&& 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/* \
|
||||
\
|
||||
# -------------------- mongo_client --------------------
|
||||
&& 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/* \
|
||||
\
|
||||
# -------------------- awesomeci --------------------
|
||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||
&& cd /usr/local/src/awesome-ci \
|
||||
@@ -209,33 +238,23 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- gitflow --------------------
|
||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
||||
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||
&& cd /tmp/gitflow \
|
||||
&& make install \
|
||||
&& cd / && rm -rf /tmp/gitflow \
|
||||
\
|
||||
\
|
||||
# -------------------- homebrew --------------------
|
||||
&& git clone https://github.com/Homebrew/brew.git /usr/local/src/brew \
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/brew \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "PATH=/usr/local/src/brew/bin:/usr/local/src/brew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export MANPATH=/usr/local/src/brew/manpages:${MANPATH}" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export INFOPATH=/usr/local/src/brew/manpages:${INFOPATH}" >> /home/devilbox/${v}' \
|
||||
&& su - ${MY_USER} -c '/usr/local/src/brew/bin/brew config' \
|
||||
\
|
||||
\
|
||||
# -------------------- linkcheck --------------------
|
||||
&& curl -sS -L --fail https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||
&& chmod +x /usr/local/bin/linkcheck \
|
||||
\
|
||||
\
|
||||
# -------------------- mhsendmail --------------------
|
||||
&& curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
@@ -300,57 +319,64 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- wkhtmltopdf --------------------
|
||||
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+jessie_amd64\.deb' | head -1 )" \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb \
|
||||
&& VERSION="$(curl -sSL -L --fail https://api.github.com/repos/wkhtmltopdf/wkhtmltopdf/releases | awk -F\" '/wkhtmltopdf.*.jessie_amd64\.deb/{print $(NF-1)}' | head -1 )" \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb ${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||
fi \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/*; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- wpcli --------------------
|
||||
&& curl -sS -L --fail https://github.com/wp-cli/wp-cli/releases/download/v1.5.1/wp-cli-1.5.1.phar -L -o /usr/local/bin/wp \
|
||||
&& chmod +x /usr/local/bin/wp \
|
||||
\
|
||||
# -------------------- cleanup --------------------
|
||||
&& rm -rf /home/${MY_USER}/.*json \
|
||||
&& rm -rf /home/${MY_USER}/.cache \
|
||||
&& rm -rf /home/${MY_USER}/.composer \
|
||||
&& rm -rf /home/${MY_USER}/.config \
|
||||
&& rm -rf /home/${MY_USER}/.drush \
|
||||
&& rm -rf /home/${MY_USER}/.subversion \
|
||||
&& rm -rf /home/${MY_USER}/.v8* \
|
||||
\
|
||||
&& rm -rf /root/.*json \
|
||||
&& rm -rf /root/.cache \
|
||||
&& rm -rf /root/.composer \
|
||||
&& rm -rf /root/.config \
|
||||
&& rm -rf /root/.drush \
|
||||
&& rm -rf /root/.subversion \
|
||||
&& rm -rf /root/.v8* \
|
||||
\
|
||||
&& rm -rf /tmp/* \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /root/.gem || true ) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||
&& rm -rf /tmp/* \
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
@@ -358,20 +384,51 @@ RUN set -eux \
|
||||
### Install Composer (PHP)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- codeception --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require codeception/codeception \
|
||||
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/ \
|
||||
\
|
||||
# -------------------- prestissimo --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
||||
\
|
||||
\
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
@@ -421,17 +478,52 @@ RUN set -eux \
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||
\
|
||||
\
|
||||
&& ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox \
|
||||
&& rm -rf /home/devilbox/.npm \
|
||||
&& rm -rf /home/devilbox/.cache \
|
||||
&& rm -rf /home/devilbox/.config \
|
||||
&& rm -rf /tmp/* \
|
||||
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||
fi \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
@@ -451,22 +543,53 @@ RUN set -eux \
|
||||
&& gem install mdl -v 0.5.0 \
|
||||
\
|
||||
\
|
||||
&& rm -rf /root/.gem \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
### Install pip (Python) packages
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- ansible --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall ansible==3.4.0 || true \
|
||||
\
|
||||
# -------------------- yamllint --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||
\
|
||||
@@ -474,13 +597,47 @@ RUN set -eux \
|
||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||
\
|
||||
\
|
||||
&& rm -rf /root/.cache/pip \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
@@ -488,10 +645,10 @@ RUN set -eux \
|
||||
###
|
||||
RUN \
|
||||
{ \
|
||||
echo 'PATH="${PATH}:${HOME}/.yarn/bin"'; \
|
||||
echo 'PATH="${PATH}:${HOME}/.composer/vendor/bin"'; \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo 'PATH="${PATH}:/opt/nvm/versions/node/$(nvm version default)/bin"'; \
|
||||
echo 'PATH="${HOME}/.yarn/bin:${PATH}"'; \
|
||||
echo 'PATH="${HOME}/.composer/vendor/bin:${PATH}"'; \
|
||||
echo 'PATH="/opt/nvm/versions/node/$(nvm version default)/bin:${PATH}"'; \
|
||||
echo "export PATH"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
@@ -527,8 +684,26 @@ RUN set -eux \
|
||||
|
||||
RUN set -eux \
|
||||
# -------------------- Software --------------------
|
||||
&& composer --version 2>/dev/null | grep -E 'version\s*[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[0-9][.0-9]+' \
|
||||
&& composer --version 2>/dev/null | grep -Ei '(composer|version)\s*[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; yarn --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
\
|
||||
&& 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 \
|
||||
\
|
||||
&& 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 \
|
||||
\
|
||||
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
||||
&& git-flow version | grep -E '[0-9][.0-9]+' \
|
||||
@@ -540,14 +715,12 @@ RUN set -eux \
|
||||
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
||||
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||
&& phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' \
|
||||
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)" \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)"; fi \
|
||||
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Composer --------------------
|
||||
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' \
|
||||
\
|
||||
# -------------------- PIP --------------------
|
||||
&& ansible --version | grep -E '^ansible [0-9][.0-9]+$' \
|
||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||
\
|
||||
@@ -568,14 +741,42 @@ RUN set -eux \
|
||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Cleanup --------------------
|
||||
&& rm -rf /home/devilbox/.cache/ \
|
||||
&& rm -rf /home/devilbox/.config/ \
|
||||
&& rm -rf /root/.ansible \
|
||||
&& rm -rf /root/.console \
|
||||
&& rm -rf /root/.composer \
|
||||
&& rm -rf /root/.drush \
|
||||
&& rm -rf /root/.pm2 \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-work.j2 instead.
|
||||
FROM devilbox/php-fpm:5.4-prod
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Labels
|
||||
@@ -45,9 +46,8 @@ ENV BASH_PROFILE=".bashrc"
|
||||
### Install Tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
@@ -55,20 +55,12 @@ RUN set -eux \
|
||||
gnupg \
|
||||
\
|
||||
&& echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until \
|
||||
&& echo "deb http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& 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 \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv A1715D88E1DF1F24 \
|
||||
&& echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu wily main" > /etc/apt/sources.list.d/git.list \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& 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 \
|
||||
&& curl -sS -k -L --fail https://dl.yarnpkg.com/debian/pubkey.gpg | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 \
|
||||
ack-grep \
|
||||
aspell \
|
||||
autoconf \
|
||||
@@ -102,10 +94,10 @@ RUN set -eux \
|
||||
libyaml-dev \
|
||||
locales \
|
||||
make \
|
||||
mongodb-org-shell \
|
||||
mongodb-org-tools \
|
||||
moreutils \
|
||||
\
|
||||
mysql-client \
|
||||
\
|
||||
mupdf \
|
||||
mupdf-tools \
|
||||
nano \
|
||||
@@ -114,7 +106,6 @@ RUN set -eux \
|
||||
openssh-client \
|
||||
patch \
|
||||
patchelf \
|
||||
postgresql-client \
|
||||
redis-tools \
|
||||
rsync \
|
||||
rubygems \
|
||||
@@ -132,16 +123,14 @@ RUN set -eux \
|
||||
wget \
|
||||
whois \
|
||||
xz-utils \
|
||||
yarn \
|
||||
zip \
|
||||
zlib1g-dev \
|
||||
zsh \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -q -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
@@ -149,11 +138,15 @@ RUN set -eux \
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- composer --------------------
|
||||
&& curl -sS -L --fail https://getcomposer.org/composer-1.phar > /usr/local/bin/composer-1 \
|
||||
&& curl -sS -L --fail https://getcomposer.org/composer-2.phar > /usr/local/bin/composer-2 \
|
||||
&& COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.2.x" \
|
||||
\
|
||||
&& 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 \
|
||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||
\
|
||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||
\
|
||||
\
|
||||
# -------------------- pip --------------------
|
||||
@@ -167,9 +160,18 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- nvm --------------------
|
||||
&& git clone https://github.com/creationix/nvm /opt/nvm \
|
||||
&& cd /opt/nvm \
|
||||
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
|
||||
&& NODE_VERSION="17" \
|
||||
\
|
||||
&& 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 /opt/nvm \
|
||||
&& curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh" \
|
||||
| NVM_DIR="/opt/nvm" bash \
|
||||
\
|
||||
&& { \
|
||||
echo 'export NVM_DIR="/opt/nvm"'; \
|
||||
@@ -177,13 +179,40 @@ RUN set -eux \
|
||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||
} >> /home/devilbox/.bashrc \
|
||||
\
|
||||
&& chown -R devilbox:devilbox /opt/nvm \
|
||||
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm install node' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; nvm install ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; nvm use ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; corepack enable" devilbox \
|
||||
\
|
||||
&& chmod 0777 /opt/nvm \
|
||||
&& find /opt/nvm -type f -print0 | xargs -n1 -0 chmod go+w \
|
||||
&& find /opt/nvm -type d -print0 | xargs -n1 -0 chmod 0777 \
|
||||
\
|
||||
\
|
||||
# -------------------- pgsql_client --------------------
|
||||
&& 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/* \
|
||||
\
|
||||
# -------------------- mongo_client --------------------
|
||||
&& 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/* \
|
||||
\
|
||||
# -------------------- awesomeci --------------------
|
||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||
&& cd /usr/local/src/awesome-ci \
|
||||
@@ -227,24 +256,12 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- gitflow --------------------
|
||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
||||
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||
&& cd /tmp/gitflow \
|
||||
&& make install \
|
||||
&& cd / && rm -rf /tmp/gitflow \
|
||||
\
|
||||
\
|
||||
# -------------------- homebrew --------------------
|
||||
&& git clone https://github.com/Homebrew/brew.git /usr/local/src/brew \
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/brew \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "PATH=/usr/local/src/brew/bin:/usr/local/src/brew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export MANPATH=/usr/local/src/brew/manpages:${MANPATH}" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export INFOPATH=/usr/local/src/brew/manpages:${INFOPATH}" >> /home/devilbox/${v}' \
|
||||
&& su - ${MY_USER} -c '/usr/local/src/brew/bin/brew config' \
|
||||
\
|
||||
\
|
||||
# -------------------- laravel --------------------
|
||||
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
||||
&& cd /usr/local/src/laravel-installer \
|
||||
@@ -262,9 +279,11 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- mhsendmail --------------------
|
||||
&& curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
@@ -329,62 +348,71 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- symfony --------------------
|
||||
&& SYMFONY_VERSION="$( curl -sS -L --fail https://get.symfony.com/cli/LATEST )" \
|
||||
&& curl -sS -L --fail "https://github.com/symfony/cli/releases/download/v${SYMFONY_VERSION}/symfony_linux_amd64" > /usr/local/bin/symfony \
|
||||
&& chmod +x /usr/local/bin/symfony \
|
||||
&& VERSION="$(curl -s https://api.github.com/repos/symfony-cli/symfony-cli/releases/latest | awk -F\" '/symfony-cli_.*._amd64\.deb/{print $(NF-1)}' | head -1 | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/')" \
|
||||
&& curl -sS -L --fail -o /tmp/symfonycli.deb https://github.com/symfony-cli/symfony-cli/releases/download/v${VERSION}/symfony-cli_${VERSION}_$(dpkg-architecture --query DEB_HOST_ARCH).deb \
|
||||
&& dpkg -i /tmp/symfonycli.deb \
|
||||
&& rm -f /tmp/symfonycli.deb \
|
||||
\
|
||||
\
|
||||
# -------------------- wkhtmltopdf --------------------
|
||||
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+jessie_amd64\.deb' | head -1 )" \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb \
|
||||
&& VERSION="$(curl -sSL -L --fail https://api.github.com/repos/wkhtmltopdf/wkhtmltopdf/releases | awk -F\" '/wkhtmltopdf.*.jessie_amd64\.deb/{print $(NF-1)}' | head -1 )" \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb ${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||
fi \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/*; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- wpcli --------------------
|
||||
&& curl -sS -L --fail https://github.com/wp-cli/wp-cli/releases/download/v2.4.0/wp-cli-2.4.0.phar -L -o /usr/local/bin/wp \
|
||||
&& chmod +x /usr/local/bin/wp \
|
||||
\
|
||||
# -------------------- cleanup --------------------
|
||||
&& rm -rf /home/${MY_USER}/.*json \
|
||||
&& rm -rf /home/${MY_USER}/.cache \
|
||||
&& rm -rf /home/${MY_USER}/.composer \
|
||||
&& rm -rf /home/${MY_USER}/.config \
|
||||
&& rm -rf /home/${MY_USER}/.drush \
|
||||
&& rm -rf /home/${MY_USER}/.subversion \
|
||||
&& rm -rf /home/${MY_USER}/.v8* \
|
||||
\
|
||||
&& rm -rf /root/.*json \
|
||||
&& rm -rf /root/.cache \
|
||||
&& rm -rf /root/.composer \
|
||||
&& rm -rf /root/.config \
|
||||
&& rm -rf /root/.drush \
|
||||
&& rm -rf /root/.subversion \
|
||||
&& rm -rf /root/.v8* \
|
||||
\
|
||||
&& rm -rf /tmp/* \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /root/.gem || true ) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||
&& rm -rf /tmp/* \
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
@@ -400,12 +428,47 @@ RUN set -eux \
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
||||
\
|
||||
\
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
@@ -455,17 +518,52 @@ RUN set -eux \
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||
\
|
||||
\
|
||||
&& ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox \
|
||||
&& rm -rf /home/devilbox/.npm \
|
||||
&& rm -rf /home/devilbox/.cache \
|
||||
&& rm -rf /home/devilbox/.config \
|
||||
&& rm -rf /tmp/* \
|
||||
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||
fi \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
@@ -485,22 +583,53 @@ RUN set -eux \
|
||||
&& gem install mdl -v 0.5.0 \
|
||||
\
|
||||
\
|
||||
&& rm -rf /root/.gem \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
### Install pip (Python) packages
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- ansible --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall ansible==3.4.0 || true \
|
||||
\
|
||||
# -------------------- yamllint --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||
\
|
||||
@@ -508,13 +637,47 @@ RUN set -eux \
|
||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||
\
|
||||
\
|
||||
&& rm -rf /root/.cache/pip \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
@@ -522,10 +685,10 @@ RUN set -eux \
|
||||
###
|
||||
RUN \
|
||||
{ \
|
||||
echo 'PATH="${PATH}:${HOME}/.yarn/bin"'; \
|
||||
echo 'PATH="${PATH}:${HOME}/.composer/vendor/bin"'; \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo 'PATH="${PATH}:/opt/nvm/versions/node/$(nvm version default)/bin"'; \
|
||||
echo 'PATH="${HOME}/.yarn/bin:${PATH}"'; \
|
||||
echo 'PATH="${HOME}/.composer/vendor/bin:${PATH}"'; \
|
||||
echo 'PATH="/opt/nvm/versions/node/$(nvm version default)/bin:${PATH}"'; \
|
||||
echo "export PATH"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
@@ -561,8 +724,26 @@ RUN set -eux \
|
||||
|
||||
RUN set -eux \
|
||||
# -------------------- Software --------------------
|
||||
&& composer --version 2>/dev/null | grep -E 'version\s*[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[0-9][.0-9]+' \
|
||||
&& composer --version 2>/dev/null | grep -Ei '(composer|version)\s*[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; yarn --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
\
|
||||
&& 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 \
|
||||
\
|
||||
&& 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 \
|
||||
\
|
||||
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' \
|
||||
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
||||
@@ -577,15 +758,14 @@ RUN set -eux \
|
||||
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
||||
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||
&& phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' \
|
||||
&& symfony -V | grep -Ei 'version\s*.*v[0-9][.0-9]+' \
|
||||
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)" \
|
||||
&& symfony -V | grep -Ei 'version\s[0-9][.0-9]+' \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)"; fi \
|
||||
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Composer --------------------
|
||||
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' \
|
||||
\
|
||||
# -------------------- PIP --------------------
|
||||
&& ansible --version | grep -E '^ansible [0-9][.0-9]+$' \
|
||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||
\
|
||||
@@ -606,14 +786,42 @@ RUN set -eux \
|
||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Cleanup --------------------
|
||||
&& rm -rf /home/devilbox/.cache/ \
|
||||
&& rm -rf /home/devilbox/.config/ \
|
||||
&& rm -rf /root/.ansible \
|
||||
&& rm -rf /root/.console \
|
||||
&& rm -rf /root/.composer \
|
||||
&& rm -rf /root/.drush \
|
||||
&& rm -rf /root/.pm2 \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-work.j2 instead.
|
||||
FROM devilbox/php-fpm:5.5-prod
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Labels
|
||||
@@ -45,9 +46,8 @@ ENV BASH_PROFILE=".bashrc"
|
||||
### Install Tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
@@ -55,20 +55,12 @@ RUN set -eux \
|
||||
gnupg \
|
||||
\
|
||||
&& echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until \
|
||||
&& echo "deb http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& 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 \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv A1715D88E1DF1F24 \
|
||||
&& echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu wily main" > /etc/apt/sources.list.d/git.list \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& 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 \
|
||||
&& curl -sS -k -L --fail https://dl.yarnpkg.com/debian/pubkey.gpg | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 \
|
||||
ack-grep \
|
||||
aspell \
|
||||
autoconf \
|
||||
@@ -102,10 +94,10 @@ RUN set -eux \
|
||||
libyaml-dev \
|
||||
locales \
|
||||
make \
|
||||
mongodb-org-shell \
|
||||
mongodb-org-tools \
|
||||
moreutils \
|
||||
\
|
||||
mysql-client \
|
||||
\
|
||||
mupdf \
|
||||
mupdf-tools \
|
||||
nano \
|
||||
@@ -114,7 +106,6 @@ RUN set -eux \
|
||||
openssh-client \
|
||||
patch \
|
||||
patchelf \
|
||||
postgresql-client \
|
||||
redis-tools \
|
||||
rsync \
|
||||
rubygems \
|
||||
@@ -132,16 +123,14 @@ RUN set -eux \
|
||||
wget \
|
||||
whois \
|
||||
xz-utils \
|
||||
yarn \
|
||||
zip \
|
||||
zlib1g-dev \
|
||||
zsh \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -q -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
@@ -149,11 +138,15 @@ RUN set -eux \
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- composer --------------------
|
||||
&& curl -sS -L --fail https://getcomposer.org/composer-1.phar > /usr/local/bin/composer-1 \
|
||||
&& curl -sS -L --fail https://getcomposer.org/composer-2.phar > /usr/local/bin/composer-2 \
|
||||
&& COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.2.x" \
|
||||
\
|
||||
&& 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 \
|
||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||
\
|
||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||
\
|
||||
\
|
||||
# -------------------- pip --------------------
|
||||
@@ -167,9 +160,18 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- nvm --------------------
|
||||
&& git clone https://github.com/creationix/nvm /opt/nvm \
|
||||
&& cd /opt/nvm \
|
||||
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
|
||||
&& NODE_VERSION="17" \
|
||||
\
|
||||
&& 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 /opt/nvm \
|
||||
&& curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh" \
|
||||
| NVM_DIR="/opt/nvm" bash \
|
||||
\
|
||||
&& { \
|
||||
echo 'export NVM_DIR="/opt/nvm"'; \
|
||||
@@ -177,13 +179,40 @@ RUN set -eux \
|
||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||
} >> /home/devilbox/.bashrc \
|
||||
\
|
||||
&& chown -R devilbox:devilbox /opt/nvm \
|
||||
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm install node' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; nvm install ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; nvm use ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; corepack enable" devilbox \
|
||||
\
|
||||
&& chmod 0777 /opt/nvm \
|
||||
&& find /opt/nvm -type f -print0 | xargs -n1 -0 chmod go+w \
|
||||
&& find /opt/nvm -type d -print0 | xargs -n1 -0 chmod 0777 \
|
||||
\
|
||||
\
|
||||
# -------------------- pgsql_client --------------------
|
||||
&& 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/* \
|
||||
\
|
||||
# -------------------- mongo_client --------------------
|
||||
&& 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/* \
|
||||
\
|
||||
# -------------------- awesomeci --------------------
|
||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||
&& cd /usr/local/src/awesome-ci \
|
||||
@@ -232,24 +261,12 @@ RUN set -eux \
|
||||
&& chmod +x /usr/local/bin/drupal \
|
||||
\
|
||||
# -------------------- gitflow --------------------
|
||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
||||
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||
&& cd /tmp/gitflow \
|
||||
&& make install \
|
||||
&& cd / && rm -rf /tmp/gitflow \
|
||||
\
|
||||
\
|
||||
# -------------------- homebrew --------------------
|
||||
&& git clone https://github.com/Homebrew/brew.git /usr/local/src/brew \
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/brew \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "PATH=/usr/local/src/brew/bin:/usr/local/src/brew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export MANPATH=/usr/local/src/brew/manpages:${MANPATH}" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export INFOPATH=/usr/local/src/brew/manpages:${INFOPATH}" >> /home/devilbox/${v}' \
|
||||
&& su - ${MY_USER} -c '/usr/local/src/brew/bin/brew config' \
|
||||
\
|
||||
\
|
||||
# -------------------- laravel --------------------
|
||||
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
||||
&& cd /usr/local/src/laravel-installer \
|
||||
@@ -267,9 +284,11 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- mhsendmail --------------------
|
||||
&& curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
@@ -335,62 +354,71 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- symfony --------------------
|
||||
&& SYMFONY_VERSION="$( curl -sS -L --fail https://get.symfony.com/cli/LATEST )" \
|
||||
&& curl -sS -L --fail "https://github.com/symfony/cli/releases/download/v${SYMFONY_VERSION}/symfony_linux_amd64" > /usr/local/bin/symfony \
|
||||
&& chmod +x /usr/local/bin/symfony \
|
||||
&& VERSION="$(curl -s https://api.github.com/repos/symfony-cli/symfony-cli/releases/latest | awk -F\" '/symfony-cli_.*._amd64\.deb/{print $(NF-1)}' | head -1 | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/')" \
|
||||
&& curl -sS -L --fail -o /tmp/symfonycli.deb https://github.com/symfony-cli/symfony-cli/releases/download/v${VERSION}/symfony-cli_${VERSION}_$(dpkg-architecture --query DEB_HOST_ARCH).deb \
|
||||
&& dpkg -i /tmp/symfonycli.deb \
|
||||
&& rm -f /tmp/symfonycli.deb \
|
||||
\
|
||||
\
|
||||
# -------------------- wkhtmltopdf --------------------
|
||||
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+jessie_amd64\.deb' | head -1 )" \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb \
|
||||
&& VERSION="$(curl -sSL -L --fail https://api.github.com/repos/wkhtmltopdf/wkhtmltopdf/releases | awk -F\" '/wkhtmltopdf.*.jessie_amd64\.deb/{print $(NF-1)}' | head -1 )" \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb ${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||
fi \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/*; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- wpcli --------------------
|
||||
&& curl -sS -L --fail https://github.com/wp-cli/wp-cli/releases/download/v2.4.0/wp-cli-2.4.0.phar -L -o /usr/local/bin/wp \
|
||||
&& chmod +x /usr/local/bin/wp \
|
||||
\
|
||||
# -------------------- cleanup --------------------
|
||||
&& rm -rf /home/${MY_USER}/.*json \
|
||||
&& rm -rf /home/${MY_USER}/.cache \
|
||||
&& rm -rf /home/${MY_USER}/.composer \
|
||||
&& rm -rf /home/${MY_USER}/.config \
|
||||
&& rm -rf /home/${MY_USER}/.drush \
|
||||
&& rm -rf /home/${MY_USER}/.subversion \
|
||||
&& rm -rf /home/${MY_USER}/.v8* \
|
||||
\
|
||||
&& rm -rf /root/.*json \
|
||||
&& rm -rf /root/.cache \
|
||||
&& rm -rf /root/.composer \
|
||||
&& rm -rf /root/.config \
|
||||
&& rm -rf /root/.drush \
|
||||
&& rm -rf /root/.subversion \
|
||||
&& rm -rf /root/.v8* \
|
||||
\
|
||||
&& rm -rf /tmp/* \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /root/.gem || true ) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||
&& rm -rf /tmp/* \
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
@@ -410,20 +438,51 @@ RUN set -eux \
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require laravel/lumen-installer \
|
||||
&& ln -s /usr/local/src/composer/vendor/laravel/lumen-installer/lumen /usr/local/bin/ \
|
||||
\
|
||||
# -------------------- photon --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require photoncms/installer \
|
||||
&& ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/ \
|
||||
\
|
||||
# -------------------- prestissimo --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
||||
\
|
||||
\
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
@@ -473,17 +532,52 @@ RUN set -eux \
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||
\
|
||||
\
|
||||
&& ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox \
|
||||
&& rm -rf /home/devilbox/.npm \
|
||||
&& rm -rf /home/devilbox/.cache \
|
||||
&& rm -rf /home/devilbox/.config \
|
||||
&& rm -rf /tmp/* \
|
||||
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||
fi \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
@@ -503,22 +597,53 @@ RUN set -eux \
|
||||
&& gem install mdl -v 0.5.0 \
|
||||
\
|
||||
\
|
||||
&& rm -rf /root/.gem \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
### Install pip (Python) packages
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- ansible --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall ansible==3.4.0 || true \
|
||||
\
|
||||
# -------------------- yamllint --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||
\
|
||||
@@ -526,13 +651,47 @@ RUN set -eux \
|
||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||
\
|
||||
\
|
||||
&& rm -rf /root/.cache/pip \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
@@ -540,10 +699,10 @@ RUN set -eux \
|
||||
###
|
||||
RUN \
|
||||
{ \
|
||||
echo 'PATH="${PATH}:${HOME}/.yarn/bin"'; \
|
||||
echo 'PATH="${PATH}:${HOME}/.composer/vendor/bin"'; \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo 'PATH="${PATH}:/opt/nvm/versions/node/$(nvm version default)/bin"'; \
|
||||
echo 'PATH="${HOME}/.yarn/bin:${PATH}"'; \
|
||||
echo 'PATH="${HOME}/.composer/vendor/bin:${PATH}"'; \
|
||||
echo 'PATH="/opt/nvm/versions/node/$(nvm version default)/bin:${PATH}"'; \
|
||||
echo "export PATH"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
@@ -579,8 +738,26 @@ RUN set -eux \
|
||||
|
||||
RUN set -eux \
|
||||
# -------------------- Software --------------------
|
||||
&& composer --version 2>/dev/null | grep -E 'version\s*[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[0-9][.0-9]+' \
|
||||
&& composer --version 2>/dev/null | grep -Ei '(composer|version)\s*[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; yarn --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
\
|
||||
&& 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 \
|
||||
\
|
||||
&& 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 \
|
||||
\
|
||||
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' \
|
||||
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
||||
@@ -596,18 +773,16 @@ RUN set -eux \
|
||||
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
||||
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||
&& phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' \
|
||||
&& symfony -V | grep -Ei 'version\s*.*v[0-9][.0-9]+' \
|
||||
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)" \
|
||||
&& symfony -V | grep -Ei 'version\s[0-9][.0-9]+' \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)"; fi \
|
||||
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Composer --------------------
|
||||
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' \
|
||||
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' \
|
||||
&& lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' \
|
||||
&& photon --version | grep -E 'Installer [0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- PIP --------------------
|
||||
&& ansible --version | grep -E '^ansible [0-9][.0-9]+$' \
|
||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||
\
|
||||
@@ -628,14 +803,42 @@ RUN set -eux \
|
||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Cleanup --------------------
|
||||
&& rm -rf /home/devilbox/.cache/ \
|
||||
&& rm -rf /home/devilbox/.config/ \
|
||||
&& rm -rf /root/.ansible \
|
||||
&& rm -rf /root/.console \
|
||||
&& rm -rf /root/.composer \
|
||||
&& rm -rf /root/.drush \
|
||||
&& rm -rf /root/.pm2 \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-work.j2 instead.
|
||||
FROM devilbox/php-fpm:5.6-prod
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Labels
|
||||
@@ -45,9 +46,8 @@ ENV BASH_PROFILE=".bashrc"
|
||||
### Install Tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
@@ -58,17 +58,9 @@ RUN set -eux \
|
||||
&& 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 \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv A1715D88E1DF1F24 \
|
||||
&& echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu wily main" > /etc/apt/sources.list.d/git.list \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& 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/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& curl -sS -k -L --fail https://dl.yarnpkg.com/debian/pubkey.gpg | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 \
|
||||
ack-grep \
|
||||
aspell \
|
||||
autoconf \
|
||||
@@ -103,10 +95,10 @@ RUN set -eux \
|
||||
libyaml-dev \
|
||||
locales \
|
||||
make \
|
||||
mongodb-org-shell \
|
||||
mongodb-org-tools \
|
||||
moreutils \
|
||||
\
|
||||
mysql-client \
|
||||
\
|
||||
mupdf \
|
||||
mupdf-tools \
|
||||
nano \
|
||||
@@ -115,7 +107,6 @@ RUN set -eux \
|
||||
openssh-client \
|
||||
patch \
|
||||
patchelf \
|
||||
postgresql-client \
|
||||
redis-tools \
|
||||
rsync \
|
||||
rubygems \
|
||||
@@ -133,17 +124,15 @@ RUN set -eux \
|
||||
wget \
|
||||
whois \
|
||||
xz-utils \
|
||||
yarn \
|
||||
zip \
|
||||
zlib1g-dev \
|
||||
zsh \
|
||||
zsh-common \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -q -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
@@ -151,11 +140,15 @@ RUN set -eux \
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- composer --------------------
|
||||
&& curl -sS -L --fail https://getcomposer.org/composer-1.phar > /usr/local/bin/composer-1 \
|
||||
&& curl -sS -L --fail https://getcomposer.org/composer-2.phar > /usr/local/bin/composer-2 \
|
||||
&& COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.2.x" \
|
||||
\
|
||||
&& 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 \
|
||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||
\
|
||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||
\
|
||||
\
|
||||
# -------------------- pip --------------------
|
||||
@@ -169,9 +162,18 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- nvm --------------------
|
||||
&& git clone https://github.com/creationix/nvm /opt/nvm \
|
||||
&& cd /opt/nvm \
|
||||
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
|
||||
&& NODE_VERSION="17" \
|
||||
\
|
||||
&& 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 /opt/nvm \
|
||||
&& curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh" \
|
||||
| NVM_DIR="/opt/nvm" bash \
|
||||
\
|
||||
&& { \
|
||||
echo 'export NVM_DIR="/opt/nvm"'; \
|
||||
@@ -179,13 +181,44 @@ RUN set -eux \
|
||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||
} >> /home/devilbox/.bashrc \
|
||||
\
|
||||
&& chown -R devilbox:devilbox /opt/nvm \
|
||||
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm install node' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; nvm install ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; nvm use ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; corepack enable" devilbox \
|
||||
\
|
||||
&& chmod 0777 /opt/nvm \
|
||||
&& find /opt/nvm -type f -print0 | xargs -n1 -0 chmod go+w \
|
||||
&& find /opt/nvm -type d -print0 | xargs -n1 -0 chmod 0777 \
|
||||
\
|
||||
\
|
||||
# -------------------- pgsql_client --------------------
|
||||
&& 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/* \
|
||||
\
|
||||
# -------------------- mongo_client --------------------
|
||||
&& 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/* \
|
||||
\
|
||||
# -------------------- awesomeci --------------------
|
||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||
&& cd /usr/local/src/awesome-ci \
|
||||
@@ -248,24 +281,12 @@ RUN set -eux \
|
||||
&& chmod +x /usr/local/bin/drupal \
|
||||
\
|
||||
# -------------------- gitflow --------------------
|
||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
||||
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||
&& cd /tmp/gitflow \
|
||||
&& make install \
|
||||
&& cd / && rm -rf /tmp/gitflow \
|
||||
\
|
||||
\
|
||||
# -------------------- homebrew --------------------
|
||||
&& git clone https://github.com/Homebrew/brew.git /usr/local/src/brew \
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/brew \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "PATH=/usr/local/src/brew/bin:/usr/local/src/brew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export MANPATH=/usr/local/src/brew/manpages:${MANPATH}" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export INFOPATH=/usr/local/src/brew/manpages:${INFOPATH}" >> /home/devilbox/${v}' \
|
||||
&& su - ${MY_USER} -c '/usr/local/src/brew/bin/brew config' \
|
||||
\
|
||||
\
|
||||
# -------------------- laravel --------------------
|
||||
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
||||
&& cd /usr/local/src/laravel-installer \
|
||||
@@ -283,9 +304,11 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- mhsendmail --------------------
|
||||
&& curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
@@ -351,62 +374,71 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- symfony --------------------
|
||||
&& SYMFONY_VERSION="$( curl -sS -L --fail https://get.symfony.com/cli/LATEST )" \
|
||||
&& curl -sS -L --fail "https://github.com/symfony/cli/releases/download/v${SYMFONY_VERSION}/symfony_linux_amd64" > /usr/local/bin/symfony \
|
||||
&& chmod +x /usr/local/bin/symfony \
|
||||
&& VERSION="$(curl -s https://api.github.com/repos/symfony-cli/symfony-cli/releases/latest | awk -F\" '/symfony-cli_.*._amd64\.deb/{print $(NF-1)}' | head -1 | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/')" \
|
||||
&& curl -sS -L --fail -o /tmp/symfonycli.deb https://github.com/symfony-cli/symfony-cli/releases/download/v${VERSION}/symfony-cli_${VERSION}_$(dpkg-architecture --query DEB_HOST_ARCH).deb \
|
||||
&& dpkg -i /tmp/symfonycli.deb \
|
||||
&& rm -f /tmp/symfonycli.deb \
|
||||
\
|
||||
\
|
||||
# -------------------- wkhtmltopdf --------------------
|
||||
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb \
|
||||
&& VERSION="$(curl -sSL -L --fail https://api.github.com/repos/wkhtmltopdf/packaging/releases | awk -F\" '/wkhtmltopdf.*.stretch_amd64\.deb/{print $(NF-1)}' | head -1 )" \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb ${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||
fi \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/*; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- wpcli --------------------
|
||||
&& curl -sS -L --fail https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
||||
&& chmod +x /usr/local/bin/wp \
|
||||
\
|
||||
# -------------------- cleanup --------------------
|
||||
&& rm -rf /home/${MY_USER}/.*json \
|
||||
&& rm -rf /home/${MY_USER}/.cache \
|
||||
&& rm -rf /home/${MY_USER}/.composer \
|
||||
&& rm -rf /home/${MY_USER}/.config \
|
||||
&& rm -rf /home/${MY_USER}/.drush \
|
||||
&& rm -rf /home/${MY_USER}/.subversion \
|
||||
&& rm -rf /home/${MY_USER}/.v8* \
|
||||
\
|
||||
&& rm -rf /root/.*json \
|
||||
&& rm -rf /root/.cache \
|
||||
&& rm -rf /root/.composer \
|
||||
&& rm -rf /root/.config \
|
||||
&& rm -rf /root/.drush \
|
||||
&& rm -rf /root/.subversion \
|
||||
&& rm -rf /root/.v8* \
|
||||
\
|
||||
&& rm -rf /tmp/* \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /root/.gem || true ) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||
&& rm -rf /tmp/* \
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
@@ -426,20 +458,51 @@ RUN set -eux \
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require laravel/lumen-installer \
|
||||
&& ln -s /usr/local/src/composer/vendor/laravel/lumen-installer/lumen /usr/local/bin/ \
|
||||
\
|
||||
# -------------------- photon --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require photoncms/installer \
|
||||
&& ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/ \
|
||||
\
|
||||
# -------------------- prestissimo --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
||||
\
|
||||
\
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
@@ -489,17 +552,52 @@ RUN set -eux \
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||
\
|
||||
\
|
||||
&& ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox \
|
||||
&& rm -rf /home/devilbox/.npm \
|
||||
&& rm -rf /home/devilbox/.cache \
|
||||
&& rm -rf /home/devilbox/.config \
|
||||
&& rm -rf /tmp/* \
|
||||
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||
fi \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
@@ -516,22 +614,53 @@ RUN set -eux \
|
||||
&& gem install mdl -v 0.5.0 \
|
||||
\
|
||||
\
|
||||
&& rm -rf /root/.gem \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
### Install pip (Python) packages
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- ansible --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall ansible==3.4.0 || true \
|
||||
\
|
||||
# -------------------- yamllint --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||
\
|
||||
@@ -539,13 +668,47 @@ RUN set -eux \
|
||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||
\
|
||||
\
|
||||
&& rm -rf /root/.cache/pip \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
@@ -553,10 +716,10 @@ RUN set -eux \
|
||||
###
|
||||
RUN \
|
||||
{ \
|
||||
echo 'PATH="${PATH}:${HOME}/.yarn/bin"'; \
|
||||
echo 'PATH="${PATH}:${HOME}/.composer/vendor/bin"'; \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo 'PATH="${PATH}:/opt/nvm/versions/node/$(nvm version default)/bin"'; \
|
||||
echo 'PATH="${HOME}/.yarn/bin:${PATH}"'; \
|
||||
echo 'PATH="${HOME}/.composer/vendor/bin:${PATH}"'; \
|
||||
echo 'PATH="/opt/nvm/versions/node/$(nvm version default)/bin:${PATH}"'; \
|
||||
echo "export PATH"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
@@ -592,8 +755,26 @@ RUN set -eux \
|
||||
|
||||
RUN set -eux \
|
||||
# -------------------- Software --------------------
|
||||
&& composer --version 2>/dev/null | grep -E 'version\s*[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[0-9][.0-9]+' \
|
||||
&& composer --version 2>/dev/null | grep -Ei '(composer|version)\s*[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; yarn --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
\
|
||||
&& 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 \
|
||||
\
|
||||
&& 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 \
|
||||
\
|
||||
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' \
|
||||
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
||||
@@ -610,18 +791,16 @@ RUN set -eux \
|
||||
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
||||
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||
&& phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' \
|
||||
&& symfony -V | grep -Ei 'version\s*.*v[0-9][.0-9]+' \
|
||||
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)" \
|
||||
&& symfony -V | grep -Ei 'version\s[0-9][.0-9]+' \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)"; fi \
|
||||
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Composer --------------------
|
||||
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' \
|
||||
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' \
|
||||
&& lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' \
|
||||
&& photon --version | grep -E 'Installer [0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- PIP --------------------
|
||||
&& ansible --version | grep -E '^ansible [0-9][.0-9]+$' \
|
||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||
\
|
||||
@@ -642,14 +821,42 @@ RUN set -eux \
|
||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Cleanup --------------------
|
||||
&& rm -rf /home/devilbox/.cache/ \
|
||||
&& rm -rf /home/devilbox/.config/ \
|
||||
&& rm -rf /root/.ansible \
|
||||
&& rm -rf /root/.console \
|
||||
&& rm -rf /root/.composer \
|
||||
&& rm -rf /root/.drush \
|
||||
&& rm -rf /root/.pm2 \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-work.j2 instead.
|
||||
FROM devilbox/php-fpm:7.0-prod
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Labels
|
||||
@@ -45,9 +46,8 @@ ENV BASH_PROFILE=".bashrc"
|
||||
### Install Tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
@@ -58,17 +58,9 @@ RUN set -eux \
|
||||
&& 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 \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv A1715D88E1DF1F24 \
|
||||
&& echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu wily main" > /etc/apt/sources.list.d/git.list \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& 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/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& curl -sS -k -L --fail https://dl.yarnpkg.com/debian/pubkey.gpg | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 \
|
||||
ack-grep \
|
||||
aspell \
|
||||
autoconf \
|
||||
@@ -103,10 +95,10 @@ RUN set -eux \
|
||||
libyaml-dev \
|
||||
locales \
|
||||
make \
|
||||
mongodb-org-shell \
|
||||
mongodb-org-tools \
|
||||
moreutils \
|
||||
\
|
||||
mysql-client \
|
||||
\
|
||||
mupdf \
|
||||
mupdf-tools \
|
||||
nano \
|
||||
@@ -115,7 +107,6 @@ RUN set -eux \
|
||||
openssh-client \
|
||||
patch \
|
||||
patchelf \
|
||||
postgresql-client \
|
||||
redis-tools \
|
||||
rsync \
|
||||
rubygems \
|
||||
@@ -133,17 +124,15 @@ RUN set -eux \
|
||||
wget \
|
||||
whois \
|
||||
xz-utils \
|
||||
yarn \
|
||||
zip \
|
||||
zlib1g-dev \
|
||||
zsh \
|
||||
zsh-common \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -q -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
@@ -151,11 +140,15 @@ RUN set -eux \
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- composer --------------------
|
||||
&& curl -sS -L --fail https://getcomposer.org/composer-1.phar > /usr/local/bin/composer-1 \
|
||||
&& curl -sS -L --fail https://getcomposer.org/composer-2.phar > /usr/local/bin/composer-2 \
|
||||
&& COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.2.x" \
|
||||
\
|
||||
&& 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 \
|
||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||
\
|
||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||
\
|
||||
\
|
||||
# -------------------- pip --------------------
|
||||
@@ -169,9 +162,18 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- nvm --------------------
|
||||
&& git clone https://github.com/creationix/nvm /opt/nvm \
|
||||
&& cd /opt/nvm \
|
||||
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
|
||||
&& NODE_VERSION="17" \
|
||||
\
|
||||
&& 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 /opt/nvm \
|
||||
&& curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh" \
|
||||
| NVM_DIR="/opt/nvm" bash \
|
||||
\
|
||||
&& { \
|
||||
echo 'export NVM_DIR="/opt/nvm"'; \
|
||||
@@ -179,13 +181,44 @@ RUN set -eux \
|
||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||
} >> /home/devilbox/.bashrc \
|
||||
\
|
||||
&& chown -R devilbox:devilbox /opt/nvm \
|
||||
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm install node' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; nvm install ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; nvm use ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; corepack enable" devilbox \
|
||||
\
|
||||
&& chmod 0777 /opt/nvm \
|
||||
&& find /opt/nvm -type f -print0 | xargs -n1 -0 chmod go+w \
|
||||
&& find /opt/nvm -type d -print0 | xargs -n1 -0 chmod 0777 \
|
||||
\
|
||||
\
|
||||
# -------------------- pgsql_client --------------------
|
||||
&& 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/* \
|
||||
\
|
||||
# -------------------- mongo_client --------------------
|
||||
&& 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/* \
|
||||
\
|
||||
# -------------------- awesomeci --------------------
|
||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||
&& cd /usr/local/src/awesome-ci \
|
||||
@@ -229,24 +262,12 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- gitflow --------------------
|
||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
||||
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||
&& cd /tmp/gitflow \
|
||||
&& make install \
|
||||
&& cd / && rm -rf /tmp/gitflow \
|
||||
\
|
||||
\
|
||||
# -------------------- homebrew --------------------
|
||||
&& git clone https://github.com/Homebrew/brew.git /usr/local/src/brew \
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/brew \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "PATH=/usr/local/src/brew/bin:/usr/local/src/brew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export MANPATH=/usr/local/src/brew/manpages:${MANPATH}" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export INFOPATH=/usr/local/src/brew/manpages:${INFOPATH}" >> /home/devilbox/${v}' \
|
||||
&& su - ${MY_USER} -c '/usr/local/src/brew/bin/brew config' \
|
||||
\
|
||||
\
|
||||
# -------------------- laravel --------------------
|
||||
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
||||
&& cd /usr/local/src/laravel-installer \
|
||||
@@ -264,9 +285,11 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- mhsendmail --------------------
|
||||
&& curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
@@ -332,62 +355,71 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- symfony --------------------
|
||||
&& SYMFONY_VERSION="$( curl -sS -L --fail https://get.symfony.com/cli/LATEST )" \
|
||||
&& curl -sS -L --fail "https://github.com/symfony/cli/releases/download/v${SYMFONY_VERSION}/symfony_linux_amd64" > /usr/local/bin/symfony \
|
||||
&& chmod +x /usr/local/bin/symfony \
|
||||
&& VERSION="$(curl -s https://api.github.com/repos/symfony-cli/symfony-cli/releases/latest | awk -F\" '/symfony-cli_.*._amd64\.deb/{print $(NF-1)}' | head -1 | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/')" \
|
||||
&& curl -sS -L --fail -o /tmp/symfonycli.deb https://github.com/symfony-cli/symfony-cli/releases/download/v${VERSION}/symfony-cli_${VERSION}_$(dpkg-architecture --query DEB_HOST_ARCH).deb \
|
||||
&& dpkg -i /tmp/symfonycli.deb \
|
||||
&& rm -f /tmp/symfonycli.deb \
|
||||
\
|
||||
\
|
||||
# -------------------- wkhtmltopdf --------------------
|
||||
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb \
|
||||
&& VERSION="$(curl -sSL -L --fail https://api.github.com/repos/wkhtmltopdf/packaging/releases | awk -F\" '/wkhtmltopdf.*.stretch_amd64\.deb/{print $(NF-1)}' | head -1 )" \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb ${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||
fi \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/*; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- wpcli --------------------
|
||||
&& curl -sS -L --fail https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
||||
&& chmod +x /usr/local/bin/wp \
|
||||
\
|
||||
# -------------------- cleanup --------------------
|
||||
&& rm -rf /home/${MY_USER}/.*json \
|
||||
&& rm -rf /home/${MY_USER}/.cache \
|
||||
&& rm -rf /home/${MY_USER}/.composer \
|
||||
&& rm -rf /home/${MY_USER}/.config \
|
||||
&& rm -rf /home/${MY_USER}/.drush \
|
||||
&& rm -rf /home/${MY_USER}/.subversion \
|
||||
&& rm -rf /home/${MY_USER}/.v8* \
|
||||
\
|
||||
&& rm -rf /root/.*json \
|
||||
&& rm -rf /root/.cache \
|
||||
&& rm -rf /root/.composer \
|
||||
&& rm -rf /root/.config \
|
||||
&& rm -rf /root/.drush \
|
||||
&& rm -rf /root/.subversion \
|
||||
&& rm -rf /root/.v8* \
|
||||
\
|
||||
&& rm -rf /tmp/* \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /root/.gem || true ) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||
&& rm -rf /tmp/* \
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
@@ -407,20 +439,51 @@ RUN set -eux \
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require laravel/lumen-installer \
|
||||
&& ln -s /usr/local/src/composer/vendor/laravel/lumen-installer/lumen /usr/local/bin/ \
|
||||
\
|
||||
# -------------------- photon --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require photoncms/installer \
|
||||
&& ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/ \
|
||||
\
|
||||
# -------------------- prestissimo --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
||||
\
|
||||
\
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
@@ -470,17 +533,52 @@ RUN set -eux \
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||
\
|
||||
\
|
||||
&& ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox \
|
||||
&& rm -rf /home/devilbox/.npm \
|
||||
&& rm -rf /home/devilbox/.cache \
|
||||
&& rm -rf /home/devilbox/.config \
|
||||
&& rm -rf /tmp/* \
|
||||
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||
fi \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
@@ -497,22 +595,53 @@ RUN set -eux \
|
||||
&& gem install mdl -v 0.5.0 \
|
||||
\
|
||||
\
|
||||
&& rm -rf /root/.gem \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
### Install pip (Python) packages
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- ansible --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall ansible==3.4.0 || true \
|
||||
\
|
||||
# -------------------- yamllint --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||
\
|
||||
@@ -520,13 +649,47 @@ RUN set -eux \
|
||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||
\
|
||||
\
|
||||
&& rm -rf /root/.cache/pip \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
@@ -534,10 +697,10 @@ RUN set -eux \
|
||||
###
|
||||
RUN \
|
||||
{ \
|
||||
echo 'PATH="${PATH}:${HOME}/.yarn/bin"'; \
|
||||
echo 'PATH="${PATH}:${HOME}/.composer/vendor/bin"'; \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo 'PATH="${PATH}:/opt/nvm/versions/node/$(nvm version default)/bin"'; \
|
||||
echo 'PATH="${HOME}/.yarn/bin:${PATH}"'; \
|
||||
echo 'PATH="${HOME}/.composer/vendor/bin:${PATH}"'; \
|
||||
echo 'PATH="/opt/nvm/versions/node/$(nvm version default)/bin:${PATH}"'; \
|
||||
echo "export PATH"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
@@ -573,8 +736,26 @@ RUN set -eux \
|
||||
|
||||
RUN set -eux \
|
||||
# -------------------- Software --------------------
|
||||
&& composer --version 2>/dev/null | grep -E 'version\s*[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[0-9][.0-9]+' \
|
||||
&& composer --version 2>/dev/null | grep -Ei '(composer|version)\s*[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; yarn --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
\
|
||||
&& 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 \
|
||||
\
|
||||
&& 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 \
|
||||
\
|
||||
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' \
|
||||
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
||||
@@ -589,18 +770,16 @@ RUN set -eux \
|
||||
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
||||
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||
&& phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' \
|
||||
&& symfony -V | grep -Ei 'version\s*.*v[0-9][.0-9]+' \
|
||||
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)" \
|
||||
&& symfony -V | grep -Ei 'version\s[0-9][.0-9]+' \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)"; fi \
|
||||
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Composer --------------------
|
||||
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' \
|
||||
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' \
|
||||
&& lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' \
|
||||
&& photon --version | grep -E 'Installer [0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- PIP --------------------
|
||||
&& ansible --version | grep -E '^ansible [0-9][.0-9]+$' \
|
||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||
\
|
||||
@@ -621,14 +800,42 @@ RUN set -eux \
|
||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Cleanup --------------------
|
||||
&& rm -rf /home/devilbox/.cache/ \
|
||||
&& rm -rf /home/devilbox/.config/ \
|
||||
&& rm -rf /root/.ansible \
|
||||
&& rm -rf /root/.console \
|
||||
&& rm -rf /root/.composer \
|
||||
&& rm -rf /root/.drush \
|
||||
&& rm -rf /root/.pm2 \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-work.j2 instead.
|
||||
FROM devilbox/php-fpm:7.1-prod
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Labels
|
||||
@@ -45,9 +46,8 @@ ENV BASH_PROFILE=".bashrc"
|
||||
### Install Tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
@@ -55,20 +55,12 @@ RUN set -eux \
|
||||
gnupg \
|
||||
\
|
||||
&& 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 \
|
||||
&& 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 \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv A1715D88E1DF1F24 \
|
||||
&& echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu wily main" > /etc/apt/sources.list.d/git.list \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& 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/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& curl -sS -k -L --fail https://dl.yarnpkg.com/debian/pubkey.gpg | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 \
|
||||
ack-grep \
|
||||
aspell \
|
||||
autoconf \
|
||||
@@ -103,10 +95,10 @@ RUN set -eux \
|
||||
libyaml-dev \
|
||||
locales \
|
||||
make \
|
||||
mongodb-org-shell \
|
||||
mongodb-org-tools \
|
||||
moreutils \
|
||||
\
|
||||
mariadb-client \
|
||||
\
|
||||
mupdf \
|
||||
mupdf-tools \
|
||||
nano \
|
||||
@@ -115,7 +107,6 @@ RUN set -eux \
|
||||
openssh-client \
|
||||
patch \
|
||||
patchelf \
|
||||
postgresql-client \
|
||||
redis-tools \
|
||||
rsync \
|
||||
rubygems \
|
||||
@@ -133,16 +124,14 @@ RUN set -eux \
|
||||
wget \
|
||||
whois \
|
||||
xz-utils \
|
||||
yarn \
|
||||
zip \
|
||||
zlib1g-dev \
|
||||
zsh \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -q -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
@@ -150,11 +139,15 @@ RUN set -eux \
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- composer --------------------
|
||||
&& curl -sS -L --fail https://getcomposer.org/composer-1.phar > /usr/local/bin/composer-1 \
|
||||
&& curl -sS -L --fail https://getcomposer.org/composer-2.phar > /usr/local/bin/composer-2 \
|
||||
&& COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.2.x" \
|
||||
\
|
||||
&& 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 \
|
||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||
\
|
||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||
\
|
||||
\
|
||||
# -------------------- pip --------------------
|
||||
@@ -168,9 +161,18 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- nvm --------------------
|
||||
&& git clone https://github.com/creationix/nvm /opt/nvm \
|
||||
&& cd /opt/nvm \
|
||||
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
|
||||
&& NODE_VERSION="--lts" \
|
||||
\
|
||||
&& 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 /opt/nvm \
|
||||
&& curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh" \
|
||||
| NVM_DIR="/opt/nvm" bash \
|
||||
\
|
||||
&& { \
|
||||
echo 'export NVM_DIR="/opt/nvm"'; \
|
||||
@@ -178,13 +180,38 @@ RUN set -eux \
|
||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||
} >> /home/devilbox/.bashrc \
|
||||
\
|
||||
&& chown -R devilbox:devilbox /opt/nvm \
|
||||
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm install node' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; nvm install ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; nvm use ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; corepack enable" devilbox \
|
||||
\
|
||||
&& chmod 0777 /opt/nvm \
|
||||
&& find /opt/nvm -type f -print0 | xargs -n1 -0 chmod go+w \
|
||||
&& find /opt/nvm -type d -print0 | xargs -n1 -0 chmod 0777 \
|
||||
\
|
||||
\
|
||||
# -------------------- pgsql_client --------------------
|
||||
&& 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/* \
|
||||
\
|
||||
# -------------------- mongo_client --------------------
|
||||
&& 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/* \
|
||||
\
|
||||
# -------------------- awesomeci --------------------
|
||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||
&& cd /usr/local/src/awesome-ci \
|
||||
@@ -228,24 +255,12 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- gitflow --------------------
|
||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
||||
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||
&& cd /tmp/gitflow \
|
||||
&& make install \
|
||||
&& cd / && rm -rf /tmp/gitflow \
|
||||
\
|
||||
\
|
||||
# -------------------- homebrew --------------------
|
||||
&& git clone https://github.com/Homebrew/brew.git /usr/local/src/brew \
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/brew \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "PATH=/usr/local/src/brew/bin:/usr/local/src/brew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export MANPATH=/usr/local/src/brew/manpages:${MANPATH}" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export INFOPATH=/usr/local/src/brew/manpages:${INFOPATH}" >> /home/devilbox/${v}' \
|
||||
&& su - ${MY_USER} -c '/usr/local/src/brew/bin/brew config' \
|
||||
\
|
||||
\
|
||||
# -------------------- laravel --------------------
|
||||
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
||||
&& cd /usr/local/src/laravel-installer \
|
||||
@@ -263,9 +278,11 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- mhsendmail --------------------
|
||||
&& curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
@@ -331,62 +348,71 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- symfony --------------------
|
||||
&& SYMFONY_VERSION="$( curl -sS -L --fail https://get.symfony.com/cli/LATEST )" \
|
||||
&& curl -sS -L --fail "https://github.com/symfony/cli/releases/download/v${SYMFONY_VERSION}/symfony_linux_amd64" > /usr/local/bin/symfony \
|
||||
&& chmod +x /usr/local/bin/symfony \
|
||||
&& VERSION="$(curl -s https://api.github.com/repos/symfony-cli/symfony-cli/releases/latest | awk -F\" '/symfony-cli_.*._amd64\.deb/{print $(NF-1)}' | head -1 | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/')" \
|
||||
&& curl -sS -L --fail -o /tmp/symfonycli.deb https://github.com/symfony-cli/symfony-cli/releases/download/v${VERSION}/symfony-cli_${VERSION}_$(dpkg-architecture --query DEB_HOST_ARCH).deb \
|
||||
&& dpkg -i /tmp/symfonycli.deb \
|
||||
&& rm -f /tmp/symfonycli.deb \
|
||||
\
|
||||
\
|
||||
# -------------------- wkhtmltopdf --------------------
|
||||
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb \
|
||||
&& VERSION="$(curl -sSL -L --fail https://api.github.com/repos/wkhtmltopdf/packaging/releases | awk -F\" '/wkhtmltopdf.*.stretch_amd64\.deb/{print $(NF-1)}' | head -1 )" \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb ${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||
fi \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/*; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- wpcli --------------------
|
||||
&& curl -sS -L --fail https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
||||
&& chmod +x /usr/local/bin/wp \
|
||||
\
|
||||
# -------------------- cleanup --------------------
|
||||
&& rm -rf /home/${MY_USER}/.*json \
|
||||
&& rm -rf /home/${MY_USER}/.cache \
|
||||
&& rm -rf /home/${MY_USER}/.composer \
|
||||
&& rm -rf /home/${MY_USER}/.config \
|
||||
&& rm -rf /home/${MY_USER}/.drush \
|
||||
&& rm -rf /home/${MY_USER}/.subversion \
|
||||
&& rm -rf /home/${MY_USER}/.v8* \
|
||||
\
|
||||
&& rm -rf /root/.*json \
|
||||
&& rm -rf /root/.cache \
|
||||
&& rm -rf /root/.composer \
|
||||
&& rm -rf /root/.config \
|
||||
&& rm -rf /root/.drush \
|
||||
&& rm -rf /root/.subversion \
|
||||
&& rm -rf /root/.v8* \
|
||||
\
|
||||
&& rm -rf /tmp/* \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /root/.gem || true ) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||
&& rm -rf /tmp/* \
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
@@ -406,20 +432,51 @@ RUN set -eux \
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require laravel/lumen-installer \
|
||||
&& ln -s /usr/local/src/composer/vendor/laravel/lumen-installer/lumen /usr/local/bin/ \
|
||||
\
|
||||
# -------------------- photon --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require photoncms/installer \
|
||||
&& ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/ \
|
||||
\
|
||||
# -------------------- prestissimo --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
||||
\
|
||||
\
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
@@ -469,17 +526,52 @@ RUN set -eux \
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||
\
|
||||
\
|
||||
&& ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox \
|
||||
&& rm -rf /home/devilbox/.npm \
|
||||
&& rm -rf /home/devilbox/.cache \
|
||||
&& rm -rf /home/devilbox/.config \
|
||||
&& rm -rf /tmp/* \
|
||||
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||
fi \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
@@ -496,22 +588,53 @@ RUN set -eux \
|
||||
&& gem install mdl -v 0.5.0 \
|
||||
\
|
||||
\
|
||||
&& rm -rf /root/.gem \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
### Install pip (Python) packages
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- ansible --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall ansible==3.4.0 || true \
|
||||
\
|
||||
# -------------------- yamllint --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||
\
|
||||
@@ -519,13 +642,47 @@ RUN set -eux \
|
||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||
\
|
||||
\
|
||||
&& rm -rf /root/.cache/pip \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
@@ -533,10 +690,10 @@ RUN set -eux \
|
||||
###
|
||||
RUN \
|
||||
{ \
|
||||
echo 'PATH="${PATH}:${HOME}/.yarn/bin"'; \
|
||||
echo 'PATH="${PATH}:${HOME}/.composer/vendor/bin"'; \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo 'PATH="${PATH}:/opt/nvm/versions/node/$(nvm version default)/bin"'; \
|
||||
echo 'PATH="${HOME}/.yarn/bin:${PATH}"'; \
|
||||
echo 'PATH="${HOME}/.composer/vendor/bin:${PATH}"'; \
|
||||
echo 'PATH="/opt/nvm/versions/node/$(nvm version default)/bin:${PATH}"'; \
|
||||
echo "export PATH"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
@@ -572,8 +729,26 @@ RUN set -eux \
|
||||
|
||||
RUN set -eux \
|
||||
# -------------------- Software --------------------
|
||||
&& composer --version 2>/dev/null | grep -E 'version\s*[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[0-9][.0-9]+' \
|
||||
&& composer --version 2>/dev/null | grep -Ei '(composer|version)\s*[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; yarn --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
\
|
||||
&& 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 \
|
||||
\
|
||||
&& 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 \
|
||||
\
|
||||
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' \
|
||||
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
||||
@@ -588,18 +763,16 @@ RUN set -eux \
|
||||
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
||||
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||
&& phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' \
|
||||
&& symfony -V | grep -Ei 'version\s*.*v[0-9][.0-9]+' \
|
||||
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)" \
|
||||
&& symfony -V | grep -Ei 'version\s[0-9][.0-9]+' \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)"; fi \
|
||||
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Composer --------------------
|
||||
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' \
|
||||
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' \
|
||||
&& lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' \
|
||||
&& photon --version | grep -E 'Installer [0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- PIP --------------------
|
||||
&& ansible --version | grep -E '^ansible [0-9][.0-9]+$' \
|
||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||
\
|
||||
@@ -620,14 +793,42 @@ RUN set -eux \
|
||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Cleanup --------------------
|
||||
&& rm -rf /home/devilbox/.cache/ \
|
||||
&& rm -rf /home/devilbox/.config/ \
|
||||
&& rm -rf /root/.ansible \
|
||||
&& rm -rf /root/.console \
|
||||
&& rm -rf /root/.composer \
|
||||
&& rm -rf /root/.drush \
|
||||
&& rm -rf /root/.pm2 \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-work.j2 instead.
|
||||
FROM devilbox/php-fpm:7.2-prod
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Labels
|
||||
@@ -45,9 +46,8 @@ ENV BASH_PROFILE=".bashrc"
|
||||
### Install Tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
@@ -55,20 +55,12 @@ RUN set -eux \
|
||||
gnupg \
|
||||
\
|
||||
&& 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 \
|
||||
&& 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 \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv A1715D88E1DF1F24 \
|
||||
&& echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu artful main" > /etc/apt/sources.list.d/git.list \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& 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/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& curl -sS -k -L --fail https://dl.yarnpkg.com/debian/pubkey.gpg | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 \
|
||||
ack-grep \
|
||||
aspell \
|
||||
autoconf \
|
||||
@@ -103,10 +95,10 @@ RUN set -eux \
|
||||
libyaml-dev \
|
||||
locales \
|
||||
make \
|
||||
mongodb-org-shell \
|
||||
mongodb-org-tools \
|
||||
moreutils \
|
||||
\
|
||||
mariadb-client \
|
||||
\
|
||||
mupdf \
|
||||
mupdf-tools \
|
||||
nano \
|
||||
@@ -115,7 +107,6 @@ RUN set -eux \
|
||||
openssh-client \
|
||||
patch \
|
||||
patchelf \
|
||||
postgresql-client \
|
||||
redis-tools \
|
||||
rsync \
|
||||
rubygems \
|
||||
@@ -133,16 +124,14 @@ RUN set -eux \
|
||||
wget \
|
||||
whois \
|
||||
xz-utils \
|
||||
yarn \
|
||||
zip \
|
||||
zlib1g-dev \
|
||||
zsh \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -q -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
@@ -150,11 +139,15 @@ RUN set -eux \
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- composer --------------------
|
||||
&& curl -sS -L --fail https://getcomposer.org/composer-1.phar > /usr/local/bin/composer-1 \
|
||||
&& curl -sS -L --fail https://getcomposer.org/composer-2.phar > /usr/local/bin/composer-2 \
|
||||
&& COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.x" \
|
||||
\
|
||||
&& 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 \
|
||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||
\
|
||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||
\
|
||||
\
|
||||
# -------------------- pip --------------------
|
||||
@@ -168,9 +161,18 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- nvm --------------------
|
||||
&& git clone https://github.com/creationix/nvm /opt/nvm \
|
||||
&& cd /opt/nvm \
|
||||
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
|
||||
&& NODE_VERSION="--lts" \
|
||||
\
|
||||
&& 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 /opt/nvm \
|
||||
&& curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh" \
|
||||
| NVM_DIR="/opt/nvm" bash \
|
||||
\
|
||||
&& { \
|
||||
echo 'export NVM_DIR="/opt/nvm"'; \
|
||||
@@ -178,13 +180,38 @@ RUN set -eux \
|
||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||
} >> /home/devilbox/.bashrc \
|
||||
\
|
||||
&& chown -R devilbox:devilbox /opt/nvm \
|
||||
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm install node' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; nvm install ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; nvm use ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; corepack enable" devilbox \
|
||||
\
|
||||
&& chmod 0777 /opt/nvm \
|
||||
&& find /opt/nvm -type f -print0 | xargs -n1 -0 chmod go+w \
|
||||
&& find /opt/nvm -type d -print0 | xargs -n1 -0 chmod 0777 \
|
||||
\
|
||||
\
|
||||
# -------------------- pgsql_client --------------------
|
||||
&& 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/* \
|
||||
\
|
||||
# -------------------- mongo_client --------------------
|
||||
&& 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/* \
|
||||
\
|
||||
# -------------------- awesomeci --------------------
|
||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||
&& cd /usr/local/src/awesome-ci \
|
||||
@@ -242,29 +269,17 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- drupalconsole --------------------
|
||||
&& DURL="https://github.com$(curl -sS 'https://github.com/hechoendrupal/drupal-console-launcher/releases' | grep -Eo 'href="/.+drupal.phar"' | head -1 | sed 's/^href="//g' | sed 's/"$//g')" \
|
||||
&& DURL="$(curl -s https://api.github.com/repos/hechoendrupal/drupal-console-launcher/releases/latest | awk -F\" '/download.*.phar/{print $(NF-1)}' | head -1)" \
|
||||
&& curl -sS -L --fail "${DURL}" -L -o /usr/local/bin/drupal \
|
||||
&& chmod +x /usr/local/bin/drupal \
|
||||
\
|
||||
# -------------------- gitflow --------------------
|
||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
||||
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||
&& cd /tmp/gitflow \
|
||||
&& make install \
|
||||
&& cd / && rm -rf /tmp/gitflow \
|
||||
\
|
||||
\
|
||||
# -------------------- homebrew --------------------
|
||||
&& git clone https://github.com/Homebrew/brew.git /usr/local/src/brew \
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/brew \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "PATH=/usr/local/src/brew/bin:/usr/local/src/brew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export MANPATH=/usr/local/src/brew/manpages:${MANPATH}" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export INFOPATH=/usr/local/src/brew/manpages:${INFOPATH}" >> /home/devilbox/${v}' \
|
||||
&& su - ${MY_USER} -c '/usr/local/src/brew/bin/brew config' \
|
||||
\
|
||||
\
|
||||
# -------------------- laravel --------------------
|
||||
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
||||
&& cd /usr/local/src/laravel-installer \
|
||||
@@ -282,9 +297,11 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- mhsendmail --------------------
|
||||
&& curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
@@ -351,62 +368,71 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- symfony --------------------
|
||||
&& SYMFONY_VERSION="$( curl -sS -L --fail https://get.symfony.com/cli/LATEST )" \
|
||||
&& curl -sS -L --fail "https://github.com/symfony/cli/releases/download/v${SYMFONY_VERSION}/symfony_linux_amd64" > /usr/local/bin/symfony \
|
||||
&& chmod +x /usr/local/bin/symfony \
|
||||
&& VERSION="$(curl -s https://api.github.com/repos/symfony-cli/symfony-cli/releases/latest | awk -F\" '/symfony-cli_.*._amd64\.deb/{print $(NF-1)}' | head -1 | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/')" \
|
||||
&& curl -sS -L --fail -o /tmp/symfonycli.deb https://github.com/symfony-cli/symfony-cli/releases/download/v${VERSION}/symfony-cli_${VERSION}_$(dpkg-architecture --query DEB_HOST_ARCH).deb \
|
||||
&& dpkg -i /tmp/symfonycli.deb \
|
||||
&& rm -f /tmp/symfonycli.deb \
|
||||
\
|
||||
\
|
||||
# -------------------- wkhtmltopdf --------------------
|
||||
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb \
|
||||
&& VERSION="$(curl -sSL -L --fail https://api.github.com/repos/wkhtmltopdf/packaging/releases | awk -F\" '/wkhtmltopdf.*.stretch_amd64\.deb/{print $(NF-1)}' | head -1 )" \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb ${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||
fi \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/*; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- wpcli --------------------
|
||||
&& curl -sS -L --fail https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
||||
&& chmod +x /usr/local/bin/wp \
|
||||
\
|
||||
# -------------------- cleanup --------------------
|
||||
&& rm -rf /home/${MY_USER}/.*json \
|
||||
&& rm -rf /home/${MY_USER}/.cache \
|
||||
&& rm -rf /home/${MY_USER}/.composer \
|
||||
&& rm -rf /home/${MY_USER}/.config \
|
||||
&& rm -rf /home/${MY_USER}/.drush \
|
||||
&& rm -rf /home/${MY_USER}/.subversion \
|
||||
&& rm -rf /home/${MY_USER}/.v8* \
|
||||
\
|
||||
&& rm -rf /root/.*json \
|
||||
&& rm -rf /root/.cache \
|
||||
&& rm -rf /root/.composer \
|
||||
&& rm -rf /root/.config \
|
||||
&& rm -rf /root/.drush \
|
||||
&& rm -rf /root/.subversion \
|
||||
&& rm -rf /root/.v8* \
|
||||
\
|
||||
&& rm -rf /tmp/* \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /root/.gem || true ) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||
&& rm -rf /tmp/* \
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
@@ -426,20 +452,51 @@ RUN set -eux \
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require laravel/lumen-installer \
|
||||
&& ln -s /usr/local/src/composer/vendor/laravel/lumen-installer/lumen /usr/local/bin/ \
|
||||
\
|
||||
# -------------------- photon --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require photoncms/installer \
|
||||
&& ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/ \
|
||||
\
|
||||
# -------------------- prestissimo --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
||||
\
|
||||
\
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
@@ -489,17 +546,52 @@ RUN set -eux \
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||
\
|
||||
\
|
||||
&& ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox \
|
||||
&& rm -rf /home/devilbox/.npm \
|
||||
&& rm -rf /home/devilbox/.cache \
|
||||
&& rm -rf /home/devilbox/.config \
|
||||
&& rm -rf /tmp/* \
|
||||
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||
fi \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
@@ -516,22 +608,53 @@ RUN set -eux \
|
||||
&& gem install mdl -v 0.5.0 \
|
||||
\
|
||||
\
|
||||
&& rm -rf /root/.gem \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
### Install pip (Python) packages
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- ansible --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall ansible==3.4.0 || true \
|
||||
\
|
||||
# -------------------- yamllint --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||
\
|
||||
@@ -539,13 +662,47 @@ RUN set -eux \
|
||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||
\
|
||||
\
|
||||
&& rm -rf /root/.cache/pip \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
@@ -553,10 +710,10 @@ RUN set -eux \
|
||||
###
|
||||
RUN \
|
||||
{ \
|
||||
echo 'PATH="${PATH}:${HOME}/.yarn/bin"'; \
|
||||
echo 'PATH="${PATH}:${HOME}/.composer/vendor/bin"'; \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo 'PATH="${PATH}:/opt/nvm/versions/node/$(nvm version default)/bin"'; \
|
||||
echo 'PATH="${HOME}/.yarn/bin:${PATH}"'; \
|
||||
echo 'PATH="${HOME}/.composer/vendor/bin:${PATH}"'; \
|
||||
echo 'PATH="/opt/nvm/versions/node/$(nvm version default)/bin:${PATH}"'; \
|
||||
echo "export PATH"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
@@ -592,8 +749,26 @@ RUN set -eux \
|
||||
|
||||
RUN set -eux \
|
||||
# -------------------- Software --------------------
|
||||
&& composer --version 2>/dev/null | grep -E 'version\s*[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[0-9][.0-9]+' \
|
||||
&& composer --version 2>/dev/null | grep -Ei '(composer|version)\s*[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; yarn --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
\
|
||||
&& 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 \
|
||||
\
|
||||
&& 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 \
|
||||
\
|
||||
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' \
|
||||
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
||||
@@ -610,18 +785,16 @@ RUN set -eux \
|
||||
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
||||
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||
&& phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' \
|
||||
&& symfony -V | grep -Ei 'version\s*.*v[0-9][.0-9]+' \
|
||||
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)" \
|
||||
&& symfony -V | grep -Ei 'version\s[0-9][.0-9]+' \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)"; fi \
|
||||
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Composer --------------------
|
||||
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' \
|
||||
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' \
|
||||
&& lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' \
|
||||
&& photon --version | grep -E 'Installer [0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- PIP --------------------
|
||||
&& ansible --version | grep -E '^ansible [0-9][.0-9]+$' \
|
||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||
\
|
||||
@@ -642,14 +815,42 @@ RUN set -eux \
|
||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Cleanup --------------------
|
||||
&& rm -rf /home/devilbox/.cache/ \
|
||||
&& rm -rf /home/devilbox/.config/ \
|
||||
&& rm -rf /root/.ansible \
|
||||
&& rm -rf /root/.console \
|
||||
&& rm -rf /root/.composer \
|
||||
&& rm -rf /root/.drush \
|
||||
&& rm -rf /root/.pm2 \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-work.j2 instead.
|
||||
FROM devilbox/php-fpm:7.3-prod
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Labels
|
||||
@@ -45,9 +46,8 @@ ENV BASH_PROFILE=".bashrc"
|
||||
### Install Tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
@@ -55,20 +55,12 @@ RUN set -eux \
|
||||
gnupg \
|
||||
\
|
||||
&& 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 \
|
||||
&& 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 \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv A1715D88E1DF1F24 \
|
||||
&& echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu artful main" > /etc/apt/sources.list.d/git.list \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& 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 \
|
||||
&& curl -sS -k -L --fail https://dl.yarnpkg.com/debian/pubkey.gpg | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 \
|
||||
ack-grep \
|
||||
aspell \
|
||||
autoconf \
|
||||
@@ -103,10 +95,10 @@ RUN set -eux \
|
||||
libyaml-dev \
|
||||
locales \
|
||||
make \
|
||||
mongodb-org-shell \
|
||||
mongodb-org-tools \
|
||||
moreutils \
|
||||
\
|
||||
mariadb-client \
|
||||
\
|
||||
mupdf \
|
||||
mupdf-tools \
|
||||
nano \
|
||||
@@ -115,7 +107,6 @@ RUN set -eux \
|
||||
openssh-client \
|
||||
patch \
|
||||
patchelf \
|
||||
postgresql-client \
|
||||
redis-tools \
|
||||
rsync \
|
||||
rubygems \
|
||||
@@ -133,16 +124,14 @@ RUN set -eux \
|
||||
wget \
|
||||
whois \
|
||||
xz-utils \
|
||||
yarn \
|
||||
zip \
|
||||
zlib1g-dev \
|
||||
zsh \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -q -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
@@ -150,11 +139,15 @@ RUN set -eux \
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- composer --------------------
|
||||
&& curl -sS -L --fail https://getcomposer.org/composer-1.phar > /usr/local/bin/composer-1 \
|
||||
&& curl -sS -L --fail https://getcomposer.org/composer-2.phar > /usr/local/bin/composer-2 \
|
||||
&& COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.x" \
|
||||
\
|
||||
&& 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 \
|
||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||
\
|
||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||
\
|
||||
\
|
||||
# -------------------- pip --------------------
|
||||
@@ -169,9 +162,18 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- nvm --------------------
|
||||
&& git clone https://github.com/creationix/nvm /opt/nvm \
|
||||
&& cd /opt/nvm \
|
||||
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
|
||||
&& NODE_VERSION="--lts" \
|
||||
\
|
||||
&& 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 /opt/nvm \
|
||||
&& curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh" \
|
||||
| NVM_DIR="/opt/nvm" bash \
|
||||
\
|
||||
&& { \
|
||||
echo 'export NVM_DIR="/opt/nvm"'; \
|
||||
@@ -179,13 +181,38 @@ RUN set -eux \
|
||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||
} >> /home/devilbox/.bashrc \
|
||||
\
|
||||
&& chown -R devilbox:devilbox /opt/nvm \
|
||||
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm install node' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; nvm install ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; nvm use ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; corepack enable" devilbox \
|
||||
\
|
||||
&& chmod 0777 /opt/nvm \
|
||||
&& find /opt/nvm -type f -print0 | xargs -n1 -0 chmod go+w \
|
||||
&& find /opt/nvm -type d -print0 | xargs -n1 -0 chmod 0777 \
|
||||
\
|
||||
\
|
||||
# -------------------- pgsql_client --------------------
|
||||
&& 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/* \
|
||||
\
|
||||
# -------------------- mongo_client --------------------
|
||||
&& 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/* \
|
||||
\
|
||||
# -------------------- awesomeci --------------------
|
||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||
&& cd /usr/local/src/awesome-ci \
|
||||
@@ -243,29 +270,17 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- drupalconsole --------------------
|
||||
&& DURL="https://github.com$(curl -sS 'https://github.com/hechoendrupal/drupal-console-launcher/releases' | grep -Eo 'href="/.+drupal.phar"' | head -1 | sed 's/^href="//g' | sed 's/"$//g')" \
|
||||
&& DURL="$(curl -s https://api.github.com/repos/hechoendrupal/drupal-console-launcher/releases/latest | awk -F\" '/download.*.phar/{print $(NF-1)}' | head -1)" \
|
||||
&& curl -sS -L --fail "${DURL}" -L -o /usr/local/bin/drupal \
|
||||
&& chmod +x /usr/local/bin/drupal \
|
||||
\
|
||||
# -------------------- gitflow --------------------
|
||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
||||
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||
&& cd /tmp/gitflow \
|
||||
&& make install \
|
||||
&& cd / && rm -rf /tmp/gitflow \
|
||||
\
|
||||
\
|
||||
# -------------------- homebrew --------------------
|
||||
&& git clone https://github.com/Homebrew/brew.git /usr/local/src/brew \
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/brew \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "PATH=/usr/local/src/brew/bin:/usr/local/src/brew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export MANPATH=/usr/local/src/brew/manpages:${MANPATH}" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export INFOPATH=/usr/local/src/brew/manpages:${INFOPATH}" >> /home/devilbox/${v}' \
|
||||
&& su - ${MY_USER} -c '/usr/local/src/brew/bin/brew config' \
|
||||
\
|
||||
\
|
||||
# -------------------- laravel --------------------
|
||||
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
||||
&& cd /usr/local/src/laravel-installer \
|
||||
@@ -283,9 +298,11 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- mhsendmail --------------------
|
||||
&& curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
@@ -352,62 +369,71 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- symfony --------------------
|
||||
&& SYMFONY_VERSION="$( curl -sS -L --fail https://get.symfony.com/cli/LATEST )" \
|
||||
&& curl -sS -L --fail "https://github.com/symfony/cli/releases/download/v${SYMFONY_VERSION}/symfony_linux_amd64" > /usr/local/bin/symfony \
|
||||
&& chmod +x /usr/local/bin/symfony \
|
||||
&& VERSION="$(curl -s https://api.github.com/repos/symfony-cli/symfony-cli/releases/latest | awk -F\" '/symfony-cli_.*._amd64\.deb/{print $(NF-1)}' | head -1 | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/')" \
|
||||
&& curl -sS -L --fail -o /tmp/symfonycli.deb https://github.com/symfony-cli/symfony-cli/releases/download/v${VERSION}/symfony-cli_${VERSION}_$(dpkg-architecture --query DEB_HOST_ARCH).deb \
|
||||
&& dpkg -i /tmp/symfonycli.deb \
|
||||
&& rm -f /tmp/symfonycli.deb \
|
||||
\
|
||||
\
|
||||
# -------------------- wkhtmltopdf --------------------
|
||||
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb \
|
||||
&& VERSION="$(curl -sSL -L --fail https://api.github.com/repos/wkhtmltopdf/packaging/releases | awk -F\" '/wkhtmltopdf.*.stretch_amd64\.deb/{print $(NF-1)}' | head -1 )" \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb ${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||
fi \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/*; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- wpcli --------------------
|
||||
&& curl -sS -L --fail https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
||||
&& chmod +x /usr/local/bin/wp \
|
||||
\
|
||||
# -------------------- cleanup --------------------
|
||||
&& rm -rf /home/${MY_USER}/.*json \
|
||||
&& rm -rf /home/${MY_USER}/.cache \
|
||||
&& rm -rf /home/${MY_USER}/.composer \
|
||||
&& rm -rf /home/${MY_USER}/.config \
|
||||
&& rm -rf /home/${MY_USER}/.drush \
|
||||
&& rm -rf /home/${MY_USER}/.subversion \
|
||||
&& rm -rf /home/${MY_USER}/.v8* \
|
||||
\
|
||||
&& rm -rf /root/.*json \
|
||||
&& rm -rf /root/.cache \
|
||||
&& rm -rf /root/.composer \
|
||||
&& rm -rf /root/.config \
|
||||
&& rm -rf /root/.drush \
|
||||
&& rm -rf /root/.subversion \
|
||||
&& rm -rf /root/.v8* \
|
||||
\
|
||||
&& rm -rf /tmp/* \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /root/.gem || true ) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||
&& rm -rf /tmp/* \
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
@@ -427,20 +453,51 @@ RUN set -eux \
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require laravel/lumen-installer \
|
||||
&& ln -s /usr/local/src/composer/vendor/laravel/lumen-installer/lumen /usr/local/bin/ \
|
||||
\
|
||||
# -------------------- photon --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require photoncms/installer \
|
||||
&& ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/ \
|
||||
\
|
||||
# -------------------- prestissimo --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
||||
\
|
||||
\
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
@@ -490,17 +547,52 @@ RUN set -eux \
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||
\
|
||||
\
|
||||
&& ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox \
|
||||
&& rm -rf /home/devilbox/.npm \
|
||||
&& rm -rf /home/devilbox/.cache \
|
||||
&& rm -rf /home/devilbox/.config \
|
||||
&& rm -rf /tmp/* \
|
||||
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||
fi \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
@@ -517,22 +609,53 @@ RUN set -eux \
|
||||
&& gem install mdl -v 0.5.0 \
|
||||
\
|
||||
\
|
||||
&& rm -rf /root/.gem \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
### Install pip (Python) packages
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- ansible --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall ansible==3.4.0 || true \
|
||||
\
|
||||
# -------------------- yamllint --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||
\
|
||||
@@ -540,13 +663,47 @@ RUN set -eux \
|
||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||
\
|
||||
\
|
||||
&& rm -rf /root/.cache/pip \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
@@ -554,10 +711,10 @@ RUN set -eux \
|
||||
###
|
||||
RUN \
|
||||
{ \
|
||||
echo 'PATH="${PATH}:${HOME}/.yarn/bin"'; \
|
||||
echo 'PATH="${PATH}:${HOME}/.composer/vendor/bin"'; \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo 'PATH="${PATH}:/opt/nvm/versions/node/$(nvm version default)/bin"'; \
|
||||
echo 'PATH="${HOME}/.yarn/bin:${PATH}"'; \
|
||||
echo 'PATH="${HOME}/.composer/vendor/bin:${PATH}"'; \
|
||||
echo 'PATH="/opt/nvm/versions/node/$(nvm version default)/bin:${PATH}"'; \
|
||||
echo "export PATH"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
@@ -593,8 +750,26 @@ RUN set -eux \
|
||||
|
||||
RUN set -eux \
|
||||
# -------------------- Software --------------------
|
||||
&& composer --version 2>/dev/null | grep -E 'version\s*[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[0-9][.0-9]+' \
|
||||
&& composer --version 2>/dev/null | grep -Ei '(composer|version)\s*[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; yarn --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
\
|
||||
&& 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 \
|
||||
\
|
||||
&& 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 \
|
||||
\
|
||||
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' \
|
||||
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
||||
@@ -611,18 +786,16 @@ RUN set -eux \
|
||||
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
||||
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||
&& phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' \
|
||||
&& symfony -V | grep -Ei 'version\s*.*v[0-9][.0-9]+' \
|
||||
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)" \
|
||||
&& symfony -V | grep -Ei 'version\s[0-9][.0-9]+' \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)"; fi \
|
||||
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Composer --------------------
|
||||
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' \
|
||||
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' \
|
||||
&& lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' \
|
||||
&& photon --version | grep -E 'Installer [0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- PIP --------------------
|
||||
&& ansible --version | grep -E '^ansible [0-9][.0-9]+$' \
|
||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||
\
|
||||
@@ -643,14 +816,42 @@ RUN set -eux \
|
||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Cleanup --------------------
|
||||
&& rm -rf /home/devilbox/.cache/ \
|
||||
&& rm -rf /home/devilbox/.config/ \
|
||||
&& rm -rf /root/.ansible \
|
||||
&& rm -rf /root/.console \
|
||||
&& rm -rf /root/.composer \
|
||||
&& rm -rf /root/.drush \
|
||||
&& rm -rf /root/.pm2 \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-work.j2 instead.
|
||||
FROM devilbox/php-fpm:7.4-prod
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Labels
|
||||
@@ -45,9 +46,8 @@ ENV BASH_PROFILE=".bashrc"
|
||||
### Install Tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
@@ -55,20 +55,12 @@ RUN set -eux \
|
||||
gnupg \
|
||||
\
|
||||
&& 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 \
|
||||
&& 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 \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv A1715D88E1DF1F24 \
|
||||
&& echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu artful main" > /etc/apt/sources.list.d/git.list \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& 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 \
|
||||
&& curl -sS -k -L --fail https://dl.yarnpkg.com/debian/pubkey.gpg | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 \
|
||||
ack-grep \
|
||||
aspell \
|
||||
autoconf \
|
||||
@@ -103,10 +95,10 @@ RUN set -eux \
|
||||
libyaml-dev \
|
||||
locales \
|
||||
make \
|
||||
mongodb-org-shell \
|
||||
mongodb-org-tools \
|
||||
moreutils \
|
||||
\
|
||||
mariadb-client \
|
||||
\
|
||||
mupdf \
|
||||
mupdf-tools \
|
||||
nano \
|
||||
@@ -115,7 +107,6 @@ RUN set -eux \
|
||||
openssh-client \
|
||||
patch \
|
||||
patchelf \
|
||||
postgresql-client \
|
||||
redis-tools \
|
||||
rsync \
|
||||
rubygems \
|
||||
@@ -133,16 +124,14 @@ RUN set -eux \
|
||||
wget \
|
||||
whois \
|
||||
xz-utils \
|
||||
yarn \
|
||||
zip \
|
||||
zlib1g-dev \
|
||||
zsh \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -q -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
@@ -150,11 +139,15 @@ RUN set -eux \
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- composer --------------------
|
||||
&& curl -sS -L --fail https://getcomposer.org/composer-1.phar > /usr/local/bin/composer-1 \
|
||||
&& curl -sS -L --fail https://getcomposer.org/composer-2.phar > /usr/local/bin/composer-2 \
|
||||
&& COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.x" \
|
||||
\
|
||||
&& 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 \
|
||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||
\
|
||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||
\
|
||||
\
|
||||
# -------------------- pip --------------------
|
||||
@@ -169,9 +162,18 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- nvm --------------------
|
||||
&& git clone https://github.com/creationix/nvm /opt/nvm \
|
||||
&& cd /opt/nvm \
|
||||
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
|
||||
&& NODE_VERSION="--lts" \
|
||||
\
|
||||
&& 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 /opt/nvm \
|
||||
&& curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh" \
|
||||
| NVM_DIR="/opt/nvm" bash \
|
||||
\
|
||||
&& { \
|
||||
echo 'export NVM_DIR="/opt/nvm"'; \
|
||||
@@ -179,13 +181,38 @@ RUN set -eux \
|
||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||
} >> /home/devilbox/.bashrc \
|
||||
\
|
||||
&& chown -R devilbox:devilbox /opt/nvm \
|
||||
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm install node' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; nvm install ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; nvm use ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; corepack enable" devilbox \
|
||||
\
|
||||
&& chmod 0777 /opt/nvm \
|
||||
&& find /opt/nvm -type f -print0 | xargs -n1 -0 chmod go+w \
|
||||
&& find /opt/nvm -type d -print0 | xargs -n1 -0 chmod 0777 \
|
||||
\
|
||||
\
|
||||
# -------------------- pgsql_client --------------------
|
||||
&& 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/* \
|
||||
\
|
||||
# -------------------- mongo_client --------------------
|
||||
&& 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/* \
|
||||
\
|
||||
# -------------------- awesomeci --------------------
|
||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||
&& cd /usr/local/src/awesome-ci \
|
||||
@@ -243,29 +270,17 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- drupalconsole --------------------
|
||||
&& DURL="https://github.com$(curl -sS 'https://github.com/hechoendrupal/drupal-console-launcher/releases' | grep -Eo 'href="/.+drupal.phar"' | head -1 | sed 's/^href="//g' | sed 's/"$//g')" \
|
||||
&& DURL="$(curl -s https://api.github.com/repos/hechoendrupal/drupal-console-launcher/releases/latest | awk -F\" '/download.*.phar/{print $(NF-1)}' | head -1)" \
|
||||
&& curl -sS -L --fail "${DURL}" -L -o /usr/local/bin/drupal \
|
||||
&& chmod +x /usr/local/bin/drupal \
|
||||
\
|
||||
# -------------------- gitflow --------------------
|
||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
||||
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||
&& cd /tmp/gitflow \
|
||||
&& make install \
|
||||
&& cd / && rm -rf /tmp/gitflow \
|
||||
\
|
||||
\
|
||||
# -------------------- homebrew --------------------
|
||||
&& git clone https://github.com/Homebrew/brew.git /usr/local/src/brew \
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/brew \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "PATH=/usr/local/src/brew/bin:/usr/local/src/brew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export MANPATH=/usr/local/src/brew/manpages:${MANPATH}" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export INFOPATH=/usr/local/src/brew/manpages:${INFOPATH}" >> /home/devilbox/${v}' \
|
||||
&& su - ${MY_USER} -c '/usr/local/src/brew/bin/brew config' \
|
||||
\
|
||||
\
|
||||
# -------------------- laravel --------------------
|
||||
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
||||
&& cd /usr/local/src/laravel-installer \
|
||||
@@ -283,9 +298,11 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- mhsendmail --------------------
|
||||
&& curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
@@ -311,20 +328,6 @@ RUN set -eux \
|
||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||
\
|
||||
\
|
||||
# -------------------- phalcon --------------------
|
||||
&& git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \
|
||||
&& cd /usr/local/src/phalcon-devtools \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
&& COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer install \
|
||||
\
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/phalcon-devtools \
|
||||
&& su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \
|
||||
&& ln -sf /usr/local/src/phalcon-devtools/phalcon /usr/local/bin/phalcon \
|
||||
&& chmod +x phalcon \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/phalcon-devtools/.git \
|
||||
\
|
||||
\
|
||||
# -------------------- phpcs --------------------
|
||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs \
|
||||
&& chmod +x /usr/local/bin/phpcs \
|
||||
@@ -352,62 +355,71 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- symfony --------------------
|
||||
&& SYMFONY_VERSION="$( curl -sS -L --fail https://get.symfony.com/cli/LATEST )" \
|
||||
&& curl -sS -L --fail "https://github.com/symfony/cli/releases/download/v${SYMFONY_VERSION}/symfony_linux_amd64" > /usr/local/bin/symfony \
|
||||
&& chmod +x /usr/local/bin/symfony \
|
||||
&& VERSION="$(curl -s https://api.github.com/repos/symfony-cli/symfony-cli/releases/latest | awk -F\" '/symfony-cli_.*._amd64\.deb/{print $(NF-1)}' | head -1 | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/')" \
|
||||
&& curl -sS -L --fail -o /tmp/symfonycli.deb https://github.com/symfony-cli/symfony-cli/releases/download/v${VERSION}/symfony-cli_${VERSION}_$(dpkg-architecture --query DEB_HOST_ARCH).deb \
|
||||
&& dpkg -i /tmp/symfonycli.deb \
|
||||
&& rm -f /tmp/symfonycli.deb \
|
||||
\
|
||||
\
|
||||
# -------------------- wkhtmltopdf --------------------
|
||||
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb \
|
||||
&& VERSION="$(curl -sSL -L --fail https://api.github.com/repos/wkhtmltopdf/packaging/releases | awk -F\" '/wkhtmltopdf.*.stretch_amd64\.deb/{print $(NF-1)}' | head -1 )" \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb ${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||
fi \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/*; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- wpcli --------------------
|
||||
&& curl -sS -L --fail https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
||||
&& chmod +x /usr/local/bin/wp \
|
||||
\
|
||||
# -------------------- cleanup --------------------
|
||||
&& rm -rf /home/${MY_USER}/.*json \
|
||||
&& rm -rf /home/${MY_USER}/.cache \
|
||||
&& rm -rf /home/${MY_USER}/.composer \
|
||||
&& rm -rf /home/${MY_USER}/.config \
|
||||
&& rm -rf /home/${MY_USER}/.drush \
|
||||
&& rm -rf /home/${MY_USER}/.subversion \
|
||||
&& rm -rf /home/${MY_USER}/.v8* \
|
||||
\
|
||||
&& rm -rf /root/.*json \
|
||||
&& rm -rf /root/.cache \
|
||||
&& rm -rf /root/.composer \
|
||||
&& rm -rf /root/.config \
|
||||
&& rm -rf /root/.drush \
|
||||
&& rm -rf /root/.subversion \
|
||||
&& rm -rf /root/.v8* \
|
||||
\
|
||||
&& rm -rf /tmp/* \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /root/.gem || true ) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||
&& rm -rf /tmp/* \
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
@@ -427,20 +439,51 @@ RUN set -eux \
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require laravel/lumen-installer \
|
||||
&& ln -s /usr/local/src/composer/vendor/laravel/lumen-installer/lumen /usr/local/bin/ \
|
||||
\
|
||||
# -------------------- photon --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require photoncms/installer \
|
||||
&& ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/ \
|
||||
\
|
||||
# -------------------- prestissimo --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
||||
\
|
||||
\
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
@@ -490,17 +533,52 @@ RUN set -eux \
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||
\
|
||||
\
|
||||
&& ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox \
|
||||
&& rm -rf /home/devilbox/.npm \
|
||||
&& rm -rf /home/devilbox/.cache \
|
||||
&& rm -rf /home/devilbox/.config \
|
||||
&& rm -rf /tmp/* \
|
||||
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||
fi \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
@@ -517,22 +595,53 @@ RUN set -eux \
|
||||
&& gem install mdl -v 0.5.0 \
|
||||
\
|
||||
\
|
||||
&& rm -rf /root/.gem \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
### Install pip (Python) packages
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- ansible --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall ansible==3.4.0 || true \
|
||||
\
|
||||
# -------------------- yamllint --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||
\
|
||||
@@ -540,13 +649,47 @@ RUN set -eux \
|
||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||
\
|
||||
\
|
||||
&& rm -rf /root/.cache/pip \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
@@ -554,10 +697,10 @@ RUN set -eux \
|
||||
###
|
||||
RUN \
|
||||
{ \
|
||||
echo 'PATH="${PATH}:${HOME}/.yarn/bin"'; \
|
||||
echo 'PATH="${PATH}:${HOME}/.composer/vendor/bin"'; \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo 'PATH="${PATH}:/opt/nvm/versions/node/$(nvm version default)/bin"'; \
|
||||
echo 'PATH="${HOME}/.yarn/bin:${PATH}"'; \
|
||||
echo 'PATH="${HOME}/.composer/vendor/bin:${PATH}"'; \
|
||||
echo 'PATH="/opt/nvm/versions/node/$(nvm version default)/bin:${PATH}"'; \
|
||||
echo "export PATH"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
@@ -593,8 +736,26 @@ RUN set -eux \
|
||||
|
||||
RUN set -eux \
|
||||
# -------------------- Software --------------------
|
||||
&& composer --version 2>/dev/null | grep -E 'version\s*[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[0-9][.0-9]+' \
|
||||
&& composer --version 2>/dev/null | grep -Ei '(composer|version)\s*[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; yarn --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
\
|
||||
&& 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 \
|
||||
\
|
||||
&& 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 \
|
||||
\
|
||||
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' \
|
||||
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
||||
@@ -605,24 +766,21 @@ RUN set -eux \
|
||||
&& laravel --version | grep -E '(Installer|version)\s*[0-9][.0-9]+' \
|
||||
&& linkcheck --version | grep -E '^linkcheck\sv[0-9][.0-9]+' \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& phalcon commands | grep -E '[0-9][.0-9]+' \
|
||||
&& phpcs --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& phpcbf --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
||||
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||
&& phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' \
|
||||
&& symfony -V | grep -Ei 'version\s*.*v[0-9][.0-9]+' \
|
||||
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)" \
|
||||
&& symfony -V | grep -Ei 'version\s[0-9][.0-9]+' \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)"; fi \
|
||||
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Composer --------------------
|
||||
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' \
|
||||
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' \
|
||||
&& lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' \
|
||||
&& photon --version | grep -E 'Installer [0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- PIP --------------------
|
||||
&& ansible --version | grep -E '^ansible [0-9][.0-9]+$' \
|
||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||
\
|
||||
@@ -643,14 +801,42 @@ RUN set -eux \
|
||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Cleanup --------------------
|
||||
&& rm -rf /home/devilbox/.cache/ \
|
||||
&& rm -rf /home/devilbox/.config/ \
|
||||
&& rm -rf /root/.ansible \
|
||||
&& rm -rf /root/.console \
|
||||
&& rm -rf /root/.composer \
|
||||
&& rm -rf /root/.drush \
|
||||
&& rm -rf /root/.pm2 \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-work.j2 instead.
|
||||
FROM devilbox/php-fpm:8.0-prod
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Labels
|
||||
@@ -45,9 +46,8 @@ ENV BASH_PROFILE=".bashrc"
|
||||
### Install Tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
@@ -55,20 +55,12 @@ RUN set -eux \
|
||||
gnupg \
|
||||
\
|
||||
&& 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 \
|
||||
&& 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 \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv A1715D88E1DF1F24 \
|
||||
&& echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu artful main" > /etc/apt/sources.list.d/git.list \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& 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 \
|
||||
&& curl -sS -k -L --fail https://dl.yarnpkg.com/debian/pubkey.gpg | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 \
|
||||
ack-grep \
|
||||
aspell \
|
||||
autoconf \
|
||||
@@ -103,10 +95,10 @@ RUN set -eux \
|
||||
libyaml-dev \
|
||||
locales \
|
||||
make \
|
||||
mongodb-org-shell \
|
||||
mongodb-org-tools \
|
||||
moreutils \
|
||||
\
|
||||
mariadb-client \
|
||||
\
|
||||
mupdf \
|
||||
mupdf-tools \
|
||||
nano \
|
||||
@@ -115,7 +107,6 @@ RUN set -eux \
|
||||
openssh-client \
|
||||
patch \
|
||||
patchelf \
|
||||
postgresql-client \
|
||||
redis-tools \
|
||||
rsync \
|
||||
rubygems \
|
||||
@@ -133,16 +124,14 @@ RUN set -eux \
|
||||
wget \
|
||||
whois \
|
||||
xz-utils \
|
||||
yarn \
|
||||
zip \
|
||||
zlib1g-dev \
|
||||
zsh \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -q -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
@@ -150,11 +139,15 @@ RUN set -eux \
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- composer --------------------
|
||||
&& curl -sS -L --fail https://getcomposer.org/composer-1.phar > /usr/local/bin/composer-1 \
|
||||
&& curl -sS -L --fail https://getcomposer.org/composer-2.phar > /usr/local/bin/composer-2 \
|
||||
&& COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.x" \
|
||||
\
|
||||
&& 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 \
|
||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||
\
|
||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||
\
|
||||
\
|
||||
# -------------------- pip --------------------
|
||||
@@ -169,9 +162,18 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- nvm --------------------
|
||||
&& git clone https://github.com/creationix/nvm /opt/nvm \
|
||||
&& cd /opt/nvm \
|
||||
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
|
||||
&& NODE_VERSION="--lts" \
|
||||
\
|
||||
&& 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 /opt/nvm \
|
||||
&& curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh" \
|
||||
| NVM_DIR="/opt/nvm" bash \
|
||||
\
|
||||
&& { \
|
||||
echo 'export NVM_DIR="/opt/nvm"'; \
|
||||
@@ -179,13 +181,38 @@ RUN set -eux \
|
||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||
} >> /home/devilbox/.bashrc \
|
||||
\
|
||||
&& chown -R devilbox:devilbox /opt/nvm \
|
||||
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm install node' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; nvm install ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; nvm use ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; corepack enable" devilbox \
|
||||
\
|
||||
&& chmod 0777 /opt/nvm \
|
||||
&& find /opt/nvm -type f -print0 | xargs -n1 -0 chmod go+w \
|
||||
&& find /opt/nvm -type d -print0 | xargs -n1 -0 chmod 0777 \
|
||||
\
|
||||
\
|
||||
# -------------------- pgsql_client --------------------
|
||||
&& 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/* \
|
||||
\
|
||||
# -------------------- mongo_client --------------------
|
||||
&& 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/* \
|
||||
\
|
||||
# -------------------- awesomeci --------------------
|
||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||
&& cd /usr/local/src/awesome-ci \
|
||||
@@ -201,24 +228,12 @@ RUN set -eux \
|
||||
&& chmod +x /usr/local/bin/dep \
|
||||
\
|
||||
# -------------------- gitflow --------------------
|
||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
||||
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||
&& cd /tmp/gitflow \
|
||||
&& make install \
|
||||
&& cd / && rm -rf /tmp/gitflow \
|
||||
\
|
||||
\
|
||||
# -------------------- homebrew --------------------
|
||||
&& git clone https://github.com/Homebrew/brew.git /usr/local/src/brew \
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/brew \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "PATH=/usr/local/src/brew/bin:/usr/local/src/brew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export MANPATH=/usr/local/src/brew/manpages:${MANPATH}" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export INFOPATH=/usr/local/src/brew/manpages:${INFOPATH}" >> /home/devilbox/${v}' \
|
||||
&& su - ${MY_USER} -c '/usr/local/src/brew/bin/brew config' \
|
||||
\
|
||||
\
|
||||
# -------------------- laravel --------------------
|
||||
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
||||
&& cd /usr/local/src/laravel-installer \
|
||||
@@ -236,9 +251,11 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- mhsendmail --------------------
|
||||
&& curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
@@ -286,62 +303,71 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- symfony --------------------
|
||||
&& SYMFONY_VERSION="$( curl -sS -L --fail https://get.symfony.com/cli/LATEST )" \
|
||||
&& curl -sS -L --fail "https://github.com/symfony/cli/releases/download/v${SYMFONY_VERSION}/symfony_linux_amd64" > /usr/local/bin/symfony \
|
||||
&& chmod +x /usr/local/bin/symfony \
|
||||
&& VERSION="$(curl -s https://api.github.com/repos/symfony-cli/symfony-cli/releases/latest | awk -F\" '/symfony-cli_.*._amd64\.deb/{print $(NF-1)}' | head -1 | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/')" \
|
||||
&& curl -sS -L --fail -o /tmp/symfonycli.deb https://github.com/symfony-cli/symfony-cli/releases/download/v${VERSION}/symfony-cli_${VERSION}_$(dpkg-architecture --query DEB_HOST_ARCH).deb \
|
||||
&& dpkg -i /tmp/symfonycli.deb \
|
||||
&& rm -f /tmp/symfonycli.deb \
|
||||
\
|
||||
\
|
||||
# -------------------- wkhtmltopdf --------------------
|
||||
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb \
|
||||
&& VERSION="$(curl -sSL -L --fail https://api.github.com/repos/wkhtmltopdf/packaging/releases | awk -F\" '/wkhtmltopdf.*.stretch_amd64\.deb/{print $(NF-1)}' | head -1 )" \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb ${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||
fi \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/*; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- wpcli --------------------
|
||||
&& curl -sS -L --fail https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
||||
&& chmod +x /usr/local/bin/wp \
|
||||
\
|
||||
# -------------------- cleanup --------------------
|
||||
&& rm -rf /home/${MY_USER}/.*json \
|
||||
&& rm -rf /home/${MY_USER}/.cache \
|
||||
&& rm -rf /home/${MY_USER}/.composer \
|
||||
&& rm -rf /home/${MY_USER}/.config \
|
||||
&& rm -rf /home/${MY_USER}/.drush \
|
||||
&& rm -rf /home/${MY_USER}/.subversion \
|
||||
&& rm -rf /home/${MY_USER}/.v8* \
|
||||
\
|
||||
&& rm -rf /root/.*json \
|
||||
&& rm -rf /root/.cache \
|
||||
&& rm -rf /root/.composer \
|
||||
&& rm -rf /root/.config \
|
||||
&& rm -rf /root/.drush \
|
||||
&& rm -rf /root/.subversion \
|
||||
&& rm -rf /root/.v8* \
|
||||
\
|
||||
&& rm -rf /tmp/* \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /root/.gem || true ) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||
&& rm -rf /tmp/* \
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
@@ -350,12 +376,47 @@ RUN set -eux \
|
||||
###
|
||||
RUN set -eux \
|
||||
\
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
@@ -405,17 +466,52 @@ RUN set -eux \
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||
\
|
||||
\
|
||||
&& ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox \
|
||||
&& rm -rf /home/devilbox/.npm \
|
||||
&& rm -rf /home/devilbox/.cache \
|
||||
&& rm -rf /home/devilbox/.config \
|
||||
&& rm -rf /tmp/* \
|
||||
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||
fi \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
@@ -432,22 +528,53 @@ RUN set -eux \
|
||||
&& gem install mdl -v 0.5.0 \
|
||||
\
|
||||
\
|
||||
&& rm -rf /root/.gem \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
### Install pip (Python) packages
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- ansible --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall ansible==3.4.0 || true \
|
||||
\
|
||||
# -------------------- yamllint --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||
\
|
||||
@@ -455,13 +582,47 @@ RUN set -eux \
|
||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||
\
|
||||
\
|
||||
&& rm -rf /root/.cache/pip \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
@@ -469,10 +630,10 @@ RUN set -eux \
|
||||
###
|
||||
RUN \
|
||||
{ \
|
||||
echo 'PATH="${PATH}:${HOME}/.yarn/bin"'; \
|
||||
echo 'PATH="${PATH}:${HOME}/.composer/vendor/bin"'; \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo 'PATH="${PATH}:/opt/nvm/versions/node/$(nvm version default)/bin"'; \
|
||||
echo 'PATH="${HOME}/.yarn/bin:${PATH}"'; \
|
||||
echo 'PATH="${HOME}/.composer/vendor/bin:${PATH}"'; \
|
||||
echo 'PATH="/opt/nvm/versions/node/$(nvm version default)/bin:${PATH}"'; \
|
||||
echo "export PATH"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
@@ -508,8 +669,26 @@ RUN set -eux \
|
||||
|
||||
RUN set -eux \
|
||||
# -------------------- Software --------------------
|
||||
&& composer --version 2>/dev/null | grep -E 'version\s*[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[0-9][.0-9]+' \
|
||||
&& composer --version 2>/dev/null | grep -Ei '(composer|version)\s*[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; yarn --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
\
|
||||
&& 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 \
|
||||
\
|
||||
&& 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 \
|
||||
\
|
||||
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' \
|
||||
&& git-flow version | grep -E '[0-9][.0-9]+' \
|
||||
@@ -520,14 +699,13 @@ RUN set -eux \
|
||||
&& phpcbf --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
||||
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||
&& symfony -V | grep -Ei 'version\s*.*v[0-9][.0-9]+' \
|
||||
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)" \
|
||||
&& symfony -V | grep -Ei 'version\s[0-9][.0-9]+' \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)"; fi \
|
||||
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Composer --------------------
|
||||
\
|
||||
# -------------------- PIP --------------------
|
||||
&& ansible --version | grep -E '^ansible [0-9][.0-9]+$' \
|
||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||
\
|
||||
@@ -548,14 +726,42 @@ RUN set -eux \
|
||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Cleanup --------------------
|
||||
&& rm -rf /home/devilbox/.cache/ \
|
||||
&& rm -rf /home/devilbox/.config/ \
|
||||
&& rm -rf /root/.ansible \
|
||||
&& rm -rf /root/.console \
|
||||
&& rm -rf /root/.composer \
|
||||
&& rm -rf /root/.drush \
|
||||
&& rm -rf /root/.pm2 \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-work.j2 instead.
|
||||
FROM devilbox/php-fpm:8.1-prod
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Labels
|
||||
@@ -45,9 +46,8 @@ ENV BASH_PROFILE=".bashrc"
|
||||
### Install Tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
@@ -55,20 +55,12 @@ RUN set -eux \
|
||||
gnupg \
|
||||
\
|
||||
&& 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 \
|
||||
&& 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 \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv A1715D88E1DF1F24 \
|
||||
&& echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu artful main" > /etc/apt/sources.list.d/git.list \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& 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 \
|
||||
&& curl -sS -k -L --fail https://dl.yarnpkg.com/debian/pubkey.gpg | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -q \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -q -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 \
|
||||
ack-grep \
|
||||
aspell \
|
||||
autoconf \
|
||||
@@ -103,10 +95,10 @@ RUN set -eux \
|
||||
libyaml-dev \
|
||||
locales \
|
||||
make \
|
||||
mongodb-org-shell \
|
||||
mongodb-org-tools \
|
||||
moreutils \
|
||||
\
|
||||
mariadb-client \
|
||||
\
|
||||
mupdf \
|
||||
mupdf-tools \
|
||||
nano \
|
||||
@@ -115,7 +107,6 @@ RUN set -eux \
|
||||
openssh-client \
|
||||
patch \
|
||||
patchelf \
|
||||
postgresql-client \
|
||||
redis-tools \
|
||||
rsync \
|
||||
rubygems \
|
||||
@@ -133,16 +124,14 @@ RUN set -eux \
|
||||
wget \
|
||||
whois \
|
||||
xz-utils \
|
||||
yarn \
|
||||
zip \
|
||||
zlib1g-dev \
|
||||
zsh \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -q -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
@@ -150,11 +139,15 @@ RUN set -eux \
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- composer --------------------
|
||||
&& curl -sS -L --fail https://getcomposer.org/composer-1.phar > /usr/local/bin/composer-1 \
|
||||
&& curl -sS -L --fail https://getcomposer.org/composer-2.phar > /usr/local/bin/composer-2 \
|
||||
&& COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.x" \
|
||||
\
|
||||
&& 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 \
|
||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||
\
|
||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||
\
|
||||
\
|
||||
# -------------------- pip --------------------
|
||||
@@ -169,9 +162,18 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- nvm --------------------
|
||||
&& git clone https://github.com/creationix/nvm /opt/nvm \
|
||||
&& cd /opt/nvm \
|
||||
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
|
||||
&& NODE_VERSION="--lts" \
|
||||
\
|
||||
&& 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 /opt/nvm \
|
||||
&& curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh" \
|
||||
| NVM_DIR="/opt/nvm" bash \
|
||||
\
|
||||
&& { \
|
||||
echo 'export NVM_DIR="/opt/nvm"'; \
|
||||
@@ -179,13 +181,38 @@ RUN set -eux \
|
||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||
} >> /home/devilbox/.bashrc \
|
||||
\
|
||||
&& chown -R devilbox:devilbox /opt/nvm \
|
||||
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm install node' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; nvm install ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; nvm use ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; corepack enable" devilbox \
|
||||
\
|
||||
&& chmod 0777 /opt/nvm \
|
||||
&& find /opt/nvm -type f -print0 | xargs -n1 -0 chmod go+w \
|
||||
&& find /opt/nvm -type d -print0 | xargs -n1 -0 chmod 0777 \
|
||||
\
|
||||
\
|
||||
# -------------------- pgsql_client --------------------
|
||||
&& 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/* \
|
||||
\
|
||||
# -------------------- mongo_client --------------------
|
||||
&& 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/* \
|
||||
\
|
||||
# -------------------- awesomeci --------------------
|
||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||
&& cd /usr/local/src/awesome-ci \
|
||||
@@ -201,24 +228,12 @@ RUN set -eux \
|
||||
&& chmod +x /usr/local/bin/dep \
|
||||
\
|
||||
# -------------------- gitflow --------------------
|
||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
||||
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||
&& cd /tmp/gitflow \
|
||||
&& make install \
|
||||
&& cd / && rm -rf /tmp/gitflow \
|
||||
\
|
||||
\
|
||||
# -------------------- homebrew --------------------
|
||||
&& git clone https://github.com/Homebrew/brew.git /usr/local/src/brew \
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/brew \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "PATH=/usr/local/src/brew/bin:/usr/local/src/brew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export MANPATH=/usr/local/src/brew/manpages:${MANPATH}" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export INFOPATH=/usr/local/src/brew/manpages:${INFOPATH}" >> /home/devilbox/${v}' \
|
||||
&& su - ${MY_USER} -c '/usr/local/src/brew/bin/brew config' \
|
||||
\
|
||||
\
|
||||
# -------------------- laravel --------------------
|
||||
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
||||
&& cd /usr/local/src/laravel-installer \
|
||||
@@ -236,9 +251,11 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- mhsendmail --------------------
|
||||
&& curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
@@ -286,62 +303,71 @@ RUN set -eux \
|
||||
\
|
||||
\
|
||||
# -------------------- symfony --------------------
|
||||
&& SYMFONY_VERSION="$( curl -sS -L --fail https://get.symfony.com/cli/LATEST )" \
|
||||
&& curl -sS -L --fail "https://github.com/symfony/cli/releases/download/v${SYMFONY_VERSION}/symfony_linux_amd64" > /usr/local/bin/symfony \
|
||||
&& chmod +x /usr/local/bin/symfony \
|
||||
&& VERSION="$(curl -s https://api.github.com/repos/symfony-cli/symfony-cli/releases/latest | awk -F\" '/symfony-cli_.*._amd64\.deb/{print $(NF-1)}' | head -1 | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/')" \
|
||||
&& curl -sS -L --fail -o /tmp/symfonycli.deb https://github.com/symfony-cli/symfony-cli/releases/download/v${VERSION}/symfony-cli_${VERSION}_$(dpkg-architecture --query DEB_HOST_ARCH).deb \
|
||||
&& dpkg -i /tmp/symfonycli.deb \
|
||||
&& rm -f /tmp/symfonycli.deb \
|
||||
\
|
||||
\
|
||||
# -------------------- wkhtmltopdf --------------------
|
||||
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb \
|
||||
&& VERSION="$(curl -sSL -L --fail https://api.github.com/repos/wkhtmltopdf/packaging/releases | awk -F\" '/wkhtmltopdf.*.stretch_amd64\.deb/{print $(NF-1)}' | head -1 )" \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb ${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||
fi \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/*; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- wpcli --------------------
|
||||
&& curl -sS -L --fail https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
||||
&& chmod +x /usr/local/bin/wp \
|
||||
\
|
||||
# -------------------- cleanup --------------------
|
||||
&& rm -rf /home/${MY_USER}/.*json \
|
||||
&& rm -rf /home/${MY_USER}/.cache \
|
||||
&& rm -rf /home/${MY_USER}/.composer \
|
||||
&& rm -rf /home/${MY_USER}/.config \
|
||||
&& rm -rf /home/${MY_USER}/.drush \
|
||||
&& rm -rf /home/${MY_USER}/.subversion \
|
||||
&& rm -rf /home/${MY_USER}/.v8* \
|
||||
\
|
||||
&& rm -rf /root/.*json \
|
||||
&& rm -rf /root/.cache \
|
||||
&& rm -rf /root/.composer \
|
||||
&& rm -rf /root/.config \
|
||||
&& rm -rf /root/.drush \
|
||||
&& rm -rf /root/.subversion \
|
||||
&& rm -rf /root/.v8* \
|
||||
\
|
||||
&& rm -rf /tmp/* \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /root/.gem || true ) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||
&& rm -rf /tmp/* \
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
@@ -350,12 +376,47 @@ RUN set -eux \
|
||||
###
|
||||
RUN set -eux \
|
||||
\
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
@@ -405,17 +466,52 @@ RUN set -eux \
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||
\
|
||||
\
|
||||
&& ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox \
|
||||
&& rm -rf /home/devilbox/.npm \
|
||||
&& rm -rf /home/devilbox/.cache \
|
||||
&& rm -rf /home/devilbox/.config \
|
||||
&& rm -rf /tmp/* \
|
||||
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||
fi \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
@@ -432,22 +528,53 @@ RUN set -eux \
|
||||
&& gem install mdl -v 0.5.0 \
|
||||
\
|
||||
\
|
||||
&& rm -rf /root/.gem \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
### Install pip (Python) packages
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- ansible --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall ansible==3.4.0 || true \
|
||||
\
|
||||
# -------------------- yamllint --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||
\
|
||||
@@ -455,13 +582,47 @@ RUN set -eux \
|
||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||
\
|
||||
\
|
||||
&& rm -rf /root/.cache/pip \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
@@ -469,10 +630,10 @@ RUN set -eux \
|
||||
###
|
||||
RUN \
|
||||
{ \
|
||||
echo 'PATH="${PATH}:${HOME}/.yarn/bin"'; \
|
||||
echo 'PATH="${PATH}:${HOME}/.composer/vendor/bin"'; \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo 'PATH="${PATH}:/opt/nvm/versions/node/$(nvm version default)/bin"'; \
|
||||
echo 'PATH="${HOME}/.yarn/bin:${PATH}"'; \
|
||||
echo 'PATH="${HOME}/.composer/vendor/bin:${PATH}"'; \
|
||||
echo 'PATH="/opt/nvm/versions/node/$(nvm version default)/bin:${PATH}"'; \
|
||||
echo "export PATH"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
@@ -508,8 +669,26 @@ RUN set -eux \
|
||||
|
||||
RUN set -eux \
|
||||
# -------------------- Software --------------------
|
||||
&& composer --version 2>/dev/null | grep -E 'version\s*[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[0-9][.0-9]+' \
|
||||
&& composer --version 2>/dev/null | grep -Ei '(composer|version)\s*[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; yarn --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
\
|
||||
&& 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 \
|
||||
\
|
||||
&& 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 \
|
||||
\
|
||||
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' \
|
||||
&& git-flow version | grep -E '[0-9][.0-9]+' \
|
||||
@@ -520,14 +699,13 @@ RUN set -eux \
|
||||
&& phpcbf --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
||||
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||
&& symfony -V | grep -Ei 'version\s*.*v[0-9][.0-9]+' \
|
||||
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)" \
|
||||
&& symfony -V | grep -Ei 'version\s[0-9][.0-9]+' \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)"; fi \
|
||||
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Composer --------------------
|
||||
\
|
||||
# -------------------- PIP --------------------
|
||||
&& ansible --version | grep -E '^ansible [0-9][.0-9]+$' \
|
||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||
\
|
||||
@@ -548,14 +726,42 @@ RUN set -eux \
|
||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Cleanup --------------------
|
||||
&& rm -rf /home/devilbox/.cache/ \
|
||||
&& rm -rf /home/devilbox/.config/ \
|
||||
&& rm -rf /root/.ansible \
|
||||
&& rm -rf /root/.console \
|
||||
&& rm -rf /root/.composer \
|
||||
&& rm -rf /root/.drush \
|
||||
&& rm -rf /root/.pm2 \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
|
||||
793
Dockerfiles/work/Dockerfile-8.2
Normal file
793
Dockerfiles/work/Dockerfile-8.2
Normal file
@@ -0,0 +1,793 @@
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-work.j2 instead.
|
||||
FROM devilbox/php-fpm:8.2-prod
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### 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-work"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 8.2-work"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 8.2-work"
|
||||
|
||||
|
||||
###
|
||||
### Re-activate modules which have been deactivated in mods.
|
||||
### NOTE: They will be removed at the very bottom
|
||||
###
|
||||
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
|
||||
|
||||
|
||||
###
|
||||
### Envs
|
||||
###
|
||||
ENV BASH_PROFILE=".bashrc"
|
||||
|
||||
|
||||
###
|
||||
### Install 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 \
|
||||
\
|
||||
&& 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 \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
ack-grep \
|
||||
aspell \
|
||||
autoconf \
|
||||
automake \
|
||||
bash-completion \
|
||||
binutils \
|
||||
blackfire-agent \
|
||||
build-essential \
|
||||
bzip2 \
|
||||
certbot \
|
||||
coreutils \
|
||||
dnsutils \
|
||||
dos2unix \
|
||||
file \
|
||||
gawk \
|
||||
gcc \
|
||||
git \
|
||||
git-flow \
|
||||
git-svn \
|
||||
ghostscript \
|
||||
graphviz \
|
||||
gsfonts \
|
||||
hostname \
|
||||
htop \
|
||||
imagemagick \
|
||||
iputils-ping \
|
||||
jq \
|
||||
less \
|
||||
libc-dev \
|
||||
libffi-dev \
|
||||
libssl-dev \
|
||||
libyaml-dev \
|
||||
locales \
|
||||
make \
|
||||
moreutils \
|
||||
\
|
||||
mariadb-client \
|
||||
\
|
||||
mupdf \
|
||||
mupdf-tools \
|
||||
nano \
|
||||
net-tools \
|
||||
netcat \
|
||||
openssh-client \
|
||||
patch \
|
||||
patchelf \
|
||||
redis-tools \
|
||||
rsync \
|
||||
rubygems \
|
||||
ruby-dev \
|
||||
shellcheck \
|
||||
silversearcher-ag \
|
||||
sqlite3 \
|
||||
subversion \
|
||||
sudo \
|
||||
tig \
|
||||
tree \
|
||||
unzip \
|
||||
vim \
|
||||
w3m \
|
||||
wget \
|
||||
whois \
|
||||
xz-utils \
|
||||
zip \
|
||||
zlib1g-dev \
|
||||
zsh \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
###
|
||||
### Install custom software
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- composer --------------------
|
||||
&& COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.x" \
|
||||
\
|
||||
&& 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 \
|
||||
\
|
||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||
\
|
||||
\
|
||||
# -------------------- pip --------------------
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libpython3-dev \
|
||||
python3-distutils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& curl -sS -L --fail https://bootstrap.pypa.io/get-pip.py | python3 \
|
||||
\
|
||||
\
|
||||
# -------------------- nvm --------------------
|
||||
&& NODE_VERSION="--lts" \
|
||||
\
|
||||
&& 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 /opt/nvm \
|
||||
&& curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh" \
|
||||
| NVM_DIR="/opt/nvm" bash \
|
||||
\
|
||||
&& { \
|
||||
echo 'export NVM_DIR="/opt/nvm"'; \
|
||||
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'; \
|
||||
} >> /home/devilbox/.bashrc \
|
||||
\
|
||||
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||
\
|
||||
&& su -c ". /opt/nvm/nvm.sh; nvm install ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; nvm use ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; corepack enable" devilbox \
|
||||
\
|
||||
&& chmod 0777 /opt/nvm \
|
||||
&& find /opt/nvm -type f -print0 | xargs -n1 -0 chmod go+w \
|
||||
&& find /opt/nvm -type d -print0 | xargs -n1 -0 chmod 0777 \
|
||||
\
|
||||
\
|
||||
# -------------------- pgsql_client --------------------
|
||||
&& 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/* \
|
||||
\
|
||||
# -------------------- mongo_client --------------------
|
||||
&& 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/* \
|
||||
\
|
||||
# -------------------- awesomeci --------------------
|
||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||
&& cd /usr/local/src/awesome-ci \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
&& ./configure --prefix=/usr/local \
|
||||
&& make install \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/awesome-ci \
|
||||
\
|
||||
\
|
||||
# -------------------- deployer --------------------
|
||||
&& curl -sS -k -L --fail https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
|
||||
&& chmod +x /usr/local/bin/dep \
|
||||
\
|
||||
# -------------------- gitflow --------------------
|
||||
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||
&& cd /tmp/gitflow \
|
||||
&& make install \
|
||||
&& cd / && rm -rf /tmp/gitflow \
|
||||
\
|
||||
\
|
||||
# -------------------- linkcheck --------------------
|
||||
&& curl -sS -L --fail https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||
&& chmod +x /usr/local/bin/linkcheck \
|
||||
\
|
||||
\
|
||||
# -------------------- mhsendmail --------------------
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
&& 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 \
|
||||
\
|
||||
\
|
||||
# -------------------- phpcs --------------------
|
||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs \
|
||||
&& chmod +x /usr/local/bin/phpcs \
|
||||
\
|
||||
\
|
||||
# -------------------- phpcbf --------------------
|
||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf \
|
||||
&& chmod +x /usr/local/bin/phpcbf \
|
||||
\
|
||||
\
|
||||
# -------------------- phpmd --------------------
|
||||
&& curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
||||
&& mv phpmd.phar /usr/local/bin/phpmd \
|
||||
&& chmod +x /usr/local/bin/phpmd \
|
||||
\
|
||||
\
|
||||
# -------------------- symfony --------------------
|
||||
&& VERSION="$(curl -s https://api.github.com/repos/symfony-cli/symfony-cli/releases/latest | awk -F\" '/symfony-cli_.*._amd64\.deb/{print $(NF-1)}' | head -1 | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/')" \
|
||||
&& curl -sS -L --fail -o /tmp/symfonycli.deb https://github.com/symfony-cli/symfony-cli/releases/download/v${VERSION}/symfony-cli_${VERSION}_$(dpkg-architecture --query DEB_HOST_ARCH).deb \
|
||||
&& dpkg -i /tmp/symfonycli.deb \
|
||||
&& rm -f /tmp/symfonycli.deb \
|
||||
\
|
||||
\
|
||||
# -------------------- wkhtmltopdf --------------------
|
||||
&& VERSION="$(curl -sSL -L --fail https://api.github.com/repos/wkhtmltopdf/packaging/releases | awk -F\" '/wkhtmltopdf.*.stretch_amd64\.deb/{print $(NF-1)}' | head -1 )" \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb ${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||
fi \
|
||||
\
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/*; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- wpcli --------------------
|
||||
&& curl -sS -L --fail https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
||||
&& chmod +x /usr/local/bin/wp \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
###
|
||||
### Install Composer (PHP)
|
||||
###
|
||||
RUN set -eux \
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || 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)
|
||||
|
||||
|
||||
###
|
||||
### Install npm (Node)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- angular_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @angular/cli' devilbox \
|
||||
\
|
||||
# -------------------- eslint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \
|
||||
\
|
||||
# -------------------- grunt --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt' devilbox \
|
||||
\
|
||||
# -------------------- grunt_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt-cli' devilbox \
|
||||
\
|
||||
# -------------------- gulp --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force gulp' devilbox \
|
||||
\
|
||||
# -------------------- jsonlint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \
|
||||
\
|
||||
# -------------------- pm2 --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force pm2' devilbox \
|
||||
\
|
||||
# -------------------- mdlint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force mdlint' devilbox \
|
||||
\
|
||||
# -------------------- sass --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force sass' devilbox \
|
||||
\
|
||||
# -------------------- stylelint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force stylelint' devilbox \
|
||||
\
|
||||
# -------------------- vue_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli' devilbox \
|
||||
\
|
||||
# -------------------- vue_cli_service_global --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli-service-global' devilbox \
|
||||
\
|
||||
# -------------------- webpack --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack' devilbox \
|
||||
\
|
||||
# -------------------- webpack_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||
fi \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install gem (Ruby)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- mixlib_config --------------------
|
||||
&& gem install mixlib-config -v 2.2.4 \
|
||||
\
|
||||
# -------------------- rb_inotify --------------------
|
||||
&& gem install rb-inotify -v 0.9.10 \
|
||||
\
|
||||
# -------------------- mdl --------------------
|
||||
&& gem install mdl -v 0.5.0 \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || 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)
|
||||
|
||||
|
||||
###
|
||||
### Install pip (Python) packages
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- yamllint --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||
\
|
||||
# -------------------- yq --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || 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)
|
||||
|
||||
|
||||
###
|
||||
### Configure Bash
|
||||
###
|
||||
RUN \
|
||||
{ \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo 'PATH="${HOME}/.yarn/bin:${PATH}"'; \
|
||||
echo 'PATH="${HOME}/.composer/vendor/bin:${PATH}"'; \
|
||||
echo 'PATH="/opt/nvm/versions/node/$(nvm version default)/bin:${PATH}"'; \
|
||||
echo "export PATH"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
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}/${BASH_PROFILE} /root/${BASH_PROFILE} \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/${BASH_PROFILE}
|
||||
|
||||
|
||||
###
|
||||
### 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
|
||||
|
||||
RUN set -eux \
|
||||
# -------------------- Software --------------------
|
||||
&& composer --version 2>/dev/null | grep -Ei '(composer|version)\s*[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; yarn --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
\
|
||||
&& 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 \
|
||||
\
|
||||
&& 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 \
|
||||
\
|
||||
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' \
|
||||
&& git-flow version | grep -E '[0-9][.0-9]+' \
|
||||
&& linkcheck --version | grep -E '^linkcheck\sv[0-9][.0-9]+' \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& phpcs --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& phpcbf --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||
&& symfony -V | grep -Ei 'version\s[0-9][.0-9]+' \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)"; fi \
|
||||
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Composer --------------------
|
||||
\
|
||||
# -------------------- PIP --------------------
|
||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||
\
|
||||
# -------------------- NPM --------------------
|
||||
&& ng version 2>&1 | grep -iE 'Angular CLI:\s*[0-9][.0-9]+' \
|
||||
&& eslint -v | grep -E '[0-9][.0-9]+' \
|
||||
&& grunt --version | grep -E '[0-9][.0-9]+' \
|
||||
&& gulp --version | grep -E '[0-9][.0-9]+' \
|
||||
&& jsonlint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' \
|
||||
&& mdlint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& sass --version | grep -E '[0-9][.0-9]+' \
|
||||
&& stylelint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& vue --version | grep -E '[0-9][.0-9]+' \
|
||||
&& webpack --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- GEM --------------------
|
||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Cleanup --------------------
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
# Deactive PSR and Phalcon:
|
||||
# https://github.com/devilbox/docker-php-fpm/issues/201
|
||||
RUN set -eux \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini || true \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-psr.ini || true \
|
||||
|
||||
|
||||
###
|
||||
### 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/*.sh /docker-entrypoint.d/
|
||||
COPY ./data/bash-devilbox /etc/bash-devilbox
|
||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||
|
||||
|
||||
###
|
||||
### 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"]
|
||||
134
Dockerfiles/work/data/php-fpm.conf/php-fpm-8.2.conf
Normal file
134
Dockerfiles/work/data/php-fpm.conf/php-fpm-8.2.conf
Normal file
@@ -0,0 +1,134 @@
|
||||
; ################################################################################
|
||||
; ####
|
||||
; #### The following settings can be overwritten by later includes
|
||||
; ####
|
||||
; ################################################################################
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Timeouts
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; The timeout for serving a single request after which the worker process will be killed.
|
||||
; This option should be used when the 'max_execution_time' ini option does not stop script
|
||||
; execution for some reason.
|
||||
request_terminate_timeout = 120s
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Logging
|
||||
; ############################################################
|
||||
|
||||
[global]
|
||||
error_log = /proc/self/fd/2
|
||||
log_level = notice
|
||||
|
||||
[www]
|
||||
; if we send this to /proc/self/fd/1, it never appears
|
||||
access.log = /proc/self/fd/2
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Backlog configuration
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; A maximum of backlog incoming connections will be queued for processing.
|
||||
; If a connection request arrives with the queue full the client may receive an error with an
|
||||
; indication of ECONNREFUSED, or, if the underlying protocol supports retransmission,
|
||||
; the request may be ignored so that retries may succeed.
|
||||
|
||||
; This should not be greater than `cat /proc/sys/net/core/somaxconn`, otherwise connections
|
||||
; are silently truncated
|
||||
listen.backlog = 1024
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Worker configuration
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; static - the number of child processes is fixed (pm.max_children).
|
||||
;
|
||||
; dynamic - the number of child processes is set dynamically based on the following directives:
|
||||
; pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers.
|
||||
;
|
||||
; ondemand - the processes spawn on demand (when requested, as opposed to dynamic, where
|
||||
; pm.start_servers are started when the service is started.
|
||||
pm = ondemand
|
||||
|
||||
; The maximum number of child processes to be created
|
||||
pm.max_children = 50
|
||||
|
||||
; The number of child processes created on startup. Used only when pm is set to dynamic.
|
||||
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.
|
||||
pm.start_servers = 4
|
||||
|
||||
; The desired minimum number of idle server processes.
|
||||
pm.min_spare_servers = 2
|
||||
|
||||
; The desired maximum number of idle server processes.
|
||||
pm.max_spare_servers = 6
|
||||
|
||||
; The number of requests each child process should execute before respawning.
|
||||
; This can be useful to work around memory leaks in 3rd party libraries.
|
||||
; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
|
||||
; Default value: 0.
|
||||
pm.max_requests = 500
|
||||
|
||||
; The number of seconds after which an idle process will be killed. Used only when pm is set to ondemand
|
||||
pm.process_idle_timeout = 10s
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Include
|
||||
; ############################################################
|
||||
|
||||
|
||||
[global]
|
||||
include = /usr/local/etc/php-fpm.d/*.conf
|
||||
|
||||
|
||||
; ################################################################################
|
||||
; ####
|
||||
; #### The following settings overwrite any includes again
|
||||
; ####
|
||||
; ################################################################################
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Required for Dockerization
|
||||
; ############################################################
|
||||
|
||||
[global]
|
||||
daemonize = no
|
||||
|
||||
[www]
|
||||
; Keep env variables set by docker
|
||||
clear_env = no
|
||||
|
||||
; Redirect worker stdout and stderr into main error log. If not set, stdout and
|
||||
; stderr will be redirected to /dev/null according to FastCGI specs.
|
||||
; Note: on highloaded environement, this can cause some delay in the page
|
||||
; process time (several ms).
|
||||
; Default Value: no
|
||||
catch_workers_output = yes
|
||||
|
||||
|
||||
; ############################################################
|
||||
; User and Group
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
user = devilbox
|
||||
group = devilbox
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Networking
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; Ensure to listen here
|
||||
listen = 9000
|
||||
48
Dockerfiles/work/data/php-ini.d/php-8.2.ini
Normal file
48
Dockerfiles/work/data/php-ini.d/php-8.2.ini
Normal file
@@ -0,0 +1,48 @@
|
||||
; ############################################################
|
||||
; # Devilbox PHP defaults for 8.2-work
|
||||
; ############################################################
|
||||
|
||||
; 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 = On
|
||||
display_startup_errors = On
|
||||
log_errors = On
|
||||
html_errors = On
|
||||
|
||||
|
||||
; Xdebug settings
|
||||
xdebug.mode = Off
|
||||
xdebug.start_with_request = default
|
||||
xdebug.client_port = 9000
|
||||
684
Makefile
684
Makefile
@@ -2,107 +2,88 @@ ifneq (,)
|
||||
.error This Makefile requires GNU Make.
|
||||
endif
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Docker configuration
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
|
||||
CURRENT_DIR = $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
|
||||
|
||||
DIR = Dockerfiles
|
||||
IMAGE = devilbox/php-fpm
|
||||
NO_CACHE =
|
||||
PHP_EXT_DIR =
|
||||
|
||||
# Run checks after each module has been installed (slow, but yields errors faster)
|
||||
FAIL_FAST = False
|
||||
|
||||
# File lint
|
||||
FL_VERSION = 0.3
|
||||
FL_IGNORES = .git/,.github/
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# DEFAULT TARGET
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
|
||||
help:
|
||||
@echo
|
||||
@echo " _ _ _ _ __ _ ___ "
|
||||
@echo " _| |___ _ _<_| | |_ _____ / ___| |_ ___ ___| | ___._ _ _ "
|
||||
@echo " / . / ._| | | | | . / . \ \// | . | . | . |___| || . | ' ' |"
|
||||
@echo " \___\___|__/|_|_|___\___/\_/_/| _|_|_| _/ |_|| _|_|_|_|"
|
||||
@echo " |_| |_| |_| "
|
||||
@echo
|
||||
@echo
|
||||
@echo "Targets"
|
||||
@echo "--------------------------------------------------------------------------------"
|
||||
@echo
|
||||
@echo "lint Lint project files and repository"
|
||||
@echo
|
||||
@echo "gen-readme [VERSION=] Update README with PHP modules from built images."
|
||||
@echo "gen-dockerfiles [FAIL_FAST=] Generate Dockerfiles from templates."
|
||||
@echo
|
||||
@echo "build-base VERSION= [ARGS=] Build base image by specified version"
|
||||
@echo "build-mods VERSION= [ARGS=] Build mods image by specified version"
|
||||
@echo "build-prod VERSION= [ARGS=] Build prod image by specified version"
|
||||
@echo "build-work VERSION= [ARGS=] Build work image by specified version"
|
||||
@echo
|
||||
@echo "rebuild-base VERSION= [ARGS=] Rebuild base image by specified version"
|
||||
@echo "rebuild-mods VERSION= [ARGS=] Rebuild mods image by specified version"
|
||||
@echo "rebuild-prod VERSION= [ARGS=] Rebuild prod image by specified version"
|
||||
@echo "rebuild-work VERSION= [ARGS=] Rebuild work image by specified version"
|
||||
@echo
|
||||
@echo "test-base VERSION= Test base image by specified version"
|
||||
@echo "test-mods VERSION= Test mods image by specified version"
|
||||
@echo "test-prod VERSION= Test prod image by specified version"
|
||||
@echo "test-work VERSION= Test work image by specified version"
|
||||
@echo
|
||||
@echo
|
||||
@echo "Variables"
|
||||
@echo "--------------------------------------------------------------------------------"
|
||||
@echo
|
||||
@echo "VERSION One of '5.2', '5.3', '5.4', '5.5', '5.6', '7.0',"
|
||||
@echo " '7.1', '7.2', '7.3', '7.4', '8.0', '8.1'."
|
||||
@echo " For gen-readme target it is optional and if not"
|
||||
@echo " specified, it will generate for all versions."
|
||||
@echo
|
||||
@echo "FAIL_FAST Either 'True' or 'False' (defaults to 'False')."
|
||||
@echo " If set to 'True', each module install has an"
|
||||
@echo " immediate check, which is very slow for CI, but"
|
||||
@echo " yields errors immediately."
|
||||
@echo " If set to 'False', checks are done at the end."
|
||||
@echo
|
||||
@echo "ARGS Can be added to all build-* and rebuild-* targets"
|
||||
@echo " to supply additional docker build options."
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Lint Targets
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
|
||||
lint: lint-files
|
||||
lint: lint-yaml
|
||||
lint: lint-changelog
|
||||
lint: lint-workflow
|
||||
|
||||
lint-workflow:
|
||||
@echo "################################################################################"
|
||||
@echo "# Lint Workflow"
|
||||
@echo "################################################################################"
|
||||
@\
|
||||
GIT_CURR_MAJOR="$$( git tag | sort -V | tail -1 | sed 's|\.[0-9]*$$||g' )"; \
|
||||
GIT_CURR_MINOR="$$( git tag | sort -V | tail -1 | sed 's|^[0-9]*\.||g' )"; \
|
||||
GIT_NEXT_TAG="$${GIT_CURR_MAJOR}.$$(( GIT_CURR_MINOR + 1 ))"; \
|
||||
if ! grep 'refs:' -A 100 .github/workflows/nightly.yml \
|
||||
| grep " - '$${GIT_NEXT_TAG}'" >/dev/null; then \
|
||||
echo "[ERR] New Tag required in .github/workflows/nightly.yml: $${GIT_NEXT_TAG}"; \
|
||||
exit 1; \
|
||||
else \
|
||||
echo "[OK] Git Tag present in .github/workflows/nightly.yml: $${GIT_NEXT_TAG}"; \
|
||||
# Ensure additional Makefiles are present
|
||||
MAKEFILES = Makefile.docker Makefile.lint
|
||||
$(MAKEFILES): URL=https://raw.githubusercontent.com/devilbox/makefiles/master/$(@)
|
||||
$(MAKEFILES):
|
||||
@if ! (curl --fail -sS -o $(@) $(URL) || wget -O $(@) $(URL)); then \
|
||||
echo "Error, curl or wget required."; \
|
||||
echo "Exiting."; \
|
||||
false; \
|
||||
fi
|
||||
include $(MAKEFILES)
|
||||
|
||||
# Set default Target
|
||||
.DEFAULT_GOAL := help
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Default configuration
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Own vars
|
||||
TAG = latest
|
||||
|
||||
# Makefile.docker overwrites
|
||||
NAME = PHP
|
||||
#VERSION = 5.5
|
||||
IMAGE = devilbox/php-fpm
|
||||
#FLAVOUR = debian
|
||||
#STAGE = base
|
||||
FILE = Dockerfile-$(VERSION)
|
||||
DIR = Dockerfiles/$(STAGE)
|
||||
|
||||
ifeq ($(strip $(TAG)),latest)
|
||||
DOCKER_TAG = $(VERSION)-$(STAGE)
|
||||
BASE_TAG = $(VERSION)-base
|
||||
MODS_TAG = $(VERSION)-mods
|
||||
PROD_TAG = $(VERSION)-prod
|
||||
WORK_TAG = $(VERSION)-work
|
||||
else
|
||||
DOCKER_TAG = $(VERSION)-$(STAGE)-$(TAG)
|
||||
BASE_TAG = $(VERSION)-base-$(TAG)
|
||||
MODS_TAG = $(VERSION)-mods-$(TAG)
|
||||
PROD_TAG = $(VERSION)-prod-$(TAG)
|
||||
WORK_TAG = $(VERSION)-work-$(TAG)
|
||||
endif
|
||||
ARCH = linux/amd64
|
||||
|
||||
|
||||
# Makefile.lint overwrites
|
||||
FL_IGNORES = .git/,.github/,tests/,*.mypy_cache/
|
||||
SC_IGNORES = .git/,.github/,tests/
|
||||
JL_IGNORES = .git/,.github/,*.mypy_cache*
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Default Target
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
.PHONY: help
|
||||
help:
|
||||
@echo "lint Lint project files and repository"
|
||||
@echo
|
||||
@echo "build [ARCH=...] [TAG=...] Build Docker image"
|
||||
@echo "rebuild [ARCH=...] [TAG=...] Build Docker image without cache"
|
||||
@echo "push [ARCH=...] [TAG=...] Push Docker image to Docker hub"
|
||||
@echo
|
||||
@echo "manifest-create [ARCHES=...] [TAG=...] Create multi-arch manifest"
|
||||
@echo "manifest-push [TAG=...] Push multi-arch manifest"
|
||||
@echo
|
||||
@echo "test [ARCH=...] Test built Docker image"
|
||||
@echo
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Overwrite Targets
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
|
||||
# Append additional target to lint
|
||||
lint: lint-changelog
|
||||
lint: lint-ansible
|
||||
|
||||
###
|
||||
### Ensures CHANGELOG has an entry
|
||||
###
|
||||
.PHONY: lint-changelog
|
||||
lint-changelog:
|
||||
@echo "################################################################################"
|
||||
@echo "# Lint Changelog"
|
||||
@@ -119,43 +100,148 @@ lint-changelog:
|
||||
fi
|
||||
@echo
|
||||
|
||||
lint-files:
|
||||
@echo "################################################################################"
|
||||
@echo "# Lint Files"
|
||||
@echo "################################################################################"
|
||||
@docker run --rm $$(tty -s && echo "-it" || echo) -v $(CURRENT_DIR):/data cytopia/file-lint:$(FL_VERSION) file-cr --text --ignore '$(FL_IGNORES)' --path .
|
||||
@docker run --rm $$(tty -s && echo "-it" || echo) -v $(CURRENT_DIR):/data cytopia/file-lint:$(FL_VERSION) file-crlf --text --ignore '$(FL_IGNORES)' --path .
|
||||
@docker run --rm $$(tty -s && echo "-it" || echo) -v $(CURRENT_DIR):/data cytopia/file-lint:$(FL_VERSION) file-trailing-single-newline --text --ignore '$(FL_IGNORES)' --path .
|
||||
@docker run --rm $$(tty -s && echo "-it" || echo) -v $(CURRENT_DIR):/data cytopia/file-lint:$(FL_VERSION) file-trailing-space --text --ignore '$(FL_IGNORES)' --path .
|
||||
@docker run --rm $$(tty -s && echo "-it" || echo) -v $(CURRENT_DIR):/data cytopia/file-lint:$(FL_VERSION) file-utf8 --text --ignore '$(FL_IGNORES)' --path .
|
||||
@docker run --rm $$(tty -s && echo "-it" || echo) -v $(CURRENT_DIR):/data cytopia/file-lint:$(FL_VERSION) file-utf8-bom --text --ignore '$(FL_IGNORES)' --path .
|
||||
@echo
|
||||
|
||||
lint-yaml:
|
||||
@# Lint all files
|
||||
@echo "################################################################################"
|
||||
@echo "# Lint Yaml"
|
||||
@echo "################################################################################"
|
||||
@docker run --rm $$(tty -s && echo "-it" || echo) -v $(CURRENT_DIR):/data cytopia/yamllint .
|
||||
@echo
|
||||
###
|
||||
### Ensures Ansible Dockerfile generation is current
|
||||
###
|
||||
.PHONY: lint-ansible
|
||||
lint-ansible: gen-dockerfiles
|
||||
@git diff --quiet || { echo "Build Changes"; git diff; git status; false; }
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# GENERATE TARGETS
|
||||
# Docker Targets
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
|
||||
gen-readme:
|
||||
ifeq ($(strip $(VERSION)),)
|
||||
@echo "Generate README.md for all PHP versions"
|
||||
cd build; ./gen-readme.sh
|
||||
else
|
||||
@echo "Generate README.md for PHP $(VERSION)"
|
||||
@$(MAKE) --no-print-directory _check-version
|
||||
@$(MAKE) --no-print-directory _check-image-exists _EXIST_IMAGE=base
|
||||
@$(MAKE) --no-print-directory _check-image-exists _EXIST_IMAGE=mods
|
||||
cd build; ./gen-readme.sh $(VERSION)
|
||||
# ---- ONLY FOR "mods" images ----
|
||||
# When builds mods, we have a builder image and then copy everything to the final
|
||||
# target image. In order to do so, we pass a build-arg EXT_DIR, which contains
|
||||
# the variable directory of extensions to copy.
|
||||
# The only way to "LAZY" fetch it, is by doing a call to the base image and populate
|
||||
# a Makefile variable with its value upon call.
|
||||
ifeq ($(strip $(STAGE)),mods)
|
||||
EXT_DIR=$$( docker run --rm --platform $(ARCH) --entrypoint=php $(IMAGE):$(BASE_TAG) -r \
|
||||
'echo ini_get("extension_dir");'\
|
||||
)
|
||||
endif
|
||||
|
||||
# Use Buldkit for building
|
||||
#export DOCKER_BUILDKIT=1
|
||||
|
||||
.PHONY: build
|
||||
build: check-stage-is-set
|
||||
build: check-parent-image-exists
|
||||
build: ARGS+=--build-arg EXT_DIR=$(EXT_DIR)
|
||||
build: docker-arch-build
|
||||
|
||||
.PHONY: rebuild
|
||||
rebuild: check-stage-is-set
|
||||
rebuild: check-parent-image-exists
|
||||
rebuild: ARGS+=--build-arg EXT_DIR=$(EXT_DIR)
|
||||
rebuild: docker-arch-rebuild
|
||||
|
||||
.PHONY: push
|
||||
push: check-stage-is-set
|
||||
push: check-version-is-set
|
||||
push: docker-arch-push
|
||||
|
||||
.PHONY: tag
|
||||
tag: check-stage-is-set
|
||||
tag: check-version-is-set
|
||||
tag:
|
||||
docker tag $(IMAGE):$(VERSION)-$(STAGE) $(IMAGE):$(DOCKER_TAG)
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Save / Load Targets
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
.PHONY: save
|
||||
save: check-stage-is-set
|
||||
save: check-version-is-set
|
||||
save: check-current-image-exists
|
||||
save: docker-save
|
||||
|
||||
.PHONY: load
|
||||
load: docker-load
|
||||
|
||||
.PHONY: save-verify
|
||||
save-verify: save
|
||||
save-verify: load
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Manifest Targets
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
.PHONY: manifest-create
|
||||
manifest-create: docker-manifest-create
|
||||
|
||||
.PHONY: manifest-push
|
||||
manifest-push: docker-manifest-push
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Test Targets
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
.PHONY: test
|
||||
test: check-stage-is-set
|
||||
test: check-current-image-exists
|
||||
test: gen-readme
|
||||
test: test-integration
|
||||
|
||||
.PHONY: test-integration
|
||||
test-integration:
|
||||
./tests/test.sh $(IMAGE) $(ARCH) $(VERSION) $(STAGE) $(DOCKER_TAG)
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Generate Targets
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
|
||||
###
|
||||
### Generate README (requires images to be built)
|
||||
###
|
||||
.PHONY: gen-readme
|
||||
gen-readme: check-version-is-set
|
||||
gen-readme: check-stage-is-set
|
||||
gen-readme: _gen-readme-docs
|
||||
gen-readme: _gen-readme-main
|
||||
|
||||
.PHONY: _gen-readme-docs
|
||||
_gen-readme-docs:
|
||||
@echo "################################################################################"
|
||||
@echo "# Generate doc/php-modules.md for PHP $(VERSION) ($(IMAGE):$(DOCKER_TAG)) on $(ARCH)"
|
||||
@echo "################################################################################"
|
||||
./bin/gen-readme.sh $(IMAGE) $(ARCH) $(STAGE) $(VERSION) || bash -x ./bin/gen-readme.sh $(IMAGE) $(ARCH) $(STAGE) $(VERSION)
|
||||
git diff --quiet || { echo "Build Changes"; git diff; git status; false; }
|
||||
@echo
|
||||
|
||||
.PHONY: _gen-readme-main
|
||||
_gen-readme-main:
|
||||
@echo "################################################################################"
|
||||
@echo "# Generate README.md"
|
||||
@echo "################################################################################"
|
||||
MODULES="$$( cat doc/php-modules.md \
|
||||
| grep href \
|
||||
| sed -e 's|</a.*||g' -e 's|.*">||g' \
|
||||
| sort -fu \
|
||||
| xargs -n1 sh -c 'echo "[\`$$1\`](php_modules/$$(echo "$${1}" | tr "[:upper:]" "[:lower:]")/)"' -- )"; \
|
||||
cat "README.md" \
|
||||
| perl -0 -pe "s#<!-- modules -->.*<!-- /modules -->#<!-- modules -->\n$${MODULES}\n<!-- /modules -->#s" \
|
||||
> "README.md.tmp"
|
||||
yes | mv -f "README.md.tmp" "README.md"
|
||||
git diff --quiet || { echo "Build Changes"; git diff; git status; false; }
|
||||
@echo
|
||||
|
||||
###
|
||||
### Generate Modules
|
||||
###
|
||||
.PHONY: gen-modules
|
||||
gen-modules:
|
||||
./bin/modules-generate.py $(ARGS)
|
||||
|
||||
###
|
||||
### Generate Dockerfiles
|
||||
###
|
||||
.PHONY: gen-dockerfiles
|
||||
gen-dockerfiles:
|
||||
docker run --rm \
|
||||
$$(tty -s && echo "-it" || echo) \
|
||||
@@ -163,253 +249,127 @@ gen-dockerfiles:
|
||||
-e MY_UID=$$(id -u) \
|
||||
-e MY_GID=$$(id -g) \
|
||||
-v ${PWD}:/data \
|
||||
-w /data/build/ansible \
|
||||
cytopia/ansible:2.8-tools ansible-playbook generate.yml \
|
||||
-e ANSIBLE_STRATEGY_PLUGINS=/usr/lib/python3.8/site-packages/ansible_mitogen/plugins/strategy \
|
||||
-w /data/.ansible \
|
||||
cytopia/ansible:2.13-tools ansible-playbook generate.yml \
|
||||
-e ANSIBLE_STRATEGY_PLUGINS=/usr/lib/python3.10/site-packages/ansible_mitogen/plugins/strategy \
|
||||
-e ANSIBLE_STRATEGY=mitogen_linear \
|
||||
-e ansible_python_interpreter=/usr/bin/python3 \
|
||||
-e \"{build_fail_fast: $(FAIL_FAST)}\" \
|
||||
--diff $(ARGS)
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# BUILD TARGETS
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
|
||||
build-base: _check-version
|
||||
build-base:
|
||||
docker build $(NO_CACHE) \
|
||||
--label "org.opencontainers.image.created"="$$(date --rfc-3339=s)" \
|
||||
--label "org.opencontainers.image.version"="$$(git rev-parse --abbrev-ref HEAD)" \
|
||||
--label "org.opencontainers.image.revision"="$$(git rev-parse HEAD))" \
|
||||
$(ARGS) \
|
||||
-t $(IMAGE):${VERSION}-base \
|
||||
-f $(DIR)/base/Dockerfile-${VERSION} $(DIR)/base
|
||||
|
||||
|
||||
build-mods: _check-version
|
||||
build-mods: _EXIST_IMAGE=base
|
||||
build-mods: _check-image-exists
|
||||
build-mods:
|
||||
ifeq ($(strip $(TARGET)),)
|
||||
docker build $(NO_CACHE) \
|
||||
--target builder \
|
||||
-t $(IMAGE):$(VERSION)-mods \
|
||||
-f $(DIR)/mods/Dockerfile-$(VERSION) $(DIR)/mods;
|
||||
@# $(NO_CACHE) is removed, as it would otherwise rebuild the 'builder' image again.
|
||||
docker build \
|
||||
--target final \
|
||||
--label "org.opencontainers.image.created"="$$(date --rfc-3339=s)" \
|
||||
--label "org.opencontainers.image.version"="$$(git rev-parse --abbrev-ref HEAD)" \
|
||||
--label "org.opencontainers.image.revision"="$$(git rev-parse HEAD)" \
|
||||
--build-arg EXT_DIR="$$( docker run --rm --entrypoint=php $(IMAGE):$(VERSION)-mods -i \
|
||||
| grep ^extension_dir \
|
||||
| awk -F '=>' '{print $$2}' \
|
||||
| xargs \
|
||||
)" \
|
||||
$(ARGS) \
|
||||
-t $(IMAGE):$(VERSION)-mods \
|
||||
-f $(DIR)/mods/Dockerfile-$(VERSION) $(DIR)/mods;
|
||||
else
|
||||
docker build $(NO_CACHE) \
|
||||
--target $(TARGET) \
|
||||
--label "org.opencontainers.image.created"="$$(date --rfc-3339=s)" \
|
||||
--label "org.opencontainers.image.version"="$$(git rev-parse --abbrev-ref HEAD)" \
|
||||
--label "org.opencontainers.image.revision"="$$(git rev-parse HEAD)" \
|
||||
$(ARGS) \
|
||||
-t $(IMAGE):$(VERSION)-mods \
|
||||
-f $(DIR)/mods/Dockerfile-$(VERSION) $(DIR)/mods
|
||||
endif
|
||||
|
||||
|
||||
build-prod: _check-version
|
||||
build-prod: _EXIST_IMAGE=mods
|
||||
build-prod: _check-image-exists
|
||||
build-prod:
|
||||
docker build $(NO_CACHE) \
|
||||
--label "org.opencontainers.image.created"="$$(date --rfc-3339=s)" \
|
||||
--label "org.opencontainers.image.version"="$$(git rev-parse --abbrev-ref HEAD)" \
|
||||
--label "org.opencontainers.image.revision"="$$(git rev-parse HEAD)" \
|
||||
$(ARGS) \
|
||||
-t $(IMAGE):${VERSION}-prod \
|
||||
-f $(DIR)/prod/Dockerfile-${VERSION} $(DIR)/prod
|
||||
|
||||
|
||||
build-work: _check-version
|
||||
build-work: _EXIST_IMAGE=prod
|
||||
build-work: _check-image-exists
|
||||
build-work:
|
||||
docker build $(NO_CACHE) \
|
||||
--label "org.opencontainers.image.created"="$$(date --rfc-3339=s)" \
|
||||
--label "org.opencontainers.image.version"="$$(git rev-parse --abbrev-ref HEAD)" \
|
||||
--label "org.opencontainers.image.revision"="$$(git rev-parse HEAD)" \
|
||||
$(ARGS) \
|
||||
-t $(IMAGE):${VERSION}-work \
|
||||
-f $(DIR)/work/Dockerfile-${VERSION} $(DIR)/work
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# REBUILD TARGETS
|
||||
# HELPER TARGETS
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
|
||||
rebuild-base: _pull-base-image
|
||||
rebuild-base: NO_CACHE=--no-cache
|
||||
rebuild-base: build-base
|
||||
###
|
||||
### Ensures the VERSION variable is set
|
||||
###
|
||||
.PHONY: check-version-is-set
|
||||
check-version-is-set:
|
||||
@if [ "$(VERSION)" = "" ]; then \
|
||||
echo "This make target requires the VERSION variable to be set."; \
|
||||
echo "make <target> VERSION="; \
|
||||
echo "Exiting."; \
|
||||
exit 1; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Ensures the STAGE variable is set
|
||||
###
|
||||
.PHONY: check-stage-is-set
|
||||
check-stage-is-set:
|
||||
@if [ "$(STAGE)" = "" ]; then \
|
||||
echo "This make target requires the STAGE variable to be set."; \
|
||||
echo "make <target> STAGE="; \
|
||||
echo "Exiting."; \
|
||||
exit 1; \
|
||||
fi
|
||||
@if [ "$(STAGE)" != "base" ] && [ "$(STAGE)" != "mods" ] && [ "$(STAGE)" != "prod" ] && [ "$(STAGE)" != "work" ]; then \
|
||||
echo "Error, Flavour can only be one of 'base', 'mods', 'prod', or 'work'."; \
|
||||
echo "Exiting."; \
|
||||
exit 1; \
|
||||
fi
|
||||
|
||||
rebuild-mods: NO_CACHE=--no-cache
|
||||
rebuild-mods: build-mods
|
||||
|
||||
|
||||
rebuild-prod: NO_CACHE=--no-cache
|
||||
rebuild-prod: build-prod
|
||||
|
||||
|
||||
rebuild-work: NO_CACHE=--no-cache
|
||||
rebuild-work: build-work
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# TEST TARGETS
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
|
||||
test-base: _check-version
|
||||
test-base: _EXIST_IMAGE=base
|
||||
test-base: _check-image-exists
|
||||
test-base:
|
||||
./tests/test.sh ${VERSION} base
|
||||
|
||||
|
||||
test-mods: _check-version
|
||||
test-mods: _EXIST_IMAGE=mods
|
||||
test-mods: _check-image-exists
|
||||
test-mods: _check-version
|
||||
./tests/test.sh ${VERSION} mods
|
||||
|
||||
|
||||
test-prod: _check-version
|
||||
test-prod: _EXIST_IMAGE=prod
|
||||
test-prod: _check-image-exists
|
||||
test-prod: _check-version
|
||||
./tests/test.sh ${VERSION} prod
|
||||
|
||||
|
||||
test-work: _check-version
|
||||
test-work: _EXIST_IMAGE=work
|
||||
test-work: _check-image-exists
|
||||
test-work: _check-version
|
||||
./tests/test.sh ${VERSION} work
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# DOCKERHUB TARGETS
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
login:
|
||||
ifeq ($(strip $(USERNAME)),)
|
||||
@$(info This make target requires the USERNAME variable to be set.)
|
||||
@$(info make login USERNAME= PASSWORD=)
|
||||
@$(info )
|
||||
@$(error Exiting)
|
||||
endif
|
||||
ifeq ($(strip $(PASSWORD)),)
|
||||
@$(info This make target requires the PASSWORD variable to be set.)
|
||||
@$(info make login USERNAME= PASSWORD=)
|
||||
@$(info )
|
||||
@$(error Exiting)
|
||||
endif
|
||||
@yes | docker login --username $(USERNAME) --password $(PASSWORD)
|
||||
|
||||
|
||||
push:
|
||||
ifeq ($(strip $(TAG)),)
|
||||
@$(info This make target requires the TAG variable to be set.)
|
||||
@$(info make push TAG=)
|
||||
@$(info )
|
||||
@$(error Exiting)
|
||||
endif
|
||||
docker push $(IMAGE):$(TAG)
|
||||
|
||||
|
||||
tag:
|
||||
ifeq ($(strip $(OLD_TAG)),)
|
||||
@$(info This make target requires the OLD_TAG variable to be set.)
|
||||
@$(info make tag OLD_TAG= NEW_TAG=)
|
||||
@$(info )
|
||||
@$(error Exiting)
|
||||
endif
|
||||
ifeq ($(strip $(NEW_TAG)),)
|
||||
@$(info This make target requires the NEW_TAG variable to be set.)
|
||||
@$(info make tag OLD_TAG= NEW_TAG=)
|
||||
@$(info )
|
||||
@$(error Exiting)
|
||||
endif
|
||||
docker tag $(IMAGE):$(OLD_TAG) $(IMAGE):$(NEW_TAG)
|
||||
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# HELPER TARGETS
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
|
||||
_check-version:
|
||||
ifeq ($(strip $(VERSION)),)
|
||||
@$(info This make target requires the VERSION variable to be set.)
|
||||
@$(info make build-<flavour> VERSION=7.3)
|
||||
@$(info )
|
||||
@$(error Exiting)
|
||||
endif
|
||||
ifeq ($(VERSION),5.2)
|
||||
else
|
||||
ifeq ($(VERSION),5.3)
|
||||
else
|
||||
ifeq ($(VERSION),5.4)
|
||||
else
|
||||
ifeq ($(VERSION),5.5)
|
||||
else
|
||||
ifeq ($(VERSION),5.6)
|
||||
else
|
||||
ifeq ($(VERSION),7.0)
|
||||
else
|
||||
ifeq ($(VERSION),7.1)
|
||||
else
|
||||
ifeq ($(VERSION),7.2)
|
||||
else
|
||||
ifeq ($(VERSION),7.3)
|
||||
else
|
||||
ifeq ($(VERSION),7.4)
|
||||
else
|
||||
ifeq ($(VERSION),8.0)
|
||||
else
|
||||
ifeq ($(VERSION),8.1)
|
||||
else
|
||||
@$(info VERSION can only be: '5.2', '5.3', '5.4', '5.5', '5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0' or '8.1')
|
||||
@$(info )
|
||||
@$(error Exiting)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
@echo "Version $(VERSION) is valid"
|
||||
|
||||
|
||||
_check-image-exists:
|
||||
@if [ "$$(docker images -q $(IMAGE):$(VERSION)-$(_EXIST_IMAGE))" = "" ]; then \
|
||||
>&2 echo "Docker image '$(IMAGE):$(VERSION)-$(_EXIST_IMAGE)' was not found locally."; \
|
||||
###
|
||||
### Checks if current image exists and is of correct architecture
|
||||
###
|
||||
.PHONY: check-current-image-exists
|
||||
check-current-image-exists: check-stage-is-set
|
||||
check-current-image-exists:
|
||||
@if [ "$$( docker images -q $(IMAGE):$(DOCKER_TAG) )" = "" ]; then \
|
||||
>&2 echo "Docker image '$(IMAGE):$(DOCKER_TAG)' was not found locally."; \
|
||||
>&2 echo "Either build it first or explicitly pull it from Dockerhub."; \
|
||||
>&2 echo "This is a safeguard to not automatically pull the Docker image."; \
|
||||
>&2 echo; \
|
||||
false; \
|
||||
exit 1; \
|
||||
else \
|
||||
echo "OK: Image $(IMAGE):$(DOCKER_TAG) exists"; \
|
||||
fi; \
|
||||
OS="$$( docker image inspect $(IMAGE):$(DOCKER_TAG) --format '{{.Os}}' )"; \
|
||||
ARCH="$$( docker image inspect $(IMAGE):$(DOCKER_TAG) --format '{{.Architecture}}' )"; \
|
||||
if [ "$${OS}/$${ARCH}" != "$(ARCH)" ]; then \
|
||||
>&2 echo "Docker image '$(IMAGE):$(DOCKER_TAG)' has invalid architecture: $${OS}/$${ARCH}"; \
|
||||
>&2 echo "Expected: $(ARCH)"; \
|
||||
>&2 echo; \
|
||||
exit 1; \
|
||||
else \
|
||||
echo "OK: Image $(IMAGE):$(DOCKER_TAG) is of arch $${OS}/$${ARCH}"; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Checks if parent image exists and is of correct architecture
|
||||
###
|
||||
.PHONY: check-parent-image-exists
|
||||
check-parent-image-exists: check-stage-is-set
|
||||
check-parent-image-exists:
|
||||
@if [ "$(STAGE)" = "work" ]; then \
|
||||
if [ "$$( docker images -q $(IMAGE):$(PROD_TAG) )" = "" ]; then \
|
||||
>&2 echo "Docker image '$(IMAGE):$(PROD_TAG)' was not found locally."; \
|
||||
>&2 echo "Either build it first or explicitly pull it from Dockerhub."; \
|
||||
>&2 echo "This is a safeguard to not automatically pull the Docker image."; \
|
||||
>&2 echo; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
OS="$$( docker image inspect $(IMAGE):$(PROD_TAG) --format '{{.Os}}' )"; \
|
||||
ARCH="$$( docker image inspect $(IMAGE):$(PROD_TAG) --format '{{.Architecture}}' )"; \
|
||||
if [ "$${OS}/$${ARCH}" != "$(ARCH)" ]; then \
|
||||
>&2 echo "Docker image '$(IMAGE):$(PROD_TAG)' has invalid architecture: $${OS}/$${ARCH}"; \
|
||||
>&2 echo "Expected: $(ARCH)"; \
|
||||
>&2 echo; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
elif [ "$(STAGE)" = "prod" ]; then \
|
||||
if [ "$$( docker images -q $(IMAGE):$(MODS_TAG) )" = "" ]; then \
|
||||
>&2 echo "Docker image '$(IMAGE):$(MODS_TAG)' was not found locally."; \
|
||||
>&2 echo "Either build it first or explicitly pull it from Dockerhub."; \
|
||||
>&2 echo "This is a safeguard to not automatically pull the Docker image."; \
|
||||
>&2 echo; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
OS="$$( docker image inspect $(IMAGE):$(MODS_TAG) --format '{{.Os}}' )"; \
|
||||
ARCH="$$( docker image inspect $(IMAGE):$(MODS_TAG) --format '{{.Architecture}}' )"; \
|
||||
if [ "$${OS}/$${ARCH}" != "$(ARCH)" ]; then \
|
||||
>&2 echo "Docker image '$(IMAGE):$(MODS_TAG)' has invalid architecture: $${OS}/$${ARCH}"; \
|
||||
>&2 echo "Expected: $(ARCH)"; \
|
||||
>&2 echo; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
elif [ "$(STAGE)" = "mods" ]; then \
|
||||
if [ "$$( docker images -q $(IMAGE):$(BASE_TAG) )" = "" ]; then \
|
||||
>&2 echo "Docker image '$(IMAGE):$(BASE_TAG)' was not found locally."; \
|
||||
>&2 echo "Either build it first or explicitly pull it from Dockerhub."; \
|
||||
>&2 echo "This is a safeguard to not automatically pull the Docker image."; \
|
||||
>&2 echo; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
OS="$$( docker image inspect $(IMAGE):$(BASE_TAG) --format '{{.Os}}' )"; \
|
||||
ARCH="$$( docker image inspect $(IMAGE):$(BASE_TAG) --format '{{.Architecture}}' )"; \
|
||||
if [ "$${OS}/$${ARCH}" != "$(ARCH)" ]; then \
|
||||
>&2 echo "Docker image '$(IMAGE):$(BASE_TAG)' has invalid architecture: $${OS}/$${ARCH}"; \
|
||||
>&2 echo "Expected: $(ARCH)"; \
|
||||
>&2 echo; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
fi;
|
||||
|
||||
|
||||
_pull-base-image:
|
||||
@echo "Pulling root image for PHP ${VERSION}"
|
||||
@docker pull $(shell grep FROM $(DIR)/base/Dockerfile-${VERSION} | sed 's/^FROM\s*//g';)
|
||||
|
||||
38
bin/Makefile
Normal file
38
bin/Makefile
Normal file
@@ -0,0 +1,38 @@
|
||||
ifneq (,)
|
||||
.error This Makefile requires GNU Make.
|
||||
endif
|
||||
|
||||
default: help
|
||||
|
||||
# Ensure additional Makefiles are present
|
||||
MAKEFILES = Makefile.python
|
||||
$(MAKEFILES): URL=https://raw.githubusercontent.com/devilbox/makefiles/master/$(@)
|
||||
$(MAKEFILES):
|
||||
@if ! (curl --fail -sS -o $(@) $(URL) || wget -O $(@) $(URL)); then \
|
||||
echo "Error, curl or wget required."; \
|
||||
echo "Exiting."; \
|
||||
false; \
|
||||
fi
|
||||
include $(MAKEFILES)
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Default configuration
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
MYPY_ARGS = --strict --disable-error-code no-any-return
|
||||
|
||||
PYLINT_DIR = *.py
|
||||
PYLINT_PIP_PKGS = yamllint
|
||||
PYLINT_ARGS = --disable=invalid-name
|
||||
|
||||
PYCODE_ARGS = --max-line-length=100
|
||||
|
||||
BLACK_LINT_ARGS = -l 100 --check --diff
|
||||
BLACK_FIX_ARGS = -l 100
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Default Target
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
help:
|
||||
@echo "make lint # Lint Python sources"
|
||||
268
bin/gen-readme.sh
Executable file
268
bin/gen-readme.sh
Executable file
@@ -0,0 +1,268 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Be very strict
|
||||
set -e
|
||||
set -u
|
||||
set -o pipefail
|
||||
|
||||
# Get absolute directory of this script
|
||||
SCRIPT_PATH="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
||||
SCRIPT_NAME="$(basename "${SCRIPT_PATH}")"
|
||||
REPO_PATH="${SCRIPT_PATH}/.."
|
||||
README="${REPO_PATH}/doc/php-modules.md"
|
||||
|
||||
|
||||
#--------------------------------------------------------------------------------------------------
|
||||
# Evaluate given cli arguments
|
||||
#--------------------------------------------------------------------------------------------------
|
||||
|
||||
###
|
||||
### Show Usage
|
||||
###
|
||||
print_usage() {
|
||||
echo "Usage: ${SCRIPT_NAME} <IMAGE> <ARCH> <STAGE> [<VERSION>]"
|
||||
}
|
||||
|
||||
if [ "${#}" -lt "3" ]; then
|
||||
print_usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
IMAGE="${1}"
|
||||
ARCH="${2}"
|
||||
STAGE="${3}"
|
||||
VERSION="${4:-}"
|
||||
|
||||
if [ "${STAGE}" != "base" ] && [ "${STAGE}" != "mods" ]; then
|
||||
echo "[SKIP]: Skipping for STAGE: ${STAGE} (only 'base' and 'mods' supported"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
|
||||
#--------------------------------------------------------------------------------------------------
|
||||
# Module functions
|
||||
#--------------------------------------------------------------------------------------------------
|
||||
|
||||
###
|
||||
### Get all modules defined in README
|
||||
###
|
||||
get_modules_from_readme() {
|
||||
local php_version="${1}" # PHP version
|
||||
local modules
|
||||
modules="$( \
|
||||
grep -Eo "ext_${STAGE}_.+_${php_version}" "${README}" \
|
||||
| sed "s/^ext_${STAGE}_//g" \
|
||||
| sed "s/_${php_version}//g" \
|
||||
)"
|
||||
echo "${modules}" | sort -fu
|
||||
}
|
||||
|
||||
|
||||
###
|
||||
### Get modules available in PHP image
|
||||
###
|
||||
get_modules_from_image() {
|
||||
local php_version="${1}"
|
||||
local img_tag="${2}"
|
||||
local modules
|
||||
|
||||
modules="$( \
|
||||
docker run --rm --platform "${ARCH}" --entrypoint=php "${IMAGE}:${img_tag}" -m \
|
||||
| sed 's/Zend //g' \
|
||||
| sed 's/xdebug/Xdebug/g' \
|
||||
| sed 's/Core//g' \
|
||||
| sed 's/standard//g' \
|
||||
| grep -E '^[a-zA-Z]' \
|
||||
| sort -fu \
|
||||
)"
|
||||
|
||||
# Get modules which might be disabled
|
||||
if docker run --rm --platform "${ARCH}" --entrypoint=find "${IMAGE}:${img_tag}" /usr/local/lib/php/extensions -name 'ioncube.so' | grep -q ioncube.so; then
|
||||
modules="$( printf "%s\n%s\n" "${modules}" "ioncube" )";
|
||||
fi
|
||||
|
||||
if docker run --rm --platform "${ARCH}" --entrypoint=find "${IMAGE}:${img_tag}" /usr/local/lib/php/extensions -name 'blackfire.so' | grep -q blackfire.so; then
|
||||
modules="$( printf "%s\n%s\n" "${modules}" "blackfire" )";
|
||||
fi
|
||||
|
||||
if docker run --rm --platform "${ARCH}" --entrypoint=find "${IMAGE}:${img_tag}" /usr/local/lib/php/extensions -name 'psr.so' | grep -q psr.so; then
|
||||
modules="$( printf "%s\n%s\n" "${modules}" "psr" )";
|
||||
fi
|
||||
|
||||
if docker run --rm --platform "${ARCH}" --entrypoint=find "${IMAGE}:${img_tag}" /usr/local/lib/php/extensions -name 'phalcon.so' | grep -q phalcon.so; then
|
||||
modules="$( printf "%s\n%s\n" "${modules}" "phalcon" )";
|
||||
fi
|
||||
|
||||
# Sort alphabetically
|
||||
modules="$( echo "${modules}" | sort -fu )"
|
||||
|
||||
# Remove weired line endings
|
||||
while read -r line; do
|
||||
echo "${line}" | tr -d '\r' | tr -d '\n'
|
||||
echo
|
||||
done < <(echo "${modules}")
|
||||
}
|
||||
|
||||
|
||||
###
|
||||
### Validate that README.md has all modules defined that are found in the PHP docker image
|
||||
###
|
||||
validate_readme() {
|
||||
local php_version="${1}"
|
||||
local modules_img="${2}" # Modules found in the PHP docker image
|
||||
local stage="${3}" # base or mods
|
||||
|
||||
# Check if README.md contains all modules we have retrieved from the PHP image
|
||||
while read -r line; do
|
||||
module="$( echo "${line}" | tr '[:upper:]' '[:lower:]' )"
|
||||
search="ext_${stage}_${module}_${php_version}"
|
||||
if ! grep -q "${search}" "${README}"; then
|
||||
echo "[ERROR] Module: '${module}' not present in ${README} for PHP ${php_version}, STAGE: ${stage}"
|
||||
echo "grep -q \"${search}\" \"${README}\""
|
||||
exit 1
|
||||
fi
|
||||
done < <(echo "${modules_img}")
|
||||
}
|
||||
|
||||
|
||||
###
|
||||
### Update README.md for a specific PHP version
|
||||
###
|
||||
update_readme() {
|
||||
local php_version="${1}"
|
||||
local modules_image="${2}"
|
||||
local modules_avail="${3}"
|
||||
local stage="${4}" # base or mods
|
||||
|
||||
while read -r line_avail; do
|
||||
module_avail="$( echo "${line_avail}" | tr '[:upper:]' '[:lower:]' )"
|
||||
|
||||
avail=0
|
||||
while read -r line_image; do
|
||||
module_image="$( echo "${line_image}" | tr '[:upper:]' '[:lower:]' )"
|
||||
if [ "${module_image}" = "${module_avail}" ]; then
|
||||
avail=1
|
||||
break
|
||||
fi
|
||||
done < <(echo "${modules_image}")
|
||||
|
||||
if [ "${avail}" = "1" ]; then
|
||||
sed -i "s|\(<td class=\"ext_${stage}_${module_avail}_${php_version}\">\)\(.*\)\(<\/td>\)|\1🗸\3|g" "${README}"
|
||||
echo "[YES] [${stage}] PHP ${php_version}, mod: '${module_avail}'"
|
||||
else
|
||||
sed -i "s|\(<td class=\"ext_${stage}_${module_avail}_${php_version}\">\)\(.*\)\(<\/td>\)|\1\3|g" "${README}"
|
||||
echo "[NO] [${stage}] PHP ${php_version}, mod: '${module_avail}'"
|
||||
fi
|
||||
done < <(echo "${modules_avail}")
|
||||
}
|
||||
|
||||
|
||||
# The following commented code is used to generate the README initially
|
||||
#echo "<table>"
|
||||
#echo " <tr>"
|
||||
#echo " <th>Ext</th>"
|
||||
#echo " <th>PHP 5.2</th>"
|
||||
#echo " <th>PHP 5.3</th>"
|
||||
#echo " <th>PHP 5.4</th>"
|
||||
#echo " <th>PHP 5.5</th>"
|
||||
#echo " <th>PHP 5.6</th>"
|
||||
#echo " <th>PHP 7.0</th>"
|
||||
#echo " <th>PHP 7.1</th>"
|
||||
#echo " <th>PHP 7.2</th>"
|
||||
#echo " <th>PHP 7.3</th>"
|
||||
#echo " <th>PHP 7.4</th>"
|
||||
#echo " <th>PHP 8.0</th>"
|
||||
#echo " <th>PHP 8.1</th>"
|
||||
#echo " <th>PHP 8.2</th>"
|
||||
#echo " </tr>"
|
||||
#
|
||||
#while read -r line; do
|
||||
# MOD_NAME="$( echo "${line}" )"
|
||||
# MOD_LOWER="$( echo "${MOD_NAME}" | tr '[:upper:]' '[:lower:]' )"
|
||||
# echo " <tr>"
|
||||
# echo " <td><a href=\"php_modules/${MOD_LOWER}\">${MOD_NAME}</a></td>"
|
||||
# echo " <td class=\"ext_mods_${MOD_LOWER}_5.2\">🗸</td>"
|
||||
# echo " <td class=\"ext_mods_${MOD_LOWER}_5.3\">🗸</td>"
|
||||
# echo " <td class=\"ext_mods_${MOD_LOWER}_5.4\">🗸</td>"
|
||||
# echo " <td class=\"ext_mods_${MOD_LOWER}_5.5\">🗸</td>"
|
||||
# echo " <td class=\"ext_mods_${MOD_LOWER}_5.6\">🗸</td>"
|
||||
# echo " <td class=\"ext_mods_${MOD_LOWER}_7.0\">🗸</td>"
|
||||
# echo " <td class=\"ext_mods_${MOD_LOWER}_7.1\">🗸</td>"
|
||||
# echo " <td class=\"ext_mods_${MOD_LOWER}_7.2\">🗸</td>"
|
||||
# echo " <td class=\"ext_mods_${MOD_LOWER}_7.3\">🗸</td>"
|
||||
# echo " <td class=\"ext_mods_${MOD_LOWER}_7.4\">🗸</td>"
|
||||
# echo " <td class=\"ext_mods_${MOD_LOWER}_8.0\">🗸</td>"
|
||||
# echo " <td class=\"ext_mods_${MOD_LOWER}_8.1\">🗸</td>"
|
||||
# echo " <td class=\"ext_mods_${MOD_LOWER}_8.2\">🗸</td>"
|
||||
# echo " </tr>"
|
||||
#done < <(echo "${MODS_IMAGE}")
|
||||
#echo "<table>"
|
||||
#exit
|
||||
|
||||
|
||||
#--------------------------------------------------------------------------------------------------
|
||||
# Main functions
|
||||
#--------------------------------------------------------------------------------------------------
|
||||
|
||||
###
|
||||
### Replace module available in README for a specific PHP version
|
||||
###
|
||||
update() {
|
||||
local php_version="${1}"
|
||||
local mods_in_readme
|
||||
local mods_in_image
|
||||
|
||||
mods_in_readme="$( get_modules_from_readme "${php_version}" )"
|
||||
|
||||
mods_in_image="$( get_modules_from_image "${php_version}" "${php_version}-${STAGE}" )"
|
||||
|
||||
validate_readme "${php_version}" "${mods_in_image}" "${STAGE}"
|
||||
update_readme "${php_version}" "${mods_in_image}" "${mods_in_readme}" "${STAGE}"
|
||||
}
|
||||
|
||||
|
||||
#--------------------------------------------------------------------------------------------------
|
||||
# Entrypoint
|
||||
#--------------------------------------------------------------------------------------------------
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
if [ "${VERSION}" = "" ]; then
|
||||
# Update PHP modules for all versions at once
|
||||
update "5.2"
|
||||
update "5.3"
|
||||
update "5.4"
|
||||
update "5.5"
|
||||
update "5.6"
|
||||
update "7.0"
|
||||
update "7.1"
|
||||
update "7.2"
|
||||
update "7.3"
|
||||
update "7.4"
|
||||
update "8.0"
|
||||
update "8.1"
|
||||
update "8.2"
|
||||
else
|
||||
if [ "${VERSION}" != "5.2" ] \
|
||||
&& [ "${VERSION}" != "5.3" ] \
|
||||
&& [ "${VERSION}" != "5.4" ] \
|
||||
&& [ "${VERSION}" != "5.5" ] \
|
||||
&& [ "${VERSION}" != "5.6" ] \
|
||||
&& [ "${VERSION}" != "7.0" ] \
|
||||
&& [ "${VERSION}" != "7.1" ] \
|
||||
&& [ "${VERSION}" != "7.2" ] \
|
||||
&& [ "${VERSION}" != "7.3" ] \
|
||||
&& [ "${VERSION}" != "7.4" ] \
|
||||
&& [ "${VERSION}" != "8.0" ] \
|
||||
&& [ "${VERSION}" != "8.1" ] \
|
||||
&& [ "${VERSION}" != "8.2" ]; then
|
||||
# Argument does not match any of the PHP versions
|
||||
echo "Error, invalid argument."
|
||||
print_usage
|
||||
exit 1
|
||||
else
|
||||
# Update PHP modules for one specific PHP version
|
||||
update "${VERSION}"
|
||||
fi
|
||||
fi
|
||||
281
bin/modules-generate.py
Executable file
281
bin/modules-generate.py
Executable file
@@ -0,0 +1,281 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
"""Generate Ansible group_vars from module definition."""
|
||||
import os
|
||||
import sys
|
||||
from collections import OrderedDict
|
||||
from typing import Dict, List, Any
|
||||
import yaml
|
||||
|
||||
|
||||
# --------------------------------------------------------------------------------------------------
|
||||
# GLOBALS
|
||||
# --------------------------------------------------------------------------------------------------
|
||||
|
||||
SCRIPT_PATH = str(os.path.dirname(os.path.realpath(__file__)))
|
||||
REPOSITORY_PATH = str(os.path.dirname(SCRIPT_PATH))
|
||||
PHP_MODULE_PATH = str(os.path.join(REPOSITORY_PATH, "php_modules"))
|
||||
GROUP_VARS_PATH = str(os.path.join(REPOSITORY_PATH, ".ansible", "group_vars", "all"))
|
||||
|
||||
|
||||
# --------------------------------------------------------------------------------------------------
|
||||
# HELPER FUNCTIONS
|
||||
# --------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
def get_el_by_name(items: List[Dict[str, Any]], name: str) -> Dict[str, Any]:
|
||||
"""Returns an element from a dict list by its 'name' key with given value."""
|
||||
for item in items:
|
||||
if item["name"] == name:
|
||||
return item
|
||||
print("error, key name not found by value", name, "in list: ", items)
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
def load_yaml(path: str) -> Dict[str, Any]:
|
||||
"""Load yaml file and return its dict()."""
|
||||
with open(path, "r", encoding="utf8") as fp:
|
||||
data = yaml.safe_load(fp)
|
||||
return data
|
||||
|
||||
|
||||
def load_yaml_raw(path: str, indent: int = 0) -> str:
|
||||
"""Load and returns yaml file as str."""
|
||||
lines = []
|
||||
with open(path, "r", encoding="utf8") as fp:
|
||||
for line in fp:
|
||||
# Remove: empty lines and ---
|
||||
if line in ("---\n", "---\r\n", "\n", "\r\n"):
|
||||
continue
|
||||
# Remove: comments
|
||||
if line.startswith("#"):
|
||||
continue
|
||||
lines.append(" " * indent + line)
|
||||
return "".join(lines)
|
||||
|
||||
|
||||
# --------------------------------------------------------------------------------------------------
|
||||
# MODULE FUNCTIONS
|
||||
# --------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
def get_module_options(module_dirname: str) -> Dict[str, Any]:
|
||||
"""Returns yaml dict options of a PHP module given by its absolute file path."""
|
||||
return load_yaml(os.path.join(PHP_MODULE_PATH, module_dirname, "options.yml"))
|
||||
|
||||
|
||||
def get_module_build(module_dirname: str) -> Dict[str, Any]:
|
||||
"""Returns yaml dict build configuration of a PHP module given by its absolute file path."""
|
||||
return load_yaml(os.path.join(PHP_MODULE_PATH, module_dirname, "build.yml"))
|
||||
|
||||
|
||||
def get_module_test(module_dirname: str) -> Dict[str, Any]:
|
||||
"""Returns yaml dict test configuration of a PHP module given by its absolute file path."""
|
||||
return load_yaml(os.path.join(PHP_MODULE_PATH, module_dirname, "test.yml"))
|
||||
|
||||
|
||||
def get_modules(selected_modules: List[str], ignore_dependencies: bool) -> List[Dict[str, Any]]:
|
||||
"""Returns a list of PHP module directory names.
|
||||
|
||||
Args:
|
||||
selected_modules: If not empty, only gather specified modules (and its dependencies).
|
||||
ignore_dependencies: If true, all dependent extensions will be ignored.
|
||||
"""
|
||||
modules = []
|
||||
with os.scandir(PHP_MODULE_PATH) as it:
|
||||
for item in it:
|
||||
if not item.name.startswith(".") and item.is_dir():
|
||||
data = get_module_options(item.name)
|
||||
modules.append(
|
||||
{"dir": item.name, "name": data["name"], "deps": data["depends_build"]}
|
||||
)
|
||||
# Convert list of deps into dict(dir, name, deps)
|
||||
items = []
|
||||
for module in modules:
|
||||
if module["deps"] and not ignore_dependencies:
|
||||
deps = []
|
||||
for dep in module["deps"]:
|
||||
deps.append(get_el_by_name(modules, dep))
|
||||
module["deps"] = deps
|
||||
items.append(module)
|
||||
else:
|
||||
module["deps"] = []
|
||||
items.append(module)
|
||||
# Check if we only want to read a single module
|
||||
if selected_modules:
|
||||
return [get_el_by_name(items, mod_name) for mod_name in selected_modules]
|
||||
return sorted(items, key=lambda item: item["dir"])
|
||||
|
||||
|
||||
def get_module_dependency_tree(modules: List[Dict[str, Any]]) -> OrderedDict[str, Any]:
|
||||
"""Returns dictionary of module dependency tree."""
|
||||
module_tree = OrderedDict() # type: OrderedDict[str, Any]
|
||||
|
||||
for module in modules:
|
||||
mod_name = module["name"]
|
||||
mod_deps = module["deps"]
|
||||
|
||||
module_tree[mod_name] = {}
|
||||
|
||||
# Do we have module requirements?
|
||||
if len(mod_deps) > 0:
|
||||
module_tree[mod_name] = get_module_dependency_tree(mod_deps)
|
||||
return module_tree
|
||||
|
||||
|
||||
def resolve_module_dependency_tree(tree: OrderedDict[str, Any]) -> List[str]:
|
||||
"""Returns sorted list of resolved dependencies."""
|
||||
resolved = []
|
||||
for key, _ in tree.items():
|
||||
# Has dependenies
|
||||
if tree[key]:
|
||||
childs = resolve_module_dependency_tree(tree[key])
|
||||
for child in childs:
|
||||
if child not in resolved:
|
||||
resolved.append(child)
|
||||
# Add current node, if not already available
|
||||
if key not in resolved:
|
||||
resolved.append(key)
|
||||
return resolved
|
||||
|
||||
|
||||
# --------------------------------------------------------------------------------------------------
|
||||
# PRINT FUNCTIONS
|
||||
# --------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
def print_modules(modules: List[Dict[str, Any]]) -> None:
|
||||
"""Print directory modules."""
|
||||
for module in modules:
|
||||
print(module["dir"] + "/")
|
||||
print(" name:", module["name"])
|
||||
print(" deps:", end=" ")
|
||||
for dep in module["deps"]:
|
||||
print(dep["name"], end=", ")
|
||||
print()
|
||||
|
||||
|
||||
def print_dependency_tree(tree: Dict[str, Any], lvl: int = 0) -> None:
|
||||
"""Print dependency tree of modules."""
|
||||
for key, value in tree.items():
|
||||
print(" " * lvl, "-", key)
|
||||
if value:
|
||||
print_dependency_tree(tree[key], lvl + 2)
|
||||
|
||||
|
||||
# --------------------------------------------------------------------------------------------------
|
||||
# WRITE ANSIBLE GROUP_VARS FUNCTIONS
|
||||
# --------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
def write_group_vars(modules: List[str]) -> None:
|
||||
"""Write mods.yml group_vars for ansible."""
|
||||
group_vars = os.path.join(GROUP_VARS_PATH, "mods.yml")
|
||||
|
||||
with open(group_vars, "w", encoding="utf8") as fp:
|
||||
fp.write("---\n\n")
|
||||
fp.write("# DO NOT ALTER THIS FILE - IT IS AUTOGENERATED.\n\n")
|
||||
|
||||
# Enabled modules
|
||||
fp.write("# The following specifies the order in which modules are being built.\n")
|
||||
fp.write("extensions_enabled:\n")
|
||||
for module in modules:
|
||||
fp.write(" - " + module + "\n")
|
||||
fp.write("\n\n")
|
||||
|
||||
# Build defines modules
|
||||
fp.write("# The following specifies how modules are being built.\n")
|
||||
fp.write("extensions_available:\n")
|
||||
for module in modules:
|
||||
opts = get_module_options(module)
|
||||
fp.write(" " + module + ":\n")
|
||||
fp.write(" disabled: [" + ", ".join(str(x) for x in opts["exclude"]) + "]\n")
|
||||
fp.write(load_yaml_raw(os.path.join(PHP_MODULE_PATH, module, "build.yml"), 4))
|
||||
|
||||
|
||||
# --------------------------------------------------------------------------------------------------
|
||||
# MAIN FUNCTION
|
||||
# --------------------------------------------------------------------------------------------------
|
||||
def print_help() -> None:
|
||||
"""Show help screen."""
|
||||
print("Usage:", os.path.basename(__file__), "[options] [PHP-EXT]...")
|
||||
print(" ", os.path.basename(__file__), "-h, --help")
|
||||
print()
|
||||
print("This script will generate the Ansible group_vars file: .ansible/group_vars/all/mods.yml")
|
||||
print("based on all the modules found in php_modules/ directory.")
|
||||
print()
|
||||
print("Positional arguments:")
|
||||
print(" [PHP-EXT] Specify None, one or more PHP extensions to generate group_vars for.")
|
||||
print(" When no PHP extension is specified (argument is omitted), group_vars")
|
||||
print(" for all extensions will be genrated.")
|
||||
print(" When one or more PHP extension are specified, only group_vars for")
|
||||
print(" these extensions will be created.")
|
||||
print(" only be generated for this single module (and its dependencies).")
|
||||
print(" This is useful if you want to test new modules and not build all")
|
||||
print(" previous modules in the Dockerfile.")
|
||||
print()
|
||||
print(" Note: You still need to generate the Dockerfiles via Ansible for")
|
||||
print(" the changes to take effect, before building the image.")
|
||||
print("Optional arguments:")
|
||||
print(" -i Ignore dependent modules.")
|
||||
print(" By default each exentions is checked for build dependencies of other")
|
||||
print(" extensions. For example many extensions build against libxml ext.")
|
||||
print(" By specifying -i, those dependencies are not beeing added to")
|
||||
print(" ansible group_vars. Use at your own risk.")
|
||||
|
||||
|
||||
def main(argv: List[str]) -> None:
|
||||
"""Main entrypoint."""
|
||||
ignore_dependencies = False
|
||||
selected_modules = []
|
||||
if len(argv):
|
||||
for arg in argv:
|
||||
if arg in ("-h", "--help"):
|
||||
print_help()
|
||||
sys.exit(0)
|
||||
for arg in argv:
|
||||
if arg.startswith("-") and arg != "-i":
|
||||
print("Invalid argument:", arg)
|
||||
print("Use -h or --help for help")
|
||||
sys.exit(1)
|
||||
if arg == "-i":
|
||||
ignore_dependencies = True
|
||||
else:
|
||||
selected_modules.append(arg)
|
||||
|
||||
# Get modules in order of dependencies
|
||||
modules = get_modules(selected_modules, ignore_dependencies)
|
||||
module_tree = get_module_dependency_tree(modules)
|
||||
names = resolve_module_dependency_tree(module_tree)
|
||||
|
||||
print("#", "-" * 78)
|
||||
print("# Paths")
|
||||
print("#", "-" * 78)
|
||||
print("Repository: ", REPOSITORY_PATH)
|
||||
print("PHP Module: ", PHP_MODULE_PATH)
|
||||
print("Group Vars: ", GROUP_VARS_PATH)
|
||||
print()
|
||||
|
||||
print("#", "-" * 78)
|
||||
print("# Module directories")
|
||||
print("#", "-" * 78)
|
||||
print_modules(modules)
|
||||
print()
|
||||
|
||||
print("#", "-" * 78)
|
||||
print("# Build Dependency Tree")
|
||||
print("#", "-" * 78)
|
||||
print_dependency_tree(module_tree)
|
||||
print()
|
||||
|
||||
print("#", "-" * 78)
|
||||
print("# Build order")
|
||||
print("#", "-" * 78)
|
||||
print("\n".join(names))
|
||||
|
||||
# Create group_vars file mods.yml
|
||||
write_group_vars(names)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main(sys.argv[1:])
|
||||
6
bin/modules-validate.py
Executable file
6
bin/modules-validate.py
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
"""Validate defined modules."""
|
||||
print("Not yet implemented *///*")
|
||||
print()
|
||||
print("Run modules-generate.py instead, as it also kind of validates.")
|
||||
@@ -1,51 +0,0 @@
|
||||
# Build helper
|
||||
|
||||
This directory contains all tools for building.
|
||||
|
||||
## `ansible/`
|
||||
|
||||
The `ansible/` directory contains a setup to generate all Dockerfiles. Once generated, they will be placed or updated into [../Dockerfiles](../Dockerfiles).
|
||||
|
||||
**How to generate via ansible command**
|
||||
```bash
|
||||
# From inside ansible directory
|
||||
cd ansible
|
||||
ansible-playbook generate.yml --diff
|
||||
```
|
||||
|
||||
**How to generate via Makefile**
|
||||
```bash
|
||||
# From inside root git directory
|
||||
cd ..
|
||||
make generate
|
||||
```
|
||||
|
||||
**Requirements**
|
||||
|
||||
In order to generate Dockerfiles, you will have to have ansible installed:
|
||||
```
|
||||
pip install ansible
|
||||
```
|
||||
|
||||
## `gen-readme.sh`
|
||||
|
||||
`gen-readme.sh` will update the README.md with currently enabled PHP modules for each Docker image.
|
||||
|
||||
**How to update the README.md**
|
||||
|
||||
```bash
|
||||
# Update for all Docker images
|
||||
./gen-readme.sh
|
||||
|
||||
# Update for specific Docker image
|
||||
./gen-readme.sh 5.4
|
||||
./gen-readme.sh 5.5
|
||||
./gen-readme.sh 5.6
|
||||
./gen-readme.sh 7.0
|
||||
./gen-readme.sh 7.1
|
||||
./gen-readme.sh 7.2
|
||||
```
|
||||
|
||||
**Requirements**
|
||||
|
||||
If you want to update the README.md for a specific Docker image, you must have built this image prior running `gen-readme.sh`.
|
||||
@@ -1,133 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Be very strict
|
||||
set -e
|
||||
set -u
|
||||
set -o pipefail
|
||||
|
||||
# Get absolute directory of this script
|
||||
CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
||||
|
||||
|
||||
###
|
||||
### Show Usage
|
||||
###
|
||||
print_usage() {
|
||||
echo "Usage: gen-readme.sh"
|
||||
echo " gen-readme.sh 5.2"
|
||||
echo " gen-readme.sh 5.3"
|
||||
echo " gen-readme.sh 5.4"
|
||||
echo " gen-readme.sh 5.5"
|
||||
echo " gen-readme.sh 5.6"
|
||||
echo " gen-readme.sh 7.0"
|
||||
echo " gen-readme.sh 7.1"
|
||||
echo " gen-readme.sh 7.2"
|
||||
echo " gen-readme.sh 7.3"
|
||||
echo " gen-readme.sh 7.4"
|
||||
echo " gen-readme.sh 8.0"
|
||||
echo " gen-readme.sh 8.1"
|
||||
}
|
||||
|
||||
|
||||
###
|
||||
### Extract PHP modules in alphabetical order and comma separated in one line
|
||||
###
|
||||
get_modules() {
|
||||
tag="${1}"
|
||||
|
||||
# Retrieve all modules
|
||||
PHP_MODULES="$( docker run --rm $(tty -s && echo '-it' || echo) --entrypoint=php devilbox/php-fpm:${tag} -m )"
|
||||
ALL_MODULES=
|
||||
|
||||
if docker run --rm $(tty -s && echo '-it' || echo) --entrypoint=find devilbox/php-fpm:${tag} /usr/local/lib/php/extensions -name 'ioncube.so' | grep -q ioncube.so; then
|
||||
ALL_MODULES="${ALL_MODULES},ioncube";
|
||||
fi
|
||||
|
||||
if docker run --rm $(tty -s && echo '-it' || echo) --entrypoint=find devilbox/php-fpm:${tag} /usr/local/lib/php/extensions -name 'blackfire.so' | grep -q blackfire.so; then
|
||||
ALL_MODULES="${ALL_MODULES},blackfire";
|
||||
fi
|
||||
|
||||
if docker run --rm $(tty -s && echo '-it' || echo) --entrypoint=find devilbox/php-fpm:${tag} /usr/local/lib/php/extensions -name 'psr.so' | grep -q psr.so; then
|
||||
ALL_MODULES="${ALL_MODULES},psr";
|
||||
fi
|
||||
|
||||
if docker run --rm $(tty -s && echo '-it' || echo) --entrypoint=find devilbox/php-fpm:${tag} /usr/local/lib/php/extensions -name 'phalcon.so' | grep -q phalcon.so; then
|
||||
ALL_MODULES="${ALL_MODULES},phalcon";
|
||||
fi
|
||||
|
||||
# Process module string into correct format for README.md
|
||||
PHP_MODULES="$( echo "${PHP_MODULES}" | sed 's/^\[.*//g' )" # Remove PHP Modules headlines
|
||||
PHP_MODULES="${ALL_MODULES}${PHP_MODULES}" # Append all available modules
|
||||
PHP_MODULES="$( echo "${PHP_MODULES}" | sort -fu )" # Unique
|
||||
PHP_MODULES="$( echo "${PHP_MODULES}" | sed '/^\s*$/d' )" # Remove empty lines
|
||||
PHP_MODULES="$( echo "${PHP_MODULES}" | tr '\r\n' ',' )" # Newlines to commas
|
||||
PHP_MODULES="$( echo "${PHP_MODULES}" | tr '\n' ',' )" # Newlines to commas
|
||||
PHP_MODULES="$( echo "${PHP_MODULES}" | tr '\r' ',' )" # Newlines to commas
|
||||
PHP_MODULES="$( echo "${PHP_MODULES}" | sed 's/^M/,/g' )" # Newlines to commas
|
||||
PHP_MODULES="$( echo "${PHP_MODULES}" | sed 's/,,/,/g' )" # Remove PHP Modules headlines
|
||||
PHP_MODULES="$( echo "${PHP_MODULES}" | sed 's/,/\n/g' )" # Back to newlines
|
||||
PHP_MODULES="$( echo "${PHP_MODULES}" | sort -fu )" # Unique
|
||||
PHP_MODULES="$( echo "${PHP_MODULES}" | sed '/^\s*$/d' )" # Remove empty lines
|
||||
PHP_MODULES="$( echo "${PHP_MODULES}" | tr '\n' ',' )" # Newlines to commas
|
||||
PHP_MODULES="$( echo "${PHP_MODULES}" | sed 's/,$//g' )" # Remove trailing comma
|
||||
PHP_MODULES="$( echo "${PHP_MODULES}" | sed 's/,/, /g' )" # Add space to comma
|
||||
|
||||
echo "${PHP_MODULES}"
|
||||
}
|
||||
|
||||
|
||||
###
|
||||
### Replace modules in Readme for specified PHP version
|
||||
###
|
||||
update_readme() {
|
||||
v="${1}"
|
||||
# Those sections must exist in README.md, otherwise this script will exit with errors
|
||||
sed -i'' "s|<td id=\"${v//.}-base\">.*<\/td>|<td id=\"${v//.}-base\">$( get_modules "${v}-base" )<\/td>|g" "${CWD}/../README.md"
|
||||
sed -i'' "s|<td id=\"${v//.}-mods\">.*<\/td>|<td id=\"${v//.}-mods\">$( get_modules "${v}-mods" )<\/td>|g" "${CWD}/../README.md"
|
||||
}
|
||||
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
if [ "${#}" -eq "0" ]; then
|
||||
# Update PHP modules for all versions at once
|
||||
update_readme "5.2"
|
||||
update_readme "5.3"
|
||||
update_readme "5.4"
|
||||
update_readme "5.5"
|
||||
update_readme "5.6"
|
||||
update_readme "7.0"
|
||||
update_readme "7.1"
|
||||
update_readme "7.2"
|
||||
update_readme "7.3"
|
||||
update_readme "7.4"
|
||||
update_readme "8.0"
|
||||
update_readme "8.1"
|
||||
elif [ "${#}" -gt "1" ]; then
|
||||
# Specifying more than 1 argument is wrong
|
||||
echo "Error, invalid number of arguments."
|
||||
print_usage
|
||||
exit 1
|
||||
else
|
||||
if [ "${1}" != "5.2" ] \
|
||||
&& [ "${1}" != "5.3" ] \
|
||||
&& [ "${1}" != "5.4" ] \
|
||||
&& [ "${1}" != "5.5" ] \
|
||||
&& [ "${1}" != "5.6" ] \
|
||||
&& [ "${1}" != "7.0" ] \
|
||||
&& [ "${1}" != "7.1" ] \
|
||||
&& [ "${1}" != "7.2" ] \
|
||||
&& [ "${1}" != "7.3" ] \
|
||||
&& [ "${1}" != "7.4" ] \
|
||||
&& [ "${1}" != "8.0" ] \
|
||||
&& [ "${1}" != "8.1" ]; then
|
||||
# Argument does not match any of the PHP versions
|
||||
echo "Error, invalid argument."
|
||||
print_usage
|
||||
exit 1
|
||||
else
|
||||
# Update PHP modules for one specific PHP version
|
||||
update_readme "${1}"
|
||||
fi
|
||||
fi
|
||||
116
doc/abuser/README.md
Normal file
116
doc/abuser/README.md
Normal file
@@ -0,0 +1,116 @@
|
||||
Build your own image
|
||||
|
||||
---
|
||||
|
||||
<h2><img name="Documentation" title="Documentation" width="20" src="https://github.com/devilbox/artwork/raw/master/submissions_logo/cytopia/01/png/logo_64_trans.png"> Abuser Documentation</h2>
|
||||
|
||||
|
||||
|
||||
### Build your own image
|
||||
|
||||
#### Software Requirements
|
||||
|
||||
You must have the following tools installed locally:
|
||||
* Python3
|
||||
* `PyYAML` Python package (either via pip or OS packet manager)
|
||||
* `make`
|
||||
* `docker`
|
||||
|
||||
|
||||
#### Other Requirements
|
||||
You should have a brief understanding about the different flavours available in this repository.
|
||||
|
||||
:information_source: For details see **[README.md#flavours](../../README.md#php-fpm-flavours)**<br/>
|
||||
:information_source: For details see **[Documentation: Flavours](../flavours.md)**
|
||||
|
||||
|
||||
#### How does it work?
|
||||
|
||||
This repository already has all the automation in place.
|
||||
|
||||
1. For each PHP version a `base` image is built to streamline settings across all PHP versions.
|
||||
2. Based on the `base` image, a `mods` image is built, which only adds a whole bunch of PHP extensions.
|
||||
3. Based on the `mods` image, a `prod` image is built, which adds features to alter the startup behaviour.
|
||||
4. Based on the `prod` image, a `work` image is built, which acts as an integrated development environment in which you can actually work (adds a whole bunch of tools).
|
||||
|
||||
What you need to do, is to:
|
||||
|
||||
1. Ensure the `base` image is available locally on your system (either by building it or by pulling it).
|
||||
2. Decide on the PHP extensions that you want to add
|
||||
3. Decide on the PHP version you want to build
|
||||
4. Decide on the architecture/platform you want to build the Docker image for (`amd64` or `arm64`).
|
||||
5. Build the `mods` image (or just create the Dockerfile for it).
|
||||
|
||||
With this you will be all set, you can however decide to build the `prod` flavour on top of your custom `mods` image as it adds a lot of configurable environment variables to dynamically alter the startup behaviour.
|
||||
|
||||
In case you plan to use your custom image for the **[Devilbox](https://github.com/cytopia/devilbox)**, you must also go ahead and built the `work` flavour on top of the `prod` flavour.
|
||||
|
||||
|
||||
#### Generate your custom Dockerfile
|
||||
|
||||
> **Note:** All commands are executed in the root of this repository
|
||||
|
||||
1. Generate PHP extensions in Ansible group_vars
|
||||
```bash
|
||||
# Generate Ansible group_vars for all available extensions
|
||||
make gen-modules
|
||||
```
|
||||
```bash
|
||||
# Generate Ansible group_vars for selected extensions
|
||||
# Note: that also all dependent extensions will be added
|
||||
make gen-modules ARGS="msgpack xsl"
|
||||
```
|
||||
```bash
|
||||
# Generate Ansible group_vars for selected extensions
|
||||
# and ignore dependencies
|
||||
make gen-modules ARGS="-i msgpack xsl"
|
||||
```
|
||||
```bash
|
||||
# Show help
|
||||
make gen-modules ARGS="--help"
|
||||
```
|
||||
2. Generate Dockerfiles from Ansible group_vars
|
||||
```bash
|
||||
make gen-dockerfiles
|
||||
```
|
||||
|
||||
|
||||
#### Build your custom Dockerfile
|
||||
|
||||
> **Note:** All commands are executed in the root of this repository
|
||||
|
||||
1. Ensure you have the `base` image locally for your desired version and architecture
|
||||
```bash
|
||||
ARCH=linux/amd64
|
||||
VERSION=8.1
|
||||
make docker-pull-base-image STAGE=mods VERSION=${VERSION} ARCH=${ARCH}
|
||||
```
|
||||
2. Build the `mods` image
|
||||
```bash
|
||||
ARCH=linux/amd64
|
||||
VERSION=8.1
|
||||
make build STAGE=mods VERSION=${VERSION} ARCH=${ARCH}
|
||||
```
|
||||
3. (Optional) Build the `prod` image
|
||||
```bash
|
||||
ARCH=linux/amd64
|
||||
VERSION=8.1
|
||||
make build STAGE=prod VERSION=${VERSION} ARCH=${ARCH}
|
||||
```
|
||||
4. (Optional) Build the `work` image
|
||||
```bash
|
||||
ARCH=linux/amd64
|
||||
VERSION=8.1
|
||||
make build STAGE=work VERSION=${VERSION} ARCH=${ARCH}
|
||||
```
|
||||
|
||||
|
||||
#### FAQ
|
||||
|
||||
1. Where do I find the generated Dockerfile?
|
||||
2. How can I omit dependent PHP extensions when generating the Dockerfile?
|
||||
3. How do I ensure that dependent PHP extensions are automatically added to the Dockerfile?
|
||||
4. Where do I see what PHP extensions are available in this repository?
|
||||
5. How do I know what each of the provided PHP extensions is for?
|
||||
6. How can I add PHP extensions that are not provided here?
|
||||
7. Switching architectures fails with errors, what should I do?
|
||||
183
doc/available-tools.md
Normal file
183
doc/available-tools.md
Normal file
@@ -0,0 +1,183 @@
|
||||
[Permissions](syncronize-file-permissions.md) |
|
||||
[Tags](docker-tags.md) |
|
||||
[Architectures](supported-architectures.md) |
|
||||
[Versions](php-versions.md) |
|
||||
[Flavours](flavours.md) |
|
||||
[Extensions](php-modules.md) |
|
||||
Tools |
|
||||
[Env Vars](docker-env-variables.md) |
|
||||
[Volumes](docker-volumes.md) |
|
||||
[Base Images](base-images.md)
|
||||
|
||||
---
|
||||
|
||||
<h2><img name="Documentation" title="Documentation" width="20" src="https://github.com/devilbox/artwork/raw/master/submissions_logo/cytopia/01/png/logo_64_trans.png"> Documentation</h2>
|
||||
|
||||
|
||||
|
||||
### Available Tools
|
||||
|
||||
> **Disclaimer:** It is currently not clear what tools are available in which PHP image (version-dependent). This documentation was done by hand and work has currently started to automate this and keep exact tools up-to-date for each of the provided PHP version.
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="200">Tool</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tr>
|
||||
<td><a href="https://www.ansible.com/">Ansible</a></td>
|
||||
<td>Automation tool.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://asgardcms.com/install">asgardcms</a></td>
|
||||
<td>AsgardCMS cli installer.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/cytopia/awesome-ci">awesome-ci</a></td>
|
||||
<td>Various linting and source code analyzing tools.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://codeception.com/">codeception</a></td>
|
||||
<td>Elegant and efficient testing for PHP.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://getcomposer.org">composer</a></td>
|
||||
<td>Dependency Manager for PHP.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://deployer.org/">deployer</a></td>
|
||||
<td>Deployment tool for PHP.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://drupalconsole.com">drupal-console</a></td>
|
||||
<td>The Drupal CLI. A tool to generate boilerplate code, interact with and debug Drupal.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="http://www.drush.org">drush</a></td>
|
||||
<td>Drush is a computer software shell-based application used to control, manipulate, and administer Drupal websites.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://eslint.org">eslint</a></td>
|
||||
<td>The pluggable linting utility for JavaScript and JSX.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://git-scm.com">git</a></td>
|
||||
<td>Git is a version control system for tracking changes in source files.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/nvie/gitflow">git-flow</a></td>
|
||||
<td>Git-flow tools.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://gulpjs.com/">gulp</a></td>
|
||||
<td>Gulp command line JS tool.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://gruntjs.com/">grunt</a></td>
|
||||
<td>Grunt command line JS tool.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://brew.sh/">Homebrew</a></td>
|
||||
<td>The Missing Package Manager for macOS (or Linux).</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/zaach/jsonlint">jsonlint</a></td>
|
||||
<td>Json command line linter.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://stedolan.github.io/jq/">jq</a></td>
|
||||
<td>Command-line JSON processor.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/laravel/installer">laravel installer</a></td>
|
||||
<td>A CLI tool to easily install and manage the laravel framework.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/cytopia/linkcheck">linkcheck</a></td>
|
||||
<td>Search for URLs in files (optionally limited by extension) and validate their HTTP status code.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/markdownlint/markdownlint">mdl</a></td>
|
||||
<td>Markdown command line linter.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/ChrisWren/mdlint">mdlint</a></td>
|
||||
<td>Markdown command line linter.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://mysqldump-secure.org">mysqldump-secure</a></td>
|
||||
<td>Secury MySQL database backup tool with encryption.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://nodejs.org">nodejs</a></td>
|
||||
<td>Node.js is an open-source, cross-platform JavaScript run-time environment for executing JavaScript code server-side.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://www.npmjs.com">npm</a></td>
|
||||
<td>npm is a package manager for the JavaScript programming language.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/phalcon/phalcon-devtools">phalcon-devtools</a></td>
|
||||
<td>CLI tool to generate code helping to develop faster and easy applications that use with Phalcon framework.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/squizlabs/PHP_CodeSniffer">phpcs</a></td>
|
||||
<td>PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/squizlabs/PHP_CodeSniffer">phpcbf</a></td>
|
||||
<td>PHP Code Beautifier and Fixer.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/FriendsOfPHP/PHP-CS-Fixer">php-cs-fixer</a></td>
|
||||
<td>A tool to automatically fix PHP Coding Standards issues.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://phpmd.org">phpmd</a></td>
|
||||
<td>PHP Mess Detector.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://photoncms.com/resources/installing">photon</a></td>
|
||||
<td>Photon CMS cli.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="http://sass-lang.com/">sass</a></td>
|
||||
<td>Sass CSS compiler.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/stylelint/stylelint">stylelint</a></td>
|
||||
<td>Sass/CSS command line linter.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://www.openssh.com/">ssh</a></td>
|
||||
<td>OpenSSH command line client.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/symfony/symfony-installer">symfony installer</a></td>
|
||||
<td>This is the official installer to start new projects based on the Symfony full-stack framework.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/jonas/tig">tig</a></td>
|
||||
<td>Text-mode Interface for Git.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/webpack/webpack">webpack</a></td>
|
||||
<td>A bundler for javascript and friends.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://wp-cli.org">wp-cli</a></td>
|
||||
<td>WP-CLI is the command-line interface for WordPress.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/adrienverge/yamllint">yamllint</a></td>
|
||||
<td>Yaml command line linter.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://yarnpkg.com/en">yarn</a></td>
|
||||
<td>Fast, reliable and secure dependency management.</td>
|
||||
</tr>
|
||||
<tbody>
|
||||
</tbody>
|
||||
</table>
|
||||
27
doc/base-images.md
Normal file
27
doc/base-images.md
Normal file
@@ -0,0 +1,27 @@
|
||||
[Permissions](syncronize-file-permissions.md) |
|
||||
[Tags](docker-tags.md) |
|
||||
[Architectures](supported-architectures.md) |
|
||||
[Versions](php-versions.md) |
|
||||
[Flavours](flavours.md) |
|
||||
[Extensions](php-modules.md) |
|
||||
[Tools](available-tools.md) |
|
||||
[Env Vars](docker-env-variables.md) |
|
||||
[Volumes](docker-volumes.md) |
|
||||
Base Images
|
||||
|
||||
---
|
||||
|
||||
<h2><img name="Documentation" title="Documentation" width="20" src="https://github.com/devilbox/artwork/raw/master/submissions_logo/cytopia/01/png/logo_64_trans.png"> Documentation</h2>
|
||||
|
||||
|
||||
|
||||
### Base Images
|
||||
|
||||
Have a look at the following Devilbox base images for which no official versions exist yet, but are required to serve as a foundation for this repository:
|
||||
|
||||
* [PHP-FPM 5.2](https://github.com/devilbox/docker-php-fpm-5.2)
|
||||
* [PHP-FPM 5.3](https://github.com/devilbox/docker-php-fpm-5.3)
|
||||
* [PHP-FPM 7.4](https://github.com/devilbox/docker-php-fpm-7.4)
|
||||
* [PHP-FPM 8.0](https://github.com/devilbox/docker-php-fpm-8.0)
|
||||
* [PHP-FPM 8.1](https://github.com/devilbox/docker-php-fpm-8.1)
|
||||
* [PHP-FPM 8.2](https://github.com/devilbox/docker-php-fpm-8.2)
|
||||
206
doc/contributor/PHP-EXT-build.yml.md
Normal file
206
doc/contributor/PHP-EXT-build.yml.md
Normal file
@@ -0,0 +1,206 @@
|
||||
[PHP Mods: Overview](../../php_modules/README.md) |
|
||||
[PHP Mods: `options.yml`](PHP-EXT-options.yml.md) |
|
||||
PHP Mods: `build.yml` |
|
||||
[PHP Mods: `test.yml`](PHP-EXT-test.yml.md)
|
||||
|
||||
---
|
||||
|
||||
<h2><img name="Documentation" title="Documentation" width="20" src="https://github.com/devilbox/artwork/raw/master/submissions_logo/cytopia/01/png/logo_64_trans.png"> Contributor Documentation: PHP Modules</h2>
|
||||
|
||||
|
||||
|
||||
# Extension definition: `build.yml`
|
||||
|
||||
|
||||
## Top level defines
|
||||
|
||||
| Yaml key | Description |
|
||||
|-----------------|-------------|
|
||||
| `already_avail` | Array of PHP versions for which we don't have to install the module as it is already present via its FROM image. |
|
||||
| `all` | Is generic for all PHP versions and will be used whenever no specific version is defined. |
|
||||
| `7.2` | A version specific block for PHP 7.2. Its child keys will overwrite what has been defined in `all`. |
|
||||
|
||||
**Example:** Using `already_avail`
|
||||
```yaml
|
||||
# "{{ php_all_versions }}" Jinja2 variable is available and
|
||||
# translates to an array of all available PHP versions.
|
||||
already_avail: "{{ php_all_versions }}"
|
||||
```
|
||||
|
||||
**Example:** Overwriting `git_ref` for a specific version
|
||||
```yaml
|
||||
already_avail: [5.2]
|
||||
all:
|
||||
type: git
|
||||
git_url: https://github.com/phalcon/cphalcon
|
||||
git_ref: master
|
||||
# PHP 8.1 is using a different git_ref
|
||||
8.1:
|
||||
git_ref: v1.0.0
|
||||
# PHP 8.0 is using a different git_ref dynamically with latest tag found
|
||||
# See the usage of supported shell code
|
||||
8.0:
|
||||
git_ref: $( git tag | sort -V | tail -1 )
|
||||
```
|
||||
|
||||
|
||||
## Second level defines
|
||||
|
||||
The following keys can be added below: `all`, `8.2`, `8.1`, `8.0`, `7.4`, ...
|
||||
|
||||
| Yaml key | Required | Supports<br/>Shell code | Description |
|
||||
|-------------|----------|-------------------------|-------------|
|
||||
| `pre` | No | Yes | Specify a shell command to be run before module installation. |
|
||||
| `post` | No | Yes | Specify a shell command to be run after module installation. |
|
||||
| `build_dep` | No | No | Array Debian packages required to build the module (they won't be present in the final image - only used to built the module) If you don't need any, assign it an empty array: `build_dep: []`. |
|
||||
| `run_dep` | No | No | Array Debian packages required for the module run-time (they won't be present during the build stage - only in the final image). If you don't need any, assign it an empty array: `run_dep: []`. |
|
||||
| `type` | **Yes** | No | On of the following types to build the module: `builtin`, `pecl`, `git`, `custom`. |
|
||||
|
||||
**Example:**
|
||||
```yaml
|
||||
all:
|
||||
type: builtin
|
||||
pre: |
|
||||
ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE))" \
|
||||
post: |
|
||||
rm -f /tmp/file.txt \
|
||||
build_dep: [libmcrypt-dev]
|
||||
run_dep: [libmcrypt4]
|
||||
8.1:
|
||||
type: builtin
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
```
|
||||
|
||||
|
||||
## Second level defines for `type: builtin`
|
||||
|
||||
| Yaml key | Required | Supports<br/>Shell code | Description |
|
||||
|-------------|----------|-------------------------|-------------|
|
||||
| `configure` | No | Yes | Add `./configure` arguments. E.g.:<br/> `configure: --with-jpeg --with-png` |
|
||||
|
||||
**Example:**
|
||||
```yaml
|
||||
all:
|
||||
type: builtin
|
||||
8.1:
|
||||
type: builtin
|
||||
configure: --with-jpeg --with-png
|
||||
8.0:
|
||||
type: builtin
|
||||
configure: --with-jpeg
|
||||
```
|
||||
|
||||
|
||||
## Second level defines for `type: pecl`
|
||||
|
||||
| Yaml key | Required | Supports<br/>Shell code | Description |
|
||||
|-------------|----------|-------------------------|-------------|
|
||||
| `version` | No | Yes | Pecl packet version |
|
||||
| `command` | No | Yes | Overwrite pecl command (default: `pecl install <ext>`) |
|
||||
|
||||
**Example:**
|
||||
```yaml
|
||||
all:
|
||||
type: pecl
|
||||
command: echo "/usr" | pecl install amqp
|
||||
build_dep: [librabbitmq-dev]
|
||||
run_dep: [librabbitmq4]
|
||||
5.5:
|
||||
type: pecl
|
||||
version: 1.9.3
|
||||
run_dep: [librabbitmq1]
|
||||
```
|
||||
|
||||
|
||||
## Second level defines for `type: git`
|
||||
|
||||
| Yaml key | Required | Supports<br/>Shell code | Description |
|
||||
|-------------|----------|-------------------------|-------------|
|
||||
| `git_url` | **Yes** | Yes | Git repository URL |
|
||||
| `git_ref` | No | Yes | Tag, branch, commit to check out (shell code supported to dynamically checkout) |
|
||||
| `configure` | No | Yes | Add `./configure` arguments. |
|
||||
| `command` | No | Yes | Overwrite default command (default: `phpize && ./configure && make && make install`) |
|
||||
|
||||
**Example:**
|
||||
```yaml
|
||||
already_avail: [5.2]
|
||||
all:
|
||||
type: git
|
||||
git_url: https://github.com/phalcon/cphalcon
|
||||
git_ref: master
|
||||
# PHP 8.1 is using a different git_ref
|
||||
8.1:
|
||||
git_ref: v1.0.0
|
||||
# PHP 8.0 is using a different git_ref dynamically with latest tag found
|
||||
# See the usage of supported shell code
|
||||
8.0:
|
||||
git_ref: $( git tag | sort -V | tail -1 )
|
||||
```
|
||||
|
||||
|
||||
## Second level defines for `type: custom`
|
||||
|
||||
| Yaml key | Required | Supports<br/>Shell code | Description |
|
||||
|-------------|----------|-------------------------|-------------|
|
||||
| `command` | **Yes** | Yes | Custom command to install and enable a module |
|
||||
|
||||
**Example:**
|
||||
```yaml
|
||||
all:
|
||||
type: custom
|
||||
command: |
|
||||
wget http://url/file.tar.gz \
|
||||
&& tar xvfz file.tar.gz \
|
||||
&& cd file \
|
||||
&& phpize \
|
||||
&& ./configure \
|
||||
&& make \
|
||||
&& make install \
|
||||
```
|
||||
|
||||
|
||||
## Usage of shell code
|
||||
|
||||
### Single-line vs Multi-line
|
||||
|
||||
**Note:** All keys that support shell code can be written as a single line yaml definition or as a multi line yaml definition. Multi-line yaml definitions need a trailing `\` at the end of each line, including the last line.<br/>
|
||||
**Single-line:**
|
||||
```bash
|
||||
all:
|
||||
pre: VERSION="$( curl http://url | grep -Eo '[0-9.]+' )"
|
||||
```
|
||||
**Multi-line:**
|
||||
```bash
|
||||
all:
|
||||
pre: |
|
||||
VERSION="$( \
|
||||
curl http://url \
|
||||
| grep -Eo '[0-9.]+' \
|
||||
)" \
|
||||
```
|
||||
|
||||
### Single-command vs Multi-command
|
||||
|
||||
**Note:** All keys that support shell code also support to write multiple shell commands. If you use multiple shell commands, you need to separate them with `&&`.<br/>
|
||||
**Single-command:**
|
||||
```bash
|
||||
all:
|
||||
pre: |
|
||||
VERSION="$( \
|
||||
curl http://url \
|
||||
| grep -Eo '[0-9.]+' \
|
||||
)" \
|
||||
```
|
||||
**Multi-command:**
|
||||
```bash
|
||||
all:
|
||||
pre: |
|
||||
URL="http://url" \
|
||||
&& VERSION="$( \
|
||||
curl "${URL} \
|
||||
| grep -Eo '[0-9.]+' \
|
||||
)" \
|
||||
&& echo "${VERSION}" \
|
||||
|
||||
```
|
||||
132
doc/contributor/PHP-EXT-options.yml.md
Normal file
132
doc/contributor/PHP-EXT-options.yml.md
Normal file
@@ -0,0 +1,132 @@
|
||||
[PHP Mods: Overview](../../php_modules/README.md) |
|
||||
PHP Mods: `options.yml` |
|
||||
[PHP Mods: `build.yml`](PHP-EXT-build.yml.md) |
|
||||
[PHP Mods: `test.yml`](PHP-EXT-test.yml.md)
|
||||
|
||||
---
|
||||
|
||||
<h2><img name="Documentation" title="Documentation" width="20" src="https://github.com/devilbox/artwork/raw/master/submissions_logo/cytopia/01/png/logo_64_trans.png"> Contributor Documentation: PHP Modules</h2>
|
||||
|
||||
|
||||
|
||||
# Extension definition: `options.yml`
|
||||
|
||||
These options are purely for the module generator to decide whether or not to build the module, in what order to build it (order of dependencies) and when to enable it for PHP cli and PHP-FPM.
|
||||
|
||||
|
||||
### `name`
|
||||
|
||||
* Required: Yes
|
||||
* Type: `str`
|
||||
|
||||
The lower-case name of the extension as it is shown by `php -m`.
|
||||
|
||||
|
||||
### `exclude`
|
||||
|
||||
* Required: Yes
|
||||
* Type: `list[str]`
|
||||
* Empty: `[]`
|
||||
|
||||
Add PHP versions to exclude from building/installing this extension. This could be due to build errors or deprecations.
|
||||
|
||||
Example:
|
||||
```yaml
|
||||
# Exclude PHP 5.2 and PHP 5.3
|
||||
exclude: [5.2, 5.3]
|
||||
```
|
||||
|
||||
**Note:** If this extension is already present, do not exclude it in here, but rather use `already_avail` in `build.yml`.
|
||||
|
||||
|
||||
### `depends_build`
|
||||
|
||||
* Required: Yes
|
||||
* Type: `list[str]`
|
||||
* Empty: `[]`
|
||||
|
||||
If this PHP module requires another PHP module to be present prior building, you have to specify them in this list. The module generator will then ensure to build all available modules in order of dependencies.
|
||||
|
||||
Example:
|
||||
```yaml
|
||||
# Before building the current extension, it will be ensured that
|
||||
# igbinary and msgpack are build and installed beforehand.
|
||||
depends_build:
|
||||
- igbinary
|
||||
- msgpack
|
||||
```
|
||||
|
||||
|
||||
### `depends_load`
|
||||
|
||||
* Required: Yes
|
||||
* Type: `list[str]`
|
||||
* Empty: `[]`
|
||||
|
||||
If this PHP module requires another PHP module to be loaded beforehand in order to function correctly, you have to specify them in this list. The PHP docker image will then respect the order of loading modules as per specification in here.
|
||||
|
||||
Example:
|
||||
```yaml
|
||||
# Before loading the current module, ensure to load
|
||||
# igbinary and msgpack first.
|
||||
depends_load:
|
||||
- igbinary
|
||||
- msgpack
|
||||
```
|
||||
|
||||
**Note:** This is the opposite of `loads_before`
|
||||
|
||||
|
||||
|
||||
### `loads_before`
|
||||
|
||||
* Required: No
|
||||
* Type: `list[str]`
|
||||
* Empty: `[]`
|
||||
|
||||
If this PHP module requires to be loaded before certain other PHP modules, specify them in this list. The PHP docker image will then respect the order of loading modules as per specification in here.
|
||||
|
||||
Example:
|
||||
```yaml
|
||||
# Before loading igbinary and msgpack, ensure to load
|
||||
# the current module.
|
||||
depends_load:
|
||||
- igbinary
|
||||
- msgpack
|
||||
```
|
||||
|
||||
**Note:** This is the opposite of `depends_load`
|
||||
|
||||
|
||||
|
||||
### `conflicts_load`
|
||||
|
||||
* Required: Yes
|
||||
* Type: `list[str]`
|
||||
* Empty: `[]`
|
||||
|
||||
Specify any PHP modules that cause the current module to malfunction when loaded.
|
||||
|
||||
Example:
|
||||
```yaml
|
||||
# Make igbinary and msgpack as incompatible to load with this module.
|
||||
conflicts_load:
|
||||
- igbinary
|
||||
- msgpack
|
||||
```
|
||||
|
||||
|
||||
### `enabled_php_cli`
|
||||
|
||||
* Required: Yes
|
||||
* Type: `bool`
|
||||
|
||||
Specify if this module should be loaded and made available to the PHP cli (does not affect PHP-FPM).
|
||||
|
||||
|
||||
### `enabled_php_fpm`
|
||||
|
||||
* Required: Yes
|
||||
* Type: `bool`
|
||||
|
||||
Specify if this module should be loaded and made available to the PHP-FPM process (does not affect PHP cli).
|
||||
27
doc/contributor/PHP-EXT-test.yml.md
Normal file
27
doc/contributor/PHP-EXT-test.yml.md
Normal file
@@ -0,0 +1,27 @@
|
||||
[PHP Mods: Overview](../../php_modules/README.md) |
|
||||
[PHP Mods: `options.yml`](PHP-EXT-options.yml.md) |
|
||||
[PHP Mods: `build.yml`](PHP-EXT-build.yml.md) |
|
||||
PHP Mods: `test.yml`
|
||||
|
||||
---
|
||||
|
||||
<h2><img name="Documentation" title="Documentation" width="20" src="https://github.com/devilbox/artwork/raw/master/submissions_logo/cytopia/01/png/logo_64_trans.png"> Contributor Documentation: PHP Modules</h2>
|
||||
|
||||
|
||||
|
||||
# Extension definition: `test.yml`
|
||||
|
||||
### Goal
|
||||
The goal of these tests will be to ensure that each compiled module works as expected:
|
||||
* Required system libraries are present
|
||||
* Module has been loaded in correct order
|
||||
* Module works properly
|
||||
|
||||
This will be accomplished by providing example PHP code, which makes calls to functions of the respective module. The tests will then check PHP error logs, stderr, unforseen exits and segfaults for potential errors.
|
||||
|
||||
Currently some basic tests already exist or a few modules **[here](../../tests/mods/modules)**.
|
||||
|
||||
|
||||
### Configuration
|
||||
|
||||
This is not yet implemented and thus no documentation exists.
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user