From f8ec06ac1cd32aee0f5083fe847b6b510c04fa02 Mon Sep 17 00:00:00 2001 From: anribras Date: Sat, 6 Jul 2019 17:41:11 +0800 Subject: [PATCH 001/108] Add mariadb timezone setting via WORKSPACE_TIMEZONE in .env --- docker-compose.yml | 1 + mariadb/Dockerfile | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index a136f741..49a4c3a9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -407,6 +407,7 @@ services: ports: - "${MARIADB_PORT}:3306" environment: + - TZ=${WORKSPACE_TIMEZONE} - MYSQL_DATABASE=${MARIADB_DATABASE} - MYSQL_USER=${MARIADB_USER} - MYSQL_PASSWORD=${MARIADB_PASSWORD} diff --git a/mariadb/Dockerfile b/mariadb/Dockerfile index 0dcb9481..7538b4e2 100644 --- a/mariadb/Dockerfile +++ b/mariadb/Dockerfile @@ -2,6 +2,13 @@ FROM mariadb:latest LABEL maintainer="Mahmoud Zalt " +##################################### +# Set Timezone +##################################### + +ARG TZ=UTC +ENV TZ ${TZ} +RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone && chown -R mysql:root /var/lib/mysql/ COPY my.cnf /etc/mysql/conf.d/my.cnf CMD ["mysqld"] From 6c8907cb33f45f63240ad6e3d7ba9a6691ae7404 Mon Sep 17 00:00:00 2001 From: oussaka Date: Mon, 17 Aug 2020 00:26:47 +0200 Subject: [PATCH 002/108] new Symfony Installer to create a new Symfony application --- workspace/Dockerfile | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/workspace/Dockerfile b/workspace/Dockerfile index 6d059bac..ea8943f1 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -1059,14 +1059,10 @@ ARG INSTALL_SYMFONY=false RUN if [ ${INSTALL_SYMFONY} = true ]; then \ mkdir -p /usr/local/bin \ - && curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \ + && apt-get -y install sudo wget \ + && wget --quiet https://get.symfony.com/cli/installer -O - | bash \ + && mv /root/.symfony/bin/symfony /usr/local/bin/symfony \ && chmod a+x /usr/local/bin/symfony \ - # Symfony 3 alias - && echo 'alias dev="php bin/console -e=dev"' >> ~/.bashrc \ - && echo 'alias prod="php bin/console -e=prod"' >> ~/.bashrc \ - # Symfony 2 alias - # && echo 'alias dev="php app/console -e=dev"' >> ~/.bashrc \ - # && echo 'alias prod="php app/console -e=prod"' >> ~/.bashrc \ ;fi ########################################################################### From 4bb1fe281d1405a5acfae65c1ba0d164751301e2 Mon Sep 17 00:00:00 2001 From: Ivan Djurdjevac Date: Sat, 16 Jan 2021 08:34:05 +0100 Subject: [PATCH 003/108] Configuration to switch between composer version 1 or 2 --- docker-compose.yml | 1 + env-example | 1 + workspace/Dockerfile | 5 +++++ 3 files changed, 7 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index 45791f82..9652f941 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -110,6 +110,7 @@ services: - INSTALL_OCI8=${WORKSPACE_INSTALL_OCI8} - INSTALL_V8JS=${WORKSPACE_INSTALL_V8JS} - COMPOSER_GLOBAL_INSTALL=${WORKSPACE_COMPOSER_GLOBAL_INSTALL} + - COMPOSER_VERSION=${WORKSPACE_COMPOSER_VERSION} - COMPOSER_AUTH=${WORKSPACE_COMPOSER_AUTH} - COMPOSER_REPO_PACKAGIST=${WORKSPACE_COMPOSER_REPO_PACKAGIST} - INSTALL_WORKSPACE_SSH=${WORKSPACE_INSTALL_WORKSPACE_SSH} diff --git a/env-example b/env-example index 0585bfda..95911015 100644 --- a/env-example +++ b/env-example @@ -100,6 +100,7 @@ SHELL_OH_MY_ZSH_ALIASES=false WORKSPACE_BASE_IMAGE_TAG_PREFIX=latest WORKSPACE_COMPOSER_GLOBAL_INSTALL=true +WORKSPACE_COMPOSER_VERSION=2 WORKSPACE_COMPOSER_AUTH=false WORKSPACE_COMPOSER_REPO_PACKAGIST= WORKSPACE_NVM_NODEJS_ORG_MIRROR= diff --git a/workspace/Dockerfile b/workspace/Dockerfile index 43e76871..e6bd977f 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -147,6 +147,11 @@ RUN chown -R laradock:laradock /home/laradock/.composer RUN echo "" >> ~/.bashrc && \ echo 'export PATH="$HOME/.composer/vendor/bin:$PATH"' >> ~/.bashrc +# Update composer +ARG COMPOSER_VERSION=2 +ENV COMPOSER_VERSION ${COMPOSER_VERSION} +RUN composer self-update --${COMPOSER_VERSION} + USER laradock # Check if global install need to be ran From 1a632c82d081d7d2903a3fe014b5dd09d3ec39be Mon Sep 17 00:00:00 2001 From: JohannesM Date: Thu, 4 Feb 2021 23:23:44 +0100 Subject: [PATCH 004/108] adding --no-log-init for large UID Fixing docker build crash with high user id. see https://github.com/moby/moby/issues/5419 --- workspace/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workspace/Dockerfile b/workspace/Dockerfile index ced4721b..6222f545 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -61,7 +61,7 @@ RUN set -xe; \ apt-get update -yqq && \ pecl channel-update pecl.php.net && \ groupadd -g ${PGID} laradock && \ - useradd -u ${PUID} -g laradock -m laradock -G docker_env && \ + useradd -l -u ${PUID} -g laradock -m laradock -G docker_env && \ usermod -p "*" laradock -s /bin/bash && \ apt-get install -yqq \ apt-utils \ From a6950d2e6fda085210cc35abfd9dd65e42cf8eef Mon Sep 17 00:00:00 2001 From: Valentino Lauciani Date: Tue, 9 Feb 2021 13:13:14 +0100 Subject: [PATCH 005/108] Add variable to install docker client --- docker-compose.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index f73640b8..346c215c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -141,6 +141,7 @@ services: - INSTALL_SUPERVISOR=${WORKSPACE_INSTALL_SUPERVISOR} - INSTALL_FFMPEG=${WORKSPACE_INSTALL_FFMPEG} - INSTALL_GNU_PARALLEL=${WORKSPACE_INSTALL_GNU_PARALLEL} + - INSTALL_DOCKER_CLIENT=${WORKSPACE_INSTALL_DOCKER_CLIENT} - http_proxy - https_proxy - no_proxy @@ -228,6 +229,7 @@ services: - PUID=${PHP_FPM_PUID} - PGID=${PHP_FPM_PGID} - LOCALE=${PHP_FPM_DEFAULT_LOCALE} + - INSTALL_DOCKER_CLIENT=${PHP_FPM_INSTALL_DOCKER_CLIENT} - http_proxy - https_proxy - no_proxy From ffc36b7ec82960a3f4614416758489f61f70d0af Mon Sep 17 00:00:00 2001 From: Valentino Lauciani Date: Tue, 9 Feb 2021 13:14:27 +0100 Subject: [PATCH 006/108] Add variable to install docker client --- env-example | 2 ++ 1 file changed, 2 insertions(+) diff --git a/env-example b/env-example index e6cb581a..e5369ca8 100644 --- a/env-example +++ b/env-example @@ -160,6 +160,7 @@ WORKSPACE_INSTALL_GNU_PARALLEL=false WORKSPACE_INSTALL_AST=true WORKSPACE_AST_VERSION=1.0.3 WORKSPACE_INSTALL_GIT_PROMPT=false +WORKSPACE_INSTALL_DOCKER_CLIENT=false ### PHP_FPM ############################################### @@ -215,6 +216,7 @@ PHP_FPM_INSTALL_SSHPASS=false PHP_FPM_INSTALL_MAILPARSE=false PHP_FPM_FFMPEG=false PHP_FPM_ADDITIONAL_LOCALES="es_ES.UTF-8 fr_FR.UTF-8" +PHP_FPM_INSTALL_DOCKER_CLIENT=false PHP_FPM_DEFAULT_LOCALE=POSIX PHP_FPM_PUID=1000 From 88b4050c799fd5a6ddd2f2f9c3e5d27c26b233f8 Mon Sep 17 00:00:00 2001 From: Valentino Lauciani Date: Tue, 9 Feb 2021 13:17:08 +0100 Subject: [PATCH 007/108] Add code to install docker client into docker image --- php-fpm/Dockerfile | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index b3246ed9..be4762f4 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -837,6 +837,21 @@ RUN if [ ${INSTALL_SSHPASS} = true ]; then \ apt-get -y install sshpass \ ;fi +########################################################################### +# Docker Client: +########################################################################### + +USER root + +ARG INSTALL_DOCKER_CLIENT=false + +RUN if [ ${INSTALL_DOCKER_CLIENT} = true ]; then \ + curl -sS https://download.docker.com/linux/static/stable/x86_64/docker-20.10.3.tgz -o /tmp/docker.tar.gz && \ + tar -xzf /tmp/docker.tar.gz -C /tmp/ && \ + cp /tmp/docker/docker* /usr/local/bin && \ + chmod +x /usr/local/bin/docker* \ +;fi + ########################################################################### # FFMPEG: ########################################################################### From a00364bf01af7b1c39f4007f79afc11b76bcb7a4 Mon Sep 17 00:00:00 2001 From: Valentino Lauciani Date: Tue, 9 Feb 2021 13:17:58 +0100 Subject: [PATCH 008/108] Add code to install docker client into docker image --- workspace/Dockerfile | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/workspace/Dockerfile b/workspace/Dockerfile index 267cc16d..e67a5a69 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -1208,6 +1208,21 @@ RUN if [ ${INSTALL_SSHPASS} = true ]; then \ apt-get -y install sshpass \ ;fi +########################################################################### +# Docker Client: +########################################################################### + +USER root + +ARG INSTALL_DOCKER_CLIENT=false + +RUN if [ ${INSTALL_DOCKER_CLIENT} = true ]; then \ + curl -sS https://download.docker.com/linux/static/stable/x86_64/docker-20.10.3.tgz -o /tmp/docker.tar.gz && \ + tar -xzf /tmp/docker.tar.gz -C /tmp/ && \ + cp /tmp/docker/docker* /usr/local/bin && \ + chmod +x /usr/local/bin/docker* \ +;fi + ########################################################################### # YAML: extension for PHP-CLI ########################################################################### From 99345ceb1c9c0b22c02e10dffc7b10384cbd5b3d Mon Sep 17 00:00:00 2001 From: trilogo-lordee Date: Wed, 10 Feb 2021 14:25:32 +0200 Subject: [PATCH 009/108] moving php.ini variables for phpmyadmin to env-example --- docker-compose.yml | 3 +++ env-example | 3 +++ phpmyadmin/Dockerfile | 5 ----- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index d19ba6a5..d27da7cf 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -864,6 +864,9 @@ services: - MYSQL_USER=${PMA_USER} - MYSQL_PASSWORD=${PMA_PASSWORD} - MYSQL_ROOT_PASSWORD=${PMA_ROOT_PASSWORD} + - MAX_EXECUTION_TIME=${PMA_MAX_EXECUTION_TIME} + - MEMORY_LIMIT=${PMA_MEMORY_LIMIT} + - UPLOAD_LIMIT=${PMA_UPLOAD_LIMIT} ports: - "${PMA_PORT}:80" depends_on: diff --git a/env-example b/env-example index 0585bfda..963c90f8 100644 --- a/env-example +++ b/env-example @@ -483,6 +483,9 @@ PMA_USER=default PMA_PASSWORD=secret PMA_ROOT_PASSWORD=secret PMA_PORT=8081 +PMA_MAX_EXECUTION_TIME=600 +PMA_MEMORY_LIMIT=256M +PMA_UPLOAD_LIMIT=2G ### MAILDEV ############################################### diff --git a/phpmyadmin/Dockerfile b/phpmyadmin/Dockerfile index ded59baf..75812d9b 100644 --- a/phpmyadmin/Dockerfile +++ b/phpmyadmin/Dockerfile @@ -5,10 +5,5 @@ LABEL maintainer="Bo-Yi Wu " # Add volume for sessions to allow session persistence VOLUME /sessions -RUN echo '' >> /usr/local/etc/php/conf.d/php-phpmyadmin.ini \ - && echo '[PHP]' >> /usr/local/etc/php/conf.d/php-phpmyadmin.ini \ - && echo 'post_max_size = 2G' >> /usr/local/etc/php/conf.d/php-phpmyadmin.ini \ - && echo 'upload_max_filesize = 2G' >> /usr/local/etc/php/conf.d/php-phpmyadmin.ini - # We expose phpMyAdmin on port 80 EXPOSE 80 From fd203fba044337970bd45df68c143623a3041e49 Mon Sep 17 00:00:00 2001 From: Mahmoud Zalt Date: Thu, 25 Feb 2021 15:13:27 +0100 Subject: [PATCH 010/108] add custom sponsor --- .../custom-sponsors/casinopilotti.png | Bin 0 -> 8990 bytes DOCUMENTATION/content/introduction/index.md | 13 +++++++------ README.md | 7 ++++--- 3 files changed, 11 insertions(+), 9 deletions(-) create mode 100644 .github/home-page-images/custom-sponsors/casinopilotti.png diff --git a/.github/home-page-images/custom-sponsors/casinopilotti.png b/.github/home-page-images/custom-sponsors/casinopilotti.png new file mode 100644 index 0000000000000000000000000000000000000000..09f3bd4e14810e28e017b89665bf68598a5cd9a0 GIT binary patch literal 8990 zcmW++cQjnz_nm?f^+PbCmmq2+gy=*kLiBEwMD&R=$^?Vxq9jqGCJ3U3V3c7*1QERr zql`pvBiiVGzQ48ZyYH`i-#P2;b8orV$y(#NaVe!uG(R=qIc5?`M7;SwCEE z`bo(;C&@U3=%p|Te`fmk-dHbZ@1PM zIXI}Z`he?GTgkpGXU?!!!|LY-Gh9)$XT|hAO1F8-)knj?n)HwYBd^00Zk%@-ZUY@+ zRQt`RGO&RhX%^#DL2rF#dAm`5e|&3Yfk!I}w$g(=BXd?5nHG+FllT3{;uGF1M~917 zK>Xlwp=4%6^8DHQzZ0PS%FbZ)C4Qvv)Ilq8!#jy(a^8<= zQW?QCuBev6aWWA&GB6daUDGzGbb7HlTh7wxmYiF}o)_F8_^;q<90PX^@lwWb{H~Hm z1%U2y(of2@8++^Pzuwewp0Tw0JLUYDmXs?%8#?&bnT`;G5=~|)Ds0gOTKY5TlrwOi zye-!x@V!s;Ex+BYT_>uY>UF!{*YAg?8+TuM(k<~askH&3)BtI}7f}-1-V@V4K~JTj zUn=SCb}z|-!(mgz$6HO-PCJ_edkC<2PiD)2rert;_~J+a9f7sBzX zEvUO99oxQ~`8c-KJzzvn|78}R0&e=I%f@4wBSdv$M8R4?HSAb*Ks!;a{A$w5)Z&4) zDLYZ#mivLD8?(RiSknGJU#;1r8+-|q!6}3U4yS-pLbbaMc$SW!46a@)f58G&B!~9F zF>Iini?45;U3>I4-u2MQR{Fn}5lO!3fBGpzi~>L@*s-E7-=X}gLVdCdLk(1r1j}72u z!1k_U07sHn_JSeFein^c2da7}6`SxeDo}-2?_;Jp4YJUTwG)NWqC}0M%=r9pUSC0y zK;+;TclB|3Y*j0U z<*YJVI%Da1z?^qI?A4g^3{wxm3O@%Fhxzl#Ytjx%d15cfx=xx#8TGiTs&&7W3n|OhB>rr=Z3npII}Z%!(A1 zky$ZGXsk){Z&roTpf{8=UwXrVise=Ia!+NMD>qe@!GuSuJrAii&68wvX+$QBEMF%5F>ikH2$$$I z3-SrbN!+#w3Mei~Fq^JR;;G1@JdLQBtwBeaF82ZbInz@(s~uJwrP=+J;lmZiEbpoY zgSh-(+GIUMgb2Y~)5<`en$1q?t)MvEbo^A~&;OM4-O{urym^=jZ(~Y5Rf<9y=Ith7 zS8HkKvV-pExwhKkRR$7`OS zPc+y^e8f+AWS>jh-0YjB5p-ATH)6(`r%{dOnf#f7bguot@Hr*6kQ+vCf3CFu65Wwj zddl=B`euBPcT>~R)`G37y2g-rHNW_xb9&E%)$d{7E!Xey`|Zjb7rXPVI_RY2Gsv|9 zHa~1!@Hr5tGOwPSh3F*C_Uc_Cy&jH@KFWdTDb;`Hu@>XCSPlBEZ%Z%QAD&V>iCLB; zgvGj`Dbb!PIWKmkkMZqalyCj4J&(3ALuLR2!RS+i=yLVfC~r1Vw#d*BRjOs496@#LaE+xro_Qr#s+H<7ogK1qRlio+D%!eLQybp(o`|fc=|9DY7+ci1 zw*p=TNO$~K8EI2>gb|fIM?`{LkdW-x%|hElk~@fwcc?;mDe71pf)~ zR@>CJ1CpZhW?q0rew^u+As96YlZFq0r>e{BnMDEgpDKc0@@|$D&h|E zGDq5X{Z?0;zZFBW&jC~i1_@@h{Md(+SN=pq%r>#0pP2b|KA}fH_78yt7ZaigI{Kk zZkGGj18T_IzRv*?<+6LLCUekdb?T0 zt}6QiEvS!i>O4e-3TtUt_gjiiD@*844i0sgnIYMQ)X4r#K3Dqnw7VqDVy!>5R>skg zIRT{&*1m6^g7h+Sb;-htN;v6f?Rbg?p3uT|ZsKAU;#MsrK$1!HZsZDG#IFfiAJirU z_Y)xm94|Q2hUyvfNx_IAa8~1G_WKA`1eQV1cu| zgd@qG^+Cun&YF-9+>z?eqn_DFhhSw6 zd;ku`krN4TBhI;MEif_`TFEO@vGK7AuD_WMN~(gr*==t<_B`*=imc$hwTr?Hf7NY; zV?uAupJ9iPc|OUF>G2c4*?e7^ z<^YH8DE+LcsW;F`wpD%nj!!LZb)v@nSp%7cxyeV~h&`98>oNl-+zs+JHUD;9GR`pJ zeroyQHO(T~h2z9Njy5(lRQJtnM8*n_EY~@EYGQEvWH&}LFm5Cwy`lW~!%LPE4f0kR58?vaN->CMs zGdOhDX+U4N=4;F!xUitwj%4@ih+E8

lGguQEy=85WI6L6Tz}*X6BI^F1py_ZcSde=6Nz{L^#c+ z?gh?H{(IXZS@Y(5W2HHK$&|ep*_GR@&97ZwF)3dsYLW8XLV`bpt|-yvzkciJ=XL;<^-d@JaO^mTV$Da3a>{_3Da9772Q%J4 z0TmWh)lo{s$G=}2P|PE@zBZfe2O7?mYPFF{+Kx6(Gz{>*1LW{;13!jeL9zB|LrbM* z^U!VvT_2vZI*{c7cnh?ZsbinDBifS0G9e*^6#?#g5klTK*MMp%P1ACx40b%4O1Xnw z4DZ%(4?bj+p%*m_Pp=AN*HavE%X+barmg_0Dc`<;^#Q`PJu5fmIFph8`F@UH0q<`9@{YODpN2(^Axmc5NL&;~AB`q@M$ z{3^u&@V~BowwPz^sPM(+d&A*(=8;ec_;Jm>sSH*-ejc8QUrfl~nZU_Q(Td@OZT8w?N~2PdMP1 ziv|V&3xnl}fwbVNV!ca#r>Gcv6gERj4;T^^%;i_=m+4B;clHg9NqzJ)msN;&kVXsO(dJ z#`$uTwBw0GA5z8S`{zqr%bVLI<;3P?($$oNsS0U4KjC0JFS%gwr{BTrK7$YqKi+^A zI2U%Jj%3eq*JHdgeg#=$u8(oJ3-d>QL(Axewta4;UMRO?WtF~g1m8Cxaru-d--YZ3 z@4-y46TH#~Cwj#N5gyB2#fK3wmf2^^MapRU_+pCz!8exfP>N{@n$PN8yBy?%3=RV?A9sj5WG|aM`jOq%yO6cKlAGwXI*~*jA&j>J&z=rE|jwg^ap} z_MBp&hGN1DD<1tmgEP@;sto>3r@IZo{&smhlam|2)%9ps^}6c1BS|4K5u0G!7|3;x zHR$A&j~lLtiVcVO;uO732E1A&<6IQu3P4${K62q+)p5ndGsrx(Z82xQ8HzqpT{u>t zcO`g!k9uAP9jjbx1cTUkOw@NH-~F>6p=L!}W4~Bq*EU{V@8s5M1evWYa^>u;fBfgr z>)-s?J9q$qz7GXVOb`gTTb$vr+xRKvEHZy}-Sg?4w3bQp-y2MT^EXq-G^m6z?GPpL z5U6almD_u|`pWZUz^YXeZM=fNTCpz^SFuv2HxI7aYIY}10K#MnY{EX_D42COgLZ8$ zj#MT0>+{7sGTs7g^A@dc1nsJRE!N+^h!s??ofvu+@G0hU``e@8{rGlqlsH4NHhp}4 zC|9M5A`(~fTAI|4CwEeqN@+IS6{;)0?o_r|c~@p7!(d_!|N8Pz82z!kVY_2Hlk_82 zx^MIB?p^X(F)?ANQXhp}D>s+8OAf3=E8;SJF~sau3dckFG6(JDkq)6i&4v8jr1c>y z6$etNZT(0i}_BIQM_x5Dc7_jLz)%rZ1-`$dLkP`Y_L2pbK!P-sXDtX{p&0>W-xVN}y5H(TrOIo#)JZr&X6f6mP7-Y6$IE+;pxQ-cF=P+bmIsg-Fca@lK@Od zI5|7-lK<@kUbzDY&yf`HqbAy;4erOk69GHXVT2G2v>9ky*%*4uM+S80aT~%u@edMiAO%1mtaM>O?>F-_SiwldEDy%|@#FUK?m3vQQSw^PSnqUkqu`e7q zX9|rx)!i_(Tm1{Tf~@eHSU!~IT^OjM0^GWvdBT3!y{e<`#|)plPbl>)8t>suFub`t zBZXzI!W$3KZT+S?4!?BTjBo;|e2+31%UcVV5uChQy$B^@Ot!xhJi$H?5;Gg*h3K0W_3WaAD`%uB`ML)8rDq$ zr(|wG4|jeAo!^(>*9*;^$Eo+DkakD&v1FEMz}VHQzGiGdQTh7dN%vX&EkOI&;idgw zg((Rd!518lg;^*_P_4qHh~mf`9geKmiAN#;70%h5CbMUQ!?_Jy=#fsw8PR@5G0s`#wZSHm`}c9raK(nW|xOx(Ot z4V6^ipUdQSjjkA~2-H3`C(!kwAUJQ+f_iZogP?zl5!L|Ya3~-aa+-S;tn!k6eiKl4 zlIICMRnej|%PLdR9^;zTyO4|Dc`CZy>G2Ix0GNtiP3WbD3KI~YN;->eH9tBp1ZqUK z#>yQvi_b%#(+)eoW{Z?#GZn_VJ|KzxZ~?n-J23C%Prr~;ZMf`n4m95eE6!>1Ret_} zt`_!^5BM|60#m>Jh?qeUHEwkLp?V~>shR%T+?3P_*UsaY)szXsJ6XN@KE9wtk`o_Jde5%{AjPqCqK{;9oTNSb`^N9!yJ|+!(gci2$ZwF z_vJ#9LA|g0=ZN~}vB1=$rE7E4MFm_-342O@eAb>K)y3p@a48Q&8(e#>PboYFhOH}< zYx1++FVES~E52K7=?gUhh1$2t($;z}5l&)0BNi+9cd<4x?%;vfhh$dJ;*E3~=n27i z7LAqkGJZ^r9C$<=OcL2lmR`L*i_=AOna(xwo4w>vw1&NCzy2!4`Q6P7aR0c_m6M4v znbDOvl31fiZ{rS)!AWq;*uZW><{$el@?D!S)k^%)BsxG#JMo=Z(VxPPw$rUr7%pO7 z{?Fk%t&{O|C@gay|v zDde$dvGRu&i|K9?1qD$_fGYF;X#VQQNq4W-hWW#3=aKYSM$4M^#;2`xlB7oe6N2*Q zOx8DR%#gyg#BK2ekhkcU5if!@P(d}s1yT*^Yp!X*rj-JcxPZ-hE8knvLN(cHLvL6) zE_E!IC7#x=fyIOe=m@j(I2z4*)Ty88kT%4}_$|{#8|mwV71iR?eMETbH)bN|Tg;TY zV^R8E$#abmS9~=8iZ3|Tg3zf8xMac7M|f}_Fw6c2l3?qMBAO7;s&F&=&}$Bm ze_$W8UU$vrSJ(P=w2v~W)LZwz->7x}H(UMXPYjvGBomDOv`TicP46OKW2B-lkeh(9 zzgDcPS&7V>b;w3Rc6-nH@D)RJ&|P>q`>d0U*qq%lRQ6tPENx|LLfDD!6Ly9J?yv^e zrD%oqP6SWWQO`0P^O3?{v0R`Oyg&zj0sPyX8LVX6K+&%{?zw)-)3*!>Dnpu#W?u&t z;OXktWh7x%vuDm|`T!sRiFpmv96z+>^1g)BbCiHWLa)5c9IjQV%E;PsYX9lR zZQG8;6Bf}2Ou_f$YEi4%5gx8VEYGl9rWpUgMVpyXYC56Fj7f)d9nJqgX3`e%KF$>K zQpS2?=Ywy#4(^=&;3!d+08UcHEc>L6$xm<{gxpPyID1+iUe15uDaSKRFa+%aPy%Rs zyY&--DsFTxTE5ZPFKlU;;oSx7-`=MS&CR$%XWg{l#oF6s79D^iUf6c~ti@pXGi)7+ zubvt$i_5l}<@$6fCN_2thbR%cE;JC^5$@`(PFX97iu@w-m=!X@kuLlKpz>%$KM-2Z zmHgZH=0ae)!6h={`%k;kBBVMbf$OHy6%e;tmNMS^>5ey9wS6#VDvAquBG&IG16CqD zLg1hH-CiG&)#&GMpRZ9Nj2C#}>8p(JZ}~pIWu$FOUHsKm|AymXqssG+TK_;t0Dj7i z`Fll_00Yy*KY(*`c({6_n&wOOYgzDCG3bA`bg{455CZ(ME7pYiTaP9Ukpd(p)wSom zN!NT-Nwx*@&PhKUx@_bN@I37hpcz24SzNm)s?$o`x2dml82mojx0?iEk9nK;-Ch7% z1v-#XEd`&u&tG|L4L_PS0yJ7S8yDig==1{cpKCNyE4ZZ+sC< zRm~`=e!x9zn{n)mEcw%Rs;npVr@6{MB^PjgPiLq0{?7 zlD>w*Q+#BZ?tv%DA*qTzXUty zqScY~>}9r9yy#zok?qCSxMUY}`_718HuZKR=latP(q_ED14gyX)T^0Y+o$BXcs7kT zq&&;@;!DjyDBV_{jha!z%?AvYb`bBT!VqTk(K%DucF;@zkIrxRtI2oB2`$Sjku=aW z5~#V&M?XZe!0cL055g3}2yu>*@#KMLds7Us?xzhRyk)0U7Zf;^)Oy4EBRw!q;4s`v zK}rnMI%+Y4c#;<;&iJcfp5`^S?N0V$?ZCL)f;29xW%mAD9gMGf!%;$XfbU_#+a)_dc!bQ; z?)%pS8TqIM%hC4cU`_s{2H$}svwbhN&Q@FWS%EgQJxRJ3@ky!Sc2Xlu8YQj+I)DAG zm!A|i(R`Q6a`wLu;d9q;SvQ$ZIIj9rQp3a#*W>-T=Wl+gBn>NXQma z*Z4Di2d&eo25L8+_Y(Z{^HgiESQ@7Oc5~7UIe?Bm4#d0mKU~f=Z8Q0+qY zle;lPBFq>W4pudWuK3({s4X!GW`M@Rebk)$=gI$V>NhMwGin~x(1g|CYD>N&p9ZMN z25c&(?c2GK*Y;)2oMf&sqr^hQXmtAz0vTkXm;Xf6isf{7aYTkt8 zkI3I03n1C3ZC?W0>Cp<+^}=J>ChBeBbgfCH4#=!@TT}Wh$%f~Oj3By3k$OdLt1HWz ze;0fV0fgTmh}g8rH5*b@A1%EWKUk2s_IEZOQ&Z0&zSxyXZHW2fKO-DbQ!GW>3L_FU z4Tp_bFKAe+(Ga5jGKOH>x_h^!6&`VQ3F~dVg0zDpj`>HApIqO20qANz(Wrg|i~K)K CxyO?L literal 0 HcmV?d00001 diff --git a/DOCUMENTATION/content/introduction/index.md b/DOCUMENTATION/content/introduction/index.md index 562402a2..4466e3ab 100644 --- a/DOCUMENTATION/content/introduction/index.md +++ b/DOCUMENTATION/content/introduction/index.md @@ -22,12 +22,12 @@ It supports a variety of common services, all pre-configured to provide a ready - Run your own stack: Memcached, HHVM, RabbitMQ... - Each software runs on its own container: PHP-FPM, NGINX, PHP-CLI... - Easy to customize any container, with simple edits to the `Dockerfile`. -- All Images extends from an official base Image. (Trusted base Images). +- All Images extend from an official base Image. (Trusted base Images). - Pre-configured NGINX to host any code at your root directory. - Can use Laradock per project, or single Laradock for all projects. - Easy to install/remove software's in Containers using environment variables. -- Clean and well structured Dockerfiles (`Dockerfile`). -- Latest version of the Docker Compose file (`docker-compose`). +- Clean and well-structured Dockerfiles (`Dockerfile`). +- The Latest version of the Docker Compose file (`docker-compose`). - Everything is visible and editable. - Fast Images Builds. @@ -385,7 +385,10 @@ Sponsoring is an act of giving in a different fashion. 🌱

-We thank bestonlinecasino.com for their support +CasinoPilotti +We thank bestonlinecasino.com for their support +Apiato Build PHP API's faster + @@ -421,8 +424,6 @@ Sponsoring is an act of giving in a different fashion. 🌱

-Apiato Build API's faster. - diff --git a/README.md b/README.md index 37f20dc1..8380be3d 100644 --- a/README.md +++ b/README.md @@ -191,7 +191,10 @@ Sponsoring is an act of giving in a different fashion. 🌱

-We thank bestonlinecasino.com for their support +CasinoPilotti +We thank bestonlinecasino.com for their support +Apiato Build PHP API's faster + @@ -227,8 +230,6 @@ Sponsoring is an act of giving in a different fashion. 🌱

-Apiato Build API's faster. - From 47c89787e60b475037e3cf2bde4ec4bace215cef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Lado=20Cruz?= Date: Wed, 10 Mar 2021 11:55:09 +0000 Subject: [PATCH 011/108] Fix Redis Problem issue #2851 --- workspace/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workspace/Dockerfile b/workspace/Dockerfile index c6c51054..1edc0834 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -560,7 +560,7 @@ ARG INSTALL_PHPREDIS=false RUN if [ ${INSTALL_PHPREDIS} = true ]; then \ apt-get update -yqq && \ - apt-get install -yqq php-redis \ + apt-get install -yqq php${LARADOCK_PHP_VERSION}-redis \ ;fi ########################################################################### From 247ce67097066fe9126512b9ac585729abfe1233 Mon Sep 17 00:00:00 2001 From: Pavel Savushkin Date: Fri, 12 Mar 2021 02:00:10 +0200 Subject: [PATCH 012/108] fix(AST extension): bump version due to php 8.0 support According to the changelog of the extension version should be bumped to support PHP 8.0 Closes 2859 --- env-example | 2 +- workspace/Dockerfile | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/env-example b/env-example index cf64e758..6a8d9efd 100644 --- a/env-example +++ b/env-example @@ -185,7 +185,7 @@ WORKSPACE_INSTALL_AUDIOWAVEFORM=false WORKSPACE_INSTALL_WKHTMLTOPDF=false WORKSPACE_INSTALL_GNU_PARALLEL=false WORKSPACE_INSTALL_AST=true -WORKSPACE_AST_VERSION=1.0.3 +WORKSPACE_AST_VERSION=1.0.10 WORKSPACE_BROWSERSYNC_HOST_PORT=3000 WORKSPACE_BROWSERSYNC_UI_HOST_PORT=3001 WORKSPACE_VUE_CLI_SERVE_HOST_PORT=8080 diff --git a/workspace/Dockerfile b/workspace/Dockerfile index c6c51054..23b196ee 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -635,7 +635,7 @@ RUN if [ ${INSTALL_INOTIFY} = true ]; then \ ########################################################################### ARG INSTALL_AST=false -ARG AST_VERSION=1.0.3 +ARG AST_VERSION=1.0.10 ENV AST_VERSION ${AST_VERSION} RUN if [ ${INSTALL_AST} = true ]; then \ @@ -1428,7 +1428,7 @@ RUN if [ ${INSTALL_WKHTMLTOPDF} = true ]; then \ libx11-dev \ libjpeg62 \ libxtst6 \ - fontconfig \ + fontconfig \ libjpeg-turbo8-dev \ xfonts-base \ xfonts-75dpi \ From 67cc72da622fa340ff24971b2f7e496e5ca91bad Mon Sep 17 00:00:00 2001 From: Pavel Savushkin Date: Fri, 12 Mar 2021 03:20:32 +0200 Subject: [PATCH 013/108] fix(IMAGEMAGICK extension): implement building extension for PHP 8.0 from source We need to build imagemagick extension from sources due the latest version, that supports PHP 8.0 has not been released to PECL. Closes #2861 --- docker-compose.yml | 8 ++++++-- env-example | 4 ++++ laravel-horizon/Dockerfile | 20 +++++++++++++++++++- php-fpm/Dockerfile | 24 +++++++++++++++++++++--- php-worker/Dockerfile | 30 +++++++++++++++++++++++++----- workspace/Dockerfile | 25 +++++++++++++++++++++++-- 6 files changed, 98 insertions(+), 13 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 37b597d4..e3a247c2 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -93,7 +93,7 @@ services: - NVM_NODEJS_ORG_MIRROR=${WORKSPACE_NVM_NODEJS_ORG_MIRROR} - INSTALL_NODE=${WORKSPACE_INSTALL_NODE} - NPM_REGISTRY=${WORKSPACE_NPM_REGISTRY} - - NPM_FETCH_RETRIES=${WORKSPACE_NPM_FETCH_RETRIES} + - NPM_FETCH_RETRIES=${WORKSPACE_NPM_FETCH_RETRIES} - NPM_FETCH_RETRY_FACTOR=${WORKSPACE_NPM_FETCH_RETRY_FACTOR} - NPM_FETCH_RETRY_MINTIMEOUT=${WORKSPACE_NPM_FETCH_RETRY_MINTIMEOUT} - NPM_FETCH_RETRY_MAXTIMEOUT=${WORKSPACE_NPM_FETCH_RETRY_MAXTIMEOUT} @@ -152,6 +152,7 @@ services: - YARN_VERSION=${WORKSPACE_YARN_VERSION} - DRUSH_VERSION=${WORKSPACE_DRUSH_VERSION} - AST_VERSION=${WORKSPACE_AST_VERSION} + - IMAGEMAGICK_VERSION=${WORKSPACE_IMAGEMAGICK_VERSION} - TZ=${WORKSPACE_TIMEZONE} - BLACKFIRE_CLIENT_ID=${BLACKFIRE_CLIENT_ID} - BLACKFIRE_CLIENT_TOKEN=${BLACKFIRE_CLIENT_TOKEN} @@ -261,6 +262,7 @@ services: - DOWNGRADE_OPENSSL_TLS_AND_SECLEVEL=${PHP_DOWNGRADE_OPENSSL_TLS_AND_SECLEVEL} - PUID=${PHP_FPM_PUID} - PGID=${PHP_FPM_PGID} + - IMAGEMAGICK_VERSION=${PHP_FPM_IMAGEMAGICK_VERSION} - LOCALE=${PHP_FPM_DEFAULT_LOCALE} - PHP_FPM_NEW_RELIC=${PHP_FPM_NEW_RELIC} - PHP_FPM_NEW_RELIC_KEY=${PHP_FPM_NEW_RELIC_KEY} @@ -325,6 +327,7 @@ services: - INSTALL_XMLRPC=${PHP_WORKER_INSTALL_XMLRPC} - PUID=${PHP_WORKER_PUID} - PGID=${PHP_WORKER_PGID} + - IMAGEMAGICK_VERSION=${PHP_WORKER_IMAGEMAGICK_VERSION} volumes: - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}${APP_CODE_CONTAINER_FLAG} - ./php-worker/supervisord.d:/etc/supervisord.d @@ -358,6 +361,7 @@ services: - INSTALL_AUDIOWAVEFORM=${LARAVEL_HORIZON_INSTALL_AUDIOWAVEFORM} - PUID=${LARAVEL_HORIZON_PUID} - PGID=${LARAVEL_HORIZON_PGID} + - IMAGEMAGICK_VERSION=${LARAVEL_HORIZON_IMAGEMAGICK_VERSION} volumes: - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER} - ./laravel-horizon/supervisord.d:/etc/supervisord.d @@ -1892,7 +1896,7 @@ services: - "3000:3000" container_name: react stdin_open: true - environment: + environment: - CHOKIDAR_USEPOLLING=true networks: - frontend diff --git a/env-example b/env-example index cf64e758..54a60e96 100644 --- a/env-example +++ b/env-example @@ -157,6 +157,7 @@ WORKSPACE_INSTALL_POWERLINE=false WORKSPACE_INSTALL_SUPERVISOR=false WORKSPACE_INSTALL_IMAGE_OPTIMIZERS=false WORKSPACE_INSTALL_IMAGEMAGICK=false +WORKSPACE_IMAGEMAGICK_VERSION=latest WORKSPACE_INSTALL_TERRAFORM=false WORKSPACE_INSTALL_DUSK_DEPS=false WORKSPACE_INSTALL_PG_CLIENT=false @@ -204,6 +205,7 @@ PHP_FPM_INSTALL_BCMATH=true PHP_FPM_INSTALL_MYSQLI=true PHP_FPM_INSTALL_INTL=true PHP_FPM_INSTALL_IMAGEMAGICK=true +PHP_FPM_IMAGEMAGICK_VERSION=latest PHP_FPM_INSTALL_OPCACHE=true PHP_FPM_INSTALL_IMAGE_OPTIMIZERS=true PHP_FPM_INSTALL_PHPREDIS=true @@ -272,6 +274,7 @@ PHP_FPM_NEW_RELIC_APP_NAME=app_name PHP_WORKER_INSTALL_BZ2=false PHP_WORKER_INSTALL_GD=false PHP_WORKER_INSTALL_IMAGEMAGICK=false +PHP_WORKER_IMAGEMAGICK_VERSION=latest PHP_WORKER_INSTALL_GMP=false PHP_WORKER_INSTALL_PGSQL=false PHP_WORKER_INSTALL_BCMATH=false @@ -312,6 +315,7 @@ LARAVEL_HORIZON_INSTALL_BZ2=false LARAVEL_HORIZON_INSTALL_GD=false LARAVEL_HORIZON_INSTALL_GMP=false LARAVEL_HORIZON_INSTALL_IMAGEMAGICK=false +LARAVEL_HORIZON_IMAGEMAGICK_VERSION=latest LARAVEL_HORIZON_INSTALL_SOCKETS=false LARAVEL_HORIZON_INSTALL_YAML=false LARAVEL_HORIZON_INSTALL_ZIP_ARCHIVE=false diff --git a/laravel-horizon/Dockerfile b/laravel-horizon/Dockerfile index 0066910f..a05137eb 100644 --- a/laravel-horizon/Dockerfile +++ b/laravel-horizon/Dockerfile @@ -74,10 +74,28 @@ RUN if [ ${INSTALL_GMP} = true ]; then \ #Install ImageMagick package: ARG INSTALL_IMAGEMAGICK=false +ARG IMAGEMAGICK_VERSION=latest +ENV IMAGEMAGICK_VERSION ${IMAGEMAGICK_VERSION} RUN set -eux; \ if [ ${INSTALL_IMAGEMAGICK} = true ]; then \ apk add --update --no-cache imagemagick-dev; \ - pecl install imagick; \ + if [ $(php -r "echo PHP_MAJOR_VERSION;") = "8" ]; then \ + apk add --update --no-cache git && \ + cd /tmp && \ + if [ ${IMAGEMAGICK_VERSION} = "latest" ]; then \ + git clone https://github.com/Imagick/imagick; \ + else \ + git clone --branch ${IMAGEMAGICK_VERSION} https://github.com/Imagick/imagick; \ + fi && \ + cd imagick && \ + phpize && \ + ./configure && \ + make && \ + make install && \ + rm -r /tmp/imagick; \ + else \ + pecl install imagick; \ + fi && \ docker-php-ext-enable imagick; \ php -m | grep -q 'imagick'; \ fi diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index a1e7051a..2d8d67ef 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -343,7 +343,7 @@ RUN if [ ${INSTALL_XHPROF} = true ]; then \ # Install the php xhprof extension if [ $(php -r "echo PHP_MAJOR_VERSION;") = 7 ]; then \ curl -L -o /tmp/xhprof.tar.gz "https://github.com/tideways/php-xhprof-extension/archive/v5.0.1.tar.gz"; \ - else \ + else \ curl -L -o /tmp/xhprof.tar.gz "https://codeload.github.com/phacility/xhprof/tar.gz/master"; \ fi \ && mkdir -p xhprof \ @@ -684,10 +684,28 @@ RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \ USER root ARG INSTALL_IMAGEMAGICK=false +ARG IMAGEMAGICK_VERSION=latest +ENV IMAGEMAGICK_VERSION ${IMAGEMAGICK_VERSION} RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \ apt-get install -y libmagickwand-dev imagemagick && \ - pecl install imagick && \ + if [ $(php -r "echo PHP_MAJOR_VERSION;") = "8" ]; then \ + apt-get install -y git && \ + cd /tmp && \ + if [ ${IMAGEMAGICK_VERSION} = "latest" ]; then \ + git clone https://github.com/Imagick/imagick; \ + else \ + git clone --branch ${IMAGEMAGICK_VERSION} https://github.com/Imagick/imagick; \ + fi && \ + cd imagick && \ + phpize && \ + ./configure && \ + make && \ + make install && \ + rm -r /tmp/imagick; \ + else \ + pecl install imagick; \ + fi && \ docker-php-ext-enable imagick \ ;fi @@ -928,7 +946,7 @@ RUN if [ ${INSTALL_WKHTMLTOPDF} = true ]; then \ libx11-dev \ libjpeg62 \ libxtst6 \ - fontconfig \ + fontconfig \ libjpeg62-turbo \ xfonts-base \ xfonts-75dpi \ diff --git a/php-worker/Dockerfile b/php-worker/Dockerfile index 64f08298..dcc82458 100644 --- a/php-worker/Dockerfile +++ b/php-worker/Dockerfile @@ -69,11 +69,31 @@ RUN if [ ${INSTALL_GD} = true ]; then \ #Install ImageMagick: ARG INSTALL_IMAGEMAGICK=false -RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \ - apk add --update imagemagick-dev imagemagick; \ - pecl install imagick; \ - docker-php-ext-enable imagick \ -;fi +ARG IMAGEMAGICK_VERSION=latest +ENV IMAGEMAGICK_VERSION ${IMAGEMAGICK_VERSION} +RUN set -eux; \ + if [ ${INSTALL_IMAGEMAGICK} = true ]; then \ + apk add --update --no-cache imagemagick-dev; \ + if [ $(php -r "echo PHP_MAJOR_VERSION;") = "8" ]; then \ + apk add --update --no-cache git && \ + cd /tmp && \ + if [ ${IMAGEMAGICK_VERSION} = "latest" ]; then \ + git clone https://github.com/Imagick/imagick; \ + else \ + git clone --branch ${IMAGEMAGICK_VERSION} https://github.com/Imagick/imagick; \ + fi && \ + cd imagick && \ + phpize && \ + ./configure && \ + make && \ + make install && \ + rm -r /tmp/imagick; \ + else \ + pecl install imagick; \ + fi && \ + docker-php-ext-enable imagick; \ + php -m | grep -q 'imagick'; \ + fi #Install GMP package: ARG INSTALL_GMP=false diff --git a/workspace/Dockerfile b/workspace/Dockerfile index c6c51054..91126641 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -1200,9 +1200,30 @@ USER laradock USER root ARG INSTALL_IMAGEMAGICK=false +ARG IMAGEMAGICK_VERSION=latest +ENV IMAGEMAGICK_VERSION ${IMAGEMAGICK_VERSION} RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \ - apt-get install -y imagemagick php-imagick \ + apt-get install -y libmagickwand-dev imagemagick && \ + if [ $(php -r "echo PHP_MAJOR_VERSION;") = "8" ]; then \ + apt-get install -y git && \ + cd /tmp && \ + if [ ${IMAGEMAGICK_VERSION} = "latest" ]; then \ + git clone https://github.com/Imagick/imagick; \ + else \ + git clone --branch ${IMAGEMAGICK_VERSION} https://github.com/Imagick/imagick; \ + fi && \ + cd imagick && \ + phpize && \ + ./configure && \ + make && \ + make install && \ + rm -r /tmp/imagick; \ + else \ + pecl install imagick; \ + fi && \ + echo "extension=imagick.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/imagick.ini && \ + ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/imagick.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/20-imagick.ini \ ;fi ########################################################################### @@ -1428,7 +1449,7 @@ RUN if [ ${INSTALL_WKHTMLTOPDF} = true ]; then \ libx11-dev \ libjpeg62 \ libxtst6 \ - fontconfig \ + fontconfig \ libjpeg-turbo8-dev \ xfonts-base \ xfonts-75dpi \ From f3816a99ab1fd5514a98714daebda9f1d0357d79 Mon Sep 17 00:00:00 2001 From: Pavel Savushkin Date: Fri, 12 Mar 2021 03:38:25 +0200 Subject: [PATCH 014/108] ci(PHP 8.0): add CI processes for PHP 8.0 CI environment for the PHP 8.0 should be implemented. Closes #2863 --- .github/workflows/main-ci.yml | 2 +- .travis.yml | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index e01d283a..90a692ac 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -7,7 +7,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - php_version: ["7.1", "7.2", "7.3", "7.4"] + php_version: ["7.1", "7.2", "7.3", "7.4", "8.0"] service: [php-fpm, php-worker, workspace, laravel-horizon] steps: - uses: actions/checkout@v2 diff --git a/.travis.yml b/.travis.yml index 4b681054..65470f0d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,6 +13,7 @@ env: - PHP_VERSION=7.2 BUILD_SERVICE=workspace - PHP_VERSION=7.3 BUILD_SERVICE=workspace - PHP_VERSION=7.4 BUILD_SERVICE=workspace + - PHP_VERSION=8.0 BUILD_SERVICE=workspace - PHP_VERSION=5.6 BUILD_SERVICE=php-fpm - PHP_VERSION=7.0 BUILD_SERVICE=php-fpm @@ -20,6 +21,7 @@ env: - PHP_VERSION=7.2 BUILD_SERVICE=php-fpm - PHP_VERSION=7.3 BUILD_SERVICE=php-fpm - PHP_VERSION=7.4 BUILD_SERVICE=php-fpm + - PHP_VERSION=8.0 BUILD_SERVICE=php-fpm - PHP_VERSION=hhvm BUILD_SERVICE=hhvm @@ -29,12 +31,14 @@ env: - PHP_VERSION=7.2 BUILD_SERVICE=php-worker - PHP_VERSION=7.3 BUILD_SERVICE=php-worker - PHP_VERSION=7.4 BUILD_SERVICE=php-worker + - PHP_VERSION=8.0 BUILD_SERVICE=php-worker - PHP_VERSION=7.0 BUILD_SERVICE=laravel-horizon - PHP_VERSION=7.1 BUILD_SERVICE=laravel-horizon - PHP_VERSION=7.2 BUILD_SERVICE=laravel-horizon - PHP_VERSION=7.3 BUILD_SERVICE=laravel-horizon - PHP_VERSION=7.4 BUILD_SERVICE=laravel-horizon + - PHP_VERSION=8.0 BUILD_SERVICE=laravel-horizon - PHP_VERSION=NA BUILD_SERVICE=solr - PHP_VERSION=NA BUILD_SERVICE="mssql rethinkdb aerospike" From f2af78ecac4ed11ab891b7dc0b79912bd541eec6 Mon Sep 17 00:00:00 2001 From: Valentino Lauciani Date: Fri, 12 Mar 2021 15:01:44 +0100 Subject: [PATCH 015/108] Update Dockerfile --- php-fpm/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index 2d8d67ef..62da5562 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -688,7 +688,7 @@ ARG IMAGEMAGICK_VERSION=latest ENV IMAGEMAGICK_VERSION ${IMAGEMAGICK_VERSION} RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \ - apt-get install -y libmagickwand-dev imagemagick && \ + apt-get update -yqq && apt-get install -y libmagickwand-dev imagemagick && \ if [ $(php -r "echo PHP_MAJOR_VERSION;") = "8" ]; then \ apt-get install -y git && \ cd /tmp && \ From f1fd051f1f6cc89d1487c1c46a29f91bf4dca79c Mon Sep 17 00:00:00 2001 From: Pavel Savushkin Date: Sat, 13 Mar 2021 00:55:03 +0200 Subject: [PATCH 016/108] fix(drush package): bump version to support PHP 8.0 Bump a version of the package to support a correct build of the workspace for PHP 8.0 Closes #2869 --- env-example | 2 +- workspace/Dockerfile | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/env-example b/env-example index aebc0b6e..bf0f88a5 100644 --- a/env-example +++ b/env-example @@ -138,7 +138,7 @@ WORKSPACE_INSTALL_CASSANDRA=false WORKSPACE_INSTALL_GEARMAN=false WORKSPACE_INSTALL_MSSQL=false WORKSPACE_INSTALL_DRUSH=false -WORKSPACE_DRUSH_VERSION=8.1.17 +WORKSPACE_DRUSH_VERSION=8.4.6 WORKSPACE_INSTALL_DRUPAL_CONSOLE=false WORKSPACE_INSTALL_WP_CLI=false WORKSPACE_INSTALL_AEROSPIKE=false diff --git a/workspace/Dockerfile b/workspace/Dockerfile index 1225fc85..81873a54 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -209,7 +209,7 @@ RUN chmod -R 644 /etc/cron.d USER root -RUN apt-get update -yqq +RUN apt-get -yqq update ########################################################################### # Drush: @@ -225,7 +225,7 @@ ARG DRUSH_VERSION ENV DRUSH_VERSION ${DRUSH_VERSION} RUN if [ ${INSTALL_DRUSH} = true ]; then \ - apt-get -y install mysql-client && \ + apt-get -qq -y install mysql-client && \ # Install Drush with the phar file. curl -fsSL -o /usr/local/bin/drush https://github.com/drush-ops/drush/releases/download/${DRUSH_VERSION}/drush.phar | bash && \ chmod +x /usr/local/bin/drush && \ From 50fce4c74bd6b3535ba8035d09f26cd8a359c61f Mon Sep 17 00:00:00 2001 From: Pavel Savushkin Date: Sat, 13 Mar 2021 01:39:22 +0200 Subject: [PATCH 017/108] fix(amqp extension): hard-code the version for PHP 8.0 The version could be hard-coded in the Dockerfile due to no ability to build workspace image w/o problems from scratch for different PHP versions. Closes #2871 --- workspace/Dockerfile | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/workspace/Dockerfile b/workspace/Dockerfile index 1225fc85..cb6c7024 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -503,8 +503,12 @@ RUN if [ ${INSTALL_MONGO} = true ]; then \ ARG INSTALL_AMQP=false RUN if [ ${INSTALL_AMQP} = true ]; then \ - apt-get install librabbitmq-dev -y && \ - pecl -q install amqp && \ + apt-get install -yqq librabbitmq-dev && \ + if [ $(php -r "echo PHP_MAJOR_VERSION;") = "8" ]; then \ + printf "\n" | pecl install amqp-1.11.0beta; \ + else \ + printf "\n" | pecl install amqp; \ + fi && \ echo "extension=amqp.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/amqp.ini && \ ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/amqp.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/30-amqp.ini \ ;fi From 6ff934aef26a660cac1190a52ee70209c27902a5 Mon Sep 17 00:00:00 2001 From: Pavel Savushkin Date: Sat, 13 Mar 2021 03:34:25 +0200 Subject: [PATCH 018/108] fix(inotify extension): update installed version of the extension There is a typo which should be fixed. Closes #2867 --- workspace/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workspace/Dockerfile b/workspace/Dockerfile index 1225fc85..bef655b6 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -619,7 +619,7 @@ RUN if [ ${INSTALL_LIBPNG} = true ]; then \ ARG INSTALL_INOTIFY=false RUN if [ ${INSTALL_INOTIFY} = true ]; then \ - if [ $(php -r "echo PHP_MAJOR_VERSION;") != "5" ]; then \ + if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \ pecl -q install inotify-0.1.6 && \ echo "extension=inotify.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/inotify.ini && \ ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/inotify.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/20-inotify.ini \ From 0c085f4984292323c436c18c51e45a85ad012917 Mon Sep 17 00:00:00 2001 From: Pavel Savushkin Date: Sun, 14 Mar 2021 15:17:38 +0200 Subject: [PATCH 019/108] feat(cassandra extension): upgrade version of cassandra and avoid installation for PHP 8.0 Cassandra should not be installed for PHP 8.0 due to unsupported PHP driver. See the issue's references. Closes #2876 --- workspace/Dockerfile | 48 ++++++++++++++++++++++++-------------------- 1 file changed, 26 insertions(+), 22 deletions(-) diff --git a/workspace/Dockerfile b/workspace/Dockerfile index 1225fc85..e76643d7 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -516,28 +516,32 @@ RUN if [ ${INSTALL_AMQP} = true ]; then \ ARG INSTALL_CASSANDRA=false RUN if [ ${INSTALL_CASSANDRA} = true ]; then \ - apt-get install libgmp-dev -y && \ - curl https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.28.0/libuv1-dev_1.28.0-1_amd64.deb -o libuv1-dev.deb && \ - curl https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.28.0/libuv1_1.28.0-1_amd64.deb -o libuv1.deb && \ - curl https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.12.0/cassandra-cpp-driver-dev_2.12.0-1_amd64.deb -o cassandra-cpp-driver-dev.deb && \ - curl https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.12.0/cassandra-cpp-driver_2.12.0-1_amd64.deb -o cassandra-cpp-driver.deb && \ - dpkg -i libuv1.deb && \ - dpkg -i libuv1-dev.deb && \ - dpkg -i cassandra-cpp-driver.deb && \ - dpkg -i cassandra-cpp-driver-dev.deb && \ - rm libuv1.deb libuv1-dev.deb cassandra-cpp-driver-dev.deb cassandra-cpp-driver.deb && \ - cd /usr/src && \ - git clone https://github.com/datastax/php-driver.git && \ - cd /usr/src/php-driver/ext && \ - phpize && \ - mkdir /usr/src/php-driver/build && \ - cd /usr/src/php-driver/build && \ - ../ext/configure > /dev/null && \ - make clean >/dev/null && \ - make >/dev/null 2>&1 && \ - make install && \ - echo "extension=cassandra.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/cassandra.ini && \ - ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/cassandra.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/30-cassandra.ini \ + if [ $(php -r "echo PHP_MAJOR_VERSION;") = "8" ]; then \ + echo "PHP Driver for Cassandra is not supported for PHP 8.0."; \ + else \ + apt-get install libgmp-dev -yqq && \ + curl https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1-dev_1.35.0-1_amd64.deb -o libuv1-dev.deb && \ + curl https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1_1.35.0-1_amd64.deb -o libuv1.deb && \ + curl https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver-dev_2.16.0-1_amd64.deb -o cassandra-cpp-driver-dev.deb && \ + curl https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver_2.16.0-1_amd64.deb -o cassandra-cpp-driver.deb && \ + dpkg -i libuv1.deb && \ + dpkg -i libuv1-dev.deb && \ + dpkg -i cassandra-cpp-driver.deb && \ + dpkg -i cassandra-cpp-driver-dev.deb && \ + rm libuv1.deb libuv1-dev.deb cassandra-cpp-driver-dev.deb cassandra-cpp-driver.deb && \ + cd /usr/src && \ + git clone https://github.com/datastax/php-driver.git && \ + cd /usr/src/php-driver/ext && \ + phpize && \ + mkdir /usr/src/php-driver/build && \ + cd /usr/src/php-driver/build && \ + ../ext/configure > /dev/null && \ + make clean >/dev/null && \ + make >/dev/null 2>&1 && \ + make install && \ + echo "extension=cassandra.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/cassandra.ini && \ + ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/cassandra.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/30-cassandra.ini; \ + fi \ ;fi ########################################################################### From 925e02bc7bfb06b73d19fdac70f98c45a18e4286 Mon Sep 17 00:00:00 2001 From: Pavel Savushkin Date: Sun, 14 Mar 2021 16:15:45 +0200 Subject: [PATCH 020/108] fix(cassandra extension): get installed cassandra for horizon and worker images Setup the installation on laravel-horizon and php-worker images. Closes #2876 --- docker-compose.yml | 2 +- env-example | 1 + laravel-horizon/Dockerfile | 33 ++++++++++++++++++--------------- php-fpm/Dockerfile | 35 +++++++++++++++++++++++++++++++++++ php-worker/Dockerfile | 33 ++++++++++++++++++--------------- 5 files changed, 73 insertions(+), 31 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index e3a247c2..9d653fe7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -354,7 +354,7 @@ services: - INSTALL_MEMCACHED=${PHP_FPM_INSTALL_MEMCACHED} - INSTALL_SOCKETS=${LARAVEL_HORIZON_INSTALL_SOCKETS} - INSTALL_YAML=${LARAVEL_HORIZON_INSTALL_YAML} - - INSTALL_CASSANDRA=${PHP_FPM_INSTALL_CASSANDRA} + - INSTALL_CASSANDRA=${LARAVEL_HORIZON_INSTALL_CASSANDRA} - INSTALL_PHPREDIS=${LARAVEL_HORIZON_INSTALL_PHPREDIS} - INSTALL_MONGO=${LARAVEL_HORIZON_INSTALL_MONGO} - INSTALL_FFMPEG=${LARAVEL_HORIZON_INSTALL_FFMPEG} diff --git a/env-example b/env-example index aebc0b6e..170cd5da 100644 --- a/env-example +++ b/env-example @@ -321,6 +321,7 @@ LARAVEL_HORIZON_INSTALL_YAML=false LARAVEL_HORIZON_INSTALL_ZIP_ARCHIVE=false LARAVEL_HORIZON_INSTALL_PHPREDIS=true LARAVEL_HORIZON_INSTALL_MONGO=false +LARAVEL_HORIZON_INSTALL_CASSANDRA=false LARAVEL_HORIZON_INSTALL_FFMPEG=false LARAVEL_HORIZON_INSTALL_AUDIOWAVEFORM=false LARAVEL_HORIZON_PGID=1000 diff --git a/laravel-horizon/Dockerfile b/laravel-horizon/Dockerfile index a05137eb..fe344947 100644 --- a/laravel-horizon/Dockerfile +++ b/laravel-horizon/Dockerfile @@ -178,21 +178,24 @@ RUN if [ ${INSTALL_AUDIOWAVEFORM} = true ]; then \ # Install Cassandra drivers: ARG INSTALL_CASSANDRA=false RUN if [ ${INSTALL_CASSANDRA} = true ]; then \ - apk --update add cassandra-cpp-driver \ - ;fi - -WORKDIR /usr/src -RUN if [ ${INSTALL_CASSANDRA} = true ]; then \ - git clone https://github.com/datastax/php-driver.git \ - && cd php-driver/ext \ - && phpize \ - && mkdir -p /usr/src/php-driver/build \ - && cd /usr/src/php-driver/build \ - && ../ext/configure > /dev/null \ - && make clean >/dev/null \ - && make >/dev/null 2>&1 \ - && make install \ - && docker-php-ext-enable cassandra \ + if [ $(php -r "echo PHP_MAJOR_VERSION;") = "8" ]; then \ + echo "PHP Driver for Cassandra is not supported for PHP 8.0."; \ + else \ + apk add --update --no-cache cassandra-cpp-driver libuv gmp \ + && apk add --update --no-cache cassandra-cpp-driver-dev gmp-dev --virtual .build-sec \ + && cd /usr/src \ + && git clone https://github.com/datastax/php-driver.git \ + && cd php-driver/ext \ + && phpize \ + && mkdir -p /usr/src/php-driver/build \ + && cd /usr/src/php-driver/build \ + && ../ext/configure > /dev/null \ + && make clean > /dev/null \ + && make > /dev/null 2>&1 \ + && make install \ + && docker-php-ext-enable cassandra \ + && apk del .build-sec; \ + fi \ ;fi # Install MongoDB drivers: diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index 2d8d67ef..d3e105fc 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -389,6 +389,41 @@ RUN if [ ${INSTALL_AMQP} = true ]; then \ docker-php-ext-install sockets \ ;fi +########################################################################### +# CASSANDRA: +########################################################################### + +ARG INSTALL_CASSANDRA=false + +RUN if [ ${INSTALL_CASSANDRA} = true ]; then \ + if [ $(php -r "echo PHP_MAJOR_VERSION;") = "8" ]; then \ + echo "PHP Driver for Cassandra is not supported for PHP 8.0."; \ + else \ + apt-get install libgmp-dev -yqq && \ + curl https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1-dev_1.35.0-1_amd64.deb -o libuv1-dev.deb && \ + curl https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1_1.35.0-1_amd64.deb -o libuv1.deb && \ + curl https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver-dev_2.16.0-1_amd64.deb -o cassandra-cpp-driver-dev.deb && \ + curl https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver_2.16.0-1_amd64.deb -o cassandra-cpp-driver.deb && \ + dpkg -i libuv1.deb && \ + dpkg -i libuv1-dev.deb && \ + dpkg -i cassandra-cpp-driver.deb && \ + dpkg -i cassandra-cpp-driver-dev.deb && \ + rm libuv1.deb libuv1-dev.deb cassandra-cpp-driver-dev.deb cassandra-cpp-driver.deb && \ + cd /usr/src && \ + git clone https://github.com/datastax/php-driver.git && \ + cd /usr/src/php-driver/ext && \ + phpize && \ + mkdir /usr/src/php-driver/build && \ + cd /usr/src/php-driver/build && \ + ../ext/configure > /dev/null && \ + make clean > /dev/null && \ + make > /dev/null 2>&1 && \ + make install && \ + echo "extension=cassandra.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/cassandra.ini && \ + ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/cassandra.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/30-cassandra.ini; \ + fi \ +;fi + ########################################################################### # GEARMAN: ########################################################################### diff --git a/php-worker/Dockerfile b/php-worker/Dockerfile index dcc82458..d3f97431 100644 --- a/php-worker/Dockerfile +++ b/php-worker/Dockerfile @@ -239,21 +239,24 @@ RUN if [ ${INSTALL_GEARMAN} = true ]; then \ # Install Cassandra drivers: ARG INSTALL_CASSANDRA=false RUN if [ ${INSTALL_CASSANDRA} = true ]; then \ - apk --update add cassandra-cpp-driver \ - ;fi - -WORKDIR /usr/src -RUN if [ ${INSTALL_CASSANDRA} = true ]; then \ - git clone https://github.com/datastax/php-driver.git \ - && cd php-driver/ext \ - && phpize \ - && mkdir -p /usr/src/php-driver/build \ - && cd /usr/src/php-driver/build \ - && ../ext/configure --with-php-config=/usr/bin/php-config7.1 > /dev/null \ - && make clean >/dev/null \ - && make >/dev/null 2>&1 \ - && make install \ - && docker-php-ext-enable cassandra \ + if [ $(php -r "echo PHP_MAJOR_VERSION;") = "8" ]; then \ + echo "PHP Driver for Cassandra is not supported for PHP 8.0."; \ + else \ + apk add --update --no-cache cassandra-cpp-driver libuv gmp \ + && apk add --update --no-cache cassandra-cpp-driver-dev gmp-dev --virtual .build-sec \ + && cd /usr/src \ + && git clone https://github.com/datastax/php-driver.git \ + && cd php-driver/ext \ + && phpize \ + && mkdir -p /usr/src/php-driver/build \ + && cd /usr/src/php-driver/build \ + && ../ext/configure > /dev/null \ + && make clean > /dev/null \ + && make > /dev/null 2>&1 \ + && make install \ + && docker-php-ext-enable cassandra \ + && apk del .build-sec; \ + fi \ ;fi # Install Phalcon ext From f9edf13d651b8378959393819f5245581a7dc9a4 Mon Sep 17 00:00:00 2001 From: Pavel Savushkin Date: Sun, 14 Mar 2021 17:50:14 +0200 Subject: [PATCH 021/108] feat(swoole extension): change installation to be able to use PHP 8.0 Add support for PHP 8.0 Fix other versions of PHP with correct versions. Closes #2879 --- php-fpm/Dockerfile | 11 +++++++---- workspace/Dockerfile | 10 +++++++--- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index 2d8d67ef..e3d910f3 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -285,16 +285,19 @@ RUN if [ ${INSTALL_PHPREDIS} = true ]; then \ ########################################################################### ARG INSTALL_SWOOLE=false - RUN if [ ${INSTALL_SWOOLE} = true ]; then \ # Install Php Swoole Extension if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \ - pecl install swoole-2.0.10; \ + pecl -q install swoole-2.0.11; \ else \ if [ $(php -r "echo PHP_MINOR_VERSION;") = "0" ]; then \ - pecl install swoole-2.2.0; \ + echo '' | pecl install swoole-4.3.5; \ else \ - pecl install swoole; \ + if [ $(php -r "echo PHP_MINOR_VERSION;") = "1" ]; then \ + echo '' | pecl install swoole-4.6.0; \ + else \ + echo '' | pecl install swoole; \ + fi \ fi \ fi && \ docker-php-ext-enable swoole \ diff --git a/workspace/Dockerfile b/workspace/Dockerfile index 1225fc85..95efc938 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -572,12 +572,16 @@ ARG INSTALL_SWOOLE=false RUN if [ ${INSTALL_SWOOLE} = true ]; then \ # Install Php Swoole Extension if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \ - pecl -q install swoole-2.0.10; \ + pecl -q install swoole-2.0.11; \ else \ if [ $(php -r "echo PHP_MINOR_VERSION;") = "0" ]; then \ - pecl install swoole-2.2.0; \ + echo '' | pecl install swoole-4.3.5; \ else \ - pecl install swoole; \ + if [ $(php -r "echo PHP_MINOR_VERSION;") = "1" ]; then \ + echo '' | pecl install swoole-4.6.0; \ + else \ + echo '' | pecl install swoole; \ + fi \ fi \ fi && \ echo "extension=swoole.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/swoole.ini && \ From 37ffbbea299be711859b984e3520d2fafc644ec9 Mon Sep 17 00:00:00 2001 From: Pavel Savushkin Date: Sun, 14 Mar 2021 18:03:57 +0200 Subject: [PATCH 022/108] fix(aerospike extension): turn off build in Travis due to image version Base image (Ubuntu 18) is no supported by Aerospike. Closes #2881 --- travis-build.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/travis-build.sh b/travis-build.sh index e773b823..461306c7 100755 --- a/travis-build.sh +++ b/travis-build.sh @@ -18,6 +18,7 @@ if [ -n "${PHP_VERSION}" ]; then if [ "${PHP_VERSION}" == "5.6" ]; then # Aerospike C Client SDK 4.0.7, Debian 9.6 is not supported # https://github.com/aerospike/aerospike-client-php5/issues/145 + sed -i -- 's/WORKSPACE_INSTALL_AEROSPIKE=true/WORKSPACE_INSTALL_AEROSPIKE=false/g' .env sed -i -- 's/PHP_FPM_INSTALL_AEROSPIKE=true/PHP_FPM_INSTALL_AEROSPIKE=false/g' .env fi if [ "${PHP_VERSION}" == "7.3" ]; then From 793c1a085f87c26c3f165efed11ef3c737267958 Mon Sep 17 00:00:00 2001 From: Pavel Savushkin Date: Sun, 14 Mar 2021 18:40:06 +0200 Subject: [PATCH 023/108] fix(aerospike extension): turn off build in Travis due to image version PHP 8.0 is not supported by Aerospike. See the issue's references. Closes #2881 --- workspace/Dockerfile | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/workspace/Dockerfile b/workspace/Dockerfile index 1225fc85..205436c4 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -872,18 +872,22 @@ RUN set -xe; \ && \ if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \ ( \ - cd /tmp/aerospike-client-php/src/aerospike \ - && phpize \ - && ./build.sh \ - && make install \ + cd /tmp/aerospike-client-php/src/aerospike \ + && phpize \ + && ./build.sh \ + && make install \ ) \ else \ - ( \ - cd /tmp/aerospike-client-php/src \ - && phpize \ - && ./build.sh \ - && make install \ - ) \ + if [ $(php -r "echo PHP_MAJOR_VERSION;") = "7" ]; then \ + ( \ + cd /tmp/aerospike-client-php/src \ + && phpize \ + && ./build.sh \ + && make install \ + ) \ + else \ + echo "AEROSPIKE does not support PHP 8.0" + fi \ fi \ && rm /tmp/aerospike-client-php.tar.gz \ && echo 'extension=aerospike.so' >> /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/aerospike.ini \ From 7b396b7c39b510f545b9bb20bbcb210f45856964 Mon Sep 17 00:00:00 2001 From: Pavel Savushkin Date: Sun, 14 Mar 2021 18:46:51 +0200 Subject: [PATCH 024/108] fix(aerospike extension): update syntax Fix typos in the build script. Closes #2881 --- workspace/Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/workspace/Dockerfile b/workspace/Dockerfile index 205436c4..e97e4c51 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -886,9 +886,9 @@ RUN set -xe; \ && make install \ ) \ else \ - echo "AEROSPIKE does not support PHP 8.0" - fi \ - fi \ + echo "AEROSPIKE does not support PHP 8.0" \ + ;fi \ + ;fi \ && rm /tmp/aerospike-client-php.tar.gz \ && echo 'extension=aerospike.so' >> /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/aerospike.ini \ && echo 'aerospike.udf.lua_system_path=/usr/local/aerospike/lua' >> /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/aerospike.ini \ From 26f13f56f13716d3d242ee4ea261a3e45b6ec1a4 Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Tue, 16 Mar 2021 15:43:42 +0800 Subject: [PATCH 025/108] CI adjustment --- .github/workflows/main-ci.yml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index 90a692ac..815b0be1 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -1,14 +1,20 @@ name: CI -on: [push, pull_request] +on: + push: + branches: '**' + tags: '**' + pull_request: + schedule: + - cron: '0 0 * * 0' jobs: build: runs-on: ubuntu-latest strategy: matrix: - php_version: ["7.1", "7.2", "7.3", "7.4", "8.0"] - service: [php-fpm, php-worker, workspace, laravel-horizon] + php_version: ["7.2", "7.3", "7.4", "8.0"] + service: [php-fpm, php-worker, workspace, laravel-horizon, 'nginx redis'] steps: - uses: actions/checkout@v2 - name: Build the Docker image From 1ea4bfbd18bef39adfcf79a08af66bed36a16947 Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Tue, 16 Mar 2021 16:18:21 +0800 Subject: [PATCH 026/108] Update main-ci.yml php-fpm install ext --- .github/workflows/main-ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index 815b0be1..8cbd87e9 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -14,7 +14,7 @@ jobs: strategy: matrix: php_version: ["7.2", "7.3", "7.4", "8.0"] - service: [php-fpm, php-worker, workspace, laravel-horizon, 'nginx redis'] + service: [php-fpm, php-worker, workspace, laravel-horizon, 'nginx redis mysql mariadb percona minio mongo'] steps: - uses: actions/checkout@v2 - name: Build the Docker image @@ -22,4 +22,5 @@ jobs: PHP_VERSION: ${{ matrix.php_version }} run: | cp env-example .env + sed -i -- '201,272s/=false/=true/g' .env docker-compose build ${{ matrix.service }} From ed60170e6ed70a30f813b4f1ef1468334cbe55dd Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Tue, 16 Mar 2021 16:28:07 +0800 Subject: [PATCH 027/108] Update main-ci.yml CI avoid CHANGE_SOURCE=true --- .github/workflows/main-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index 8cbd87e9..531c3231 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -23,4 +23,5 @@ jobs: run: | cp env-example .env sed -i -- '201,272s/=false/=true/g' .env + sed -i -- 's/CHANGE_SOURCE=true/CHANGE_SOURCE=false/g' .env docker-compose build ${{ matrix.service }} From 8dd77527f6d177628bdeed519b1cf22af827a601 Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Tue, 16 Mar 2021 17:29:51 +0800 Subject: [PATCH 028/108] update php-fpm ssh2 ext version --- php-fpm/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index ad49415d..e199744e 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -108,7 +108,7 @@ RUN if [ ${INSTALL_SSH2} = true ]; then \ if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \ pecl install -a ssh2-0.13; \ else \ - pecl install -a ssh2-1.2; \ + pecl install -a ssh2-1.3.1; \ fi && \ docker-php-ext-enable ssh2 \ ;fi From e494f0b863df0896529bcdb9ea2b413ff261cb84 Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Tue, 16 Mar 2021 18:30:57 +0800 Subject: [PATCH 029/108] skip PHPDBG --- .github/workflows/main-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index 531c3231..8b734ba8 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -24,4 +24,5 @@ jobs: cp env-example .env sed -i -- '201,272s/=false/=true/g' .env sed -i -- 's/CHANGE_SOURCE=true/CHANGE_SOURCE=false/g' .env + sed -i -- 's/PHPDBG=true/PHPDBG=false/g' .env docker-compose build ${{ matrix.service }} From be587e8cc647f3c1ed49e8032871701f833f97bc Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Tue, 16 Mar 2021 15:43:42 +0800 Subject: [PATCH 030/108] CI adjustment --- .github/workflows/main-ci.yml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index 90a692ac..815b0be1 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -1,14 +1,20 @@ name: CI -on: [push, pull_request] +on: + push: + branches: '**' + tags: '**' + pull_request: + schedule: + - cron: '0 0 * * 0' jobs: build: runs-on: ubuntu-latest strategy: matrix: - php_version: ["7.1", "7.2", "7.3", "7.4", "8.0"] - service: [php-fpm, php-worker, workspace, laravel-horizon] + php_version: ["7.2", "7.3", "7.4", "8.0"] + service: [php-fpm, php-worker, workspace, laravel-horizon, 'nginx redis'] steps: - uses: actions/checkout@v2 - name: Build the Docker image From e9ffee151cf02e47a4d9ab27fcff42703d1933fb Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Tue, 16 Mar 2021 16:18:21 +0800 Subject: [PATCH 031/108] Update main-ci.yml php-fpm install ext --- .github/workflows/main-ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index 815b0be1..8cbd87e9 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -14,7 +14,7 @@ jobs: strategy: matrix: php_version: ["7.2", "7.3", "7.4", "8.0"] - service: [php-fpm, php-worker, workspace, laravel-horizon, 'nginx redis'] + service: [php-fpm, php-worker, workspace, laravel-horizon, 'nginx redis mysql mariadb percona minio mongo'] steps: - uses: actions/checkout@v2 - name: Build the Docker image @@ -22,4 +22,5 @@ jobs: PHP_VERSION: ${{ matrix.php_version }} run: | cp env-example .env + sed -i -- '201,272s/=false/=true/g' .env docker-compose build ${{ matrix.service }} From 825a0660ed66bac802b389189e68aaef9b9c9f6f Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Tue, 16 Mar 2021 16:28:07 +0800 Subject: [PATCH 032/108] Update main-ci.yml CI avoid CHANGE_SOURCE=true --- .github/workflows/main-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index 8cbd87e9..531c3231 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -23,4 +23,5 @@ jobs: run: | cp env-example .env sed -i -- '201,272s/=false/=true/g' .env + sed -i -- 's/CHANGE_SOURCE=true/CHANGE_SOURCE=false/g' .env docker-compose build ${{ matrix.service }} From d03e7c7f700db1d4d9aeefdf41b7bbddc59c79ab Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Tue, 16 Mar 2021 18:30:57 +0800 Subject: [PATCH 033/108] skip PHPDBG --- .github/workflows/main-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index 531c3231..8b734ba8 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -24,4 +24,5 @@ jobs: cp env-example .env sed -i -- '201,272s/=false/=true/g' .env sed -i -- 's/CHANGE_SOURCE=true/CHANGE_SOURCE=false/g' .env + sed -i -- 's/PHPDBG=true/PHPDBG=false/g' .env docker-compose build ${{ matrix.service }} From fb110a9d91bd2b28c7a824de5bad6e504622c6aa Mon Sep 17 00:00:00 2001 From: Marcelo Garbin Date: Tue, 16 Mar 2021 10:05:46 -0300 Subject: [PATCH 034/108] Added configuration for ssl with apache2 based on the nginx container --- apache2/Dockerfile | 25 ++++++------------ apache2/sites/default.apache.conf | 2 ++ apache2/sites/default.apache.ssl.example | 32 ++++++++++++++++++++++++ apache2/ssl/.gitignore | 4 +++ apache2/startup.sh | 21 ++++++++++++++++ docker-compose.yml | 1 + env-example | 1 + 7 files changed, 68 insertions(+), 18 deletions(-) create mode 100644 apache2/sites/default.apache.ssl.example create mode 100644 apache2/ssl/.gitignore create mode 100644 apache2/startup.sh diff --git a/apache2/Dockerfile b/apache2/Dockerfile index ec824f4b..5bd4f95e 100644 --- a/apache2/Dockerfile +++ b/apache2/Dockerfile @@ -2,36 +2,25 @@ FROM webdevops/apache:ubuntu-18.04 LABEL maintainer="Eric Pfeiffer " +ARG DOCUMENT_ROOT=/var/www/ ARG PHP_UPSTREAM_CONTAINER=php-fpm ARG PHP_UPSTREAM_PORT=9000 ARG PHP_UPSTREAM_TIMEOUT=60 -ARG DOCUMENT_ROOT=/var/www/ +ARG APACHE_INSTALL_HTTP2=false ENV WEB_PHP_SOCKET=${PHP_UPSTREAM_CONTAINER}:${PHP_UPSTREAM_PORT} - ENV WEB_DOCUMENT_ROOT=${DOCUMENT_ROOT} - +ENV APACHE_HTTP2=${APACHE_INSTALL_HTTP2} ENV WEB_PHP_TIMEOUT=${PHP_UPSTREAM_TIMEOUT} -EXPOSE 80 443 - WORKDIR /var/www/ COPY vhost.conf /etc/apache2/sites-enabled/vhost.conf -ARG APACHE_INSTALL_HTTP2=false -RUN mkdir /etc/apache2/ssl 2> /dev/null -RUN if [ ${APACHE_INSTALL_HTTP2} = true ]; then \ - openssl genrsa -out "/etc/apache2/ssl/ssl_site.key" 2048 \ - && openssl rand -out /root/.rnd -hex 256 \ - && openssl req -new -key "/etc/apache2/ssl/ssl_site.key" -out "/etc/apache2/ssl/ssl_site.csr" -subj "/CN=site.com/O=LGS/C=IT" \ - && openssl x509 -req -days 365 -in "/etc/apache2/ssl/ssl_site.csr" -signkey "/etc/apache2/ssl/ssl_site.key" -out "/etc/apache2/ssl/ssl_site.crt" \ - && a2enmod rewrite \ - && a2enmod headers \ - && a2enmod proxy proxy_html proxy_http xml2enc ssl http2 \ - && service apache2 restart \ -;fi +ADD ./startup.sh /opt/startup.sh ENTRYPOINT ["/opt/docker/bin/entrypoint.sh"] -CMD ["supervisord"] +CMD ["/bin/bash", "/opt/startup.sh"] + +EXPOSE 80 443 \ No newline at end of file diff --git a/apache2/sites/default.apache.conf b/apache2/sites/default.apache.conf index ed2311dd..964a18f2 100644 --- a/apache2/sites/default.apache.conf +++ b/apache2/sites/default.apache.conf @@ -13,4 +13,6 @@ + ErrorLog /var/log/apache2/error.log + CustomLog /var/log/apache2/access.log combined diff --git a/apache2/sites/default.apache.ssl.example b/apache2/sites/default.apache.ssl.example new file mode 100644 index 00000000..c82a6c14 --- /dev/null +++ b/apache2/sites/default.apache.ssl.example @@ -0,0 +1,32 @@ + + ServerName laradock.test + ServerAlias *.laradock.test + + RewriteEngine On + RewriteCond %{HTTPS} !on + RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] + + + + ServerName laradock.test + ServerAlias *.laradock.test + DocumentRoot /var/www/ + Options Indexes FollowSymLinks + + SSLEngine on + SSLCertificateFile /etc/apache2/ssl/ssl_site.crt + SSLCertificateKeyFile /etc/apache2/ssl/ssl_site.key + + + AllowOverride All + + Allow from all + + = 2.4> + Require all granted + + + + ErrorLog /var/log/apache2/error.log + CustomLog /var/log/apache2/access.log combined + diff --git a/apache2/ssl/.gitignore b/apache2/ssl/.gitignore new file mode 100644 index 00000000..003cd8e5 --- /dev/null +++ b/apache2/ssl/.gitignore @@ -0,0 +1,4 @@ +*.crt +*.csr +*.key +*.pem \ No newline at end of file diff --git a/apache2/startup.sh b/apache2/startup.sh new file mode 100644 index 00000000..c3b0e04d --- /dev/null +++ b/apache2/startup.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +mkdir /etc/apache2/ssl 2> /dev/null + +# Change laradock.test to the URL to be used +if [ ${APACHE_HTTP2} = true ]; then + if [ ! -f /etc/apache2/ssl/ssl_site.crt ]; then + openssl genrsa -out "/etc/apache2/ssl/ssl_site.key" 2048 + openssl rand -out /root/.rnd -hex 256 + openssl req -new -key "/etc/apache2/ssl/ssl_site.key" -out "/etc/apache2/ssl/ssl_site.csr" -subj "/CN=laradock.test/O=Laradock/C=BR" + openssl x509 -req -days 365 -extfile <(printf "subjectAltName=DNS:laradock.test,DNS:*.laradock.test") -in "/etc/apache2/ssl/ssl_site.csr" -signkey "/etc/apache2/ssl/ssl_site.key" -out "/etc/apache2/ssl/ssl_site.crt" + fi + + a2enmod rewrite + a2enmod headers + a2enmod proxy proxy_html proxy_http xml2enc ssl http2 + service apache2 restart +fi + +# Start supervisord in foreground +supervisord diff --git a/docker-compose.yml b/docker-compose.yml index 9d653fe7..91c22a5e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -423,6 +423,7 @@ services: - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}${APP_CODE_CONTAINER_FLAG} - ${APACHE_HOST_LOG_PATH}:/var/log/apache2 - ${APACHE_SITES_PATH}:/etc/apache2/sites-available + - ${APACHE_SSL_PATH}:/etc/apache2/ssl ports: - "${APACHE_HOST_HTTP_PORT}:80" - "${APACHE_HOST_HTTPS_PORT}:443" diff --git a/env-example b/env-example index 43f6a067..7347e051 100644 --- a/env-example +++ b/env-example @@ -337,6 +337,7 @@ APACHE_PHP_UPSTREAM_CONTAINER=php-fpm APACHE_PHP_UPSTREAM_PORT=9000 APACHE_PHP_UPSTREAM_TIMEOUT=60 APACHE_DOCUMENT_ROOT=/var/www/ +APACHE_SSL_PATH=./apache2/ssl/ APACHE_INSTALL_HTTP2=false ### MYSQL ################################################# From d3c5b93b7caade27f8c6e15bd337939dcab25381 Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Tue, 16 Mar 2021 21:52:36 +0800 Subject: [PATCH 035/108] PHP 8.0 php-fpm swoole --- php-fpm/Dockerfile | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index e199744e..4f1fdbac 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -285,24 +285,21 @@ RUN if [ ${INSTALL_PHPREDIS} = true ]; then \ ########################################################################### ARG INSTALL_SWOOLE=false -RUN if [ ${INSTALL_SWOOLE} = true ]; then \ - # Install Php Swoole Extension - if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \ - pecl -q install swoole-2.0.11; \ - else \ - if [ $(php -r "echo PHP_MINOR_VERSION;") = "0" ]; then \ - echo '' | pecl install swoole-4.3.5; \ +RUN set -eux; \ + if [ ${INSTALL_SWOOLE} = true ]; then \ + # Install Php Swoole Extension + if [ $(php -r "echo PHP_VERSION_ID - PHP_RELEASE_VERSION;") = "50600" ]; then \ + pecl install swoole-2.0.11; \ + elif [ $(php -r "echo PHP_VERSION_ID - PHP_RELEASE_VERSION;") = "70000" ]; then \ + pecl install swoole-4.3.5; \ + elif [ $(php -r "echo PHP_VERSION_ID - PHP_RELEASE_VERSION;") = "70100" ]; then \ + pecl install swoole-4.6.0; \ else \ - if [ $(php -r "echo PHP_MINOR_VERSION;") = "1" ]; then \ - echo '' | pecl install swoole-4.6.0; \ - else \ - echo '' | pecl install swoole; \ - fi \ - fi \ - fi && \ - docker-php-ext-enable swoole \ - && php -m | grep -q 'swoole' \ -;fi + pecl install swoole; \ + fi; \ + docker-php-ext-enable swoole; \ + php -m | grep -q 'swoole'; \ + fi ########################################################################### # Taint EXTENSION From e34e914d56e36817306e86f2e6f38bf85e3121c3 Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Tue, 16 Mar 2021 15:43:42 +0800 Subject: [PATCH 036/108] CI adjustment --- .github/workflows/main-ci.yml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index 90a692ac..815b0be1 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -1,14 +1,20 @@ name: CI -on: [push, pull_request] +on: + push: + branches: '**' + tags: '**' + pull_request: + schedule: + - cron: '0 0 * * 0' jobs: build: runs-on: ubuntu-latest strategy: matrix: - php_version: ["7.1", "7.2", "7.3", "7.4", "8.0"] - service: [php-fpm, php-worker, workspace, laravel-horizon] + php_version: ["7.2", "7.3", "7.4", "8.0"] + service: [php-fpm, php-worker, workspace, laravel-horizon, 'nginx redis'] steps: - uses: actions/checkout@v2 - name: Build the Docker image From e099d8a2727d3d64c641147c4fd0e1adde59b3cf Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Tue, 16 Mar 2021 16:18:21 +0800 Subject: [PATCH 037/108] Update main-ci.yml php-fpm install ext --- .github/workflows/main-ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index 815b0be1..8cbd87e9 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -14,7 +14,7 @@ jobs: strategy: matrix: php_version: ["7.2", "7.3", "7.4", "8.0"] - service: [php-fpm, php-worker, workspace, laravel-horizon, 'nginx redis'] + service: [php-fpm, php-worker, workspace, laravel-horizon, 'nginx redis mysql mariadb percona minio mongo'] steps: - uses: actions/checkout@v2 - name: Build the Docker image @@ -22,4 +22,5 @@ jobs: PHP_VERSION: ${{ matrix.php_version }} run: | cp env-example .env + sed -i -- '201,272s/=false/=true/g' .env docker-compose build ${{ matrix.service }} From a528c95bfd9dea0fb130f8cc79f318d5e22f626c Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Tue, 16 Mar 2021 16:28:07 +0800 Subject: [PATCH 038/108] Update main-ci.yml CI avoid CHANGE_SOURCE=true --- .github/workflows/main-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index 8cbd87e9..531c3231 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -23,4 +23,5 @@ jobs: run: | cp env-example .env sed -i -- '201,272s/=false/=true/g' .env + sed -i -- 's/CHANGE_SOURCE=true/CHANGE_SOURCE=false/g' .env docker-compose build ${{ matrix.service }} From 7e2e6db3b44b6a5d5796b5440b7fbe4c2a9e3cdd Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Tue, 16 Mar 2021 18:30:57 +0800 Subject: [PATCH 039/108] skip PHPDBG --- .github/workflows/main-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index 531c3231..8b734ba8 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -24,4 +24,5 @@ jobs: cp env-example .env sed -i -- '201,272s/=false/=true/g' .env sed -i -- 's/CHANGE_SOURCE=true/CHANGE_SOURCE=false/g' .env + sed -i -- 's/PHPDBG=true/PHPDBG=false/g' .env docker-compose build ${{ matrix.service }} From c2c86d72af249f5c8e12af8f369eb6970de987a1 Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Tue, 16 Mar 2021 23:35:47 +0800 Subject: [PATCH 040/108] laravel-horizon update memcached version --- laravel-horizon/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/laravel-horizon/Dockerfile b/laravel-horizon/Dockerfile index fe344947..5d2a4bf5 100644 --- a/laravel-horizon/Dockerfile +++ b/laravel-horizon/Dockerfile @@ -235,7 +235,7 @@ RUN if [ ${INSTALL_MEMCACHED} = true ]; then \ if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \ curl -L -o /tmp/memcached.tar.gz "https://github.com/php-memcached-dev/php-memcached/archive/2.2.0.tar.gz"; \ else \ - curl -L -o /tmp/memcached.tar.gz "https://github.com/php-memcached-dev/php-memcached/archive/v3.1.3.tar.gz"; \ + curl -L -o /tmp/memcached.tar.gz "https://github.com/php-memcached-dev/php-memcached/archive/v3.1.4.tar.gz"; \ fi \ && mkdir -p memcached \ && tar -C memcached -zxvf /tmp/memcached.tar.gz --strip 1 \ From 0718a9b8232c2b1b39ffa0dbfd27d3707c0f6462 Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Tue, 16 Mar 2021 23:50:07 +0800 Subject: [PATCH 041/108] disable install ext and split job --- .github/workflows/main-ci.yml | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index 8b734ba8..ecd31a73 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -9,12 +9,12 @@ on: - cron: '0 0 * * 0' jobs: - build: + build-php: runs-on: ubuntu-latest strategy: matrix: php_version: ["7.2", "7.3", "7.4", "8.0"] - service: [php-fpm, php-worker, workspace, laravel-horizon, 'nginx redis mysql mariadb percona minio mongo'] + service: [php-fpm, php-worker, workspace, laravel-horizon] steps: - uses: actions/checkout@v2 - name: Build the Docker image @@ -22,7 +22,22 @@ jobs: PHP_VERSION: ${{ matrix.php_version }} run: | cp env-example .env - sed -i -- '201,272s/=false/=true/g' .env + # sed -i -- '201,272s/=false/=true/g' .env + sed -i -- 's/CHANGE_SOURCE=true/CHANGE_SOURCE=false/g' .env + sed -i -- 's/PHPDBG=true/PHPDBG=false/g' .env + docker-compose build ${{ matrix.service }} + + build-other: + runs-on: ubuntu-latest + strategy: + matrix: + service: ['nginx', 'redis', 'mysql', 'mariadb', 'percona', 'minio', 'mongo'] + steps: + - uses: actions/checkout@v2 + - name: Build the Docker image + run: | + cp env-example .env + sed -i -- 's/=false/=true/g' .env sed -i -- 's/CHANGE_SOURCE=true/CHANGE_SOURCE=false/g' .env sed -i -- 's/PHPDBG=true/PHPDBG=false/g' .env docker-compose build ${{ matrix.service }} From 46433efdbb3ade1c7fdfa5bc0be99d6d6bb91add Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Wed, 17 Mar 2021 12:26:37 +0800 Subject: [PATCH 042/108] CI .env skip CHANGE_SOURCE=true --- travis-build.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/travis-build.sh b/travis-build.sh index 461306c7..add94e55 100755 --- a/travis-build.sh +++ b/travis-build.sh @@ -14,6 +14,7 @@ if [ -n "${PHP_VERSION}" ]; then cp env-example .env sed -i -- "s/PHP_VERSION=.*/PHP_VERSION=${PHP_VERSION}/g" .env sed -i -- 's/=false/=true/g' .env + sed -i -- 's/CHANGE_SOURCE=true/CHANGE_SOURCE=false/g' .env sed -i -- 's/PHPDBG=true/PHPDBG=false/g' .env if [ "${PHP_VERSION}" == "5.6" ]; then # Aerospike C Client SDK 4.0.7, Debian 9.6 is not supported From c59197c8fd6285dbb1a6d43ea7186f3cf31ebac9 Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Wed, 17 Mar 2021 13:25:12 +0800 Subject: [PATCH 043/108] fix xhprof --- php-fpm/Dockerfile | 53 ++++++++++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 23 deletions(-) diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index 4f1fdbac..33a25417 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -339,31 +339,38 @@ RUN if [ ${INSTALL_MONGO} = true ]; then \ ARG INSTALL_XHPROF=false -RUN if [ ${INSTALL_XHPROF} = true ]; then \ - # Install the php xhprof extension - if [ $(php -r "echo PHP_MAJOR_VERSION;") = 7 ]; then \ - curl -L -o /tmp/xhprof.tar.gz "https://github.com/tideways/php-xhprof-extension/archive/v5.0.1.tar.gz"; \ - else \ - curl -L -o /tmp/xhprof.tar.gz "https://codeload.github.com/phacility/xhprof/tar.gz/master"; \ - fi \ - && mkdir -p xhprof \ - && tar -C xhprof -zxvf /tmp/xhprof.tar.gz --strip 1 \ - && ( \ - cd xhprof \ - && phpize \ - && ./configure \ - && make \ - && make install \ - ) \ - && rm -r xhprof \ - && rm /tmp/xhprof.tar.gz \ -;fi +RUN set -eux; \ + if [ ${INSTALL_XHPROF} = true ]; then \ + # Install the php xhprof extension + if [ $(php -r "echo PHP_MAJOR_VERSION;") != 5 ]; then \ + pecl install xhprof; \ + else \ + curl -L -o /tmp/xhprof.tar.gz "https://codeload.github.com/phacility/xhprof/tar.gz/master"; \ + mkdir -p /tmp/xhprof; \ + tar -C /tmp/xhprof -zxvf /tmp/xhprof.tar.gz --strip 1; \ + ( \ + cd /tmp/xhprof/extension; \ + phpize; \ + ./configure; \ + make; \ + make install; \ + ); \ + rm -r /tmp/xhprof; \ + rm /tmp/xhprof.tar.gz; \ + fi; \ + docker-php-ext-enable xhprof; \ + php -m | grep -q 'xhprof'; \ + fi -COPY ./xhprof.ini /usr/local/etc/php/conf.d +# if [ ${INSTALL_XHPROF_USE_TIDYWAYS} = true ]; then \ +# https://github.com/tideways/php-xhprof-extension +# fi -RUN if [ ${INSTALL_XHPROF} = false ]; then \ - rm /usr/local/etc/php/conf.d/xhprof.ini \ -;fi +# COPY ./xhprof.ini /usr/local/etc/php/conf.d + +# RUN if [ ${INSTALL_XHPROF} = false ]; then \ +# rm /usr/local/etc/php/conf.d/xhprof.ini \ +# ;fi ########################################################################### # AMQP: From 275a9ac398b24648c4ee8a4f342f0514dd972062 Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Wed, 17 Mar 2021 13:33:35 +0800 Subject: [PATCH 044/108] Update travis-build.sh --- travis-build.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/travis-build.sh b/travis-build.sh index add94e55..41bc1a66 100755 --- a/travis-build.sh +++ b/travis-build.sh @@ -16,6 +16,12 @@ if [ -n "${PHP_VERSION}" ]; then sed -i -- 's/=false/=true/g' .env sed -i -- 's/CHANGE_SOURCE=true/CHANGE_SOURCE=false/g' .env sed -i -- 's/PHPDBG=true/PHPDBG=false/g' .env + sed -i -- 's/CASSANDRA=true/CASSANDRA=false/g' .env + sed -i -- 's/GEARMAN=true/GEARMAN=false/g' .env + sed -i -- 's/AEROSPIKE=true/AEROSPIKE=false/g' .env + sed -i -- 's/PHALCON=true/PHALCON=false/g' .env + sed -i -- 's/RDKAFKA=true/RDKAFKA=false/g' .env + sed -i -- 's/MAILPARSE=true/MAILPARSE=false/g' .env if [ "${PHP_VERSION}" == "5.6" ]; then # Aerospike C Client SDK 4.0.7, Debian 9.6 is not supported # https://github.com/aerospike/aerospike-client-php5/issues/145 From 3970d904303ec6a70118b6835d928a8723667da5 Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Wed, 17 Mar 2021 14:02:55 +0800 Subject: [PATCH 045/108] Add skip ext --- travis-build.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/travis-build.sh b/travis-build.sh index 41bc1a66..67a55c30 100755 --- a/travis-build.sh +++ b/travis-build.sh @@ -22,6 +22,8 @@ if [ -n "${PHP_VERSION}" ]; then sed -i -- 's/PHALCON=true/PHALCON=false/g' .env sed -i -- 's/RDKAFKA=true/RDKAFKA=false/g' .env sed -i -- 's/MAILPARSE=true/MAILPARSE=false/g' .env + sed -i -- 's/SWOOLE=true/SWOOLE=false/g' .env + sed -i -- 's/V8JS=true/V8JS=false/g' .env if [ "${PHP_VERSION}" == "5.6" ]; then # Aerospike C Client SDK 4.0.7, Debian 9.6 is not supported # https://github.com/aerospike/aerospike-client-php5/issues/145 From 2f6e89cc98d162d7b59fe2b45272218d49e61f9e Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Wed, 17 Mar 2021 14:39:07 +0800 Subject: [PATCH 046/108] skip install fail extension --- .github/workflows/main-ci.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index ecd31a73..18fbef5b 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -25,6 +25,13 @@ jobs: # sed -i -- '201,272s/=false/=true/g' .env sed -i -- 's/CHANGE_SOURCE=true/CHANGE_SOURCE=false/g' .env sed -i -- 's/PHPDBG=true/PHPDBG=false/g' .env + sed -i -- 's/CASSANDRA=true/CASSANDRA=false/g' .env + sed -i -- 's/GEARMAN=true/GEARMAN=false/g' .env + sed -i -- 's/AEROSPIKE=true/AEROSPIKE=false/g' .env + sed -i -- 's/PHALCON=true/PHALCON=false/g' .env + sed -i -- 's/RDKAFKA=true/RDKAFKA=false/g' .env + sed -i -- 's/MAILPARSE=true/MAILPARSE=false/g' .env + sed -i -- 's/YAML=true/YAML=false/g' .env docker-compose build ${{ matrix.service }} build-other: From b7a03673c1a9e9fee2c497e188d5e5035b9b3897 Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Wed, 17 Mar 2021 13:25:12 +0800 Subject: [PATCH 047/108] fix xhprof --- php-fpm/Dockerfile | 53 ++++++++++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 23 deletions(-) diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index 4f1fdbac..33a25417 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -339,31 +339,38 @@ RUN if [ ${INSTALL_MONGO} = true ]; then \ ARG INSTALL_XHPROF=false -RUN if [ ${INSTALL_XHPROF} = true ]; then \ - # Install the php xhprof extension - if [ $(php -r "echo PHP_MAJOR_VERSION;") = 7 ]; then \ - curl -L -o /tmp/xhprof.tar.gz "https://github.com/tideways/php-xhprof-extension/archive/v5.0.1.tar.gz"; \ - else \ - curl -L -o /tmp/xhprof.tar.gz "https://codeload.github.com/phacility/xhprof/tar.gz/master"; \ - fi \ - && mkdir -p xhprof \ - && tar -C xhprof -zxvf /tmp/xhprof.tar.gz --strip 1 \ - && ( \ - cd xhprof \ - && phpize \ - && ./configure \ - && make \ - && make install \ - ) \ - && rm -r xhprof \ - && rm /tmp/xhprof.tar.gz \ -;fi +RUN set -eux; \ + if [ ${INSTALL_XHPROF} = true ]; then \ + # Install the php xhprof extension + if [ $(php -r "echo PHP_MAJOR_VERSION;") != 5 ]; then \ + pecl install xhprof; \ + else \ + curl -L -o /tmp/xhprof.tar.gz "https://codeload.github.com/phacility/xhprof/tar.gz/master"; \ + mkdir -p /tmp/xhprof; \ + tar -C /tmp/xhprof -zxvf /tmp/xhprof.tar.gz --strip 1; \ + ( \ + cd /tmp/xhprof/extension; \ + phpize; \ + ./configure; \ + make; \ + make install; \ + ); \ + rm -r /tmp/xhprof; \ + rm /tmp/xhprof.tar.gz; \ + fi; \ + docker-php-ext-enable xhprof; \ + php -m | grep -q 'xhprof'; \ + fi -COPY ./xhprof.ini /usr/local/etc/php/conf.d +# if [ ${INSTALL_XHPROF_USE_TIDYWAYS} = true ]; then \ +# https://github.com/tideways/php-xhprof-extension +# fi -RUN if [ ${INSTALL_XHPROF} = false ]; then \ - rm /usr/local/etc/php/conf.d/xhprof.ini \ -;fi +# COPY ./xhprof.ini /usr/local/etc/php/conf.d + +# RUN if [ ${INSTALL_XHPROF} = false ]; then \ +# rm /usr/local/etc/php/conf.d/xhprof.ini \ +# ;fi ########################################################################### # AMQP: From 6a6915d02ce9f70dca67b449ba386e001710a6be Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Wed, 17 Mar 2021 14:39:07 +0800 Subject: [PATCH 048/108] skip install fail extension --- .github/workflows/main-ci.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index ecd31a73..18fbef5b 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -25,6 +25,13 @@ jobs: # sed -i -- '201,272s/=false/=true/g' .env sed -i -- 's/CHANGE_SOURCE=true/CHANGE_SOURCE=false/g' .env sed -i -- 's/PHPDBG=true/PHPDBG=false/g' .env + sed -i -- 's/CASSANDRA=true/CASSANDRA=false/g' .env + sed -i -- 's/GEARMAN=true/GEARMAN=false/g' .env + sed -i -- 's/AEROSPIKE=true/AEROSPIKE=false/g' .env + sed -i -- 's/PHALCON=true/PHALCON=false/g' .env + sed -i -- 's/RDKAFKA=true/RDKAFKA=false/g' .env + sed -i -- 's/MAILPARSE=true/MAILPARSE=false/g' .env + sed -i -- 's/YAML=true/YAML=false/g' .env docker-compose build ${{ matrix.service }} build-other: From f77b68b11c461ba0cff9de3ca3bc5f956ffc8f10 Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Wed, 17 Mar 2021 15:00:32 +0800 Subject: [PATCH 049/108] Add skip install fail extension --- .github/workflows/main-ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index 18fbef5b..d61f80dc 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -22,7 +22,7 @@ jobs: PHP_VERSION: ${{ matrix.php_version }} run: | cp env-example .env - # sed -i -- '201,272s/=false/=true/g' .env + sed -i -- '201,272s/=false/=true/g' .env sed -i -- 's/CHANGE_SOURCE=true/CHANGE_SOURCE=false/g' .env sed -i -- 's/PHPDBG=true/PHPDBG=false/g' .env sed -i -- 's/CASSANDRA=true/CASSANDRA=false/g' .env @@ -32,6 +32,7 @@ jobs: sed -i -- 's/RDKAFKA=true/RDKAFKA=false/g' .env sed -i -- 's/MAILPARSE=true/MAILPARSE=false/g' .env sed -i -- 's/YAML=true/YAML=false/g' .env + sed -i -- 's/MSSQL=true/MSSQL=false/g' .env docker-compose build ${{ matrix.service }} build-other: From dd29c01f9d11099c50057d829de15e56150e3795 Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Wed, 17 Mar 2021 15:17:11 +0800 Subject: [PATCH 050/108] Add skip install fail extension --- .github/workflows/main-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index d61f80dc..d4ad6b8e 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -33,6 +33,7 @@ jobs: sed -i -- 's/MAILPARSE=true/MAILPARSE=false/g' .env sed -i -- 's/YAML=true/YAML=false/g' .env sed -i -- 's/MSSQL=true/MSSQL=false/g' .env + sed -i -- 's/AMQP=true/AMQP=false/g' .env docker-compose build ${{ matrix.service }} build-other: From 69c4fc6f9b5519e383674a892a55f6cbcb30ab24 Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Wed, 17 Mar 2021 15:30:32 +0800 Subject: [PATCH 051/108] Add skip install fail extension --- .github/workflows/main-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index d4ad6b8e..ec89deba 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -34,6 +34,7 @@ jobs: sed -i -- 's/YAML=true/YAML=false/g' .env sed -i -- 's/MSSQL=true/MSSQL=false/g' .env sed -i -- 's/AMQP=true/AMQP=false/g' .env + sed -i -- 's/MEMCACHED=true/MEMCACHED=false/g' .env docker-compose build ${{ matrix.service }} build-other: From 0de9e6d02e83371ea183fc6d409d8d6218d8ff5d Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Wed, 17 Mar 2021 15:43:57 +0800 Subject: [PATCH 052/108] change fail behavior --- .github/workflows/main-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index ec89deba..3e9687b5 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -12,6 +12,7 @@ jobs: build-php: runs-on: ubuntu-latest strategy: + fail-fast: false matrix: php_version: ["7.2", "7.3", "7.4", "8.0"] service: [php-fpm, php-worker, workspace, laravel-horizon] From 914ca56957a13a63f94d12b2a06975fa1d57ee43 Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Wed, 17 Mar 2021 15:45:00 +0800 Subject: [PATCH 053/108] Add skip install fail extension --- .github/workflows/main-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index 3e9687b5..eca15215 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -36,6 +36,7 @@ jobs: sed -i -- 's/MSSQL=true/MSSQL=false/g' .env sed -i -- 's/AMQP=true/AMQP=false/g' .env sed -i -- 's/MEMCACHED=true/MEMCACHED=false/g' .env + sed -i -- 's/OCI8=true/OCI8=false/g' .env docker-compose build ${{ matrix.service }} build-other: From 8f68c39f1728d9454b0aa785b671cac1762ce596 Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Wed, 17 Mar 2021 16:23:35 +0800 Subject: [PATCH 054/108] Add skip install fail extension --- .github/workflows/main-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index eca15215..f190bc41 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -37,6 +37,7 @@ jobs: sed -i -- 's/AMQP=true/AMQP=false/g' .env sed -i -- 's/MEMCACHED=true/MEMCACHED=false/g' .env sed -i -- 's/OCI8=true/OCI8=false/g' .env + sed -i -- 's/IONCUBE=true/IONCUBE=false/g' .env docker-compose build ${{ matrix.service }} build-other: From 30b9034f853cd064c64ec3d67a717f98ac68582e Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Wed, 17 Mar 2021 17:29:40 +0800 Subject: [PATCH 055/108] fix xmlrpc --- php-fpm/Dockerfile | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index 33a25417..f32e8a7e 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -1034,7 +1034,13 @@ RUN if [ ${INSTALL_CACHETOOL} = true ]; then \ ARG INSTALL_XMLRPC=false RUN if [ ${INSTALL_XMLRPC} = true ]; then \ - docker-php-ext-install xmlrpc \ + apt-get -yq install libxml2-dev; \ + if [ $(php -r "echo PHP_MAJOR_VERSION;") = "8" ]; then \ + pecl install xmlrpc-1.0.0RC2; \ + docker-php-ext-enable xmlrpc; \ + else \ + docker-php-ext-install xmlrpc; \ + fi \ ;fi ########################################################################### From 2edb139367428249ce04d0e2ed63727003341442 Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Wed, 17 Mar 2021 17:30:33 +0800 Subject: [PATCH 056/108] focuse php 8 --- .github/workflows/main-ci.yml | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index f190bc41..42734fad 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -14,7 +14,8 @@ jobs: strategy: fail-fast: false matrix: - php_version: ["7.2", "7.3", "7.4", "8.0"] + # php_version: ["7.2", "7.3", "7.4", "8.0"] + php_version: ["8.0"] service: [php-fpm, php-worker, workspace, laravel-horizon] steps: - uses: actions/checkout@v2 @@ -40,17 +41,17 @@ jobs: sed -i -- 's/IONCUBE=true/IONCUBE=false/g' .env docker-compose build ${{ matrix.service }} - build-other: - runs-on: ubuntu-latest - strategy: - matrix: - service: ['nginx', 'redis', 'mysql', 'mariadb', 'percona', 'minio', 'mongo'] - steps: - - uses: actions/checkout@v2 - - name: Build the Docker image - run: | - cp env-example .env - sed -i -- 's/=false/=true/g' .env - sed -i -- 's/CHANGE_SOURCE=true/CHANGE_SOURCE=false/g' .env - sed -i -- 's/PHPDBG=true/PHPDBG=false/g' .env - docker-compose build ${{ matrix.service }} + # build-other: + # runs-on: ubuntu-latest + # strategy: + # matrix: + # service: ['nginx', 'redis', 'mysql', 'mariadb', 'percona', 'minio', 'mongo'] + # steps: + # - uses: actions/checkout@v2 + # - name: Build the Docker image + # run: | + # cp env-example .env + # sed -i -- 's/=false/=true/g' .env + # sed -i -- 's/CHANGE_SOURCE=true/CHANGE_SOURCE=false/g' .env + # sed -i -- 's/PHPDBG=true/PHPDBG=false/g' .env + # docker-compose build ${{ matrix.service }} From 2c3b7a762eaa9d5f23a333fc2a0709b252421788 Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Wed, 17 Mar 2021 18:16:54 +0800 Subject: [PATCH 057/108] build all --- .github/workflows/main-ci.yml | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index 42734fad..ad44a60a 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -14,8 +14,7 @@ jobs: strategy: fail-fast: false matrix: - # php_version: ["7.2", "7.3", "7.4", "8.0"] - php_version: ["8.0"] + php_version: ["7.2", "7.3", "7.4", "8.0"] service: [php-fpm, php-worker, workspace, laravel-horizon] steps: - uses: actions/checkout@v2 @@ -41,17 +40,17 @@ jobs: sed -i -- 's/IONCUBE=true/IONCUBE=false/g' .env docker-compose build ${{ matrix.service }} - # build-other: - # runs-on: ubuntu-latest - # strategy: - # matrix: - # service: ['nginx', 'redis', 'mysql', 'mariadb', 'percona', 'minio', 'mongo'] - # steps: - # - uses: actions/checkout@v2 - # - name: Build the Docker image - # run: | - # cp env-example .env - # sed -i -- 's/=false/=true/g' .env - # sed -i -- 's/CHANGE_SOURCE=true/CHANGE_SOURCE=false/g' .env - # sed -i -- 's/PHPDBG=true/PHPDBG=false/g' .env - # docker-compose build ${{ matrix.service }} + build-other: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + service: ['nginx', 'redis', 'mysql', 'mariadb', 'percona', 'minio', 'mongo'] + steps: + - uses: actions/checkout@v2 + - name: Build the Docker image + run: | + cp env-example .env + sed -i -- 's/=false/=true/g' .env + sed -i -- 's/CHANGE_SOURCE=true/CHANGE_SOURCE=false/g' .env + docker-compose build ${{ matrix.service }} From 43df135ca463c11bb54a23bc5a6a012e72b8389d Mon Sep 17 00:00:00 2001 From: Pavel Savushkin Date: Thu, 18 Mar 2021 10:11:30 +0200 Subject: [PATCH 058/108] feat(AMQP extension): normalize installation of AMQP for php-fpm 8.0 Update installation process of AMQP for PHP 8.0 (fpm service) Closes #2891 --- php-fpm/Dockerfile | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index f32e8a7e..e1b121f9 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -381,7 +381,8 @@ ARG INSTALL_AMQP=false RUN if [ ${INSTALL_AMQP} = true ]; then \ # download and install manually, to make sure it's compatible with ampq installed by pecl later # install cmake first - apt-get -y install cmake && \ + apt-get -yqq update && \ + apt-get -yqq install cmake && \ curl -L -o /tmp/rabbitmq-c.tar.gz https://github.com/alanxz/rabbitmq-c/archive/master.tar.gz && \ mkdir -p rabbitmq-c && \ tar -C rabbitmq-c -zxvf /tmp/rabbitmq-c.tar.gz --strip 1 && \ @@ -390,7 +391,11 @@ RUN if [ ${INSTALL_AMQP} = true ]; then \ cmake .. && \ cmake --build . --target install && \ # Install the amqp extension - pecl install amqp && \ + if [ $(php -r "echo PHP_MAJOR_VERSION;") = "8" ]; then \ + printf "\n" | pecl install amqp-1.11.0beta; \ + else \ + printf "\n" | pecl install amqp; \ + fi && \ docker-php-ext-enable amqp && \ # Install the sockets extension docker-php-ext-install sockets \ From 615c80f25b7ac472296c5cc7c3a38f67edf009e2 Mon Sep 17 00:00:00 2001 From: Valentino Lauciani Date: Thu, 18 Mar 2021 12:51:20 +0100 Subject: [PATCH 059/108] Update to solve the xdebug port. Issue: https://github.com/laradock/laradock/issues/2892 --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index e3a247c2..61d015ce 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -276,7 +276,7 @@ services: - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}${APP_CODE_CONTAINER_FLAG} - docker-in-docker:/certs/client ports: - - "9003:9003" + - "${PHP_FPM_XDEBUG_PORT}:9003" expose: - "9000" extra_hosts: From 18e5ade8956f63ed40384e590bdd3ca814ef3e53 Mon Sep 17 00:00:00 2001 From: Valentino Lauciani Date: Thu, 18 Mar 2021 12:52:15 +0100 Subject: [PATCH 060/108] Update to solve the xdebug port. Issue: https://github.com/laradock/laradock/issues/2892 --- env-example | 1 + 1 file changed, 1 insertion(+) diff --git a/env-example b/env-example index aebc0b6e..f2d69808 100644 --- a/env-example +++ b/env-example @@ -259,6 +259,7 @@ PHP_FPM_AUDIOWAVEFORM=false PHP_FPM_ADDITIONAL_LOCALES="en_US.UTF-8 es_ES.UTF-8 fr_FR.UTF-8" PHP_FPM_INSTALL_DOCKER_CLIENT=false PHP_FPM_DEFAULT_LOCALE=POSIX +PHP_FPM_XDEBUG_PORT=9003 PHP_FPM_PUID=1000 PHP_FPM_PGID=1000 From 6c96f29194d211e1904634007fca0dbcadb4786d Mon Sep 17 00:00:00 2001 From: Valentino Lauciani Date: Thu, 18 Mar 2021 13:51:41 +0100 Subject: [PATCH 061/108] Revert "Update Dockerfile" This reverts commit f2af78ecac4ed11ab891b7dc0b79912bd541eec6. --- php-fpm/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index 62da5562..2d8d67ef 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -688,7 +688,7 @@ ARG IMAGEMAGICK_VERSION=latest ENV IMAGEMAGICK_VERSION ${IMAGEMAGICK_VERSION} RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \ - apt-get update -yqq && apt-get install -y libmagickwand-dev imagemagick && \ + apt-get install -y libmagickwand-dev imagemagick && \ if [ $(php -r "echo PHP_MAJOR_VERSION;") = "8" ]; then \ apt-get install -y git && \ cd /tmp && \ From cad60947c0198dc68f9e9650342054641f512578 Mon Sep 17 00:00:00 2001 From: Valentino Lauciani Date: Thu, 18 Mar 2021 13:56:10 +0100 Subject: [PATCH 062/108] Updatee --- env-example | 1 - php-fpm/Dockerfile | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/env-example b/env-example index f2d69808..aebc0b6e 100644 --- a/env-example +++ b/env-example @@ -259,7 +259,6 @@ PHP_FPM_AUDIOWAVEFORM=false PHP_FPM_ADDITIONAL_LOCALES="en_US.UTF-8 es_ES.UTF-8 fr_FR.UTF-8" PHP_FPM_INSTALL_DOCKER_CLIENT=false PHP_FPM_DEFAULT_LOCALE=POSIX -PHP_FPM_XDEBUG_PORT=9003 PHP_FPM_PUID=1000 PHP_FPM_PGID=1000 diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index 2d8d67ef..62da5562 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -688,7 +688,7 @@ ARG IMAGEMAGICK_VERSION=latest ENV IMAGEMAGICK_VERSION ${IMAGEMAGICK_VERSION} RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \ - apt-get install -y libmagickwand-dev imagemagick && \ + apt-get update -yqq && apt-get install -y libmagickwand-dev imagemagick && \ if [ $(php -r "echo PHP_MAJOR_VERSION;") = "8" ]; then \ apt-get install -y git && \ cd /tmp && \ From f1f416023a74125e24bcee57a0ec1665faefc8fd Mon Sep 17 00:00:00 2001 From: Valentino Lauciani Date: Thu, 18 Mar 2021 13:58:04 +0100 Subject: [PATCH 063/108] Revert "Update to solve the xdebug port. Issue: https://github.com/laradock/laradock/issues/2892" This reverts commit 615c80f25b7ac472296c5cc7c3a38f67edf009e2. --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 61d015ce..e3a247c2 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -276,7 +276,7 @@ services: - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}${APP_CODE_CONTAINER_FLAG} - docker-in-docker:/certs/client ports: - - "${PHP_FPM_XDEBUG_PORT}:9003" + - "9003:9003" expose: - "9000" extra_hosts: From cca7cef1ceb03e00c16fc63b046e59918374a3df Mon Sep 17 00:00:00 2001 From: Valentino Lauciani Date: Thu, 18 Mar 2021 14:10:54 +0100 Subject: [PATCH 064/108] Revert "Update Dockerfile" This reverts commit f2af78ecac4ed11ab891b7dc0b79912bd541eec6. --- php-fpm/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index 62da5562..2d8d67ef 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -688,7 +688,7 @@ ARG IMAGEMAGICK_VERSION=latest ENV IMAGEMAGICK_VERSION ${IMAGEMAGICK_VERSION} RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \ - apt-get update -yqq && apt-get install -y libmagickwand-dev imagemagick && \ + apt-get install -y libmagickwand-dev imagemagick && \ if [ $(php -r "echo PHP_MAJOR_VERSION;") = "8" ]; then \ apt-get install -y git && \ cd /tmp && \ From 8d42d86270c49a9b84ddb495fa9eb9822cdd03d0 Mon Sep 17 00:00:00 2001 From: Valentino Lauciani Date: Thu, 18 Mar 2021 14:14:12 +0100 Subject: [PATCH 065/108] Update to solve the xdebug port problem. Issue: #2892 --- docker-compose.yml | 2 +- env-example | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index e3a247c2..61d015ce 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -276,7 +276,7 @@ services: - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}${APP_CODE_CONTAINER_FLAG} - docker-in-docker:/certs/client ports: - - "9003:9003" + - "${PHP_FPM_XDEBUG_PORT}:9003" expose: - "9000" extra_hosts: diff --git a/env-example b/env-example index aebc0b6e..f2d69808 100644 --- a/env-example +++ b/env-example @@ -259,6 +259,7 @@ PHP_FPM_AUDIOWAVEFORM=false PHP_FPM_ADDITIONAL_LOCALES="en_US.UTF-8 es_ES.UTF-8 fr_FR.UTF-8" PHP_FPM_INSTALL_DOCKER_CLIENT=false PHP_FPM_DEFAULT_LOCALE=POSIX +PHP_FPM_XDEBUG_PORT=9003 PHP_FPM_PUID=1000 PHP_FPM_PGID=1000 From 2a953c1a9af7b90b20f0bbcd92e3008b110b4114 Mon Sep 17 00:00:00 2001 From: Pavel Savushkin Date: Fri, 19 Mar 2021 23:03:51 +0200 Subject: [PATCH 066/108] fix(AMQP extension): get it worked for php-worker image We need to be able to build AMQP for php-worker on PHP 7.0: there are some version conflicts. Closes #2891 --- php-worker/Dockerfile | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/php-worker/Dockerfile b/php-worker/Dockerfile index d3f97431..4c21bdab 100644 --- a/php-worker/Dockerfile +++ b/php-worker/Dockerfile @@ -214,14 +214,20 @@ RUN if [ ${INSTALL_AUDIOWAVEFORM} = true ]; then \ && make install \ ;fi - # Install AMQP: ARG INSTALL_AMQP=false RUN if [ ${INSTALL_AMQP} = true ]; then \ - apk --update add rabbitmq-c rabbitmq-c-dev && \ - pecl install amqp && \ + apk del -q openssl openssl-dev && \ + apk --update add -q rabbitmq-c rabbitmq-c-dev && \ + if [ $(php -r "echo PHP_MAJOR_VERSION;") = "8" ]; then \ + printf "\n" | pecl install amqp-1.11.0beta; \ + else \ + printf "\n" | pecl install amqp; \ + fi && \ docker-php-ext-enable amqp && \ + apk del -q rabbitmq-c-dev && \ + apk add --update -q openssl openssl-dev && \ docker-php-ext-install sockets \ ;fi From 267b972d17225fae0e9c781a38be4dd7b4ec1dd3 Mon Sep 17 00:00:00 2001 From: Pavel Savushkin Date: Sat, 20 Mar 2021 00:37:43 +0200 Subject: [PATCH 067/108] fix(AMQP extension): remove unnecessary apt update Avoid extra update. Closes #2891 --- php-fpm/Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index e1b121f9..472dc850 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -381,7 +381,6 @@ ARG INSTALL_AMQP=false RUN if [ ${INSTALL_AMQP} = true ]; then \ # download and install manually, to make sure it's compatible with ampq installed by pecl later # install cmake first - apt-get -yqq update && \ apt-get -yqq install cmake && \ curl -L -o /tmp/rabbitmq-c.tar.gz https://github.com/alanxz/rabbitmq-c/archive/master.tar.gz && \ mkdir -p rabbitmq-c && \ From 10386aa7a3016d2d6c3c6a2b8cdf30191af95e37 Mon Sep 17 00:00:00 2001 From: Pavel Savushkin Date: Sat, 20 Mar 2021 01:32:39 +0200 Subject: [PATCH 068/108] fix(inotify extension): avoid typo Get inotify installed correctly. --- workspace/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workspace/Dockerfile b/workspace/Dockerfile index af8da12b..23740a8f 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -634,7 +634,7 @@ RUN if [ ${INSTALL_INOTIFY} = true ]; then \ if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \ pecl -q install inotify-0.1.6 && \ echo "extension=inotify.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/inotify.ini && \ - ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/inotify.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/20-inotify.ini \ + ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/inotify.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/20-inotify.ini; \ else \ pecl -q install inotify && \ echo "extension=inotify.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/inotify.ini && \ From 15bf900fe68cdeb42a6e03518476141559c8d9c6 Mon Sep 17 00:00:00 2001 From: Pavel Savushkin Date: Sat, 20 Mar 2021 01:45:51 +0200 Subject: [PATCH 069/108] fix(envoy package): avoid specified version to support older PHP versions We need to be able to install envoy for all versions of PHP. (cherry picked from commit 7458e04d2c8287ed418a3f6cd7b82d9e6238db85) --- workspace/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workspace/Dockerfile b/workspace/Dockerfile index af8da12b..6adb1491 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -981,7 +981,7 @@ ARG INSTALL_LARAVEL_ENVOY=false RUN if [ ${INSTALL_LARAVEL_ENVOY} = true ]; then \ # Install the Laravel Envoy - composer global require "laravel/envoy=~2.0" \ + composer global require laravel/envoy \ ;fi ########################################################################### From 21dcc046c9ad69d62c56f121978fb3035f83c7ec Mon Sep 17 00:00:00 2001 From: Pavel Savushkin Date: Sat, 20 Mar 2021 02:10:09 +0200 Subject: [PATCH 070/108] fix(hirak/prestissimo package): normalize installation of the package Avoid installation of hirak/prestissimo for the second version of the composer. Change user to root, due to usage of this user as a common one. --- workspace/Dockerfile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/workspace/Dockerfile b/workspace/Dockerfile index af8da12b..188284e3 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -1026,13 +1026,13 @@ RUN if [ ${INSTALL_DEPLOYER} = true ]; then \ ########################################################################### # Prestissimo: ########################################################################### -USER laradock - ARG INSTALL_PRESTISSIMO=false RUN if [ ${INSTALL_PRESTISSIMO} = true ]; then \ - # Install Prestissimo - composer global require "hirak/prestissimo" \ + if [ $(php -r "echo COMPOSER_VERSION;") = "1" ]; then \ + # Install Prestissimo + composer global require "hirak/prestissimo" \ + ;fi ;fi ########################################################################### From 2b778af03ff50c0080af9e5b67ba4778313e4ab3 Mon Sep 17 00:00:00 2001 From: Pavel Savushkin Date: Sat, 20 Mar 2021 02:44:04 +0200 Subject: [PATCH 071/108] fix(ioncube extension): remove installation for PHP 8 PHP 8.0 currently is not supported, so it should be remove from the building for this version. --- php-fpm/Dockerfile | 14 ++++++++------ workspace/Dockerfile | 15 +++++++++------ 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index f32e8a7e..7eb23dd0 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -595,12 +595,14 @@ RUN if [ ${INSTALL_OCI8} = true ]; then \ ARG INSTALL_IONCUBE=false RUN if [ ${INSTALL_IONCUBE} = true ]; then \ - # Install the php ioncube loader - curl -L -o /tmp/ioncube_loaders_lin_x86-64.tar.gz https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz \ - && tar zxpf /tmp/ioncube_loaders_lin_x86-64.tar.gz -C /tmp \ - && mv /tmp/ioncube/ioncube_loader_lin_${LARADOCK_PHP_VERSION}.so $(php -r "echo ini_get('extension_dir');")/ioncube_loader.so \ - && printf "zend_extension=ioncube_loader.so\n" > $PHP_INI_DIR/conf.d/0ioncube.ini \ - && rm -rf /tmp/ioncube* \ + if [ $(php -r "echo PHP_MAJOR_VERSION;") != "8" ]; then \ + # Install the php ioncube loader + curl -L -o /tmp/ioncube_loaders_lin_x86-64.tar.gz https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz \ + && tar zxpf /tmp/ioncube_loaders_lin_x86-64.tar.gz -C /tmp \ + && mv /tmp/ioncube/ioncube_loader_lin_${LARADOCK_PHP_VERSION}.so $(php -r "echo ini_get('extension_dir');")/ioncube_loader.so \ + && printf "zend_extension=ioncube_loader.so\n" > $PHP_INI_DIR/conf.d/0ioncube.ini \ + && rm -rf /tmp/ioncube* \ + ;fi \ ;fi ########################################################################### diff --git a/workspace/Dockerfile b/workspace/Dockerfile index af8da12b..449ff90d 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -691,12 +691,15 @@ RUN if [ ${INSTALL_GRAPHVIZ} = true ]; then \ ARG INSTALL_IONCUBE=false RUN if [ ${INSTALL_IONCUBE} = true ]; then \ - # Install the php ioncube loader - curl -L -o /tmp/ioncube_loaders_lin_x86-64.tar.gz https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz \ - && tar zxpf /tmp/ioncube_loaders_lin_x86-64.tar.gz -C /tmp \ - && mv /tmp/ioncube/ioncube_loader_lin_${LARADOCK_PHP_VERSION}.so $(php -r "echo ini_get('extension_dir');")/ioncube_loader.so \ - && echo "zend_extension=ioncube_loader.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/0ioncube.ini \ - && rm -rf /tmp/ioncube* \ + if [ $(php -r "echo PHP_MAJOR_VERSION;") != "8" ]; then \ + # Install the php ioncube loader + curl -L -o /tmp/ioncube_loaders_lin_x86-64.tar.gz https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz \ + && tar zxpf /tmp/ioncube_loaders_lin_x86-64.tar.gz -C /tmp \ + && mv /tmp/ioncube/ioncube_loader_lin_${LARADOCK_PHP_VERSION}.so $(php -r "echo ini_get('extension_dir');")/ioncube_loader.so \ + && echo "zend_extension=ioncube_loader.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/ioncube.ini \ + && ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/ioncube.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/0ioncube.ini \ + && rm -rf /tmp/ioncube* \ + ;fi \ ;fi ########################################################################### From e059740296f894054290f1cb22cdfc5148338fff Mon Sep 17 00:00:00 2001 From: Pavel Savushkin Date: Sat, 20 Mar 2021 02:47:27 +0200 Subject: [PATCH 072/108] fix(hirak/prestissimo package): add end of the line --- workspace/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workspace/Dockerfile b/workspace/Dockerfile index 188284e3..3563988a 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -1032,7 +1032,7 @@ RUN if [ ${INSTALL_PRESTISSIMO} = true ]; then \ if [ $(php -r "echo COMPOSER_VERSION;") = "1" ]; then \ # Install Prestissimo composer global require "hirak/prestissimo" \ - ;fi + ;fi \ ;fi ########################################################################### From 2dccc3ca807fbb92a2b664738d69eef66a26058d Mon Sep 17 00:00:00 2001 From: Pavel Savushkin Date: Sat, 20 Mar 2021 02:56:58 +0200 Subject: [PATCH 073/108] feat(PHP 8.0): add ini file Add development ini file for the PHP 8.0 Closes #2781 --- php-fpm/php8.0.ini | 1944 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1944 insertions(+) create mode 100644 php-fpm/php8.0.ini diff --git a/php-fpm/php8.0.ini b/php-fpm/php8.0.ini new file mode 100644 index 00000000..06e4a5af --- /dev/null +++ b/php-fpm/php8.0.ini @@ -0,0 +1,1944 @@ +[PHP] + +;;;;;;;;;;;;;;;;;;; +; About php.ini ; +;;;;;;;;;;;;;;;;;;; +; PHP's initialization file, generally called php.ini, is responsible for +; configuring many of the aspects of PHP's behavior. + +; PHP attempts to find and load this configuration from a number of locations. +; The following is a summary of its search order: +; 1. SAPI module specific location. +; 2. The PHPRC environment variable. (As of PHP 5.2.0) +; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) +; 4. Current working directory (except CLI) +; 5. The web server's directory (for SAPI modules), or directory of PHP +; (otherwise in Windows) +; 6. The directory from the --with-config-file-path compile time option, or the +; Windows directory (usually C:\windows) +; See the PHP docs for more specific information. +; http://php.net/configuration.file + +; The syntax of the file is extremely simple. Whitespace and lines +; beginning with a semicolon are silently ignored (as you probably guessed). +; Section headers (e.g. [Foo]) are also silently ignored, even though +; they might mean something in the future. + +; Directives following the section heading [PATH=/www/mysite] only +; apply to PHP files in the /www/mysite directory. Directives +; following the section heading [HOST=www.example.com] only apply to +; PHP files served from www.example.com. Directives set in these +; special sections cannot be overridden by user-defined INI files or +; at runtime. Currently, [PATH=] and [HOST=] sections only work under +; CGI/FastCGI. +; http://php.net/ini.sections + +; Directives are specified using the following syntax: +; directive = value +; Directive names are *case sensitive* - foo=bar is different from FOO=bar. +; Directives are variables used to configure PHP or PHP extensions. +; There is no name validation. If PHP can't find an expected +; directive because it is not set or is mistyped, a default value will be used. + +; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one +; of the INI constants (On, Off, True, False, Yes, No and None) or an expression +; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a +; previously set variable or directive (e.g. ${foo}) + +; Expressions in the INI file are limited to bitwise operators and parentheses: +; | bitwise OR +; ^ bitwise XOR +; & bitwise AND +; ~ bitwise NOT +; ! boolean NOT + +; Boolean flags can be turned on using the values 1, On, True or Yes. +; They can be turned off using the values 0, Off, False or No. + +; An empty string can be denoted by simply not writing anything after the equal +; sign, or by using the None keyword: + +; foo = ; sets foo to an empty string +; foo = None ; sets foo to an empty string +; foo = "None" ; sets foo to the string 'None' + +; If you use constants in your value, and these constants belong to a +; dynamically loaded extension (either a PHP extension or a Zend extension), +; you may only use these constants *after* the line that loads the extension. + +;;;;;;;;;;;;;;;;;;; +; About this file ; +;;;;;;;;;;;;;;;;;;; +; PHP comes packaged with two INI files. One that is recommended to be used +; in production environments and one that is recommended to be used in +; development environments. + +; php.ini-production contains settings which hold security, performance and +; best practices at its core. But please be aware, these settings may break +; compatibility with older or less security conscience applications. We +; recommending using the production ini in production and testing environments. + +; php.ini-development is very similar to its production variant, except it is +; much more verbose when it comes to errors. We recommend using the +; development version only in development environments, as errors shown to +; application users can inadvertently leak otherwise secure information. + +; This is the php.ini-development INI file. + +;;;;;;;;;;;;;;;;;;; +; Quick Reference ; +;;;;;;;;;;;;;;;;;;; + +; The following are all the settings which are different in either the production +; or development versions of the INIs with respect to PHP's default behavior. +; Please see the actual settings later in the document for more details as to why +; we recommend these changes in PHP's behavior. + +; display_errors +; Default Value: On +; Development Value: On +; Production Value: Off + +; display_startup_errors +; Default Value: On +; Development Value: On +; Production Value: Off + +; error_reporting +; Default Value: E_ALL +; Development Value: E_ALL +; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT + +; log_errors +; Default Value: Off +; Development Value: On +; Production Value: On + +; max_input_time +; Default Value: -1 (Unlimited) +; Development Value: 60 (60 seconds) +; Production Value: 60 (60 seconds) + +; output_buffering +; Default Value: Off +; Development Value: 4096 +; Production Value: 4096 + +; register_argc_argv +; Default Value: On +; Development Value: Off +; Production Value: Off + +; request_order +; Default Value: None +; Development Value: "GP" +; Production Value: "GP" + +; session.gc_divisor +; Default Value: 100 +; Development Value: 1000 +; Production Value: 1000 + +; session.sid_bits_per_character +; Default Value: 4 +; Development Value: 5 +; Production Value: 5 + +; short_open_tag +; Default Value: On +; Development Value: Off +; Production Value: Off + +; variables_order +; Default Value: "EGPCS" +; Development Value: "GPCS" +; Production Value: "GPCS" + +; zend.exception_ignore_args +; Default Value: Off +; Development Value: Off +; Production Value: On + +; zend.exception_string_param_max_len +; Default Value: 15 +; Development Value: 15 +; Production Value: 0 + +;;;;;;;;;;;;;;;;;;;; +; php.ini Options ; +;;;;;;;;;;;;;;;;;;;; +; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" +;user_ini.filename = ".user.ini" + +; To disable this feature set this option to an empty value +;user_ini.filename = + +; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) +;user_ini.cache_ttl = 300 + +;;;;;;;;;;;;;;;;;;;; +; Language Options ; +;;;;;;;;;;;;;;;;;;;; + +; Enable the PHP scripting language engine under Apache. +; http://php.net/engine +engine = On + +; This directive determines whether or not PHP will recognize code between +; tags as PHP source which should be processed as such. It is +; generally recommended that should be used and that this feature +; should be disabled, as enabling it may result in issues when generating XML +; documents, however this remains supported for backward compatibility reasons. +; Note that this directive does not control the would work. +; http://php.net/syntax-highlighting +;highlight.string = #DD0000 +;highlight.comment = #FF9900 +;highlight.keyword = #007700 +;highlight.default = #0000BB +;highlight.html = #000000 + +; If enabled, the request will be allowed to complete even if the user aborts +; the request. Consider enabling it if executing long requests, which may end up +; being interrupted by the user or a browser timing out. PHP's default behavior +; is to disable this feature. +; http://php.net/ignore-user-abort +;ignore_user_abort = On + +; Determines the size of the realpath cache to be used by PHP. This value should +; be increased on systems where PHP opens many files to reflect the quantity of +; the file operations performed. +; Note: if open_basedir is set, the cache is disabled +; http://php.net/realpath-cache-size +;realpath_cache_size = 4096k + +; Duration of time, in seconds for which to cache realpath information for a given +; file or directory. For systems with rarely changing files, consider increasing this +; value. +; http://php.net/realpath-cache-ttl +;realpath_cache_ttl = 120 + +; Enables or disables the circular reference collector. +; http://php.net/zend.enable-gc +zend.enable_gc = On + +; If enabled, scripts may be written in encodings that are incompatible with +; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such +; encodings. To use this feature, mbstring extension must be enabled. +;zend.multibyte = Off + +; Allows to set the default encoding for the scripts. This value will be used +; unless "declare(encoding=...)" directive appears at the top of the script. +; Only affects if zend.multibyte is set. +;zend.script_encoding = + +; Allows to include or exclude arguments from stack traces generated for exceptions. +; In production, it is recommended to turn this setting on to prohibit the output +; of sensitive information in stack traces +; Default Value: Off +; Development Value: Off +; Production Value: On +zend.exception_ignore_args = Off + +; Allows setting the maximum string length in an argument of a stringified stack trace +; to a value between 0 and 1000000. +; This has no effect when zend.exception_ignore_args is enabled. +; Default Value: 15 +; Development Value: 15 +; Production Value: 0 +zend.exception_string_param_max_len = 15 + +;;;;;;;;;;;;;;;;; +; Miscellaneous ; +;;;;;;;;;;;;;;;;; + +; Decides whether PHP may expose the fact that it is installed on the server +; (e.g. by adding its signature to the Web server header). It is no security +; threat in any way, but it makes it possible to determine whether you use PHP +; on your server or not. +; http://php.net/expose-php +expose_php = On + +;;;;;;;;;;;;;;;;;;; +; Resource Limits ; +;;;;;;;;;;;;;;;;;;; + +; Maximum execution time of each script, in seconds +; http://php.net/max-execution-time +; Note: This directive is hardcoded to 0 for the CLI SAPI +max_execution_time = 30 + +; Maximum amount of time each script may spend parsing request data. It's a good +; idea to limit this time on productions servers in order to eliminate unexpectedly +; long running scripts. +; Note: This directive is hardcoded to -1 for the CLI SAPI +; Default Value: -1 (Unlimited) +; Development Value: 60 (60 seconds) +; Production Value: 60 (60 seconds) +; http://php.net/max-input-time +max_input_time = 60 + +; Maximum input variable nesting level +; http://php.net/max-input-nesting-level +;max_input_nesting_level = 64 + +; How many GET/POST/COOKIE input variables may be accepted +;max_input_vars = 1000 + +; Maximum amount of memory a script may consume +; http://php.net/memory-limit +memory_limit = 128M + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Error handling and logging ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +; This directive informs PHP of which errors, warnings and notices you would like +; it to take action for. The recommended way of setting values for this +; directive is through the use of the error level constants and bitwise +; operators. The error level constants are below here for convenience as well as +; some common settings and their meanings. +; By default, PHP is set to take action on all errors, notices and warnings EXCEPT +; those related to E_NOTICE and E_STRICT, which together cover best practices and +; recommended coding standards in PHP. For performance reasons, this is the +; recommend error reporting setting. Your production server shouldn't be wasting +; resources complaining about best practices and coding standards. That's what +; development servers and development settings are for. +; Note: The php.ini-development file has this setting as E_ALL. This +; means it pretty much reports everything which is exactly what you want during +; development and early testing. +; +; Error Level Constants: +; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0) +; E_ERROR - fatal run-time errors +; E_RECOVERABLE_ERROR - almost fatal run-time errors +; E_WARNING - run-time warnings (non-fatal errors) +; E_PARSE - compile-time parse errors +; E_NOTICE - run-time notices (these are warnings which often result +; from a bug in your code, but it's possible that it was +; intentional (e.g., using an uninitialized variable and +; relying on the fact it is automatically initialized to an +; empty string) +; E_STRICT - run-time notices, enable to have PHP suggest changes +; to your code which will ensure the best interoperability +; and forward compatibility of your code +; E_CORE_ERROR - fatal errors that occur during PHP's initial startup +; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's +; initial startup +; E_COMPILE_ERROR - fatal compile-time errors +; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) +; E_USER_ERROR - user-generated error message +; E_USER_WARNING - user-generated warning message +; E_USER_NOTICE - user-generated notice message +; E_DEPRECATED - warn about code that will not work in future versions +; of PHP +; E_USER_DEPRECATED - user-generated deprecation warnings +; +; Common Values: +; E_ALL (Show all errors, warnings and notices including coding standards.) +; E_ALL & ~E_NOTICE (Show all errors, except for notices) +; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) +; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) +; Default Value: E_ALL +; Development Value: E_ALL +; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT +; http://php.net/error-reporting +error_reporting = E_ALL + +; This directive controls whether or not and where PHP will output errors, +; notices and warnings too. Error output is very useful during development, but +; it could be very dangerous in production environments. Depending on the code +; which is triggering the error, sensitive information could potentially leak +; out of your application such as database usernames and passwords or worse. +; For production environments, we recommend logging errors rather than +; sending them to STDOUT. +; Possible Values: +; Off = Do not display any errors +; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) +; On or stdout = Display errors to STDOUT +; Default Value: On +; Development Value: On +; Production Value: Off +; http://php.net/display-errors +display_errors = On + +; The display of errors which occur during PHP's startup sequence are handled +; separately from display_errors. We strongly recommend you set this to 'off' +; for production servers to avoid leaking configuration details. +; Default Value: On +; Development Value: On +; Production Value: Off +; http://php.net/display-startup-errors +display_startup_errors = On + +; Besides displaying errors, PHP can also log errors to locations such as a +; server-specific log, STDERR, or a location specified by the error_log +; directive found below. While errors should not be displayed on productions +; servers they should still be monitored and logging is a great way to do that. +; Default Value: Off +; Development Value: On +; Production Value: On +; http://php.net/log-errors +log_errors = On + +; Set maximum length of log_errors. In error_log information about the source is +; added. The default is 1024 and 0 allows to not apply any maximum length at all. +; http://php.net/log-errors-max-len +log_errors_max_len = 1024 + +; Do not log repeated messages. Repeated errors must occur in same file on same +; line unless ignore_repeated_source is set true. +; http://php.net/ignore-repeated-errors +ignore_repeated_errors = Off + +; Ignore source of message when ignoring repeated messages. When this setting +; is On you will not log errors with repeated messages from different files or +; source lines. +; http://php.net/ignore-repeated-source +ignore_repeated_source = Off + +; If this parameter is set to Off, then memory leaks will not be shown (on +; stdout or in the log). This is only effective in a debug compile, and if +; error reporting includes E_WARNING in the allowed list +; http://php.net/report-memleaks +report_memleaks = On + +; This setting is off by default. +;report_zend_debug = 0 + +; Turn off normal error reporting and emit XML-RPC error XML +; http://php.net/xmlrpc-errors +;xmlrpc_errors = 0 + +; An XML-RPC faultCode +;xmlrpc_error_number = 0 + +; When PHP displays or logs an error, it has the capability of formatting the +; error message as HTML for easier reading. This directive controls whether +; the error message is formatted as HTML or not. +; Note: This directive is hardcoded to Off for the CLI SAPI +; http://php.net/html-errors +;html_errors = On + +; If html_errors is set to On *and* docref_root is not empty, then PHP +; produces clickable error messages that direct to a page describing the error +; or function causing the error in detail. +; You can download a copy of the PHP manual from http://php.net/docs +; and change docref_root to the base URL of your local copy including the +; leading '/'. You must also specify the file extension being used including +; the dot. PHP's default behavior is to leave these settings empty, in which +; case no links to documentation are generated. +; Note: Never use this feature for production boxes. +; http://php.net/docref-root +; Examples +;docref_root = "/phpmanual/" + +; http://php.net/docref-ext +;docref_ext = .html + +; String to output before an error message. PHP's default behavior is to leave +; this setting blank. +; http://php.net/error-prepend-string +; Example: +;error_prepend_string = "" + +; String to output after an error message. PHP's default behavior is to leave +; this setting blank. +; http://php.net/error-append-string +; Example: +;error_append_string = "" + +; Log errors to specified file. PHP's default behavior is to leave this value +; empty. +; http://php.net/error-log +; Example: +;error_log = php_errors.log +; Log errors to syslog (Event Log on Windows). +;error_log = syslog + +; The syslog ident is a string which is prepended to every message logged +; to syslog. Only used when error_log is set to syslog. +;syslog.ident = php + +; The syslog facility is used to specify what type of program is logging +; the message. Only used when error_log is set to syslog. +;syslog.facility = user + +; Set this to disable filtering control characters (the default). +; Some loggers only accept NVT-ASCII, others accept anything that's not +; control characters. If your logger accepts everything, then no filtering +; is needed at all. +; Allowed values are: +; ascii (all printable ASCII characters and NL) +; no-ctrl (all characters except control characters) +; all (all characters) +; raw (like "all", but messages are not split at newlines) +; http://php.net/syslog.filter +;syslog.filter = ascii + +;windows.show_crt_warning +; Default value: 0 +; Development value: 0 +; Production value: 0 + +;;;;;;;;;;;;;;;;; +; Data Handling ; +;;;;;;;;;;;;;;;;; + +; The separator used in PHP generated URLs to separate arguments. +; PHP's default setting is "&". +; http://php.net/arg-separator.output +; Example: +;arg_separator.output = "&" + +; List of separator(s) used by PHP to parse input URLs into variables. +; PHP's default setting is "&". +; NOTE: Every character in this directive is considered as separator! +; http://php.net/arg-separator.input +; Example: +;arg_separator.input = ";&" + +; This directive determines which super global arrays are registered when PHP +; starts up. G,P,C,E & S are abbreviations for the following respective super +; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty +; paid for the registration of these arrays and because ENV is not as commonly +; used as the others, ENV is not recommended on productions servers. You +; can still get access to the environment variables through getenv() should you +; need to. +; Default Value: "EGPCS" +; Development Value: "GPCS" +; Production Value: "GPCS"; +; http://php.net/variables-order +variables_order = "GPCS" + +; This directive determines which super global data (G,P & C) should be +; registered into the super global array REQUEST. If so, it also determines +; the order in which that data is registered. The values for this directive +; are specified in the same manner as the variables_order directive, +; EXCEPT one. Leaving this value empty will cause PHP to use the value set +; in the variables_order directive. It does not mean it will leave the super +; globals array REQUEST empty. +; Default Value: None +; Development Value: "GP" +; Production Value: "GP" +; http://php.net/request-order +request_order = "GP" + +; This directive determines whether PHP registers $argv & $argc each time it +; runs. $argv contains an array of all the arguments passed to PHP when a script +; is invoked. $argc contains an integer representing the number of arguments +; that were passed when the script was invoked. These arrays are extremely +; useful when running scripts from the command line. When this directive is +; enabled, registering these variables consumes CPU cycles and memory each time +; a script is executed. For performance reasons, this feature should be disabled +; on production servers. +; Note: This directive is hardcoded to On for the CLI SAPI +; Default Value: On +; Development Value: Off +; Production Value: Off +; http://php.net/register-argc-argv +register_argc_argv = Off + +; When enabled, the ENV, REQUEST and SERVER variables are created when they're +; first used (Just In Time) instead of when the script starts. If these +; variables are not used within a script, having this directive on will result +; in a performance gain. The PHP directive register_argc_argv must be disabled +; for this directive to have any effect. +; http://php.net/auto-globals-jit +auto_globals_jit = On + +; Whether PHP will read the POST data. +; This option is enabled by default. +; Most likely, you won't want to disable this option globally. It causes $_POST +; and $_FILES to always be empty; the only way you will be able to read the +; POST data will be through the php://input stream wrapper. This can be useful +; to proxy requests or to process the POST data in a memory efficient fashion. +; http://php.net/enable-post-data-reading +;enable_post_data_reading = Off + +; Maximum size of POST data that PHP will accept. +; Its value may be 0 to disable the limit. It is ignored if POST data reading +; is disabled through enable_post_data_reading. +; http://php.net/post-max-size +post_max_size = 8M + +; Automatically add files before PHP document. +; http://php.net/auto-prepend-file +auto_prepend_file = + +; Automatically add files after PHP document. +; http://php.net/auto-append-file +auto_append_file = + +; By default, PHP will output a media type using the Content-Type header. To +; disable this, simply set it to be empty. +; +; PHP's built-in default media type is set to text/html. +; http://php.net/default-mimetype +default_mimetype = "text/html" + +; PHP's default character set is set to UTF-8. +; http://php.net/default-charset +default_charset = "UTF-8" + +; PHP internal character encoding is set to empty. +; If empty, default_charset is used. +; http://php.net/internal-encoding +;internal_encoding = + +; PHP input character encoding is set to empty. +; If empty, default_charset is used. +; http://php.net/input-encoding +;input_encoding = + +; PHP output character encoding is set to empty. +; If empty, default_charset is used. +; See also output_buffer. +; http://php.net/output-encoding +;output_encoding = + +;;;;;;;;;;;;;;;;;;;;;;;;; +; Paths and Directories ; +;;;;;;;;;;;;;;;;;;;;;;;;; + +; UNIX: "/path1:/path2" +;include_path = ".:/php/includes" +; +; Windows: "\path1;\path2" +;include_path = ".;c:\php\includes" +; +; PHP's default setting for include_path is ".;/path/to/php/pear" +; http://php.net/include-path + +; The root of the PHP pages, used only if nonempty. +; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root +; if you are running php as a CGI under any web server (other than IIS) +; see documentation for security issues. The alternate is to use the +; cgi.force_redirect configuration below +; http://php.net/doc-root +doc_root = + +; The directory under which PHP opens the script using /~username used only +; if nonempty. +; http://php.net/user-dir +user_dir = + +; Directory in which the loadable extensions (modules) reside. +; http://php.net/extension-dir +;extension_dir = "./" +; On windows: +;extension_dir = "ext" + +; Directory where the temporary files should be placed. +; Defaults to the system default (see sys_get_temp_dir) +;sys_temp_dir = "/tmp" + +; Whether or not to enable the dl() function. The dl() function does NOT work +; properly in multithreaded servers, such as IIS or Zeus, and is automatically +; disabled on them. +; http://php.net/enable-dl +enable_dl = Off + +; cgi.force_redirect is necessary to provide security running PHP as a CGI under +; most web servers. Left undefined, PHP turns this on by default. You can +; turn it off here AT YOUR OWN RISK +; **You CAN safely turn this off for IIS, in fact, you MUST.** +; http://php.net/cgi.force-redirect +;cgi.force_redirect = 1 + +; if cgi.nph is enabled it will force cgi to always sent Status: 200 with +; every request. PHP's default behavior is to disable this feature. +;cgi.nph = 1 + +; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape +; (iPlanet) web servers, you MAY need to set an environment variable name that PHP +; will look for to know it is OK to continue execution. Setting this variable MAY +; cause security issues, KNOW WHAT YOU ARE DOING FIRST. +; http://php.net/cgi.redirect-status-env +;cgi.redirect_status_env = + +; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's +; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok +; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting +; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting +; of zero causes PHP to behave as before. Default is 1. You should fix your scripts +; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. +; http://php.net/cgi.fix-pathinfo +;cgi.fix_pathinfo=1 + +; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside +; of the web tree and people will not be able to circumvent .htaccess security. +;cgi.discard_path=1 + +; FastCGI under IIS supports the ability to impersonate +; security tokens of the calling client. This allows IIS to define the +; security context that the request runs under. mod_fastcgi under Apache +; does not currently support this feature (03/17/2002) +; Set to 1 if running under IIS. Default is zero. +; http://php.net/fastcgi.impersonate +;fastcgi.impersonate = 1 + +; Disable logging through FastCGI connection. PHP's default behavior is to enable +; this feature. +;fastcgi.logging = 0 + +; cgi.rfc2616_headers configuration option tells PHP what type of headers to +; use when sending HTTP response code. If set to 0, PHP sends Status: header that +; is supported by Apache. When this option is set to 1, PHP will send +; RFC2616 compliant header. +; Default is zero. +; http://php.net/cgi.rfc2616-headers +;cgi.rfc2616_headers = 0 + +; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! +; (shebang) at the top of the running script. This line might be needed if the +; script support running both as stand-alone script and via PHP CGI<. PHP in CGI +; mode skips this line and ignores its content if this directive is turned on. +; http://php.net/cgi.check-shebang-line +;cgi.check_shebang_line=1 + +;;;;;;;;;;;;;;;; +; File Uploads ; +;;;;;;;;;;;;;;;; + +; Whether to allow HTTP file uploads. +; http://php.net/file-uploads +file_uploads = On + +; Temporary directory for HTTP uploaded files (will use system default if not +; specified). +; http://php.net/upload-tmp-dir +;upload_tmp_dir = + +; Maximum allowed size for uploaded files. +; http://php.net/upload-max-filesize +upload_max_filesize = 2M + +; Maximum number of files that can be uploaded via a single request +max_file_uploads = 20 + +;;;;;;;;;;;;;;;;;; +; Fopen wrappers ; +;;;;;;;;;;;;;;;;;; + +; Whether to allow the treatment of URLs (like http:// or ftp://) as files. +; http://php.net/allow-url-fopen +allow_url_fopen = On + +; Whether to allow include/require to open URLs (like http:// or ftp://) as files. +; http://php.net/allow-url-include +allow_url_include = Off + +; Define the anonymous ftp password (your email address). PHP's default setting +; for this is empty. +; http://php.net/from +;from="john@doe.com" + +; Define the User-Agent string. PHP's default setting for this is empty. +; http://php.net/user-agent +;user_agent="PHP" + +; Default timeout for socket based streams (seconds) +; http://php.net/default-socket-timeout +default_socket_timeout = 60 + +; If your scripts have to deal with files from Macintosh systems, +; or you are running on a Mac and need to deal with files from +; unix or win32 systems, setting this flag will cause PHP to +; automatically detect the EOL character in those files so that +; fgets() and file() will work regardless of the source of the file. +; http://php.net/auto-detect-line-endings +;auto_detect_line_endings = Off + +;;;;;;;;;;;;;;;;;;;;;; +; Dynamic Extensions ; +;;;;;;;;;;;;;;;;;;;;;; + +; If you wish to have an extension loaded automatically, use the following +; syntax: +; +; extension=modulename +; +; For example: +; +; extension=mysqli +; +; When the extension library to load is not located in the default extension +; directory, You may specify an absolute path to the library file: +; +; extension=/path/to/extension/mysqli.so +; +; Note : The syntax used in previous PHP versions ('extension=.so' and +; 'extension='php_.dll') is supported for legacy reasons and may be +; deprecated in a future PHP major version. So, when it is possible, please +; move to the new ('extension=) syntax. +; +; Notes for Windows environments : +; +; - Many DLL files are located in the extensions/ (PHP 4) or ext/ (PHP 5+) +; extension folders as well as the separate PECL DLL download (PHP 5+). +; Be sure to appropriately set the extension_dir directive. +; +;extension=bz2 +;extension=curl +;extension=ffi +;extension=ftp +;extension=fileinfo +;extension=gd +;extension=gettext +;extension=gmp +;extension=intl +;extension=imap +;extension=ldap +;extension=mbstring +;extension=exif ; Must be after mbstring as it depends on it +;extension=mysqli +;extension=oci8_12c ; Use with Oracle Database 12c Instant Client +;extension=oci8_19 ; Use with Oracle Database 19 Instant Client +;extension=odbc +;extension=openssl +;extension=pdo_firebird +;extension=pdo_mysql +;extension=pdo_oci +;extension=pdo_odbc +;extension=pdo_pgsql +;extension=pdo_sqlite +;extension=pgsql +;extension=shmop + +; The MIBS data available in the PHP distribution must be installed. +; See http://www.php.net/manual/en/snmp.installation.php +;extension=snmp + +;extension=soap +;extension=sockets +;extension=sodium +;extension=sqlite3 +;extension=tidy +;extension=xsl + +;zend_extension=opcache + +;;;;;;;;;;;;;;;;;;; +; Module Settings ; +;;;;;;;;;;;;;;;;;;; + +[CLI Server] +; Whether the CLI web server uses ANSI color coding in its terminal output. +cli_server.color = On + +[Date] +; Defines the default timezone used by the date functions +; http://php.net/date.timezone +;date.timezone = + +; http://php.net/date.default-latitude +;date.default_latitude = 31.7667 + +; http://php.net/date.default-longitude +;date.default_longitude = 35.2333 + +; http://php.net/date.sunrise-zenith +;date.sunrise_zenith = 90.833333 + +; http://php.net/date.sunset-zenith +;date.sunset_zenith = 90.833333 + +[filter] +; http://php.net/filter.default +;filter.default = unsafe_raw + +; http://php.net/filter.default-flags +;filter.default_flags = + +[iconv] +; Use of this INI entry is deprecated, use global input_encoding instead. +; If empty, default_charset or input_encoding or iconv.input_encoding is used. +; The precedence is: default_charset < input_encoding < iconv.input_encoding +;iconv.input_encoding = + +; Use of this INI entry is deprecated, use global internal_encoding instead. +; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. +; The precedence is: default_charset < internal_encoding < iconv.internal_encoding +;iconv.internal_encoding = + +; Use of this INI entry is deprecated, use global output_encoding instead. +; If empty, default_charset or output_encoding or iconv.output_encoding is used. +; The precedence is: default_charset < output_encoding < iconv.output_encoding +; To use an output encoding conversion, iconv's output handler must be set +; otherwise output encoding conversion cannot be performed. +;iconv.output_encoding = + +[imap] +; rsh/ssh logins are disabled by default. Use this INI entry if you want to +; enable them. Note that the IMAP library does not filter mailbox names before +; passing them to rsh/ssh command, thus passing untrusted data to this function +; with rsh/ssh enabled is insecure. +;imap.enable_insecure_rsh=0 + +[intl] +;intl.default_locale = +; This directive allows you to produce PHP errors when some error +; happens within intl functions. The value is the level of the error produced. +; Default is 0, which does not produce any errors. +;intl.error_level = E_WARNING +;intl.use_exceptions = 0 + +[sqlite3] +; Directory pointing to SQLite3 extensions +; http://php.net/sqlite3.extension-dir +;sqlite3.extension_dir = + +; SQLite defensive mode flag (only available from SQLite 3.26+) +; When the defensive flag is enabled, language features that allow ordinary +; SQL to deliberately corrupt the database file are disabled. This forbids +; writing directly to the schema, shadow tables (eg. FTS data tables), or +; the sqlite_dbpage virtual table. +; https://www.sqlite.org/c3ref/c_dbconfig_defensive.html +; (for older SQLite versions, this flag has no use) +;sqlite3.defensive = 1 + +[Pcre] +; PCRE library backtracking limit. +; http://php.net/pcre.backtrack-limit +;pcre.backtrack_limit=100000 + +; PCRE library recursion limit. +; Please note that if you set this value to a high number you may consume all +; the available process stack and eventually crash PHP (due to reaching the +; stack size limit imposed by the Operating System). +; http://php.net/pcre.recursion-limit +;pcre.recursion_limit=100000 + +; Enables or disables JIT compilation of patterns. This requires the PCRE +; library to be compiled with JIT support. +;pcre.jit=1 + +[Pdo] +; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" +; http://php.net/pdo-odbc.connection-pooling +;pdo_odbc.connection_pooling=strict + +[Pdo_mysql] +; Default socket name for local MySQL connects. If empty, uses the built-in +; MySQL defaults. +pdo_mysql.default_socket= + +[Phar] +; http://php.net/phar.readonly +;phar.readonly = On + +; http://php.net/phar.require-hash +;phar.require_hash = On + +;phar.cache_list = + +[mail function] +; For Win32 only. +; http://php.net/smtp +SMTP = localhost +; http://php.net/smtp-port +smtp_port = 25 + +; For Win32 only. +; http://php.net/sendmail-from +;sendmail_from = me@example.com + +; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). +; http://php.net/sendmail-path +;sendmail_path = + +; Force the addition of the specified parameters to be passed as extra parameters +; to the sendmail binary. These parameters will always replace the value of +; the 5th parameter to mail(). +;mail.force_extra_parameters = + +; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename +mail.add_x_header = Off + +; The path to a log file that will log all mail() calls. Log entries include +; the full path of the script, line number, To address and headers. +;mail.log = +; Log mail to syslog (Event Log on Windows). +;mail.log = syslog + +[ODBC] +; http://php.net/odbc.default-db +;odbc.default_db = Not yet implemented + +; http://php.net/odbc.default-user +;odbc.default_user = Not yet implemented + +; http://php.net/odbc.default-pw +;odbc.default_pw = Not yet implemented + +; Controls the ODBC cursor model. +; Default: SQL_CURSOR_STATIC (default). +;odbc.default_cursortype + +; Allow or prevent persistent links. +; http://php.net/odbc.allow-persistent +odbc.allow_persistent = On + +; Check that a connection is still valid before reuse. +; http://php.net/odbc.check-persistent +odbc.check_persistent = On + +; Maximum number of persistent links. -1 means no limit. +; http://php.net/odbc.max-persistent +odbc.max_persistent = -1 + +; Maximum number of links (persistent + non-persistent). -1 means no limit. +; http://php.net/odbc.max-links +odbc.max_links = -1 + +; Handling of LONG fields. Returns number of bytes to variables. 0 means +; passthru. +; http://php.net/odbc.defaultlrl +odbc.defaultlrl = 4096 + +; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. +; See the documentation on odbc_binmode and odbc_longreadlen for an explanation +; of odbc.defaultlrl and odbc.defaultbinmode +; http://php.net/odbc.defaultbinmode +odbc.defaultbinmode = 1 + +[MySQLi] + +; Maximum number of persistent links. -1 means no limit. +; http://php.net/mysqli.max-persistent +mysqli.max_persistent = -1 + +; Allow accessing, from PHP's perspective, local files with LOAD DATA statements +; http://php.net/mysqli.allow_local_infile +;mysqli.allow_local_infile = On + +; Allow or prevent persistent links. +; http://php.net/mysqli.allow-persistent +mysqli.allow_persistent = On + +; Maximum number of links. -1 means no limit. +; http://php.net/mysqli.max-links +mysqli.max_links = -1 + +; Default port number for mysqli_connect(). If unset, mysqli_connect() will use +; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the +; compile-time value defined MYSQL_PORT (in that order). Win32 will only look +; at MYSQL_PORT. +; http://php.net/mysqli.default-port +mysqli.default_port = 3306 + +; Default socket name for local MySQL connects. If empty, uses the built-in +; MySQL defaults. +; http://php.net/mysqli.default-socket +mysqli.default_socket = + +; Default host for mysqli_connect() (doesn't apply in safe mode). +; http://php.net/mysqli.default-host +mysqli.default_host = + +; Default user for mysqli_connect() (doesn't apply in safe mode). +; http://php.net/mysqli.default-user +mysqli.default_user = + +; Default password for mysqli_connect() (doesn't apply in safe mode). +; Note that this is generally a *bad* idea to store passwords in this file. +; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") +; and reveal this password! And of course, any users with read access to this +; file will be able to reveal the password as well. +; http://php.net/mysqli.default-pw +mysqli.default_pw = + +; Allow or prevent reconnect +mysqli.reconnect = Off + +[mysqlnd] +; Enable / Disable collection of general statistics by mysqlnd which can be +; used to tune and monitor MySQL operations. +mysqlnd.collect_statistics = On + +; Enable / Disable collection of memory usage statistics by mysqlnd which can be +; used to tune and monitor MySQL operations. +mysqlnd.collect_memory_statistics = On + +; Records communication from all extensions using mysqlnd to the specified log +; file. +; http://php.net/mysqlnd.debug +;mysqlnd.debug = + +; Defines which queries will be logged. +;mysqlnd.log_mask = 0 + +; Default size of the mysqlnd memory pool, which is used by result sets. +;mysqlnd.mempool_default_size = 16000 + +; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. +;mysqlnd.net_cmd_buffer_size = 2048 + +; Size of a pre-allocated buffer used for reading data sent by the server in +; bytes. +;mysqlnd.net_read_buffer_size = 32768 + +; Timeout for network requests in seconds. +;mysqlnd.net_read_timeout = 31536000 + +; SHA-256 Authentication Plugin related. File with the MySQL server public RSA +; key. +;mysqlnd.sha256_server_public_key = + +[OCI8] + +; Connection: Enables privileged connections using external +; credentials (OCI_SYSOPER, OCI_SYSDBA) +; http://php.net/oci8.privileged-connect +;oci8.privileged_connect = Off + +; Connection: The maximum number of persistent OCI8 connections per +; process. Using -1 means no limit. +; http://php.net/oci8.max-persistent +;oci8.max_persistent = -1 + +; Connection: The maximum number of seconds a process is allowed to +; maintain an idle persistent connection. Using -1 means idle +; persistent connections will be maintained forever. +; http://php.net/oci8.persistent-timeout +;oci8.persistent_timeout = -1 + +; Connection: The number of seconds that must pass before issuing a +; ping during oci_pconnect() to check the connection validity. When +; set to 0, each oci_pconnect() will cause a ping. Using -1 disables +; pings completely. +; http://php.net/oci8.ping-interval +;oci8.ping_interval = 60 + +; Connection: Set this to a user chosen connection class to be used +; for all pooled server requests with Oracle 11g Database Resident +; Connection Pooling (DRCP). To use DRCP, this value should be set to +; the same string for all web servers running the same application, +; the database pool must be configured, and the connection string must +; specify to use a pooled server. +;oci8.connection_class = + +; High Availability: Using On lets PHP receive Fast Application +; Notification (FAN) events generated when a database node fails. The +; database must also be configured to post FAN events. +;oci8.events = Off + +; Tuning: This option enables statement caching, and specifies how +; many statements to cache. Using 0 disables statement caching. +; http://php.net/oci8.statement-cache-size +;oci8.statement_cache_size = 20 + +; Tuning: Enables statement prefetching and sets the default number of +; rows that will be fetched automatically after statement execution. +; http://php.net/oci8.default-prefetch +;oci8.default_prefetch = 100 + +; Compatibility. Using On means oci_close() will not close +; oci_connect() and oci_new_connect() connections. +; http://php.net/oci8.old-oci-close-semantics +;oci8.old_oci_close_semantics = Off + +[PostgreSQL] +; Allow or prevent persistent links. +; http://php.net/pgsql.allow-persistent +pgsql.allow_persistent = On + +; Detect broken persistent links always with pg_pconnect(). +; Auto reset feature requires a little overheads. +; http://php.net/pgsql.auto-reset-persistent +pgsql.auto_reset_persistent = Off + +; Maximum number of persistent links. -1 means no limit. +; http://php.net/pgsql.max-persistent +pgsql.max_persistent = -1 + +; Maximum number of links (persistent+non persistent). -1 means no limit. +; http://php.net/pgsql.max-links +pgsql.max_links = -1 + +; Ignore PostgreSQL backends Notice message or not. +; Notice message logging require a little overheads. +; http://php.net/pgsql.ignore-notice +pgsql.ignore_notice = 0 + +; Log PostgreSQL backends Notice message or not. +; Unless pgsql.ignore_notice=0, module cannot log notice message. +; http://php.net/pgsql.log-notice +pgsql.log_notice = 0 + +[bcmath] +; Number of decimal digits for all bcmath functions. +; http://php.net/bcmath.scale +bcmath.scale = 0 + +[browscap] +; http://php.net/browscap +;browscap = extra/browscap.ini + +[Session] +; Handler used to store/retrieve data. +; http://php.net/session.save-handler +session.save_handler = files + +; Argument passed to save_handler. In the case of files, this is the path +; where data files are stored. Note: Windows users have to change this +; variable in order to use PHP's session functions. +; +; The path can be defined as: +; +; session.save_path = "N;/path" +; +; where N is an integer. Instead of storing all the session files in +; /path, what this will do is use subdirectories N-levels deep, and +; store the session data in those directories. This is useful if +; your OS has problems with many files in one directory, and is +; a more efficient layout for servers that handle many sessions. +; +; NOTE 1: PHP will not create this directory structure automatically. +; You can use the script in the ext/session dir for that purpose. +; NOTE 2: See the section on garbage collection below if you choose to +; use subdirectories for session storage +; +; The file storage module creates files using mode 600 by default. +; You can change that by using +; +; session.save_path = "N;MODE;/path" +; +; where MODE is the octal representation of the mode. Note that this +; does not overwrite the process's umask. +; http://php.net/session.save-path +;session.save_path = "/tmp" + +; Whether to use strict session mode. +; Strict session mode does not accept an uninitialized session ID, and +; regenerates the session ID if the browser sends an uninitialized session ID. +; Strict mode protects applications from session fixation via a session adoption +; vulnerability. It is disabled by default for maximum compatibility, but +; enabling it is encouraged. +; https://wiki.php.net/rfc/strict_sessions +session.use_strict_mode = 0 + +; Whether to use cookies. +; http://php.net/session.use-cookies +session.use_cookies = 1 + +; http://php.net/session.cookie-secure +;session.cookie_secure = + +; This option forces PHP to fetch and use a cookie for storing and maintaining +; the session id. We encourage this operation as it's very helpful in combating +; session hijacking when not specifying and managing your own session id. It is +; not the be-all and end-all of session hijacking defense, but it's a good start. +; http://php.net/session.use-only-cookies +session.use_only_cookies = 1 + +; Name of the session (used as cookie name). +; http://php.net/session.name +session.name = PHPSESSID + +; Initialize session on request startup. +; http://php.net/session.auto-start +session.auto_start = 0 + +; Lifetime in seconds of cookie or, if 0, until browser is restarted. +; http://php.net/session.cookie-lifetime +session.cookie_lifetime = 0 + +; The path for which the cookie is valid. +; http://php.net/session.cookie-path +session.cookie_path = / + +; The domain for which the cookie is valid. +; http://php.net/session.cookie-domain +session.cookie_domain = + +; Whether or not to add the httpOnly flag to the cookie, which makes it +; inaccessible to browser scripting languages such as JavaScript. +; http://php.net/session.cookie-httponly +session.cookie_httponly = + +; Add SameSite attribute to cookie to help mitigate Cross-Site Request Forgery (CSRF/XSRF) +; Current valid values are "Strict", "Lax" or "None". When using "None", +; make sure to include the quotes, as `none` is interpreted like `false` in ini files. +; https://tools.ietf.org/html/draft-west-first-party-cookies-07 +session.cookie_samesite = + +; Handler used to serialize data. php is the standard serializer of PHP. +; http://php.net/session.serialize-handler +session.serialize_handler = php + +; Defines the probability that the 'garbage collection' process is started on every +; session initialization. The probability is calculated by using gc_probability/gc_divisor, +; e.g. 1/100 means there is a 1% chance that the GC process starts on each request. +; Default Value: 1 +; Development Value: 1 +; Production Value: 1 +; http://php.net/session.gc-probability +session.gc_probability = 1 + +; Defines the probability that the 'garbage collection' process is started on every +; session initialization. The probability is calculated by using gc_probability/gc_divisor, +; e.g. 1/100 means there is a 1% chance that the GC process starts on each request. +; For high volume production servers, using a value of 1000 is a more efficient approach. +; Default Value: 100 +; Development Value: 1000 +; Production Value: 1000 +; http://php.net/session.gc-divisor +session.gc_divisor = 1000 + +; After this number of seconds, stored data will be seen as 'garbage' and +; cleaned up by the garbage collection process. +; http://php.net/session.gc-maxlifetime +session.gc_maxlifetime = 1440 + +; NOTE: If you are using the subdirectory option for storing session files +; (see session.save_path above), then garbage collection does *not* +; happen automatically. You will need to do your own garbage +; collection through a shell script, cron entry, or some other method. +; For example, the following script is the equivalent of setting +; session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): +; find /path/to/sessions -cmin +24 -type f | xargs rm + +; Check HTTP Referer to invalidate externally stored URLs containing ids. +; HTTP_REFERER has to contain this substring for the session to be +; considered as valid. +; http://php.net/session.referer-check +session.referer_check = + +; Set to {nocache,private,public,} to determine HTTP caching aspects +; or leave this empty to avoid sending anti-caching headers. +; http://php.net/session.cache-limiter +session.cache_limiter = nocache + +; Document expires after n minutes. +; http://php.net/session.cache-expire +session.cache_expire = 180 + +; trans sid support is disabled by default. +; Use of trans sid may risk your users' security. +; Use this option with caution. +; - User may send URL contains active session ID +; to other person via. email/irc/etc. +; - URL that contains active session ID may be stored +; in publicly accessible computer. +; - User may access your site with the same session ID +; always using URL stored in browser's history or bookmarks. +; http://php.net/session.use-trans-sid +session.use_trans_sid = 0 + +; Set session ID character length. This value could be between 22 to 256. +; Shorter length than default is supported only for compatibility reason. +; Users should use 32 or more chars. +; http://php.net/session.sid-length +; Default Value: 32 +; Development Value: 26 +; Production Value: 26 +session.sid_length = 26 + +; The URL rewriter will look for URLs in a defined set of HTML tags. +;

is special; if you include them here, the rewriter will +; add a hidden field with the info which is otherwise appended +; to URLs. tag's action attribute URL will not be modified +; unless it is specified. +; Note that all valid entries require a "=", even if no value follows. +; Default Value: "a=href,area=href,frame=src,form=" +; Development Value: "a=href,area=href,frame=src,form=" +; Production Value: "a=href,area=href,frame=src,form=" +; http://php.net/url-rewriter.tags +session.trans_sid_tags = "a=href,area=href,frame=src,form=" + +; URL rewriter does not rewrite absolute URLs by default. +; To enable rewrites for absolute paths, target hosts must be specified +; at RUNTIME. i.e. use ini_set() +; tags is special. PHP will check action attribute's URL regardless +; of session.trans_sid_tags setting. +; If no host is defined, HTTP_HOST will be used for allowed host. +; Example value: php.net,www.php.net,wiki.php.net +; Use "," for multiple hosts. No spaces are allowed. +; Default Value: "" +; Development Value: "" +; Production Value: "" +;session.trans_sid_hosts="" + +; Define how many bits are stored in each character when converting +; the binary hash data to something readable. +; Possible values: +; 4 (4 bits: 0-9, a-f) +; 5 (5 bits: 0-9, a-v) +; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") +; Default Value: 4 +; Development Value: 5 +; Production Value: 5 +; http://php.net/session.hash-bits-per-character +session.sid_bits_per_character = 5 + +; Enable upload progress tracking in $_SESSION +; Default Value: On +; Development Value: On +; Production Value: On +; http://php.net/session.upload-progress.enabled +;session.upload_progress.enabled = On + +; Cleanup the progress information as soon as all POST data has been read +; (i.e. upload completed). +; Default Value: On +; Development Value: On +; Production Value: On +; http://php.net/session.upload-progress.cleanup +;session.upload_progress.cleanup = On + +; A prefix used for the upload progress key in $_SESSION +; Default Value: "upload_progress_" +; Development Value: "upload_progress_" +; Production Value: "upload_progress_" +; http://php.net/session.upload-progress.prefix +;session.upload_progress.prefix = "upload_progress_" + +; The index name (concatenated with the prefix) in $_SESSION +; containing the upload progress information +; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" +; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" +; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" +; http://php.net/session.upload-progress.name +;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" + +; How frequently the upload progress should be updated. +; Given either in percentages (per-file), or in bytes +; Default Value: "1%" +; Development Value: "1%" +; Production Value: "1%" +; http://php.net/session.upload-progress.freq +;session.upload_progress.freq = "1%" + +; The minimum delay between updates, in seconds +; Default Value: 1 +; Development Value: 1 +; Production Value: 1 +; http://php.net/session.upload-progress.min-freq +;session.upload_progress.min_freq = "1" + +; Only write session data when session data is changed. Enabled by default. +; http://php.net/session.lazy-write +;session.lazy_write = On + +[Assertion] +; Switch whether to compile assertions at all (to have no overhead at run-time) +; -1: Do not compile at all +; 0: Jump over assertion at run-time +; 1: Execute assertions +; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1) +; Default Value: 1 +; Development Value: 1 +; Production Value: -1 +; http://php.net/zend.assertions +zend.assertions = 1 + +; Assert(expr); active by default. +; http://php.net/assert.active +;assert.active = On + +; Throw an AssertionError on failed assertions +; http://php.net/assert.exception +;assert.exception = On + +; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active) +; http://php.net/assert.warning +;assert.warning = On + +; Don't bail out by default. +; http://php.net/assert.bail +;assert.bail = Off + +; User-function to be called if an assertion fails. +; http://php.net/assert.callback +;assert.callback = 0 + +[COM] +; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs +; http://php.net/com.typelib-file +;com.typelib_file = + +; allow Distributed-COM calls +; http://php.net/com.allow-dcom +;com.allow_dcom = true + +; autoregister constants of a component's typlib on com_load() +; http://php.net/com.autoregister-typelib +;com.autoregister_typelib = true + +; register constants casesensitive +; http://php.net/com.autoregister-casesensitive +;com.autoregister_casesensitive = false + +; show warnings on duplicate constant registrations +; http://php.net/com.autoregister-verbose +;com.autoregister_verbose = true + +; The default character set code-page to use when passing strings to and from COM objects. +; Default: system ANSI code page +;com.code_page= + +; The version of the .NET framework to use. The value of the setting are the first three parts +; of the framework's version number, separated by dots, and prefixed with "v", e.g. "v4.0.30319". +;com.dotnet_version= + +[mbstring] +; language for internal character representation. +; This affects mb_send_mail() and mbstring.detect_order. +; http://php.net/mbstring.language +;mbstring.language = Japanese + +; Use of this INI entry is deprecated, use global internal_encoding instead. +; internal/script encoding. +; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) +; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. +; The precedence is: default_charset < internal_encoding < iconv.internal_encoding +;mbstring.internal_encoding = + +; Use of this INI entry is deprecated, use global input_encoding instead. +; http input encoding. +; mbstring.encoding_translation = On is needed to use this setting. +; If empty, default_charset or input_encoding or mbstring.input is used. +; The precedence is: default_charset < input_encoding < mbstring.http_input +; http://php.net/mbstring.http-input +;mbstring.http_input = + +; Use of this INI entry is deprecated, use global output_encoding instead. +; http output encoding. +; mb_output_handler must be registered as output buffer to function. +; If empty, default_charset or output_encoding or mbstring.http_output is used. +; The precedence is: default_charset < output_encoding < mbstring.http_output +; To use an output encoding conversion, mbstring's output handler must be set +; otherwise output encoding conversion cannot be performed. +; http://php.net/mbstring.http-output +;mbstring.http_output = + +; enable automatic encoding translation according to +; mbstring.internal_encoding setting. Input chars are +; converted to internal encoding by setting this to On. +; Note: Do _not_ use automatic encoding translation for +; portable libs/applications. +; http://php.net/mbstring.encoding-translation +;mbstring.encoding_translation = Off + +; automatic encoding detection order. +; "auto" detect order is changed according to mbstring.language +; http://php.net/mbstring.detect-order +;mbstring.detect_order = auto + +; substitute_character used when character cannot be converted +; one from another +; http://php.net/mbstring.substitute-character +;mbstring.substitute_character = none + +; Enable strict encoding detection. +;mbstring.strict_detection = Off + +; This directive specifies the regex pattern of content types for which mb_output_handler() +; is activated. +; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) +;mbstring.http_output_conv_mimetype= + +; This directive specifies maximum stack depth for mbstring regular expressions. It is similar +; to the pcre.recursion_limit for PCRE. +;mbstring.regex_stack_limit=100000 + +; This directive specifies maximum retry count for mbstring regular expressions. It is similar +; to the pcre.backtrack_limit for PCRE. +;mbstring.regex_retry_limit=1000000 + +[gd] +; Tell the jpeg decode to ignore warnings and try to create +; a gd image. The warning will then be displayed as notices +; disabled by default +; http://php.net/gd.jpeg-ignore-warning +;gd.jpeg_ignore_warning = 1 + +[exif] +; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. +; With mbstring support this will automatically be converted into the encoding +; given by corresponding encode setting. When empty mbstring.internal_encoding +; is used. For the decode settings you can distinguish between motorola and +; intel byte order. A decode setting cannot be empty. +; http://php.net/exif.encode-unicode +;exif.encode_unicode = ISO-8859-15 + +; http://php.net/exif.decode-unicode-motorola +;exif.decode_unicode_motorola = UCS-2BE + +; http://php.net/exif.decode-unicode-intel +;exif.decode_unicode_intel = UCS-2LE + +; http://php.net/exif.encode-jis +;exif.encode_jis = + +; http://php.net/exif.decode-jis-motorola +;exif.decode_jis_motorola = JIS + +; http://php.net/exif.decode-jis-intel +;exif.decode_jis_intel = JIS + +[Tidy] +; The path to a default tidy configuration file to use when using tidy +; http://php.net/tidy.default-config +;tidy.default_config = /usr/local/lib/php/default.tcfg + +; Should tidy clean and repair output automatically? +; WARNING: Do not use this option if you are generating non-html content +; such as dynamic images +; http://php.net/tidy.clean-output +tidy.clean_output = Off + +[soap] +; Enables or disables WSDL caching feature. +; http://php.net/soap.wsdl-cache-enabled +soap.wsdl_cache_enabled=1 + +; Sets the directory name where SOAP extension will put cache files. +; http://php.net/soap.wsdl-cache-dir +soap.wsdl_cache_dir="/tmp" + +; (time to live) Sets the number of second while cached file will be used +; instead of original one. +; http://php.net/soap.wsdl-cache-ttl +soap.wsdl_cache_ttl=86400 + +; Sets the size of the cache limit. (Max. number of WSDL files to cache) +soap.wsdl_cache_limit = 5 + +[sysvshm] +; A default size of the shared memory segment +;sysvshm.init_mem = 10000 + +[ldap] +; Sets the maximum number of open links or -1 for unlimited. +ldap.max_links = -1 + +[dba] +;dba.default_handler= + +[opcache] +; Determines if Zend OPCache is enabled +;opcache.enable=1 + +; Determines if Zend OPCache is enabled for the CLI version of PHP +;opcache.enable_cli=0 + +; The OPcache shared memory storage size. +;opcache.memory_consumption=128 + +; The amount of memory for interned strings in Mbytes. +;opcache.interned_strings_buffer=8 + +; The maximum number of keys (scripts) in the OPcache hash table. +; Only numbers between 200 and 1000000 are allowed. +;opcache.max_accelerated_files=10000 + +; The maximum percentage of "wasted" memory until a restart is scheduled. +;opcache.max_wasted_percentage=5 + +; When this directive is enabled, the OPcache appends the current working +; directory to the script key, thus eliminating possible collisions between +; files with the same name (basename). Disabling the directive improves +; performance, but may break existing applications. +;opcache.use_cwd=1 + +; When disabled, you must reset the OPcache manually or restart the +; webserver for changes to the filesystem to take effect. +;opcache.validate_timestamps=1 + +; How often (in seconds) to check file timestamps for changes to the shared +; memory storage allocation. ("1" means validate once per second, but only +; once per request. "0" means always validate) +;opcache.revalidate_freq=2 + +; Enables or disables file search in include_path optimization +;opcache.revalidate_path=0 + +; If disabled, all PHPDoc comments are dropped from the code to reduce the +; size of the optimized code. +;opcache.save_comments=1 + +; If enabled, compilation warnings (including notices and deprecations) will +; be recorded and replayed each time a file is included. Otherwise, compilation +; warnings will only be emitted when the file is first cached. +;opcache.record_warnings=0 + +; Allow file existence override (file_exists, etc.) performance feature. +;opcache.enable_file_override=0 + +; A bitmask, where each bit enables or disables the appropriate OPcache +; passes +;opcache.optimization_level=0x7FFFBFFF + +;opcache.dups_fix=0 + +; The location of the OPcache blacklist file (wildcards allowed). +; Each OPcache blacklist file is a text file that holds the names of files +; that should not be accelerated. The file format is to add each filename +; to a new line. The filename may be a full path or just a file prefix +; (i.e., /var/www/x blacklists all the files and directories in /var/www +; that start with 'x'). Line starting with a ; are ignored (comments). +;opcache.blacklist_filename= + +; Allows exclusion of large files from being cached. By default all files +; are cached. +;opcache.max_file_size=0 + +; Check the cache checksum each N requests. +; The default value of "0" means that the checks are disabled. +;opcache.consistency_checks=0 + +; How long to wait (in seconds) for a scheduled restart to begin if the cache +; is not being accessed. +;opcache.force_restart_timeout=180 + +; OPcache error_log file name. Empty string assumes "stderr". +;opcache.error_log= + +; All OPcache errors go to the Web server log. +; By default, only fatal errors (level 0) or errors (level 1) are logged. +; You can also enable warnings (level 2), info messages (level 3) or +; debug messages (level 4). +;opcache.log_verbosity_level=1 + +; Preferred Shared Memory back-end. Leave empty and let the system decide. +;opcache.preferred_memory_model= + +; Protect the shared memory from unexpected writing during script execution. +; Useful for internal debugging only. +;opcache.protect_memory=0 + +; Allows calling OPcache API functions only from PHP scripts which path is +; started from specified string. The default "" means no restriction +;opcache.restrict_api= + +; Mapping base of shared memory segments (for Windows only). All the PHP +; processes have to map shared memory into the same address space. This +; directive allows to manually fix the "Unable to reattach to base address" +; errors. +;opcache.mmap_base= + +; Facilitates multiple OPcache instances per user (for Windows only). All PHP +; processes with the same cache ID and user share an OPcache instance. +;opcache.cache_id= + +; Enables and sets the second level cache directory. +; It should improve performance when SHM memory is full, at server restart or +; SHM reset. The default "" disables file based caching. +;opcache.file_cache= + +; Enables or disables opcode caching in shared memory. +;opcache.file_cache_only=0 + +; Enables or disables checksum validation when script loaded from file cache. +;opcache.file_cache_consistency_checks=1 + +; Implies opcache.file_cache_only=1 for a certain process that failed to +; reattach to the shared memory (for Windows only). Explicitly enabled file +; cache is required. +;opcache.file_cache_fallback=1 + +; Enables or disables copying of PHP code (text segment) into HUGE PAGES. +; This should improve performance, but requires appropriate OS configuration. +;opcache.huge_code_pages=0 + +; Validate cached file permissions. +;opcache.validate_permission=0 + +; Prevent name collisions in chroot'ed environment. +;opcache.validate_root=0 + +; If specified, it produces opcode dumps for debugging different stages of +; optimizations. +;opcache.opt_debug_level=0 + +; Specifies a PHP script that is going to be compiled and executed at server +; start-up. +; http://php.net/opcache.preload +;opcache.preload= + +; Preloading code as root is not allowed for security reasons. This directive +; facilitates to let the preloading to be run as another user. +; http://php.net/opcache.preload_user +;opcache.preload_user= + +; Prevents caching files that are less than this number of seconds old. It +; protects from caching of incompletely updated files. In case all file updates +; on your site are atomic, you may increase performance by setting it to "0". +;opcache.file_update_protection=2 + +; Absolute path used to store shared lockfiles (for *nix only). +;opcache.lockfile_path=/tmp + +[curl] +; A default value for the CURLOPT_CAINFO option. This is required to be an +; absolute path. +;curl.cainfo = + +[openssl] +; The location of a Certificate Authority (CA) file on the local filesystem +; to use when verifying the identity of SSL/TLS peers. Most users should +; not specify a value for this directive as PHP will attempt to use the +; OS-managed cert stores in its absence. If specified, this value may still +; be overridden on a per-stream basis via the "cafile" SSL stream context +; option. +;openssl.cafile= + +; If openssl.cafile is not specified or if the CA file is not found, the +; directory pointed to by openssl.capath is searched for a suitable +; certificate. This value must be a correctly hashed certificate directory. +; Most users should not specify a value for this directive as PHP will +; attempt to use the OS-managed cert stores in its absence. If specified, +; this value may still be overridden on a per-stream basis via the "capath" +; SSL stream context option. +;openssl.capath= + +[ffi] +; FFI API restriction. Possible values: +; "preload" - enabled in CLI scripts and preloaded files (default) +; "false" - always disabled +; "true" - always enabled +;ffi.enable=preload + +; List of headers files to preload, wildcard patterns allowed. +;ffi.preload= From 611fa6219ca7cf9ca69037a455862ee5a9ca13c0 Mon Sep 17 00:00:00 2001 From: Shao Yu Lung Date: Sat, 20 Mar 2021 16:59:01 +0800 Subject: [PATCH 074/108] add vscode extension recommend --- .vscode/extensions.json | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .vscode/extensions.json diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 00000000..549ed861 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,6 @@ +{ + "recommendations": [ + "editorconfig.editorconfig", + "mikestead.dotenv" + ] +} From 6556a9125a0f201e11267023ae73450d014d4e35 Mon Sep 17 00:00:00 2001 From: Shao Yu Lung Date: Sat, 20 Mar 2021 17:04:58 +0800 Subject: [PATCH 075/108] ci build php 7.1 --- .github/workflows/main-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index ad44a60a..bf0ca015 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -14,7 +14,7 @@ jobs: strategy: fail-fast: false matrix: - php_version: ["7.2", "7.3", "7.4", "8.0"] + php_version: ["7.1", "7.2", "7.3", "7.4", "8.0"] service: [php-fpm, php-worker, workspace, laravel-horizon] steps: - uses: actions/checkout@v2 From 27dfbbfab1f1ffeb44e185b19293da60203984d1 Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Sat, 20 Mar 2021 17:49:21 +0800 Subject: [PATCH 076/108] Update Dockerfile sepecified pecl swoole version for php 7.1 --- php-fpm/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index f32e8a7e..06fbcdf6 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -293,7 +293,7 @@ RUN set -eux; \ elif [ $(php -r "echo PHP_VERSION_ID - PHP_RELEASE_VERSION;") = "70000" ]; then \ pecl install swoole-4.3.5; \ elif [ $(php -r "echo PHP_VERSION_ID - PHP_RELEASE_VERSION;") = "70100" ]; then \ - pecl install swoole-4.6.0; \ + pecl install swoole-4.5.11; \ else \ pecl install swoole; \ fi; \ From 781d97b3ac96595d064cdab7e6833fa5d9b8d352 Mon Sep 17 00:00:00 2001 From: Shao Yu Lung Date: Sat, 20 Mar 2021 18:18:43 +0800 Subject: [PATCH 077/108] github ci build php 7.0 --- .github/workflows/main-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index bf0ca015..d4088c06 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -14,7 +14,7 @@ jobs: strategy: fail-fast: false matrix: - php_version: ["7.1", "7.2", "7.3", "7.4", "8.0"] + php_version: ["7.0", "7.1", "7.2", "7.3", "7.4", "8.0"] service: [php-fpm, php-worker, workspace, laravel-horizon] steps: - uses: actions/checkout@v2 From 717c1e0c443ba0b6aac84458f50d3ff93c129532 Mon Sep 17 00:00:00 2001 From: Shao Yu Lung Date: Sat, 20 Mar 2021 18:42:32 +0800 Subject: [PATCH 078/108] Github CI build php 5.6 --- .github/workflows/main-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index d4088c06..d1ea0b71 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -14,7 +14,7 @@ jobs: strategy: fail-fast: false matrix: - php_version: ["7.0", "7.1", "7.2", "7.3", "7.4", "8.0"] + php_version: ["5.6", "7.0", "7.1", "7.2", "7.3", "7.4", "8.0"] service: [php-fpm, php-worker, workspace, laravel-horizon] steps: - uses: actions/checkout@v2 From 4503360576eac99803a618e1e1e74f03fbbc16fe Mon Sep 17 00:00:00 2001 From: Shao Yu Lung Date: Sat, 20 Mar 2021 19:13:32 +0800 Subject: [PATCH 079/108] remove default install mongodb --- laravel-horizon/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/laravel-horizon/Dockerfile b/laravel-horizon/Dockerfile index 5d2a4bf5..194f615b 100644 --- a/laravel-horizon/Dockerfile +++ b/laravel-horizon/Dockerfile @@ -35,7 +35,7 @@ RUN apk --update add wget \ procps RUN docker-php-ext-install mysqli mbstring pdo pdo_mysql tokenizer xml pcntl -RUN pecl channel-update pecl.php.net && pecl install memcached mcrypt-1.0.1 mongodb && docker-php-ext-enable memcached mongodb +RUN pecl channel-update pecl.php.net && pecl install memcached mcrypt-1.0.1 && docker-php-ext-enable memcached # Add a non-root user to help install ffmpeg: ARG PUID=1000 From 6008b3c1ea7a7c800ca2e8cd6861d1cf89670114 Mon Sep 17 00:00:00 2001 From: Shao Yu Lung Date: Sat, 20 Mar 2021 19:15:59 +0800 Subject: [PATCH 080/108] php-worker mongodb install by .env config --- docker-compose.yml | 1 + env-example | 1 + php-worker/Dockerfile | 11 +++++++++-- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 7b51c332..3d9ed770 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -308,6 +308,7 @@ services: - INSTALL_IMAGEMAGICK=${PHP_WORKER_INSTALL_IMAGEMAGICK} - INSTALL_GMP=${PHP_WORKER_INSTALL_GMP} - INSTALL_PGSQL=${PHP_WORKER_INSTALL_PGSQL} + - INSTALL_MONGO=${PHP_WORKER_INSTALL_MONGO} - INSTALL_BCMATH=${PHP_WORKER_INSTALL_BCMATH} - INSTALL_OCI8=${PHP_WORKER_INSTALL_OCI8} - INSTALL_PHALCON=${PHP_WORKER_INSTALL_PHALCON} diff --git a/env-example b/env-example index fa9a4a80..d024d11d 100644 --- a/env-example +++ b/env-example @@ -278,6 +278,7 @@ PHP_WORKER_INSTALL_IMAGEMAGICK=false PHP_WORKER_IMAGEMAGICK_VERSION=latest PHP_WORKER_INSTALL_GMP=false PHP_WORKER_INSTALL_PGSQL=false +PHP_WORKER_INSTALL_MONGO=false PHP_WORKER_INSTALL_BCMATH=false # PHP_WORKER_INSTALL_OCI8 Does not work in php5.6 version PHP_WORKER_INSTALL_OCI8=false diff --git a/php-worker/Dockerfile b/php-worker/Dockerfile index d3f97431..db1f693b 100644 --- a/php-worker/Dockerfile +++ b/php-worker/Dockerfile @@ -38,9 +38,9 @@ RUN apk --update add wget \ RUN docker-php-ext-install mysqli mbstring pdo pdo_mysql tokenizer xml pcntl RUN if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \ - pecl channel-update pecl.php.net && pecl install memcached-2.2.0 mcrypt-1.0.1 mongodb && docker-php-ext-enable memcached mongodb \ + pecl channel-update pecl.php.net && pecl install memcached-2.2.0 mcrypt-1.0.1 && docker-php-ext-enable memcached \ ;else \ - pecl channel-update pecl.php.net && pecl install memcached mcrypt-1.0.1 mongodb && docker-php-ext-enable memcached mongodb \ + pecl channel-update pecl.php.net && pecl install memcached mcrypt-1.0.1 && docker-php-ext-enable memcached \ ;fi # Add a non-root user: @@ -108,6 +108,13 @@ RUN if [ ${INSTALL_SOAP} = true ]; then \ docker-php-ext-install soap \ ;fi +# Install MongoDB drivers: +ARG INSTALL_MONGO=false +RUN if [ ${INSTALL_MONGO} = true ]; then \ + pecl install mongodb; \ + docker-php-ext-enable mongodb; \ + fi + #Install BCMath package: ARG INSTALL_BCMATH=false RUN if [ ${INSTALL_BCMATH} = true ]; then \ From 4d93c69d5d78a725d166145b575b1f6b0d987fd9 Mon Sep 17 00:00:00 2001 From: Shao Yu Lung Date: Sat, 20 Mar 2021 19:39:09 +0800 Subject: [PATCH 081/108] php-worker mongo | PHP 5.6 --- php-worker/Dockerfile | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/php-worker/Dockerfile b/php-worker/Dockerfile index db1f693b..7a964035 100644 --- a/php-worker/Dockerfile +++ b/php-worker/Dockerfile @@ -111,8 +111,13 @@ RUN if [ ${INSTALL_SOAP} = true ]; then \ # Install MongoDB drivers: ARG INSTALL_MONGO=false RUN if [ ${INSTALL_MONGO} = true ]; then \ - pecl install mongodb; \ - docker-php-ext-enable mongodb; \ + if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \ + pecl install mongo; \ + docker-php-ext-enable mongo; \ + else \ + pecl install mongodb; \ + docker-php-ext-enable mongodb; \ + fi; \ fi #Install BCMath package: @@ -357,6 +362,16 @@ RUN if [ ${INSTALL_XMLRPC} = true ]; then \ docker-php-ext-install xmlrpc \ ;fi +RUN if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \ + pecl install mongo; \ + docker-php-ext-enable mongo; \ + php -m | grep -q 'mongo'; \ + else \ + pecl install mongodb; \ + docker-php-ext-enable mongodb; \ + php -m | grep -q 'mongodb'; \ + fi + # #-------------------------------------------------------------------------- # Optional Supervisord Configuration From 66abe78874b77f6cc1f3ebc46b0a3476dee3657a Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Sat, 20 Mar 2021 21:22:45 +0800 Subject: [PATCH 082/108] fix typo --- php-worker/Dockerfile | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/php-worker/Dockerfile b/php-worker/Dockerfile index 7a964035..0787b7ea 100644 --- a/php-worker/Dockerfile +++ b/php-worker/Dockerfile @@ -362,16 +362,6 @@ RUN if [ ${INSTALL_XMLRPC} = true ]; then \ docker-php-ext-install xmlrpc \ ;fi -RUN if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \ - pecl install mongo; \ - docker-php-ext-enable mongo; \ - php -m | grep -q 'mongo'; \ - else \ - pecl install mongodb; \ - docker-php-ext-enable mongodb; \ - php -m | grep -q 'mongodb'; \ - fi - # #-------------------------------------------------------------------------- # Optional Supervisord Configuration From 901ced22acead4475f2fa37dcdeb937741e30338 Mon Sep 17 00:00:00 2001 From: Shao Yu Lung Date: Sat, 20 Mar 2021 18:42:32 +0800 Subject: [PATCH 083/108] Github CI build php 5.6 --- .github/workflows/main-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index d4088c06..d1ea0b71 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -14,7 +14,7 @@ jobs: strategy: fail-fast: false matrix: - php_version: ["7.0", "7.1", "7.2", "7.3", "7.4", "8.0"] + php_version: ["5.6", "7.0", "7.1", "7.2", "7.3", "7.4", "8.0"] service: [php-fpm, php-worker, workspace, laravel-horizon] steps: - uses: actions/checkout@v2 From d09d752cdb9ddb1da8391ad68cd75cc38203ed80 Mon Sep 17 00:00:00 2001 From: Shao Yu Lung Date: Sat, 20 Mar 2021 22:18:38 +0800 Subject: [PATCH 084/108] horizon redis update default config --- env-example | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/env-example b/env-example index d024d11d..2600dc9c 100644 --- a/env-example +++ b/env-example @@ -321,7 +321,7 @@ LARAVEL_HORIZON_IMAGEMAGICK_VERSION=latest LARAVEL_HORIZON_INSTALL_SOCKETS=false LARAVEL_HORIZON_INSTALL_YAML=false LARAVEL_HORIZON_INSTALL_ZIP_ARCHIVE=false -LARAVEL_HORIZON_INSTALL_PHPREDIS=true +LARAVEL_HORIZON_INSTALL_PHPREDIS=false LARAVEL_HORIZON_INSTALL_MONGO=false LARAVEL_HORIZON_INSTALL_CASSANDRA=false LARAVEL_HORIZON_INSTALL_FFMPEG=false From 07b31384e9ed0843d116ad4ebff3fae5598d4b37 Mon Sep 17 00:00:00 2001 From: Shao Yu Lung Date: Sat, 20 Mar 2021 22:19:05 +0800 Subject: [PATCH 085/108] horizon support PHP 5.6 --- laravel-horizon/Dockerfile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/laravel-horizon/Dockerfile b/laravel-horizon/Dockerfile index 194f615b..10cf90eb 100644 --- a/laravel-horizon/Dockerfile +++ b/laravel-horizon/Dockerfile @@ -35,7 +35,11 @@ RUN apk --update add wget \ procps RUN docker-php-ext-install mysqli mbstring pdo pdo_mysql tokenizer xml pcntl -RUN pecl channel-update pecl.php.net && pecl install memcached mcrypt-1.0.1 && docker-php-ext-enable memcached +RUN if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \ + pecl channel-update pecl.php.net && pecl install memcached-2.2.0 mcrypt-1.0.1 && docker-php-ext-enable memcached \ +;else \ + pecl channel-update pecl.php.net && pecl install memcached mcrypt-1.0.1 && docker-php-ext-enable memcached \ +;fi # Add a non-root user to help install ffmpeg: ARG PUID=1000 From 91e329a84d09e4450c653dca0d8ff6bc97800a54 Mon Sep 17 00:00:00 2001 From: Shao Yu Lung Date: Sun, 21 Mar 2021 19:23:53 +0800 Subject: [PATCH 086/108] support gnupg --- .github/workflows/main-ci.yml | 2 +- docker-compose.yml | 4 ++++ env-example | 4 ++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index d1ea0b71..197a5fa9 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -23,7 +23,7 @@ jobs: PHP_VERSION: ${{ matrix.php_version }} run: | cp env-example .env - sed -i -- '201,272s/=false/=true/g' .env + sed -i -- '202,274s/=false/=true/g' .env sed -i -- 's/CHANGE_SOURCE=true/CHANGE_SOURCE=false/g' .env sed -i -- 's/PHPDBG=true/PHPDBG=false/g' .env sed -i -- 's/CASSANDRA=true/CASSANDRA=false/g' .env diff --git a/docker-compose.yml b/docker-compose.yml index 3d9ed770..56cd7b28 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -74,6 +74,7 @@ services: - INSTALL_SUBVERSION=${WORKSPACE_INSTALL_SUBVERSION} - INSTALL_BZ2=${WORKSPACE_INSTALL_BZ2} - INSTALL_GMP=${WORKSPACE_INSTALL_GMP} + - INSTALL_GNUPG=${WORKSPACE_INSTALL_GNUPG} - INSTALL_XDEBUG=${WORKSPACE_INSTALL_XDEBUG} - INSTALL_PCOV=${WORKSPACE_INSTALL_PCOV} - INSTALL_PHPDBG=${WORKSPACE_INSTALL_PHPDBG} @@ -206,6 +207,7 @@ services: - LARADOCK_PHALCON_VERSION=${PHALCON_VERSION} - INSTALL_BZ2=${PHP_FPM_INSTALL_BZ2} - INSTALL_GMP=${PHP_FPM_INSTALL_GMP} + - INSTALL_GNUPG=${PHP_FPM_INSTALL_GNUPG} - INSTALL_XDEBUG=${PHP_FPM_INSTALL_XDEBUG} - INSTALL_PCOV=${PHP_FPM_INSTALL_PCOV} - INSTALL_PHPDBG=${PHP_FPM_INSTALL_PHPDBG} @@ -307,6 +309,7 @@ services: - INSTALL_GD=${PHP_WORKER_INSTALL_GD} - INSTALL_IMAGEMAGICK=${PHP_WORKER_INSTALL_IMAGEMAGICK} - INSTALL_GMP=${PHP_WORKER_INSTALL_GMP} + - INSTALL_GNUPG=${PHP_WORKER_INSTALL_GNUPG} - INSTALL_PGSQL=${PHP_WORKER_INSTALL_PGSQL} - INSTALL_MONGO=${PHP_WORKER_INSTALL_MONGO} - INSTALL_BCMATH=${PHP_WORKER_INSTALL_BCMATH} @@ -348,6 +351,7 @@ services: - INSTALL_BZ2=${LARAVEL_HORIZON_INSTALL_BZ2} - INSTALL_GD=${LARAVEL_HORIZON_INSTALL_GD} - INSTALL_GMP=${LARAVEL_HORIZON_INSTALL_GMP} + - INSTALL_GNUPG=${LARAVEL_HORIZON_INSTALL_GNUPG} - INSTALL_IMAGEMAGICK=${LARAVEL_HORIZON_INSTALL_IMAGEMAGICK} - INSTALL_PGSQL=${PHP_FPM_INSTALL_PGSQL} - INSTALL_ZIP_ARCHIVE=${LARAVEL_HORIZON_INSTALL_ZIP_ARCHIVE} diff --git a/env-example b/env-example index 2600dc9c..aaca6e7a 100644 --- a/env-example +++ b/env-example @@ -123,6 +123,7 @@ WORKSPACE_INSTALL_WORKSPACE_SSH=false WORKSPACE_INSTALL_SUBVERSION=false WORKSPACE_INSTALL_BZ2=false WORKSPACE_INSTALL_GMP=false +WORKSPACE_INSTALL_GNUPG=false WORKSPACE_INSTALL_XDEBUG=false WORKSPACE_INSTALL_PCOV=false WORKSPACE_INSTALL_PHPDBG=false @@ -212,6 +213,7 @@ PHP_FPM_INSTALL_PHPREDIS=true PHP_FPM_INSTALL_MEMCACHED=false PHP_FPM_INSTALL_BZ2=false PHP_FPM_INSTALL_GMP=false +PHP_FPM_INSTALL_GNUPG=false PHP_FPM_INSTALL_XDEBUG=false PHP_FPM_INSTALL_PCOV=false PHP_FPM_INSTALL_XHPROF=false @@ -277,6 +279,7 @@ PHP_WORKER_INSTALL_GD=false PHP_WORKER_INSTALL_IMAGEMAGICK=false PHP_WORKER_IMAGEMAGICK_VERSION=latest PHP_WORKER_INSTALL_GMP=false +PHP_WORKER_INSTALL_GNUPG=false PHP_WORKER_INSTALL_PGSQL=false PHP_WORKER_INSTALL_MONGO=false PHP_WORKER_INSTALL_BCMATH=false @@ -316,6 +319,7 @@ NGINX_SSL_PATH=./nginx/ssl/ LARAVEL_HORIZON_INSTALL_BZ2=false LARAVEL_HORIZON_INSTALL_GD=false LARAVEL_HORIZON_INSTALL_GMP=false +LARAVEL_HORIZON_INSTALL_GNUPG=false LARAVEL_HORIZON_INSTALL_IMAGEMAGICK=false LARAVEL_HORIZON_IMAGEMAGICK_VERSION=latest LARAVEL_HORIZON_INSTALL_SOCKETS=false From 3d17a13789cb758bc705a1a08405e7ef73567205 Mon Sep 17 00:00:00 2001 From: Shao Yu Lung Date: Sun, 21 Mar 2021 19:24:30 +0800 Subject: [PATCH 087/108] horizon, php-worker | GnuPG --- laravel-horizon/Dockerfile | 17 +++++++++++++++++ php-worker/Dockerfile | 17 +++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/laravel-horizon/Dockerfile b/laravel-horizon/Dockerfile index 10cf90eb..e35e81e2 100644 --- a/laravel-horizon/Dockerfile +++ b/laravel-horizon/Dockerfile @@ -57,6 +57,23 @@ RUN if [ ${INSTALL_BZ2} = true ]; then \ docker-php-ext-install bz2 \ ;fi +########################################################################### +# PHP GnuPG: +########################################################################### + +ARG INSTALL_GNUPG=false + +RUN set -eux; if [ ${INSTALL_GNUPG} = true ]; then \ + apk add --no-cache --no-progress --virtual BUILD_DEPS_PHP_GNUPG gpgme-dev; \ + apk add --no-cache --no-progress gpgme; \ + if [ $(php -r "echo PHP_MAJOR_VERSION;") = "8" ]; then \ + pecl install gnupg-1.5.0RC2; \ + else \ + pecl install gnupg; \ + fi; \ + docker-php-ext-enable gnupg; \ + fi + #Install GD package: ARG INSTALL_GD=false RUN if [ ${INSTALL_GD} = true ]; then \ diff --git a/php-worker/Dockerfile b/php-worker/Dockerfile index 0787b7ea..97a5125b 100644 --- a/php-worker/Dockerfile +++ b/php-worker/Dockerfile @@ -59,6 +59,23 @@ RUN if [ ${INSTALL_BZ2} = true ]; then \ docker-php-ext-install bz2; \ fi +########################################################################### +# PHP GnuPG: +########################################################################### + +ARG INSTALL_GNUPG=false + +RUN set -eux; if [ ${INSTALL_GNUPG} = true ]; then \ + apk add --no-cache --no-progress --virtual BUILD_DEPS_PHP_GNUPG gpgme-dev; \ + apk add --no-cache --no-progress gpgme; \ + if [ $(php -r "echo PHP_MAJOR_VERSION;") = "8" ]; then \ + pecl install gnupg-1.5.0RC2; \ + else \ + pecl install gnupg; \ + fi; \ + docker-php-ext-enable gnupg; \ + fi + #Install GD package: ARG INSTALL_GD=false RUN if [ ${INSTALL_GD} = true ]; then \ From 56afa3efa1e1a739b5ef937058e2e54745f25b87 Mon Sep 17 00:00:00 2001 From: Shao Yu Lung Date: Sun, 21 Mar 2021 19:25:00 +0800 Subject: [PATCH 088/108] php-fpm, workspace | GnuPG --- php-fpm/Dockerfile | 15 +++++++++++++++ workspace/Dockerfile | 10 ++++++++++ 2 files changed, 25 insertions(+) diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index 06fbcdf6..4de5e4b5 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -96,6 +96,21 @@ RUN if [ ${INSTALL_GMP} = true ]; then \ docker-php-ext-install gmp \ ;fi +########################################################################### +# GnuPG: +########################################################################### + +ARG INSTALL_GNUPG=false + +RUN if [ ${INSTALL_GNUPG} = true ]; then \ + apt-get -yq install libgpgme-dev; \ + if [ $(php -r "echo PHP_MAJOR_VERSION;") = "8" ]; then \ + pecl install gnupg-1.5.0RC2; \ + else \ + pecl install gnupg; \ + fi; \ + fi + ########################################################################### # SSH2: ########################################################################### diff --git a/workspace/Dockerfile b/workspace/Dockerfile index 534e4c7a..cac7bd41 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -270,6 +270,16 @@ RUN if [ ${INSTALL_GMP} = true ]; then \ apt-get -y install php${LARADOCK_PHP_VERSION}-gmp \ ;fi +########################################################################### +# GnuPG: +########################################################################### + +ARG INSTALL_GNUPG=false + +RUN if [ ${INSTALL_GNUPG} = true ]; then \ + apt-get install -yqq php${LARADOCK_PHP_VERSION}-gnupg; \ + fi + ########################################################################### # SSH2: ########################################################################### From 89b73eeeee19f18133f1f81fe7c9968acd66dbbc Mon Sep 17 00:00:00 2001 From: Pavel Savushkin Date: Sun, 21 Mar 2021 13:37:16 +0200 Subject: [PATCH 089/108] feat(ioncube extension): add reference to .env file Provide a restriction to env file. --- env-example | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/env-example b/env-example index 7347e051..0bf08ac3 100644 --- a/env-example +++ b/env-example @@ -166,7 +166,7 @@ WORKSPACE_INSTALL_SWOOLE=false WORKSPACE_INSTALL_TAINT=false WORKSPACE_INSTALL_LIBPNG=false WORKSPACE_INSTALL_GRAPHVIZ=false -WORKSPACE_INSTALL_IONCUBE=false +WORKSPACE_INSTALL_IONCUBE=false # PHP 8.0 is not supported yet. Reference: https://forum.ioncube.com/viewtopic.php?t=4592 WORKSPACE_INSTALL_MYSQL_CLIENT=false WORKSPACE_INSTALL_PING=false WORKSPACE_INSTALL_SSHPASS=false @@ -240,7 +240,7 @@ PHP_FPM_INSTALL_POSTGIS=false PHP_FPM_INSTALL_PCNTL=false PHP_FPM_INSTALL_CALENDAR=false PHP_FPM_INSTALL_FAKETIME=false -PHP_FPM_INSTALL_IONCUBE=false +PHP_FPM_INSTALL_IONCUBE=false # PHP 8.0 is not supported yet. Reference: https://forum.ioncube.com/viewtopic.php?t=4592 PHP_FPM_INSTALL_RDKAFKA=false PHP_FPM_INSTALL_GETTEXT=false PHP_FPM_INSTALL_XMLRPC=false From 3c6cfc8dfd99fd356638fda36256844b9b32e67f Mon Sep 17 00:00:00 2001 From: Pavel Savushkin Date: Sun, 21 Mar 2021 13:41:25 +0200 Subject: [PATCH 090/108] feat(amqp extension): add github actions installation We need to be able to test installation of AMQP with GitHub Actions. --- .github/workflows/main-ci.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index ad44a60a..331b4a20 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -1,6 +1,6 @@ name: CI -on: +on: push: branches: '**' tags: '**' @@ -34,7 +34,6 @@ jobs: sed -i -- 's/MAILPARSE=true/MAILPARSE=false/g' .env sed -i -- 's/YAML=true/YAML=false/g' .env sed -i -- 's/MSSQL=true/MSSQL=false/g' .env - sed -i -- 's/AMQP=true/AMQP=false/g' .env sed -i -- 's/MEMCACHED=true/MEMCACHED=false/g' .env sed -i -- 's/OCI8=true/OCI8=false/g' .env sed -i -- 's/IONCUBE=true/IONCUBE=false/g' .env From 30c93210ebaa1ce0eeb24523d121f040bf478aab Mon Sep 17 00:00:00 2001 From: Pavel Savushkin Date: Sun, 21 Mar 2021 15:05:36 +0200 Subject: [PATCH 091/108] fix(PGSql Client): get installed PGSql Client with the same versions We need to have an ability to install PGSql Client on `workspace` and `php-fpm` images with the same version (12). --- php-fpm/Dockerfile | 107 ++++++++++++++++++++++++--------------------- 1 file changed, 57 insertions(+), 50 deletions(-) diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index 06fbcdf6..75d9054c 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -39,6 +39,7 @@ RUN set -xe; \ pecl channel-update pecl.php.net && \ apt-get install -yqq \ apt-utils \ + git \ # #-------------------------------------------------------------------------- # Mandatory Software's Installation @@ -77,7 +78,7 @@ RUN set -xe; \ ARG INSTALL_BZ2=false RUN if [ ${INSTALL_BZ2} = true ]; then \ - apt-get -y install libbz2-dev; \ + apt-get -yqq install libbz2-dev; \ docker-php-ext-install bz2 \ ;fi @@ -89,7 +90,7 @@ ARG INSTALL_GMP=false RUN if [ ${INSTALL_GMP} = true ]; then \ # Install the GMP extension - apt-get install -y libgmp-dev && \ + apt-get install -yqq libgmp-dev && \ if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \ ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h \ ;fi && \ @@ -122,7 +123,7 @@ USER root ARG INSTALL_FAKETIME=false RUN if [ ${INSTALL_FAKETIME} = true ]; then \ - apt-get install -y libfaketime \ + apt-get install -yqq libfaketime \ ;fi ########################################################################### @@ -169,14 +170,16 @@ ARG INSTALL_PG_CLIENT=false ARG INSTALL_POSTGIS=false RUN if [ ${INSTALL_PG_CLIENT} = true ]; then \ - # Create folders if not exists (https://github.com/tianon/docker-brew-debian/issues/65) - mkdir -p /usr/share/man/man1 && \ - mkdir -p /usr/share/man/man7 && \ - # Install the pgsql client - apt-get install -y postgresql-client && \ + apt-get install -yqq gnupg \ + && . /etc/os-release \ + && echo "deb http://apt.postgresql.org/pub/repos/apt $VERSION_CODENAME-pgdg main" > /etc/apt/sources.list.d/pgdg.list \ + && curl -sL https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - \ + && apt-get update -yqq \ + && apt-get install -yqq postgresql-client-12 postgis; \ if [ ${INSTALL_POSTGIS} = true ]; then \ - apt-get install -y postgis; \ + apt-get install -yqq postgis; \ fi \ + && apt-get purge -yqq gnupg \ ;fi ########################################################################### @@ -246,7 +249,7 @@ ARG INSTALL_PHPDBG=false RUN if [ ${INSTALL_PHPDBG} = true ]; then \ # Load the xdebug extension only with phpunit commands - apt-get install -y --force-yes php${LARADOCK_PHP_VERSION}-phpdbg \ + apt-get install -yqq --force-yes php${LARADOCK_PHP_VERSION}-phpdbg \ ;fi ########################################################################### @@ -381,7 +384,7 @@ ARG INSTALL_AMQP=false RUN if [ ${INSTALL_AMQP} = true ]; then \ # download and install manually, to make sure it's compatible with ampq installed by pecl later # install cmake first - apt-get -y install cmake && \ + apt-get -yqq install cmake && \ curl -L -o /tmp/rabbitmq-c.tar.gz https://github.com/alanxz/rabbitmq-c/archive/master.tar.gz && \ mkdir -p rabbitmq-c && \ tar -C rabbitmq-c -zxvf /tmp/rabbitmq-c.tar.gz --strip 1 && \ @@ -390,7 +393,11 @@ RUN if [ ${INSTALL_AMQP} = true ]; then \ cmake .. && \ cmake --build . --target install && \ # Install the amqp extension - pecl install amqp && \ + if [ $(php -r "echo PHP_MAJOR_VERSION;") = "8" ]; then \ + printf "\n" | pecl install amqp-1.11.0beta; \ + else \ + printf "\n" | pecl install amqp; \ + fi && \ docker-php-ext-enable amqp && \ # Install the sockets extension docker-php-ext-install sockets \ @@ -557,7 +564,7 @@ ENV OCI_VERSION=12 RUN if [ ${INSTALL_OCI8} = true ]; then \ # Install wget - apt-get update && apt-get install --no-install-recommends -y wget \ + apt-get install --no-install-recommends -yqq wget \ # Install Oracle Instantclient && mkdir /opt/oracle \ && cd /opt/oracle \ @@ -570,10 +577,9 @@ RUN if [ ${INSTALL_OCI8} = true ]; then \ && ln -s /opt/oracle/instantclient_12_1/libocci.so.12.1 /opt/oracle/instantclient_12_1/libocci.so \ && rm -rf /opt/oracle/*.zip \ # Install PHP extensions deps - && apt-get update \ - && apt-get install --no-install-recommends -y \ - libaio-dev \ - freetds-dev && \ + && apt-get install --no-install-recommends -yqq \ + libaio-dev \ + freetds-dev && \ # Install PHP extensions if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \ echo 'instantclient,/opt/oracle/instantclient_12_1/' | pecl install oci8-2.0.10; \ @@ -595,12 +601,14 @@ RUN if [ ${INSTALL_OCI8} = true ]; then \ ARG INSTALL_IONCUBE=false RUN if [ ${INSTALL_IONCUBE} = true ]; then \ - # Install the php ioncube loader - curl -L -o /tmp/ioncube_loaders_lin_x86-64.tar.gz https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz \ - && tar zxpf /tmp/ioncube_loaders_lin_x86-64.tar.gz -C /tmp \ - && mv /tmp/ioncube/ioncube_loader_lin_${LARADOCK_PHP_VERSION}.so $(php -r "echo ini_get('extension_dir');")/ioncube_loader.so \ - && printf "zend_extension=ioncube_loader.so\n" > $PHP_INI_DIR/conf.d/0ioncube.ini \ - && rm -rf /tmp/ioncube* \ + if [ $(php -r "echo PHP_MAJOR_VERSION;") != "8" ]; then \ + # Install the php ioncube loader + curl -L -o /tmp/ioncube_loaders_lin_x86-64.tar.gz https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz \ + && tar zxpf /tmp/ioncube_loaders_lin_x86-64.tar.gz -C /tmp \ + && mv /tmp/ioncube/ioncube_loader_lin_${LARADOCK_PHP_VERSION}.so $(php -r "echo ini_get('extension_dir');")/ioncube_loader.so \ + && printf "zend_extension=ioncube_loader.so\n" > $PHP_INI_DIR/conf.d/0ioncube.ini \ + && rm -rf /tmp/ioncube* \ + ;fi \ ;fi ########################################################################### @@ -635,7 +643,7 @@ ARG INSTALL_INTL=false RUN if [ ${INSTALL_INTL} = true ]; then \ # Install intl and requirements - apt-get install -y zlib1g-dev libicu-dev g++ && \ + apt-get install -yqq zlib1g-dev libicu-dev g++ && \ docker-php-ext-configure intl && \ docker-php-ext-install intl \ ;fi @@ -649,7 +657,7 @@ ARG INSTALL_GHOSTSCRIPT=false RUN if [ ${INSTALL_GHOSTSCRIPT} = true ]; then \ # Install the ghostscript extension # for PDF editing - apt-get install -y \ + apt-get install -yqq \ poppler-utils \ ghostscript \ ;fi @@ -661,7 +669,7 @@ RUN if [ ${INSTALL_GHOSTSCRIPT} = true ]; then \ ARG INSTALL_LDAP=false RUN if [ ${INSTALL_LDAP} = true ]; then \ - apt-get install -y libldap2-dev && \ + apt-get install -yqq libldap2-dev && \ docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ docker-php-ext-install ldap \ ;fi @@ -685,12 +693,12 @@ RUN set -eux; \ # Ref from https://github.com/Microsoft/msphpsql/wiki/Dockerfile-for-adding-pdo_sqlsrv-and-sqlsrv-to-official-php-image ########################################################################### # Add Microsoft repo for Microsoft ODBC Driver 13 for Linux - apt-get install -y apt-transport-https gnupg \ + apt-get install -yqq apt-transport-https gnupg \ && curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \ && curl https://packages.microsoft.com/config/debian/9/prod.list > /etc/apt/sources.list.d/mssql-release.list \ && apt-get update -yqq \ # Install Dependencies - && ACCEPT_EULA=Y apt-get install -y unixodbc unixodbc-dev libgss3 odbcinst msodbcsql17 locales \ + && ACCEPT_EULA=Y apt-get install -yqq unixodbc unixodbc-dev libgss3 odbcinst msodbcsql17 locales \ && echo "en_US.UTF-8 UTF-8" > /etc/locale.gen \ # link local aliases && ln -sfn /etc/locale.alias /usr/share/locale/locale.alias \ @@ -716,7 +724,7 @@ USER root ARG INSTALL_IMAGE_OPTIMIZERS=false RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \ - apt-get install -y jpegoptim optipng pngquant gifsicle \ + apt-get install -yqq jpegoptim optipng pngquant gifsicle \ ;fi ########################################################################### @@ -730,9 +738,8 @@ ARG IMAGEMAGICK_VERSION=latest ENV IMAGEMAGICK_VERSION ${IMAGEMAGICK_VERSION} RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \ - apt-get install -y libmagickwand-dev imagemagick && \ + apt-get install -yqq libmagickwand-dev imagemagick && \ if [ $(php -r "echo PHP_MAJOR_VERSION;") = "8" ]; then \ - apt-get install -y git && \ cd /tmp && \ if [ ${IMAGEMAGICK_VERSION} = "latest" ]; then \ git clone https://github.com/Imagick/imagick; \ @@ -758,7 +765,7 @@ RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \ ARG INSTALL_SMB=false RUN if [ ${INSTALL_SMB} = true ]; then \ - apt-get install -y smbclient php-smbclient coreutils \ + apt-get install -yqq smbclient php-smbclient coreutils \ ;fi ########################################################################### @@ -768,7 +775,7 @@ RUN if [ ${INSTALL_SMB} = true ]; then \ ARG INSTALL_IMAP=false RUN if [ ${INSTALL_IMAP} = true ]; then \ - apt-get install -y libc-client-dev libkrb5-dev && \ + apt-get install -yqq libc-client-dev libkrb5-dev && \ docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \ docker-php-ext-install imap \ ;fi @@ -798,7 +805,7 @@ ENV LARADOCK_PHALCON_VERSION ${LARADOCK_PHALCON_VERSION} COPY ./phalcon.ini /usr/local/etc/php/conf.d/phalcon.ini.disable RUN if [ $INSTALL_PHALCON = true ]; then \ - apt-get update && apt-get install -y unzip libpcre3-dev gcc make re2c git automake autoconf\ + apt-get install -yqq unzip libpcre3-dev gcc make re2c git automake autoconf\ && git clone https://github.com/jbboehr/php-psr.git \ && cd php-psr \ && phpize \ @@ -838,7 +845,7 @@ USER root ARG INSTALL_YAML=false RUN if [ ${INSTALL_YAML} = true ]; then \ - apt-get install libyaml-dev -y ; \ + apt-get install libyaml-dev -yqq; \ if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \ pecl install -a yaml-1.3.2; \ else \ @@ -854,7 +861,7 @@ RUN if [ ${INSTALL_YAML} = true ]; then \ ARG INSTALL_RDKAFKA=false RUN if [ ${INSTALL_RDKAFKA} = true ]; then \ - apt-get install -y librdkafka-dev && \ + apt-get install -yqq librdkafka-dev && \ pecl install rdkafka && \ docker-php-ext-enable rdkafka \ ;fi @@ -866,7 +873,7 @@ RUN if [ ${INSTALL_RDKAFKA} = true ]; then \ ARG INSTALL_GETTEXT=false RUN if [ ${INSTALL_GETTEXT} = true ]; then \ - apt-get install -y zlib1g-dev libicu-dev g++ libpq-dev libssl-dev gettext && \ + apt-get install -yqq zlib1g-dev libicu-dev g++ libpq-dev libssl-dev gettext && \ docker-php-ext-install gettext \ ;fi @@ -878,7 +885,7 @@ ARG INSTALL_ADDITIONAL_LOCALES=false ARG ADDITIONAL_LOCALES RUN if [ ${INSTALL_ADDITIONAL_LOCALES} = true ]; then \ - apt-get install -y locales \ + apt-get install -yqq locales \ && echo '' >> /usr/share/locale/locale.alias \ && temp="${ADDITIONAL_LOCALES%\"}" \ && temp="${temp#\"}" \ @@ -958,7 +965,7 @@ USER root ARG INSTALL_AUDIOWAVEFORM=false RUN if [ ${INSTALL_AUDIOWAVEFORM} = true ]; then \ - apt-get -y install git wget make cmake gcc g++ libmad0-dev libid3tag0-dev libsndfile1-dev libgd-dev libboost-filesystem-dev libboost-program-options-dev libboost-regex-dev \ + apt-get -y install wget make cmake gcc g++ libmad0-dev libid3tag0-dev libsndfile1-dev libgd-dev libboost-filesystem-dev libboost-program-options-dev libboost-regex-dev \ && git clone https://github.com/bbc/audiowaveform.git \ && cd audiowaveform \ && wget https://github.com/google/googletest/archive/release-1.10.0.tar.gz \ @@ -982,17 +989,17 @@ USER root ARG INSTALL_WKHTMLTOPDF=false RUN if [ ${INSTALL_WKHTMLTOPDF} = true ]; then \ - apt-get install -y \ - libxrender1 \ - libfontconfig1 \ - libx11-dev \ - libjpeg62 \ - libxtst6 \ - fontconfig \ - libjpeg62-turbo \ - xfonts-base \ - xfonts-75dpi \ - wget \ + apt-get install -yqq \ + libxrender1 \ + libfontconfig1 \ + libx11-dev \ + libjpeg62 \ + libxtst6 \ + fontconfig \ + libjpeg62-turbo \ + xfonts-base \ + xfonts-75dpi \ + wget \ && wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.stretch_amd64.deb \ && dpkg -i wkhtmltox_0.12.6-1.stretch_amd64.deb \ && apt -f install \ From e8d4e1be77d3549c7ccf0098f1dd74ae32701537 Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Sun, 21 Mar 2021 21:48:07 +0800 Subject: [PATCH 092/108] Update main-ci.yml CI build install GnuPG --- .github/workflows/main-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index 197a5fa9..3367b277 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -24,6 +24,7 @@ jobs: run: | cp env-example .env sed -i -- '202,274s/=false/=true/g' .env + sed -i -- 's/GNUPG=false/GNUPG=true/g' .env sed -i -- 's/CHANGE_SOURCE=true/CHANGE_SOURCE=false/g' .env sed -i -- 's/PHPDBG=true/PHPDBG=false/g' .env sed -i -- 's/CASSANDRA=true/CASSANDRA=false/g' .env From b4cbaaaa994afcf6ea70d3fab23c3340bc24c642 Mon Sep 17 00:00:00 2001 From: Shao Yu Lung Date: Sun, 21 Mar 2021 23:00:30 +0800 Subject: [PATCH 093/108] github ci corver workspace extension --- .github/workflows/main-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index 59641b8a..0a5ea227 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -23,7 +23,7 @@ jobs: PHP_VERSION: ${{ matrix.php_version }} run: | cp env-example .env - sed -i -- '202,274s/=false/=true/g' .env + sed -i -- '99,274s/=false/=true/g' .env sed -i -- 's/GNUPG=false/GNUPG=true/g' .env sed -i -- 's/CHANGE_SOURCE=true/CHANGE_SOURCE=false/g' .env sed -i -- 's/PHPDBG=true/PHPDBG=false/g' .env From e8e4790db2a9d2385791b5f2fe4ee4753e769241 Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Mon, 22 Mar 2021 00:00:38 +0800 Subject: [PATCH 094/108] feat(ioncube extension): add github actions installation --- .github/workflows/main-ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index ad44a60a..8f79f598 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -37,7 +37,6 @@ jobs: sed -i -- 's/AMQP=true/AMQP=false/g' .env sed -i -- 's/MEMCACHED=true/MEMCACHED=false/g' .env sed -i -- 's/OCI8=true/OCI8=false/g' .env - sed -i -- 's/IONCUBE=true/IONCUBE=false/g' .env docker-compose build ${{ matrix.service }} build-other: From 4270f1db71379b7775575dbb3b1fb0e3699b2274 Mon Sep 17 00:00:00 2001 From: Pavel Savushkin Date: Sun, 21 Mar 2021 18:10:08 +0200 Subject: [PATCH 095/108] fix(YAML extension): get built YAML extension for all versions in all services We need to build yaml extension for `workspace`, `php-fpm` and `laravel-horizon` images. Turn on YAML for GitHub Actions. --- .github/workflows/main-ci.yml | 3 +-- php-fpm/Dockerfile | 12 +++++++----- workspace/Dockerfile | 16 ++++++++-------- 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index d1ea0b71..3ab1f21c 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -1,6 +1,6 @@ name: CI -on: +on: push: branches: '**' tags: '**' @@ -32,7 +32,6 @@ jobs: sed -i -- 's/PHALCON=true/PHALCON=false/g' .env sed -i -- 's/RDKAFKA=true/RDKAFKA=false/g' .env sed -i -- 's/MAILPARSE=true/MAILPARSE=false/g' .env - sed -i -- 's/YAML=true/YAML=false/g' .env sed -i -- 's/MSSQL=true/MSSQL=false/g' .env sed -i -- 's/AMQP=true/AMQP=false/g' .env sed -i -- 's/MEMCACHED=true/MEMCACHED=false/g' .env diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index 06fbcdf6..88784a92 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -840,11 +840,13 @@ ARG INSTALL_YAML=false RUN if [ ${INSTALL_YAML} = true ]; then \ apt-get install libyaml-dev -y ; \ if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \ - pecl install -a yaml-1.3.2; \ - else \ - pecl install yaml; \ - fi && \ - docker-php-ext-enable yaml \ + echo '' | pecl install -a yaml-1.3.2; \ + elif [ $(php -r "echo PHP_MAJOR_VERSION;") = "7" ] && [ $(php -r "echo PHP_MINOR_VERSION;") = "0" ]; then \ + echo '' | pecl install yaml-2.0.4; \ + else + echo '' | pecl install yaml; \ + fi \ + && docker-php-ext-enable yaml; \ ;fi ########################################################################### diff --git a/workspace/Dockerfile b/workspace/Dockerfile index 534e4c7a..4cbcf78f 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -1388,12 +1388,14 @@ ARG INSTALL_YAML=false RUN if [ ${INSTALL_YAML} = true ]; then \ apt-get install libyaml-dev -y ; \ if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \ - pecl install -a yaml-1.3.2; \ - else \ - pecl install yaml; \ - fi && \ - echo "extension=yaml.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/yaml.ini && \ - ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/yaml.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/35-yaml.ini \ + echo '' | pecl install -a yaml-1.3.2; \ + elif [ $(php -r "echo PHP_MAJOR_VERSION;") = "7" ] && [ $(php -r "echo PHP_MINOR_VERSION;") = "0" ]; then \ + echo '' | pecl install yaml-2.0.4; \ + else + echo '' | pecl install yaml; \ + fi \ + && echo "extension=yaml.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/yaml.ini \ + && ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/yaml.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/35-yaml.ini; \ ;fi ########################################################################### @@ -1632,8 +1634,6 @@ RUN if [ ${SHELL_OH_MY_ZSH} = true ]; then \ echo "" >> ~/.zshrc \ ;fi -USER root - # #-------------------------------------------------------------------------- # Final Touch From b6666363eb15de0087e16e26e310f353a8048147 Mon Sep 17 00:00:00 2001 From: Shao Yu Lung Date: Mon, 22 Mar 2021 00:40:59 +0800 Subject: [PATCH 096/108] feat(fix swoole extension) | workspace --- workspace/Dockerfile | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/workspace/Dockerfile b/workspace/Dockerfile index 14461ddf..d675f109 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -588,20 +588,17 @@ RUN if [ ${INSTALL_PHPREDIS} = true ]; then \ ARG INSTALL_SWOOLE=false RUN if [ ${INSTALL_SWOOLE} = true ]; then \ - # Install Php Swoole Extension - if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \ - pecl -q install swoole-2.0.11; \ - else \ - if [ $(php -r "echo PHP_MINOR_VERSION;") = "0" ]; then \ - echo '' | pecl install swoole-4.3.5; \ + # Install Php Swoole Extension + if [ $(php -r "echo PHP_VERSION_ID - PHP_RELEASE_VERSION;") = "50600" ]; then \ + pecl install swoole-2.0.11; \ + elif [ $(php -r "echo PHP_VERSION_ID - PHP_RELEASE_VERSION;") = "70000" ]; then \ + pecl install swoole-4.3.5; \ + elif [ $(php -r "echo PHP_VERSION_ID - PHP_RELEASE_VERSION;") = "70100" ]; then \ + pecl install swoole-4.5.11; \ else \ - if [ $(php -r "echo PHP_MINOR_VERSION;") = "1" ]; then \ - echo '' | pecl install swoole-4.6.0; \ - else \ - echo '' | pecl install swoole; \ - fi \ - fi \ - fi && \ + pecl install swoole; \ + fi; \ + fi; \ echo "extension=swoole.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/swoole.ini && \ ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/swoole.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/20-swoole.ini \ && php -m | grep -q 'swoole' \ From 95fe1b179f4f60ce2a1d050621c3fe7d8e689974 Mon Sep 17 00:00:00 2001 From: Pavel Savushkin Date: Sun, 21 Mar 2021 18:41:48 +0200 Subject: [PATCH 097/108] fix(YAML extension): avoid typo --- workspace/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workspace/Dockerfile b/workspace/Dockerfile index 4cbcf78f..47bd4adb 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -1395,7 +1395,7 @@ RUN if [ ${INSTALL_YAML} = true ]; then \ echo '' | pecl install yaml; \ fi \ && echo "extension=yaml.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/yaml.ini \ - && ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/yaml.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/35-yaml.ini; \ + && ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/yaml.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/35-yaml.ini \ ;fi ########################################################################### From 9317b71ebcb07b034dc6c8e9f775e800c2297344 Mon Sep 17 00:00:00 2001 From: Pavel Savushkin Date: Sun, 21 Mar 2021 18:46:47 +0200 Subject: [PATCH 098/108] fix(YAML extension): avoid typo --- php-fpm/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index 88784a92..27a839e0 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -843,7 +843,7 @@ RUN if [ ${INSTALL_YAML} = true ]; then \ echo '' | pecl install -a yaml-1.3.2; \ elif [ $(php -r "echo PHP_MAJOR_VERSION;") = "7" ] && [ $(php -r "echo PHP_MINOR_VERSION;") = "0" ]; then \ echo '' | pecl install yaml-2.0.4; \ - else + else \ echo '' | pecl install yaml; \ fi \ && docker-php-ext-enable yaml; \ From ad2b94fa60bff9271592f33152610d84d5b3db95 Mon Sep 17 00:00:00 2001 From: Pavel Savushkin Date: Sun, 21 Mar 2021 18:51:06 +0200 Subject: [PATCH 099/108] fix(YAML extension): avoid typo --- workspace/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workspace/Dockerfile b/workspace/Dockerfile index 47bd4adb..578a795b 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -1391,7 +1391,7 @@ RUN if [ ${INSTALL_YAML} = true ]; then \ echo '' | pecl install -a yaml-1.3.2; \ elif [ $(php -r "echo PHP_MAJOR_VERSION;") = "7" ] && [ $(php -r "echo PHP_MINOR_VERSION;") = "0" ]; then \ echo '' | pecl install yaml-2.0.4; \ - else + else \ echo '' | pecl install yaml; \ fi \ && echo "extension=yaml.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/yaml.ini \ From 5686c698e7afae651d1e0efddbdc3779ed3374eb Mon Sep 17 00:00:00 2001 From: Pavel Savushkin Date: Sun, 21 Mar 2021 19:21:34 +0200 Subject: [PATCH 100/108] fix(YAML extension): avoid typo --- php-fpm/Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index 27a839e0..980ad426 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -838,15 +838,15 @@ USER root ARG INSTALL_YAML=false RUN if [ ${INSTALL_YAML} = true ]; then \ - apt-get install libyaml-dev -y ; \ - if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \ + apt-get install -yqq libyaml-dev \ + && if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \ echo '' | pecl install -a yaml-1.3.2; \ elif [ $(php -r "echo PHP_MAJOR_VERSION;") = "7" ] && [ $(php -r "echo PHP_MINOR_VERSION;") = "0" ]; then \ echo '' | pecl install yaml-2.0.4; \ else \ echo '' | pecl install yaml; \ fi \ - && docker-php-ext-enable yaml; \ + && docker-php-ext-enable yaml \ ;fi ########################################################################### From e1d2d810995ab7bce53c855c0fb616d7f405df89 Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Mon, 22 Mar 2021 16:27:46 +0800 Subject: [PATCH 101/108] feat(fix swoole extension) | PHP 5.6 https://github.com/swoole/swoole-src/issues/2379#issuecomment-466613684 --- php-fpm/Dockerfile | 2 +- workspace/Dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index d44ab4f3..7f822691 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -304,7 +304,7 @@ RUN set -eux; \ if [ ${INSTALL_SWOOLE} = true ]; then \ # Install Php Swoole Extension if [ $(php -r "echo PHP_VERSION_ID - PHP_RELEASE_VERSION;") = "50600" ]; then \ - pecl install swoole-2.0.11; \ + pecl install swoole-2.0.10; \ elif [ $(php -r "echo PHP_VERSION_ID - PHP_RELEASE_VERSION;") = "70000" ]; then \ pecl install swoole-4.3.5; \ elif [ $(php -r "echo PHP_VERSION_ID - PHP_RELEASE_VERSION;") = "70100" ]; then \ diff --git a/workspace/Dockerfile b/workspace/Dockerfile index d675f109..ec089297 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -590,7 +590,7 @@ ARG INSTALL_SWOOLE=false RUN if [ ${INSTALL_SWOOLE} = true ]; then \ # Install Php Swoole Extension if [ $(php -r "echo PHP_VERSION_ID - PHP_RELEASE_VERSION;") = "50600" ]; then \ - pecl install swoole-2.0.11; \ + pecl install swoole-2.0.10; \ elif [ $(php -r "echo PHP_VERSION_ID - PHP_RELEASE_VERSION;") = "70000" ]; then \ pecl install swoole-4.3.5; \ elif [ $(php -r "echo PHP_VERSION_ID - PHP_RELEASE_VERSION;") = "70100" ]; then \ From bd9c1e52c069b4a413e6e4ddc9f67c83e2918611 Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Mon, 22 Mar 2021 16:43:30 +0800 Subject: [PATCH 102/108] feat(CI build skip V8JS) | workspace --- .github/workflows/main-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index 0a5ea227..03be7ae3 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -38,6 +38,7 @@ jobs: sed -i -- 's/MEMCACHED=true/MEMCACHED=false/g' .env sed -i -- 's/OCI8=true/OCI8=false/g' .env sed -i -- 's/IONCUBE=true/IONCUBE=false/g' .env + sed -i -- 's/V8JS=true/V8JS=false/g' .env docker-compose build ${{ matrix.service }} build-other: From 2e9ad09861c05b6251cfed5470eae6a5b244b5a0 Mon Sep 17 00:00:00 2001 From: Shao Yu Lung Date: Mon, 22 Mar 2021 18:34:44 +0800 Subject: [PATCH 103/108] feat(fix xmlrpc) | workspace --- workspace/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workspace/Dockerfile b/workspace/Dockerfile index ec089297..25f8647e 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -1521,7 +1521,7 @@ RUN if [ ${INSTALL_GIT_PROMPT} = true ]; then \ ARG INSTALL_XMLRPC=false RUN if [ ${INSTALL_XMLRPC} = true ]; then \ - docker-php-ext-install xmlrpc \ + apt-get install -yqq php${LARADOCK_PHP_VERSION}-xmlrpc \ ;fi ########################################################################### From 425c9c33b37abbadc430713240e61266e18e2002 Mon Sep 17 00:00:00 2001 From: Shao Yu Lung Date: Mon, 22 Mar 2021 20:07:39 +0800 Subject: [PATCH 104/108] remove duplidate apt-get update --- workspace/Dockerfile | 8 -------- 1 file changed, 8 deletions(-) diff --git a/workspace/Dockerfile b/workspace/Dockerfile index f930189d..17238f09 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -203,14 +203,6 @@ COPY ./crontab /etc/cron.d RUN chmod -R 644 /etc/cron.d -########################################################################### -# Update Repositories -########################################################################### - -USER root - -RUN apt-get -yqq update - ########################################################################### # Drush: ########################################################################### From 02070105f61330371b4ba0fd5dd14f4f40bb6777 Mon Sep 17 00:00:00 2001 From: Shao Yu Lung Date: Mon, 22 Mar 2021 21:24:18 +0800 Subject: [PATCH 105/108] feat(join some run step) | workspace --- workspace/Dockerfile | 329 ++++++++++++++++++------------------------- 1 file changed, 135 insertions(+), 194 deletions(-) diff --git a/workspace/Dockerfile b/workspace/Dockerfile index 17238f09..1da47888 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -240,121 +240,90 @@ RUN if [ ${INSTALL_WP_CLI} = true ]; then \ ;fi ########################################################################### -# BZ2: -########################################################################### - -ARG INSTALL_BZ2=false -RUN if [ ${INSTALL_BZ2} = true ]; then \ - apt-get -y install php${LARADOCK_PHP_VERSION}-bz2 \ -;fi - -########################################################################### -# GMP (GNU Multiple Precision): -########################################################################### - USER root +ARG INSTALL_BZ2=false ARG INSTALL_GMP=false +ARG INSTALL_GNUPG=false +ARG INSTALL_SSH2=false +ARG INSTALL_SOAP=false +ARG INSTALL_XSL=false ARG PHP_VERSION=${LARADOCK_PHP_VERSION} -RUN if [ ${INSTALL_GMP} = true ]; then \ - # Install the PHP GMP extension - apt-get -y install php${LARADOCK_PHP_VERSION}-gmp \ -;fi - -########################################################################### -# GnuPG: -########################################################################### - -ARG INSTALL_GNUPG=false - -RUN if [ ${INSTALL_GNUPG} = true ]; then \ - apt-get install -yqq php${LARADOCK_PHP_VERSION}-gnupg; \ +RUN set -eux; \ + ########################################################################### + # BZ2: + ########################################################################### + if [ ${INSTALL_BZ2} = true ]; then \ + apt-get -yqq install php${LARADOCK_PHP_VERSION}-bz2; \ + fi; \ + ########################################################################### + # GMP (GNU Multiple Precision): + ########################################################################### + if [ ${INSTALL_GMP} = true ]; then \ + # Install the PHP GMP extension + apt-get -yqq install php${LARADOCK_PHP_VERSION}-gmp; \ + fi; \ + ########################################################################### + # GnuPG: + ########################################################################### + if [ ${INSTALL_GNUPG} = true ]; then \ + apt-get -yqq install php${LARADOCK_PHP_VERSION}-gnupg; \ + fi; \ + ########################################################################### + # SSH2: + ########################################################################### + if [ ${INSTALL_SSH2} = true ]; then \ + # Install the PHP SSH2 extension + apt-get -yqq install libssh2-1-dev php${LARADOCK_PHP_VERSION}-ssh2; \ + fi; \ + ########################################################################### + # SOAP: + ########################################################################### + if [ ${INSTALL_SOAP} = true ]; then \ + # Install the PHP SOAP extension + apt-get -yqq install libxml2-dev php${LARADOCK_PHP_VERSION}-soap; \ + fi; \ + ########################################################################### + # XSL: + ########################################################################### + if [ ${INSTALL_XSL} = true ]; then \ + # Install the PHP XSL extension + apt-get -yqq install libxslt-dev php${LARADOCK_PHP_VERSION}-xsl; \ fi ########################################################################### -# SSH2: -########################################################################### - -USER root - -ARG INSTALL_SSH2=false - -RUN if [ ${INSTALL_SSH2} = true ]; then \ - # Install the PHP SSH2 extension - apt-get -y install libssh2-1-dev php${LARADOCK_PHP_VERSION}-ssh2 \ -;fi - -########################################################################### -# SOAP: -########################################################################### - -USER root - -ARG INSTALL_SOAP=false - -RUN if [ ${INSTALL_SOAP} = true ]; then \ - # Install the PHP SOAP extension - apt-get -y install libxml2-dev php${LARADOCK_PHP_VERSION}-soap \ -;fi - -########################################################################### -# XSL: -########################################################################### - -USER root - -ARG INSTALL_XSL=false - -RUN if [ ${INSTALL_XSL} = true ]; then \ - # Install the PHP XSL extension - apt-get -y install libxslt-dev php${LARADOCK_PHP_VERSION}-xsl \ -;fi - - -########################################################################### -# LDAP: -########################################################################### ARG INSTALL_LDAP=false - -RUN if [ ${INSTALL_LDAP} = true ]; then \ - apt-get install -y libldap2-dev && \ - apt-get install -y php${LARADOCK_PHP_VERSION}-ldap \ -;fi - -########################################################################### -# SMB: -########################################################################### - ARG INSTALL_SMB=false - -RUN if [ ${INSTALL_SMB} = true ]; then \ - apt-get install -y smbclient php-smbclient coreutils \ -;fi - -########################################################################### -# IMAP: -########################################################################### - ARG INSTALL_IMAP=false - -RUN if [ ${INSTALL_IMAP} = true ]; then \ - apt-get install -y php${LARADOCK_PHP_VERSION}-imap \ -;fi - -########################################################################### -# Subversion: -########################################################################### - -USER root - ARG INSTALL_SUBVERSION=false -RUN if [ ${INSTALL_SUBVERSION} = true ]; then \ - apt-get install -y subversion \ -;fi - +RUN set -eux; \ + ########################################################################### + # LDAP: + ########################################################################### + if [ ${INSTALL_LDAP} = true ]; then \ + apt-get install -yqq libldap2-dev php${LARADOCK_PHP_VERSION}-ldap; \ + fi; \ + ########################################################################### + # SMB: + ########################################################################### + if [ ${INSTALL_SMB} = true ]; then \ + apt-get install -yqq smbclient php-smbclient coreutils; \ + fi; \ + ########################################################################### + # IMAP: + ########################################################################### + if [ ${INSTALL_IMAP} = true ]; then \ + apt-get install -yqq php${LARADOCK_PHP_VERSION}-imap; \ + fi; \ + ########################################################################### + # Subversion: + ########################################################################### + if [ ${INSTALL_SUBVERSION} = true ]; then \ + apt-get install -yqq subversion; \ + fi ########################################################################### # xDebug: @@ -559,7 +528,7 @@ ARG INSTALL_GEARMAN=false RUN if [ ${INSTALL_GEARMAN} = true ]; then \ add-apt-repository -y ppa:ondrej/pkg-gearman && \ apt-get update && \ - apt-get install php-gearman -y \ + apt-get -yqq install php-gearman \ ;fi ########################################################################### @@ -569,7 +538,6 @@ RUN if [ ${INSTALL_GEARMAN} = true ]; then \ ARG INSTALL_PHPREDIS=false RUN if [ ${INSTALL_PHPREDIS} = true ]; then \ - apt-get update -yqq && \ apt-get install -yqq php${LARADOCK_PHP_VERSION}-redis \ ;fi @@ -619,8 +587,7 @@ RUN if [ "${INSTALL_TAINT}" = true ]; then \ ARG INSTALL_LIBPNG=false RUN if [ ${INSTALL_LIBPNG} = true ]; then \ - apt-get update && \ - apt-get install libpng16-16 \ + apt-get -yqq install libpng16-16 \ ;fi ########################################################################### @@ -680,8 +647,7 @@ RUN if [ ${INSTALL_FSWATCH} = true ]; then \ ARG INSTALL_GRAPHVIZ=false RUN if [ ${INSTALL_GRAPHVIZ} = true ]; then \ - apt-get update && \ - apt-get install -y graphviz \ + apt-get install -yqq graphviz \ ;fi # IonCube Loader @@ -1249,7 +1215,7 @@ USER root ARG INSTALL_TERRAFORM=false RUN if [ ${INSTALL_TERRAFORM} = true ]; then \ - apt-get -y install sudo wget unzip \ + apt-get -yqq install sudo wget unzip \ && wget https://releases.hashicorp.com/terraform/0.10.6/terraform_0.10.6_linux_amd64.zip \ && unzip terraform_0.10.6_linux_amd64.zip \ && mv terraform /usr/local/bin \ @@ -1265,7 +1231,7 @@ ARG INSTALL_PG_CLIENT=false RUN if [ ${INSTALL_PG_CLIENT} = true ]; then \ # Install the pgsql client - apt-get install wget \ + apt-get -yqq install wget \ && wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - \ && echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" | tee /etc/apt/sources.list.d/pgdg.list \ && apt-get update \ @@ -1307,7 +1273,7 @@ ARG LARADOCK_PHALCON_VERSION ENV LARADOCK_PHALCON_VERSION ${LARADOCK_PHALCON_VERSION} RUN if [ $INSTALL_PHALCON = true ]; then \ - apt-get update && apt-get install -y unzip libpcre3-dev gcc make re2c git automake autoconf\ + apt-get update && apt-get install -yqq unzip libpcre3-dev gcc make re2c git automake autoconf\ && git clone https://github.com/jbboehr/php-psr.git \ && cd php-psr \ && phpize \ @@ -1326,106 +1292,81 @@ RUN if [ $INSTALL_PHALCON = true ]; then \ ;fi ########################################################################### -# MySQL Client: -########################################################################### - USER root ARG INSTALL_MYSQL_CLIENT=false - -RUN if [ ${INSTALL_MYSQL_CLIENT} = true ]; then \ - apt-get update -yqq && \ - apt-get -y install mysql-client \ -;fi - -########################################################################### -# ping: -########################################################################### - -USER root - ARG INSTALL_PING=false - -RUN if [ ${INSTALL_PING} = true ]; then \ - apt-get update -yqq && \ - apt-get -y install inetutils-ping \ -;fi - -########################################################################### -# sshpass: -########################################################################### - -USER root - ARG INSTALL_SSHPASS=false - -RUN if [ ${INSTALL_SSHPASS} = true ]; then \ - apt-get update -yqq && \ - apt-get -y install sshpass \ -;fi - -########################################################################### -# Docker Client: -########################################################################### - -USER root - ARG INSTALL_DOCKER_CLIENT=false -RUN if [ ${INSTALL_DOCKER_CLIENT} = true ]; then \ - curl -sS https://download.docker.com/linux/static/stable/x86_64/docker-20.10.3.tgz -o /tmp/docker.tar.gz && \ - tar -xzf /tmp/docker.tar.gz -C /tmp/ && \ - cp /tmp/docker/docker* /usr/local/bin && \ - chmod +x /usr/local/bin/docker* \ -;fi +RUN set -eux; \ + ########################################################################### + # MySQL Client: + ########################################################################### + if [ ${INSTALL_MYSQL_CLIENT} = true ]; then \ + apt-get -yqq install mysql-client; \ + fi; \ + ########################################################################### + # ping: + ########################################################################### + if [ ${INSTALL_PING} = true ]; then \ + apt-get -yqq install inetutils-ping; \ + fi; \ + ########################################################################### + # sshpass: + ########################################################################### + if [ ${INSTALL_SSHPASS} = true ]; then \ + apt-get -yqq install sshpass; \ + fi; \ + ########################################################################### + # Docker Client: + ########################################################################### + if [ ${INSTALL_DOCKER_CLIENT} = true ]; then \ + curl -sS https://download.docker.com/linux/static/stable/x86_64/docker-20.10.3.tgz -o /tmp/docker.tar.gz; \ + tar -xzf /tmp/docker.tar.gz -C /tmp/; \ + cp /tmp/docker/docker* /usr/local/bin; \ + chmod +x /usr/local/bin/docker*; \ + fi ########################################################################### -# YAML: extension for PHP-CLI -########################################################################### - USER root ARG INSTALL_YAML=false +ARG INSTALL_RDKAFKA=false +ARG INSTALL_FFMPEG=false -RUN if [ ${INSTALL_YAML} = true ]; then \ - apt-get install libyaml-dev -y ; \ - if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \ +RUN set -eux; \ + ########################################################################### + # YAML: extension for PHP-CLI + ########################################################################### + if [ ${INSTALL_YAML} = true ]; then \ + apt-get install -yqq libyaml-dev; \ + if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \ echo '' | pecl install -a yaml-1.3.2; \ elif [ $(php -r "echo PHP_MAJOR_VERSION;") = "7" ] && [ $(php -r "echo PHP_MINOR_VERSION;") = "0" ]; then \ echo '' | pecl install yaml-2.0.4; \ else \ echo '' | pecl install yaml; \ - fi \ - && echo "extension=yaml.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/yaml.ini \ - && ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/yaml.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/35-yaml.ini \ -;fi - -########################################################################### -# RDKAFKA: -########################################################################### - -ARG INSTALL_RDKAFKA=false - -RUN if [ ${INSTALL_RDKAFKA} = true ]; then \ - apt-get install -y librdkafka-dev && \ - pecl install rdkafka && \ - echo "extension=rdkafka.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/rdkafka.ini && \ - ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/rdkafka.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/20-rdkafka.ini \ - && php -m | grep -q 'rdkafka' \ -;fi - -########################################################################### -# FFMpeg: -########################################################################### - -USER root - -ARG INSTALL_FFMPEG=false - -RUN if [ ${INSTALL_FFMPEG} = true ]; then \ - apt-get -y install ffmpeg \ -;fi - + fi; \ + echo "extension=yaml.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/yaml.ini; \ + ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/yaml.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/35-yaml.ini; \ + fi; \ + ########################################################################### + # RDKAFKA: + ########################################################################### + if [ ${INSTALL_RDKAFKA} = true ]; then \ + apt-get install -yqq librdkafka-dev; \ + pecl install rdkafka; \ + echo "extension=rdkafka.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/rdkafka.ini; \ + ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/rdkafka.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/20-rdkafka.ini; \ + php -m | grep -q 'rdkafka'; \ + fi; \ + ########################################################################### + # FFMpeg: + ########################################################################### + if [ ${INSTALL_FFMPEG} = true ]; then \ + apt-get -yqq install ffmpeg; \ + fi ########################################################################### # BBC Audio Waveform Image Generator: @@ -1494,7 +1435,7 @@ USER root ARG INSTALL_GNU_PARALLEL=false RUN if [ ${INSTALL_GNU_PARALLEL} = true ]; then \ - apt-get -y install parallel \ + apt-get -yqq install parallel \ ;fi ########################################################################### @@ -1528,7 +1469,7 @@ RUN if [ ${INSTALL_XMLRPC} = true ]; then \ ARG INSTALL_LNAV=false RUN if [ ${INSTALL_LNAV} = true ]; then \ - apt-get install -y lnav \ + apt-get install -yqq lnav \ ;fi ########################################################################### From 08e7450f46fb50b20dfdb3de6fadb79856d106ac Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Tue, 23 Mar 2021 00:11:08 +0800 Subject: [PATCH 106/108] fix typo --- workspace/Dockerfile | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/workspace/Dockerfile b/workspace/Dockerfile index 1da47888..3d534f52 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -547,7 +547,8 @@ RUN if [ ${INSTALL_PHPREDIS} = true ]; then \ ARG INSTALL_SWOOLE=false -RUN if [ ${INSTALL_SWOOLE} = true ]; then \ +RUN set -eux; \ + if [ ${INSTALL_SWOOLE} = true ]; then \ # Install Php Swoole Extension if [ $(php -r "echo PHP_VERSION_ID - PHP_RELEASE_VERSION;") = "50600" ]; then \ pecl install swoole-2.0.10; \ @@ -558,11 +559,10 @@ RUN if [ ${INSTALL_SWOOLE} = true ]; then \ else \ pecl install swoole; \ fi; \ - fi; \ - echo "extension=swoole.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/swoole.ini && \ - ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/swoole.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/20-swoole.ini \ - && php -m | grep -q 'swoole' \ -;fi + echo "extension=swoole.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/swoole.ini; \ + ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/swoole.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/20-swoole.ini; \ + php -m | grep -q 'swoole'; \ + fi ########################################################################### # Taint EXTENSION From cffdc7588ed72ed8834f04955163a73a61916d27 Mon Sep 17 00:00:00 2001 From: Pavel Savushkin Date: Mon, 22 Mar 2021 21:34:34 +0200 Subject: [PATCH 107/108] feat(MSSQL extension): add MSSQL extension support MSSQL extension should be supported on the all available versions. --- .github/workflows/main-ci.yml | 1 - php-fpm/Dockerfile | 11 ++++++----- workspace/Dockerfile | 22 ++++++++++++---------- 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index 8fae1b4f..0bb078da 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -33,7 +33,6 @@ jobs: sed -i -- 's/PHALCON=true/PHALCON=false/g' .env sed -i -- 's/RDKAFKA=true/RDKAFKA=false/g' .env sed -i -- 's/MAILPARSE=true/MAILPARSE=false/g' .env - sed -i -- 's/MSSQL=true/MSSQL=false/g' .env sed -i -- 's/MEMCACHED=true/MEMCACHED=false/g' .env sed -i -- 's/OCI8=true/OCI8=false/g' .env sed -i -- 's/IONCUBE=true/IONCUBE=false/g' .env diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index 65d69651..6b9eaded 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -698,7 +698,7 @@ ARG INSTALL_MSSQL=false RUN set -eux; \ if [ ${INSTALL_MSSQL} = true ]; then \ if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \ - apt-get -y install freetds-dev libsybdb5 \ + apt-get -yqq install freetds-dev libsybdb5 \ && ln -s /usr/lib/x86_64-linux-gnu/libsybdb.so /usr/lib/libsybdb.so \ && docker-php-ext-install mssql pdo_dblib \ && php -m | grep -q 'mssql' \ @@ -712,14 +712,15 @@ RUN set -eux; \ && curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \ && curl https://packages.microsoft.com/config/debian/9/prod.list > /etc/apt/sources.list.d/mssql-release.list \ && apt-get update -yqq \ - # Install Dependencies && ACCEPT_EULA=Y apt-get install -yqq unixodbc unixodbc-dev libgss3 odbcinst msodbcsql17 locales \ && echo "en_US.UTF-8 UTF-8" > /etc/locale.gen \ - # link local aliases && ln -sfn /etc/locale.alias /usr/share/locale/locale.alias \ && locale-gen \ - # Install pdo_sqlsrv and sqlsrv from PECL. Replace pdo_sqlsrv-4.1.8preview with preferred version. - && if [ $(php -r "echo PHP_MINOR_VERSION;") = "0" ]; then \ + && if [ $(php -r "echo PHP_MAJOR_VERSION;") = "7" ] && [ $(php -r "echo PHP_MINOR_VERSION;") = "2" ]; then \ + pecl install pdo_sqlsrv-5.8.1 sqlsrv-5.8.1 \ + ;elif [ $(php -r "echo PHP_MAJOR_VERSION;") = "7" ] && [ $(php -r "echo PHP_MINOR_VERSION;") = "1" ]; then \ + pecl install pdo_sqlsrv-5.6.1 sqlsrv-5.6.1 \ + ;elif [ $(php -r "echo PHP_MAJOR_VERSION;") = "7" ] && [ $(php -r "echo PHP_MINOR_VERSION;") = "0" ]; then \ pecl install pdo_sqlsrv-5.3.0 sqlsrv-5.3.0 \ ;else \ pecl install pdo_sqlsrv sqlsrv \ diff --git a/workspace/Dockerfile b/workspace/Dockerfile index 1da47888..4fe26f1e 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -1040,7 +1040,7 @@ ARG INSTALL_MSSQL=false RUN set -eux; \ if [ ${INSTALL_MSSQL} = true ]; then \ if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \ - apt-get -y install php5.6-sybase freetds-bin freetds-common libsybdb5 \ + apt-get install -yqq php5.6-sybase freetds-bin freetds-common libsybdb5 \ && php -m | grep -q 'mssql' \ && php -m | grep -q 'pdo_dblib' \ ;else \ @@ -1051,22 +1051,24 @@ RUN set -eux; \ curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - && \ curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list && \ apt-get update -yqq && \ - ACCEPT_EULA=Y apt-get install -y msodbcsql17 mssql-tools unixodbc unixodbc-dev libgss3 odbcinst locales && \ + ACCEPT_EULA=Y apt-get install -yqq msodbcsql17 mssql-tools unixodbc unixodbc-dev libgss3 odbcinst locales && \ ln -sfn /opt/mssql-tools/bin/sqlcmd /usr/bin/sqlcmd && \ ln -sfn /opt/mssql-tools/bin/bcp /usr/bin/bcp && \ echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \ locale-gen && \ - if [ $(php -r "echo PHP_VERSION_ID - PHP_RELEASE_VERSION;") = "70000" ]; then \ - pecl install sqlsrv-5.3.0 pdo_sqlsrv-5.3.0 \ - ;elif [ $(php -r "echo PHP_VERSION_ID - PHP_RELEASE_VERSION;") = "70100" ]; then \ - pecl install sqlsrv-5.6.1 pdo_sqlsrv-5.6.1 \ + if [ $(php -r "echo PHP_MAJOR_VERSION;") = "7" ] && [ $(php -r "echo PHP_MINOR_VERSION;") = "2" ]; then \ + pecl install pdo_sqlsrv-5.8.1 sqlsrv-5.8.1 \ + ;elif [ $(php -r "echo PHP_MAJOR_VERSION;") = "7" ] && [ $(php -r "echo PHP_MINOR_VERSION;") = "1" ]; then \ + pecl install pdo_sqlsrv-5.6.1 sqlsrv-5.6.1 \ + ;elif [ $(php -r "echo PHP_MAJOR_VERSION;") = "7" ] && [ $(php -r "echo PHP_MINOR_VERSION;") = "0" ]; then \ + pecl install pdo_sqlsrv-5.3.0 sqlsrv-5.3.0 \ ;else \ - pecl install sqlsrv pdo_sqlsrv \ + pecl install pdo_sqlsrv sqlsrv \ ;fi && \ echo "extension=sqlsrv.so" > /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/20-sqlsrv.ini && \ - echo "extension=pdo_sqlsrv.so" > /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/20-pdo_sqlsrv.ini \ - && php -m | grep -q 'sqlsrv' \ - && php -m | grep -q 'pdo_sqlsrv' \ + echo "extension=pdo_sqlsrv.so" > /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/20-pdo_sqlsrv.ini && \ + php -m | grep -q 'sqlsrv' && \ + php -m | grep -q 'pdo_sqlsrv' \ ;fi \ ;fi From 0ee74f95ca6dcf0f90c81aacb8ec8541788503a2 Mon Sep 17 00:00:00 2001 From: Pavel Savushkin Date: Tue, 23 Mar 2021 01:29:38 +0200 Subject: [PATCH 108/108] fix(GD extension): add GD extension installed for PHP 8.0 --- laravel-horizon/Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/laravel-horizon/Dockerfile b/laravel-horizon/Dockerfile index e35e81e2..0d48203d 100644 --- a/laravel-horizon/Dockerfile +++ b/laravel-horizon/Dockerfile @@ -78,10 +78,10 @@ RUN set -eux; if [ ${INSTALL_GNUPG} = true ]; then \ ARG INSTALL_GD=false RUN if [ ${INSTALL_GD} = true ]; then \ apk add --update --no-cache freetype-dev libjpeg-turbo-dev jpeg-dev libpng-dev; \ - if [ ${LARADOCK_PHP_VERSION} = "7.4" ]; then \ - docker-php-ext-configure gd --with-freetype --with-jpeg; \ + if [ $(php -r "echo PHP_VERSION_ID - PHP_RELEASE_VERSION;") = "80000" ] || [ $(php -r "echo PHP_VERSION_ID - PHP_RELEASE_VERSION;") = "70400" ]; then \ + docker-php-ext-configure gd --with-freetype --with-jpeg; \ else \ - docker-php-ext-configure gd --with-freetype-dir=/usr/lib/ --with-jpeg-dir=/usr/lib/ --with-png-dir=/usr/lib/; \ + docker-php-ext-configure gd --with-freetype-dir=/usr/lib/ --with-jpeg-dir=/usr/lib/ --with-png-dir=/usr/lib/; \ fi && \ docker-php-ext-install gd \ ;fi