From 89051de67daba1825bad9dff8c9e31cf796131e1 Mon Sep 17 00:00:00 2001 From: Youri Westerman Date: Tue, 21 Aug 2018 12:41:34 +0700 Subject: [PATCH 1/9] This developer needed to turn back the clock in the PHP-FPM container, you will not believe what he did next! (#1675) * Added documentation for installing libfaketime in the php-fpm container * Enabled installing and using libfaketime system-wide inside the php-fpm container --- DOCUMENTATION/content/documentation/index.md | 23 ++++++++++++++++++++ docker-compose.yml | 2 ++ env-example | 2 ++ php-fpm/Dockerfile | 18 +++++++++++++++ 4 files changed, 45 insertions(+) diff --git a/DOCUMENTATION/content/documentation/index.md b/DOCUMENTATION/content/documentation/index.md index 73e5990b..9370110e 100644 --- a/DOCUMENTATION/content/documentation/index.md +++ b/DOCUMENTATION/content/documentation/index.md @@ -1499,10 +1499,33 @@ e) set it to `true` 3 - Set it to `true`
4 - Re-build the containers `docker-compose build php-fpm` +
+
+ +## Install libfaketime in the php-fpm container +Libfaketime allows you to control the date and time that is returned from the operating system. +It can be used by specifying a special string in the `PHP_FPM_FAKETIME` variable in the `.env` file. +For example: +`PHP_FPM_FAKETIME=-1d` +will set the clock back 1 day. See (https://github.com/wolfcw/libfaketime) for more information. + +1 - Open the `.env` file +
+2 - Search for the `PHP_FPM_INSTALL_FAKETIME` argument under the PHP-FPM container +
+3 - Set it to `true` +
+4 - Search for the `PHP_FPM_FAKETIME` argument under the PHP-FPM container +
+5 - Set it to the desired string +
+6 - Re-build the containers `docker-compose build php-fpm`
+ +
diff --git a/docker-compose.yml b/docker-compose.yml index e1a6f18c..dd595843 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -144,6 +144,7 @@ services: - INSTALL_IMAGE_OPTIMIZERS=${PHP_FPM_INSTALL_IMAGE_OPTIMIZERS} - INSTALL_IMAGEMAGICK=${PHP_FPM_INSTALL_IMAGEMAGICK} - INSTALL_CALENDAR=${PHP_FPM_INSTALL_CALENDAR} + - INSTALL_FAKETIME=${PHP_FPM_INSTALL_FAKETIME} volumes: - ./php-fpm/php${PHP_VERSION}.ini:/usr/local/etc/php/php.ini - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER} @@ -154,6 +155,7 @@ services: environment: - PHP_IDE_CONFIG=${PHP_IDE_CONFIG} - DOCKER_HOST=tcp://docker-in-docker:2375 + - FAKETIME=${PHP_FPM_FAKETIME} depends_on: - workspace networks: diff --git a/env-example b/env-example index 15f55b8d..bad6e1d1 100644 --- a/env-example +++ b/env-example @@ -149,6 +149,8 @@ PHP_FPM_INSTALL_SWOOLE=false PHP_FPM_INSTALL_PG_CLIENT=false PHP_FPM_INSTALL_PCNTL=false PHP_FPM_INSTALL_CALENDAR=false +PHP_FPM_INSTALL_FAKETIME=false +PHP_FPM_FAKETIME=-0 ### PHP_WORKER ############################################ diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index 2fb86df8..71586807 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -485,6 +485,18 @@ RUN if [ ${INSTALL_CALENDAR} = true ]; then \ docker-php-ext-install calendar \ ;fi +########################################################################### +# libfaketime: +########################################################################### + +USER root + +ARG INSTALL_FAKETIME=false + +RUN if [ ${INSTALL_FAKETIME} = true ]; then \ + apt-get install -y libfaketime \ +;fi + ########################################################################### # Check PHP version: ########################################################################### @@ -509,6 +521,12 @@ RUN apt-get clean && \ RUN usermod -u 1000 www-data +# Adding the faketime library to the preload file needs to be done last +# otherwise it will preload it for all commands that follow in this file +RUN if [ ${INSTALL_FAKETIME} = true ]; then \ + echo "/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1" > /etc/ld.so.preload \ +;fi + WORKDIR /var/www CMD ["php-fpm"] From b788a8bbfda5395ad7a42f5607c7d9a68ea3e837 Mon Sep 17 00:00:00 2001 From: ahkui <14049597+ahkui@users.noreply.github.com> Date: Tue, 21 Aug 2018 13:49:56 +0800 Subject: [PATCH 2/9] Add Web Based IDEs (#1705) Add Web Based IDEs: Theia, WebIDE, Codaid, IceCoder. --- docker-compose.yml | 56 +++++++++++++++++++++++++++++++++++++++++ env-example | 6 +++++ ide-codiad/Dockerfile | 5 ++++ ide-codiad/config.php | 43 +++++++++++++++++++++++++++++++ ide-icecoder/Dockerfile | 21 ++++++++++++++++ ide-theia/Dockerfile | 5 ++++ ide-webide/Dockerfile | 3 +++ 7 files changed, 139 insertions(+) create mode 100644 ide-codiad/Dockerfile create mode 100644 ide-codiad/config.php create mode 100644 ide-icecoder/Dockerfile create mode 100644 ide-theia/Dockerfile create mode 100644 ide-webide/Dockerfile diff --git a/docker-compose.yml b/docker-compose.yml index dd595843..9541eb49 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -891,3 +891,59 @@ services: networks: - backend +### IDE-THEIA ################################################ + ide-theia: + build: + context: ./ide-theia + volumes: + - ${APP_CODE_PATH_HOST}:/home/project + ports: + - "${IDE_THEIA_PORT}:3000" + networks: + - backend + +### IDE-WEBIDE ################################################ + ide-webide: + build: + context: ./ide-webide + volumes: + - ${DATA_PATH_HOST}/ide/webide/ide.db:/root/.coding-ide/ide.db + ports: + - "${IDE_WEBIDE_PORT}:8080" + networks: + - backend + +### IDE-CODIAD ################################################ + ide-codiad: + build: + context: ./ide-codiad + environment: + - APP_CODE_PATH_CONTAINER=${APP_CODE_PATH_CONTAINER} + - TZ=${WORKSPACE_TIMEZONE} + - PGID=1000 + - PUID=1000 + volumes: + - /etc/localtime:/etc/localtime:ro + - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER} + - ${DATA_PATH_HOST}/ide/codiad:/config + ports: + - "${IDE_CODIAD_PORT}:80" + networks: + - backend + +### IDE-ICECODER ################################################ + ide-icecoder: + build: + context: ./ide-icecoder + environment: + - DOCUMENT_ROOT=${APP_CODE_PATH_CONTAINER} + - TZ=${WORKSPACE_TIMEZONE} + - PGID=1000 + - PUID=1000 + volumes: + - /etc/localtime:/etc/localtime:ro + - ${APP_CODE_PATH_HOST}:/home/laradock/ICEcoder/dev + ports: + - "${IDE_ICECODER_PORT}:8080" + networks: + - backend diff --git a/env-example b/env-example index bad6e1d1..0b727829 100644 --- a/env-example +++ b/env-example @@ -411,3 +411,9 @@ MONGO_WEBUI_INSTALL_MONGO=false METABASE_PORT=3030 METABASE_DB_FILE=metabase.db METABASE_JAVA_TIMEZONE=US/Pacific + +### IDE ############################################### +IDE_THEIA_PORT=987 +IDE_WEBIDE_PORT=984 +IDE_CODIAD_PORT=985 +IDE_ICECODER_PORT=986 diff --git a/ide-codiad/Dockerfile b/ide-codiad/Dockerfile new file mode 100644 index 00000000..583e75dc --- /dev/null +++ b/ide-codiad/Dockerfile @@ -0,0 +1,5 @@ +FROM linuxserver/codiad + +LABEL maintainer="ahkui " + +COPY config.php /defaults/config.php diff --git a/ide-codiad/config.php b/ide-codiad/config.php new file mode 100644 index 00000000..acd43941 --- /dev/null +++ b/ide-codiad/config.php @@ -0,0 +1,43 @@ + \ No newline at end of file diff --git a/ide-icecoder/Dockerfile b/ide-icecoder/Dockerfile new file mode 100644 index 00000000..a58ec677 --- /dev/null +++ b/ide-icecoder/Dockerfile @@ -0,0 +1,21 @@ +FROM php:alpine + +LABEL maintainer="ahkui " + +ARG PUID=1000 +ENV PUID ${PUID} +ARG PGID=1000 +ENV PGID ${PGID} + +RUN apk add --no-cache git + +RUN addgroup -g $PGID -S laradock && \ + adduser -u $PUID -S laradock -G laradock + +USER laradock + +RUN cd /home/laradock && git clone https://github.com/mattpass/ICEcoder.git + +WORKDIR /home/laradock/ICEcoder + +CMD ["php","-S","0.0.0.0:8080"] diff --git a/ide-theia/Dockerfile b/ide-theia/Dockerfile new file mode 100644 index 00000000..39f2c1b6 --- /dev/null +++ b/ide-theia/Dockerfile @@ -0,0 +1,5 @@ +FROM theiaide/theia + +LABEL maintainer="ahkui " + +RUN echo 'fs.inotify.max_user_watches=524288' >> /etc/sysctl.conf \ No newline at end of file diff --git a/ide-webide/Dockerfile b/ide-webide/Dockerfile new file mode 100644 index 00000000..257b50a7 --- /dev/null +++ b/ide-webide/Dockerfile @@ -0,0 +1,3 @@ +FROM webide/webide + +LABEL maintainer="ahkui " From aa84dd861636e191463fe009267a8365e0100cfe Mon Sep 17 00:00:00 2001 From: vladyslavstartsev Date: Tue, 21 Aug 2018 14:01:12 +0300 Subject: [PATCH 3/9] added ext-gmp to workspace container (#1762) --- docker-compose.yml | 1 + env-example | 1 + workspace/Dockerfile | 14 ++++++++++++++ 3 files changed, 16 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index 9541eb49..aa7badf1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -52,6 +52,7 @@ services: - INSTALL_XDEBUG=${WORKSPACE_INSTALL_XDEBUG} - INSTALL_PHPDBG=${WORKSPACE_INSTALL_PHPDBG} - INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE} + - INSTALL_GMP=${WORKSPACE_INSTALL_GMP} - INSTALL_SOAP=${WORKSPACE_INSTALL_SOAP} - INSTALL_LDAP=${WORKSPACE_INSTALL_LDAP} - INSTALL_IMAP=${WORKSPACE_INSTALL_IMAP} diff --git a/env-example b/env-example index 0b727829..6378c0b6 100644 --- a/env-example +++ b/env-example @@ -89,6 +89,7 @@ WORKSPACE_INSTALL_SUBVERSION=false WORKSPACE_INSTALL_XDEBUG=false WORKSPACE_INSTALL_PHPDBG=false WORKSPACE_INSTALL_LDAP=false +WORKSPACE_INSTALL_GMP=false WORKSPACE_INSTALL_SOAP=false WORKSPACE_INSTALL_IMAP=false WORKSPACE_INSTALL_MONGO=false diff --git a/workspace/Dockerfile b/workspace/Dockerfile index 2a639f11..0030d953 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -180,6 +180,20 @@ RUN if [ ${INSTALL_DRUSH} = true ]; then \ USER root +ARG INSTALL_GMP=false +ARG PHP_VERSION=${PHP_VERSION} + +RUN if [ ${INSTALL_GMP} = true ]; then \ + # Install the PHP SOAP extension + apt-get -y install php${PHP_VERSION}-gmp \ +;fi + +########################################################################### +# SOAP: +########################################################################### + +USER root + ARG INSTALL_SOAP=false RUN if [ ${INSTALL_SOAP} = true ]; then \ From 947a791ad2feb8e42f49325d9ca3f06db3451420 Mon Sep 17 00:00:00 2001 From: ahkui <14049597+ahkui@users.noreply.github.com> Date: Sun, 26 Aug 2018 16:02:55 +0800 Subject: [PATCH 4/9] Auto reload caddy and add basicauth example (#1706) * add live reload and basicauth --- caddy/Dockerfile | 8 +++++--- caddy/{ => caddy}/Caddyfile | 5 +++++ caddy/caddy/authlist.conf | 1 + docker-compose.yml | 2 +- env-example | 2 +- 5 files changed, 13 insertions(+), 5 deletions(-) rename caddy/{ => caddy}/Caddyfile (93%) create mode 100644 caddy/caddy/authlist.conf diff --git a/caddy/Dockerfile b/caddy/Dockerfile index 5603e3a1..06dc4901 100644 --- a/caddy/Dockerfile +++ b/caddy/Dockerfile @@ -6,12 +6,14 @@ ARG plugins="cors" ## ARG plugins="cors cgi cloudflare azure linode" - RUN caddyplug install ${plugins} - + +RUN apk add --no-cache inotify-tools \ + && echo -e "#!/bin/sh\nwhile inotifywait -e modify /etc/caddy; do\n\tpkill caddy\ndone " >> /start.sh \ + && chmod +x /start.sh EXPOSE 80 443 2015 WORKDIR /var/www/public -CMD ["/usr/bin/caddy", "-conf", "/etc/Caddyfile","-agree"] +CMD ["sh","-c","/start.sh & /usr/bin/caddy -conf /etc/caddy/Caddyfile -agree"] diff --git a/caddy/Caddyfile b/caddy/caddy/Caddyfile similarity index 93% rename from caddy/Caddyfile rename to caddy/caddy/Caddyfile index b563fb15..1848d346 100644 --- a/caddy/Caddyfile +++ b/caddy/caddy/Caddyfile @@ -44,3 +44,8 @@ laradock2.demo:80 { #proxy domain.com #cors } + +laradock3.demo:80 { + import authlist.conf + root /var/www/public +} \ No newline at end of file diff --git a/caddy/caddy/authlist.conf b/caddy/caddy/authlist.conf new file mode 100644 index 00000000..651bf55e --- /dev/null +++ b/caddy/caddy/authlist.conf @@ -0,0 +1 @@ +basicauth / laradock laradock diff --git a/docker-compose.yml b/docker-compose.yml index aa7badf1..920f57d9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -471,7 +471,7 @@ services: build: ./caddy volumes: - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER} - - ${CADDY_CUSTOM_CADDYFILE}:/etc/Caddyfile + - ${CADDY_CONFIG_PATH}:/etc/caddy - ${CADDY_HOST_LOG_PATH}:/var/log/caddy - ${DATA_PATH_HOST}:/root/.caddy ports: diff --git a/env-example b/env-example index 6378c0b6..c851395c 100644 --- a/env-example +++ b/env-example @@ -355,7 +355,7 @@ MONGODB_PORT=27017 CADDY_HOST_HTTP_PORT=80 CADDY_HOST_HTTPS_PORT=443 CADDY_HOST_LOG_PATH=./logs/caddy -CADDY_CUSTOM_CADDYFILE=./caddy/Caddyfile +CADDY_CONFIG_PATH=./caddy/caddy ### LARAVEL ECHO SERVER ################################### From 39469e1404172d2d833b9eb9f0fb4665624815df Mon Sep 17 00:00:00 2001 From: vladyslavstartsev Date: Tue, 28 Aug 2018 09:16:25 +0300 Subject: [PATCH 5/9] added ssh2 to workspace and php-fpm (#1756) --- docker-compose.yml | 2 ++ env-example | 2 ++ php-fpm/Dockerfile | 17 +++++++++++++++++ workspace/Dockerfile | 13 +++++++++++++ 4 files changed, 34 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index 920f57d9..61f261b9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -52,6 +52,7 @@ services: - INSTALL_XDEBUG=${WORKSPACE_INSTALL_XDEBUG} - INSTALL_PHPDBG=${WORKSPACE_INSTALL_PHPDBG} - INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE} + - INSTALL_SSH2=${WORKSPACE_INSTALL_SSH2} - INSTALL_GMP=${WORKSPACE_INSTALL_GMP} - INSTALL_SOAP=${WORKSPACE_INSTALL_SOAP} - INSTALL_LDAP=${WORKSPACE_INSTALL_LDAP} @@ -120,6 +121,7 @@ services: - INSTALL_XDEBUG=${PHP_FPM_INSTALL_XDEBUG} - INSTALL_PHPDBG=${PHP_FPM_INSTALL_PHPDBG} - INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE} + - INSTALL_SSH2=${PHP_FPM_INSTALL_SSH2} - INSTALL_SOAP=${PHP_FPM_INSTALL_SOAP} - INSTALL_IMAP=${PHP_FPM_INSTALL_IMAP} - INSTALL_MONGO=${PHP_FPM_INSTALL_MONGO} diff --git a/env-example b/env-example index c851395c..6089cdcd 100644 --- a/env-example +++ b/env-example @@ -88,6 +88,7 @@ WORKSPACE_INSTALL_WORKSPACE_SSH=false WORKSPACE_INSTALL_SUBVERSION=false WORKSPACE_INSTALL_XDEBUG=false WORKSPACE_INSTALL_PHPDBG=false +WORKSPACE_INSTALL_SSH2=false WORKSPACE_INSTALL_LDAP=false WORKSPACE_INSTALL_GMP=false WORKSPACE_INSTALL_SOAP=false @@ -139,6 +140,7 @@ PHP_FPM_INSTALL_IMAP=false PHP_FPM_INSTALL_MONGO=false PHP_FPM_INSTALL_AMQP=false PHP_FPM_INSTALL_MSSQL=false +PHP_FPM_INSTALL_SSH2=false PHP_FPM_INSTALL_SOAP=false PHP_FPM_INSTALL_GMP=false PHP_FPM_INSTALL_EXIF=false diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index 71586807..e1b4c45f 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -50,6 +50,23 @@ RUN apt-get update -yqq && \ # - INSTALL_ZIP_ARCHIVE=true # +########################################################################### +# SSH2: +########################################################################### + +ARG INSTALL_SSH2=false + +RUN if [ ${INSTALL_SSH2} = true ]; then \ + # Install the ssh2 extension + apt-get -y install libssh2-1-dev && \ + if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \ + pecl install -a ssh2-0.13; \ + else \ + pecl install -a ssh2-1.1.2; \ + fi && \ + docker-php-ext-enable ssh2 \ +;fi + ########################################################################### # SOAP: ########################################################################### diff --git a/workspace/Dockerfile b/workspace/Dockerfile index 0030d953..37f1fb1b 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -174,6 +174,19 @@ RUN if [ ${INSTALL_DRUSH} = true ]; then \ drush core-status \ ;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: ########################################################################### From 2e2cb6df227aef83285e627bada59320606674da Mon Sep 17 00:00:00 2001 From: Tatamo Date: Fri, 31 Aug 2018 21:19:52 +0900 Subject: [PATCH 6/9] Enable `docker-compose exec workspace npm` (and yarn, etc.) (#1743) * fix node PATH to enable docker-compose exec workspace npm * add PATH for yarn to enable docker-compose exec workspace yarn --- workspace/Dockerfile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/workspace/Dockerfile b/workspace/Dockerfile index 37f1fb1b..dd22fef3 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -448,6 +448,7 @@ RUN if [ ${INSTALL_NODE} = true ]; then \ && if [ ${INSTALL_NPM_VUE_CLI} = true ]; then \ npm install -g @vue/cli \ ;fi \ + && ln -s `npm bin --global` /home/laradock/.node-bin \ ;fi # Wouldn't execute when added to the RUN statement in the above block @@ -468,7 +469,7 @@ RUN if [ ${INSTALL_NODE} = true ]; then \ ;fi # Add PATH for node -ENV PATH $PATH:$NVM_DIR/versions/node/v${NODE_VERSION}/bin +ENV PATH $PATH:/home/laradock/.node-bin RUN if [ ${NPM_REGISTRY} ]; then \ . ~/.bashrc && npm config set registry ${NPM_REGISTRY} \ @@ -504,6 +505,9 @@ RUN if [ ${INSTALL_YARN} = true ]; then \ echo 'export PATH="$YARN_DIR/bin:$PATH"' >> ~/.bashrc \ ;fi +# Add PATH for YARN +ENV PATH $PATH:/home/laradock/.yarn/bin + ########################################################################### # PHP Aerospike: ########################################################################### From 902198ab05cd5e6f90c2f9bdd389ca2266a30f30 Mon Sep 17 00:00:00 2001 From: tadaken3 Date: Sat, 8 Sep 2018 20:42:58 +0900 Subject: [PATCH 7/9] fix application path (#1781) * fix application path In the "env.sample" , "APP_CODE_PATH_HOST" was written. I fixed Documentation. --- DOCUMENTATION/content/getting-started/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DOCUMENTATION/content/getting-started/index.md b/DOCUMENTATION/content/getting-started/index.md index bca083e6..a067fa30 100644 --- a/DOCUMENTATION/content/getting-started/index.md +++ b/DOCUMENTATION/content/getting-started/index.md @@ -81,10 +81,10 @@ We'll need to do step 1 of the [Usage](#Usage) section now to make this happen. cp env-example .env ``` -At the top, change the `APPLICATION` variable to your project path. +At the top, change the `APP_CODE_PATH_HOST` variable to your project path. ``` -APPLICATION=../project-z/ +APP_CODE_PATH_HOST=../project-z/ ``` Make sure to replace `project-z` with your project folder name. From 00df369e9655a28a3178f8f3bc569be00adda5be Mon Sep 17 00:00:00 2001 From: ganlei <769323213@qq.com> Date: Sat, 8 Sep 2018 21:31:05 +0800 Subject: [PATCH 8/9] =?UTF-8?q?Add=20IonCube=20Loader=20=EF=BC=88zend=5Fex?= =?UTF-8?q?tension=EF=BC=89=20(#1763)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DOCUMENTATION/content/documentation/index.md | 22 ++++++++++++++++++++ docker-compose.yml | 2 ++ env-example | 2 ++ php-fpm/Dockerfile | 15 +++++++++++++ workspace/Dockerfile | 15 +++++++++++++ 5 files changed, 56 insertions(+) diff --git a/DOCUMENTATION/content/documentation/index.md b/DOCUMENTATION/content/documentation/index.md index 9370110e..b3e22943 100644 --- a/DOCUMENTATION/content/documentation/index.md +++ b/DOCUMENTATION/content/documentation/index.md @@ -353,6 +353,28 @@ Note: If `.php-fpm/xdebug` doesn't execute and gives `Permission Denied` error t +
+ +## Install ionCube Loader + +1 - First install `ionCube Loader` in the Workspace and the PHP-FPM Containers: +
+a) open the `.env` file +
+b) search for the `WORKSPACE_INSTALL_IONCUBE` argument under the Workspace Container +
+c) set it to `true` +
+d) search for the `PHP_FPM_INSTALL_IONCUBE` argument under the PHP-FPM Container +
+e) set it to `true` + +2 - Re-build the containers `docker-compose build workspace php-fpm` + +Always download the latest version of [Loaders for ionCube ](http://www.ioncube.com/loaders.php). + + +
diff --git a/docker-compose.yml b/docker-compose.yml index 61f261b9..a944795d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -90,6 +90,7 @@ services: - INSTALL_PG_CLIENT=${WORKSPACE_INSTALL_PG_CLIENT} - INSTALL_SWOOLE=${WORKSPACE_INSTALL_SWOOLE} - INSTALL_LIBPNG=${WORKSPACE_INSTALL_LIBPNG} + - INSTALL_IONCUBE=${WORKSPACE_INSTALL_IONCUBE} - PUID=${WORKSPACE_PUID} - PGID=${WORKSPACE_PGID} - CHROME_DRIVER_VERSION=${WORKSPACE_CHROME_DRIVER_VERSION} @@ -148,6 +149,7 @@ services: - INSTALL_IMAGEMAGICK=${PHP_FPM_INSTALL_IMAGEMAGICK} - INSTALL_CALENDAR=${PHP_FPM_INSTALL_CALENDAR} - INSTALL_FAKETIME=${PHP_FPM_INSTALL_FAKETIME} + - INSTALL_IONCUBE=${PHP_FPM_INSTALL_IONCUBE} volumes: - ./php-fpm/php${PHP_VERSION}.ini:/usr/local/etc/php/php.ini - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER} diff --git a/env-example b/env-example index 6089cdcd..1e5b4758 100644 --- a/env-example +++ b/env-example @@ -116,6 +116,7 @@ WORKSPACE_INSTALL_DUSK_DEPS=false WORKSPACE_INSTALL_PG_CLIENT=false WORKSPACE_INSTALL_SWOOLE=false WORKSPACE_INSTALL_LIBPNG=false +WORKSPACE_INSTALL_IONCUBE=false WORKSPACE_PUID=1000 WORKSPACE_PGID=1000 WORKSPACE_CHROME_DRIVER_VERSION=2.32 @@ -153,6 +154,7 @@ PHP_FPM_INSTALL_PG_CLIENT=false PHP_FPM_INSTALL_PCNTL=false PHP_FPM_INSTALL_CALENDAR=false PHP_FPM_INSTALL_FAKETIME=false +PHP_FPM_INSTALL_IONCUBE=false PHP_FPM_FAKETIME=-0 ### PHP_WORKER ############################################ diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index e1b4c45f..dd7f0d15 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -342,6 +342,21 @@ RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \ && docker-php-ext-enable aerospike \ ;fi +########################################################################### +# IonCube Loader: +########################################################################### + +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* \ +;fi + ########################################################################### # Opcache: ########################################################################### diff --git a/workspace/Dockerfile b/workspace/Dockerfile index dd22fef3..2ce90784 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -397,6 +397,21 @@ RUN if [ ${INSTALL_LIBPNG} = true ]; then \ apt install libpng16-16 \ ;fi +########################################################################### +# IonCube Loader +########################################################################### + +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* \ +;fi + ########################################################################### # Drupal Console: ########################################################################### From 876935452ec75fb19f75fef386234dc38e7c78de Mon Sep 17 00:00:00 2001 From: ThunderbirdsX3 Date: Sat, 8 Sep 2018 20:31:58 +0700 Subject: [PATCH 9/9] Add .gitignore to php-worker (#1780) * Add .gitignore * Change file to example. --- php-worker/supervisord.d/.gitignore | 1 + .../{laravel-worker.conf => laravel-worker.conf.example} | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 php-worker/supervisord.d/.gitignore rename php-worker/supervisord.d/{laravel-worker.conf => laravel-worker.conf.example} (89%) diff --git a/php-worker/supervisord.d/.gitignore b/php-worker/supervisord.d/.gitignore new file mode 100644 index 00000000..fee92170 --- /dev/null +++ b/php-worker/supervisord.d/.gitignore @@ -0,0 +1 @@ +*.conf diff --git a/php-worker/supervisord.d/laravel-worker.conf b/php-worker/supervisord.d/laravel-worker.conf.example similarity index 89% rename from php-worker/supervisord.d/laravel-worker.conf rename to php-worker/supervisord.d/laravel-worker.conf.example index cce9e923..06156bc5 100644 --- a/php-worker/supervisord.d/laravel-worker.conf +++ b/php-worker/supervisord.d/laravel-worker.conf.example @@ -4,4 +4,4 @@ command=php /var/www/artisan queue:work --sleep=3 --tries=3 --daemon autostart=true autorestart=true numprocs=8 -redirect_stderr=true \ No newline at end of file +redirect_stderr=true