Преглед на файлове

Résolution des conflits de fusion

Maha Bouchiba преди 2 години
родител
ревизия
ee497c1da2
променени са 7 файла, в които са добавени 218 реда и са изтрити 66 реда
  1. 3 0
      .env.skeleton
  2. 115 1
      README.md
  3. 38 16
      docker-compose.yml
  4. 14 26
      docker/ap2i/Dockerfile
  5. 32 0
      docker/ap2i/conf/update_xdebug_ini.php
  6. 3 6
      docker/ap2i/conf/xdebug.ini
  7. 13 17
      docker/php/Dockerfile

+ 3 - 0
.env.skeleton

@@ -1,6 +1,9 @@
 #OS : MAC ou LINUX
 OS=LINUX
 
+# Hostname (as returned by the command hostname)
+HOST=host
+
 #Composer hash for instal (check validity here : https://getcomposer.org/download/)
 COMPOSER_HASH=756890a4488ce9024fc62c56153228907f1545c228516cbf63f885e036d37e9a59d27d63f46af1d4d07ee0f76181c7d3
 

+ 115 - 1
README.md

@@ -80,7 +80,7 @@ Pour cela, ajouter les lignes suivantes à votre fichier `/etc/hosts`:
     127.0.0.1 local.v59.opentalent.fr   # Docker 'adminassos'
     127.0.0.1 local.phpmyadmin.opentalent.fr   # Docker 'phpmyadmin'
     127.0.0.1 local.elasticsearch.opentalent.fr   # Docker 'es'
-    127.0.0.1 local.admin.opentalent.fr   # Docker 'adminLegacy'
+    127.0.0.1 local.admin.opentalent.fr   # Docker 'admin'
     127.0.0.1 local.thumbor.opentalent.fr   # Docker 'thumbor'
     127.0.0.1 local.opentalent.fr   # Docker 'portail'
     127.0.0.1 local.sub.opentalent.fr   # Docker 'typo3'
@@ -94,6 +94,7 @@ Pour cela, ajouter les lignes suivantes à votre fichier `/etc/hosts`:
     127.0.0.1 local.app-doc.opentalent.fr   # Docker 'app-doc'
     127.0.0.1 local.app-v3.opentalent.fr   # Docker 'app-v3'    
     127.0.0.1 local.mercure.opentalent.fr   # Docker 'mercure'
+    127.0.0.1 local.portail-v2.opentalent.fr    # Docker 'portail-v2'
 
 > Attention: les domaines indiqués ici doivent correspondre aux domaines définis dans le fichier `.env`
 
@@ -479,6 +480,119 @@ Héberge une instance phpdoc, qui permet ensuite de générer des documentations
 TODO: à quoi il sert?
 
 
+## Configuration du réseau
+
+### Réseau et adresses IP
+
+La section `networks` du docker-compose permet de configurer un réseau interne auxquel pourront appartenir les 
+containers. 
+
+> Voir: https://docs.docker.com/compose/networking/
+>       https://docs.docker.com/compose/compose-file/compose-file-v3/#networks
+
+Ici, on définit un seul réseau nommé `network`, au sein duquel les ips seront de la forme `172.20.[0-255].[1-254]`
+
+Pour qu'un container puisse appartenir au réseau, sa définition doit comporter une entrée de cette forme :
+
+     networks:
+       - network
+
+On pourra aussi assigner une IP fixe à un container en précisant cette configuration, par exemple : 
+
+    networks:
+      network:
+        ipv4_address: 172.20.2.2
+
+### Attribution des ports
+
+Les ports de l'hôte peuvent être assignés aux ports d'un container en ajoutant une section `ports` à la définition du
+container. Exemple : 
+
+    ports:
+      - "3001:3000"
+      - "3002:3001"
+
+Ces entrées sont de la forme : `<port de l'hôte>:<port du container>`
+
+Dans l'exemple précédent, une requête reçue sur le port 3001 par la machine hôte sera dirigée vers le port 3000 du 
+container.
+
+### Proxy : le docker nginx-proxy
+
+La configuration du fichier `hosts` permet de rediriger certaines url locales (ex: `local.api.opentalent.fr`) vers la
+machine locale (i.e. `localhost`).
+
+> Voir: https://gitlab.2iopenservice.com/opentalent/docker/-/blob/master/README.md#le-fichier-etchosts
+
+Le container `nginx-proxy` est configuré pour recevoir les requêtes des ports 80 et 443 de la machine hôte, et reçoit donc
+les requêtes adressées aux urls locales.
+
+[Ce container est configuré](https://hub.docker.com/r/jwilder/nginx-proxy/#!) pour identifier tous les containers de 
+son réseau pour lesquels une variable d'env `VIRTUAL_HOST` a été définie, et redirigera les requêtes d'une url au 
+container dont le vhost correspond.
+
+Les virtual hosts sont définis dans le fichier `.env`. Pour attribuer un nom d'hôte à un container, on ajoute ensuite
+dans le `docker-compose.yml` une entrée de cette forme à sa configuration : 
+
+    environment:
+      - VIRTUAL_HOST=${SOME_VIRTUAL_HOST}
+
+Pour utiliser un autre port que le port 80, on peut ajouter une variable `VIRTUAL_PORT` :
+
+    environment:
+      - VIRTUAL_HOST=${SOME_VIRTUAL_HOST}
+      - VIRTUAL_PORT=${SOME_PORT}
+
+
+### Nom des hôtes et aliases réseau
+
+Sur leur réseau interne, les noms d'hôtes des containers sont définis via l'entrée `hostname` de leur configuration.
+Généralement, ces hostnames sont identiques à leurs noms de container.
+
+> Exemple : pour adresser une requête au docker `db`, le container `api` enverra sa requête à l'adresse `http://db`
+
+Il est cependant possible d'attribuer des aliases aux containers, ex : 
+
+    networks:
+      network:
+        aliases:
+          - docker.sub.opentalent.fr
+
+Ainsi configuré, le docker sera joignable sur le réseau interne à l'adresse `http://docker.sub.opentalent.fr`.
+
+
+### Attribution des ports et IPs
+
+| Container   | hostname    | In Network ? | IP fixe    | Ports                  | VIRTUAL_HOST / PORT                      | Aliases                                               |
+|-------------|-------------|--------------|------------|------------------------|------------------------------------------|-------------------------------------------------------|
+| nginx-proxy | nginx-proxy | O            | -          | 80:80, 443:443         | -                                        | -                                                     |
+| db          | db          | O            | 172.20.1.3 | 3306:3306              | -                                        | -                                                     |
+| nginx       | nginx       | O            | -          | -                      | local.api.opentalent.fr                  | docker.nginx.opentalent.fr                            |
+| php70       | php70       | O            | 172.20.1.1 | -                      | -                                        | -                                                     |
+| nginx_new   | nginx_new   | O            | -          | -                      | local.ap2i.opentalent.fr                 | -                                                     |
+| ap2i        | ap2i        | O            | 172.20.2.1 | -                      | -                                        | -                                                     |
+| mercure     | mercure     | O            | 172.20.4.0 | -                      | local.mercure.opentalent.fr              | -                                                     |
+| python39    | python39    | O            | 172.20.4.1 | -                      | -                                        | -                                                     |
+| admin       | admin       | O            | 172.20.1.2 | 3000:3000, 3001:3001   | local.admin.opentalent.fr / 3000         | -                                                     |
+| app         | app         | O            | 172.20.2.2 | 3002:3000, 3003:3003   | local.app.opentalent.fr / 3002           | -                                                     |
+| app_v3      | app_v3      | O            | 172.20.2.3 | 3009:3000, 24678:24678 | local.app-v3.opentalent.fr / 3000        | -                                                     |
+| frames      | frames      | O            | 172.20.2.4 | 3004:3004, 3005:3005   | local.frames.opentalent.fr / 3004        | -                                                     |
+| frames_v3   | frames_v3   | O            | 172.20.2.5 | 3007:3000, 24679:24679 | local.frames-v3.opentalent.fr / 3000     | -                                                     |
+| portail     | portail     | O            | -          | -                      | local.opentalent.fr                      | -                                                     |
+| portail_v2  | portail_v2  | O            | 172.20.2.6 | 3010:3000, 24680:24680 | local.portail-v2.opentalent.fr / 3000    | -                                                     |
+| typo3       | typo3       | O            | 172.20.3.1 | -                      | local.sub.opentalent.fr                  | docker.sub.opentalent.fr,  docker.sub.customdomain.fr |
+| adminassos  | adminassos  | O            | -          | -                      | local.v59.opentalent.fr                  | -                                                     |
+| metabase    | metabase    | O            | -          | -                      | local.metabase.opentalent.fr / 3000      | -                                                     |
+| es          | es          | O            | -          | -                      | local.elasticsearch.opentalent.fr / 9200 | -                                                     |
+| thumbor     | thumbor     | O            | -          | -                      | local.thumbor.opentalent.fr              | -                                                     |
+| phpmyadmin  | phpmyadmin  | O            | -          | -                      | local.phpmyadmin.opentalent.fr           | -                                                     |
+| memcached   | memcached   | X            | -          | -                      | -                                        | -                                                     |
+| mailcatcher | mailcatcher | O            | -          | 1025:1025              | local.mailcatcher.opentalent.fr / 1080   | -                                                     |
+| blackfire   | blackfire   | O            | -          | -                      | local.blackfire.opentalent.fr / 8707     | -                                                     |
+| phpdoc      | phpdoc      | O            | -          | -                      | local.ap2i-doc.opentalent.fr             | -                                                     |
+| jsdoc       | jsdoc       | O            | -          | -                      | local.app-doc.opentalent.fr              | -                                                     |
+
+
 ## Opérations courantes
 
 #### Ajouter un certificat SSL pour un nouveau domaine local

+ 38 - 16
docker-compose.yml

@@ -9,8 +9,8 @@ services:
       dockerfile: docker/nginx-proxy/Dockerfile
     restart: always
     ports:
-      - 80:80
-      - 443:443
+      - "80:80"
+      - "443:443"
     networks:
       - network
     volumes:
@@ -28,7 +28,7 @@ services:
         - COMPOSER_HASH=${COMPOSER_HASH}
     restart: always
     ports:
-      - 3306:3306
+      - "3306:3306"
     volumes:
       - ./apps/opentalent-platform/migration:/usr/src:cached
       - mysqldata:/var/lib/mysql
@@ -106,6 +106,7 @@ services:
       args:
         - COMPOSER_HASH=${COMPOSER_HASH}
         - OS=${OS}
+        - HOST=${HOST}
     restart: always
     environment:
       - PHP_IDE_CONFIG=serverName=ap2i
@@ -174,8 +175,8 @@ services:
       - ./apps/opentalent-admin-2.0:/home/workspace:rw,cached
     tty: true
     ports:
-      - 3000:3000
-      - 3001:3001
+      - "3000:3000"
+      - "3001:3001"
     environment:
       - VIRTUAL_HOST=${ADMIN_VIRTUAL_HOST}
       - VIRTUAL_PORT=${ADMIN_PORT}
@@ -198,13 +199,14 @@ services:
       - ./apps/app-doc:/home/app-doc:rw,cached
     tty: true
     ports:
-      - 3002:3002
-      - 3003:3003
+      - "3002:3002"
+      - "3003:3003"
     environment:
       - VIRTUAL_HOST=${APP_VIRTUAL_HOST}
       - VIRTUAL_PORT=${APP_PORT}
       - NODE_ENV=docker
       - HTTPS_METHOD=noredirect
+      - NODE_OPTIONS=--openssl-legacy-provider
     networks:
       network:
         ipv4_address: 172.20.2.2
@@ -221,8 +223,8 @@ services:
       - ./apps/app-v3:/home/workspace:rw,cached
     tty: true
     ports:
-      - 3009:3000
-      - 24678:24678
+      - "3009:3000"
+      - "24678:24678"
     environment:
       - VIRTUAL_HOST=${APP_V3_VIRTUAL_HOST}
       - VIRTUAL_PORT=${APP_V3_PORT}
@@ -244,8 +246,8 @@ services:
       - ./apps/frames:/home/workspace:rw,cached
     tty: true
     ports:
-      - 3004:3004
-      - 3005:3005
+      - "3004:3004"
+      - "3005:3005"
     environment:
       - VIRTUAL_HOST=${FRAMES_VIRTUAL_HOST}
       - VIRTUAL_PORT=${FRAMES_PORT}
@@ -267,8 +269,8 @@ services:
       - ./apps/frames_v3:/home/workspace:rw,cached
     tty: true
     ports:
-      - 3007:3000
-      - 24679:24679
+      - "3007:3000"
+      - "24679:24679"
     environment:
       - VIRTUAL_HOST=${FRAMES_V3_VIRTUAL_HOST}
       - VIRTUAL_PORT=${FRAMES_V3_PORT}
@@ -320,8 +322,8 @@ services:
       - ./apps/portail_v2:/home/workspace:rw,cached
     tty: true
     ports:
-      - 3010:3000
-      - 24680:24680
+      - "3010:3000"
+      - "24680:24680"
     environment:
       - VIRTUAL_HOST=${PORTAIL_V2_VIRTUAL_HOST}
       - VIRTUAL_PORT=${PORTAIL_V2_PORT}
@@ -363,6 +365,26 @@ services:
     depends_on:
       - nginx
 
+  adminassos:
+     hostname: v59
+     container_name: adminassos
+     build:
+       context: .
+       dockerfile: docker/adminassos/Dockerfile
+       args:
+         - OS=${OS}
+     restart: always
+     volumes:
+       - ./apps/opentalent:/var/source/opentalent:cached
+       - useruploaddata:/var/www/opentalent/fileadmin/user_upload:cached
+       - ./apps/vendor:/var/source/vendor:delegated
+       - ./apps/opentalent-config:/var/source/config:cached
+     environment:
+       - VIRTUAL_HOST=${V59_VIRTUAL_HOST}
+     networks:
+       - network
+     depends_on:
+       - nginx
   adminassos:
     hostname: v59
     container_name: adminassos
@@ -457,7 +479,7 @@ services:
     image: sj26/mailcatcher
     restart: always
     ports:
-      - '1025:1025'
+      - "1025:1025"
     environment:
       - VIRTUAL_HOST=${MAILCATCHER_VIRTUAL_HOST}
       - VIRTUAL_PORT=${MAILCATCHER_PORT}

+ 14 - 26
docker/ap2i/Dockerfile

@@ -1,20 +1,17 @@
 # ./docker/php/Dockerfile
 FROM php:8.2.1-fpm
-
 ARG COMPOSER_HASH
 ARG OS
+ARG HOST
 ARG DEBIAN_FRONTEND=noninteractive
 
 RUN apt-get update && apt-get install -y --fix-missing \
     apt-utils \
     gnupg
-
 ## Si erreur de PUBKEY :
 RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E9C74FEEA2098A6E
-
 RUN echo "deb https://packages.dotdeb.org jessie all" >> /etc/apt/sources.list
 RUN echo "deb-src https://packages.dotdeb.org jessie all" >> /etc/apt/sources.list
-
 RUN apt-get clean
 RUN apt-get update
 RUN apt-get install --fix-missing --no-install-recommends -y \
@@ -46,19 +43,12 @@ RUN apt-get install --fix-missing --no-install-recommends -y \
           libmagickwand-dev \
           imagemagick \
           zip
-
     # Install wkhtmltopdf and wkhtmltoimage \
-RUN wget http://archive.ubuntu.com/ubuntu/pool/main/g/glibc/multiarch-support_2.27-3ubuntu1.5_amd64.deb; \
-    dpkg -i multiarch-support_2.27-3ubuntu1.5_amd64.deb; \
-    wget http://security.debian.org/debian-security/pool/updates/main/o/openssl/libssl1.0.0_1.0.1t-1+deb8u12_amd64.deb; \
-    dpkg -i libssl1.0.0_1.0.1t-1+deb8u12_amd64.deb; \
-    wget http://ftp.de.debian.org/debian/pool/main/libp/libpng/libpng12-0_1.2.50-2+deb8u3_amd64.deb; \
-    dpkg -i libpng12-0_1.2.50-2+deb8u3_amd64.deb; \
-    wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.jessie_amd64.deb; \
-    dpkg -i wkhtmltox_0.12.5-1.jessie_amd64.deb; \
-    rm libpng12-0_1.2.50-2+deb8u3_amd64.deb libssl1.0.0_1.0.1t-1+deb8u12_amd64.deb \
-       multiarch-support_2.27-3ubuntu1.5_amd64.deb wkhtmltox_0.12.5-1.jessie_amd64.deb
-
+# RUN wget http://archive.ubuntu.com/ubuntu/pool/main/g/glibc/multiarch-support_2.27-3ubuntu1.5_amd64.deb; \
+#     dpkg -i multiarch-support_2.27-3ubuntu1.5_amd64.deb; \
+RUN wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox_0.12.6.1-2.bullseye_amd64.deb && \
+    apt --fix-broken install ./wkhtmltox_0.12.6.1-2.bullseye_amd64.deb ; \
+    rm wkhtmltox_0.12.6.1-2.bullseye_amd64.deb ;
 RUN     docker-php-ext-configure intl \
         && docker-php-ext-install  \
             intl  \
@@ -74,16 +64,13 @@ RUN     docker-php-ext-enable exif
 RUN     docker-php-ext-enable tidy
 RUN     docker-php-ext-install zip
 RUN     docker-php-ext-install xsl
-
         ## APCU
 RUN     pecl install apcu-5.1.21
-
 ## COMPOSER
 RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"; \
     php composer-setup.php; \
     php -r "unlink('composer-setup.php');"; \
     mv composer.phar /usr/local/bin/composer
-
 ########   BLACKFIRE #########
 # If you use Alpine, you need to set this value to "alpine"
 RUN version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \
@@ -95,19 +82,20 @@ RUN version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \
     && rm -rf /tmp/blackfire /tmp/blackfire-probe.tar.gz
 ########   BLACKFIRE #########
 
-######## XDebug ########
-RUN pecl install xdebug \
- && docker-php-ext-enable xdebug
-
 ######## Php conf ########
 COPY /.ssh /root/.ssh
 COPY /docker/ap2i/conf/memory.ini /usr/local/etc/php/conf.d
 COPY /docker/ap2i/conf/apc.ini /usr/local/etc/php/conf.d
 COPY /docker/ap2i/conf/execution_time.ini /usr/local/etc/php/conf.d
 COPY /docker/ap2i/conf/xdebug.ini /usr/local/etc/php/conf.d
-######## FACL and Start ########
 
+######## XDebug ########
+COPY /docker/ap2i/conf/update_xdebug_ini.php /usr/local/etc/php/conf.d
+RUN pecl install xdebug \
+ && docker-php-ext-enable xdebug \
+ && php /usr/local/etc/php/conf.d/update_xdebug_ini.php $OS $HOST
+
+######## FACL and Start ########
 ## Create .env.local file
 RUN echo "APP_ENV=docker" > .env.local
-
-WORKDIR /var/www/html
+WORKDIR /var/www/html

+ 32 - 0
docker/ap2i/conf/update_xdebug_ini.php

@@ -0,0 +1,32 @@
+<?php
+/**
+ * Mert à jour la valeur de xdebug.client_host en fonction de l'os et du nom de la machine qui héberge le container
+ */
+$host_os = $argv[1];
+$host_name = $argv[2];
+
+$client_host = strtolower($host_os) === "linux" ? $host_name : 'host.docker.internal';
+
+$content = file_get_contents('/usr/local/etc/php/conf.d/xdebug.ini');
+
+$lines = explode(PHP_EOL, $content);
+$new_lines = [];
+
+foreach ($lines as $line) {
+    if (preg_match("/^\s*xdebug.client_host\s*=\s*.+$/im", $line)) {
+        $line = "xdebug.client_host=" . $client_host;
+    }
+    $new_lines[] = $line;
+}
+
+$f = fopen('/usr/local/etc/php/conf.d/xdebug.ini', 'w+');
+try {
+    fwrite($f, implode(PHP_EOL, $new_lines));
+} catch (\Exception $e) {
+    echo($e);
+    echo(PHP_EOL);
+} finally {
+    fclose($f);
+}
+
+echo('XDebug - client_host set to ' . $client_host . PHP_EOL);

+ 3 - 6
docker/ap2i/conf/xdebug.ini

@@ -7,9 +7,6 @@ xdebug.max_nesting_level=400
 xdebug.start_with_request=trigger
 xdebug.client_port = 9003
 
-; Uncomment this line if docker is running on Mac or Windows
-; xdebug.remote_host = host.docker.internal
-
-; OR uncomment this one if docker is on Unix, then replace the hostname
-;    by the your current machine's name (type 'hostname' in a terminal)
-xdebug.client_host = dev
+; Client host is "host.docker.internal" on Mac or Windows,
+; or your current machine's name on unix (type 'hostname' in a terminal)
+xdebug.client_host = host.docker.internal

+ 13 - 17
docker/php/Dockerfile

@@ -4,19 +4,15 @@ FROM php:7.0.33-fpm
 ARG COMPOSER_HASH
 ARG OS
 
-RUN sed 's/main$/main universe/' -i /etc/apt/sources.list; \
+RUN echo deb http://archive.debian.org/debian stretch main universe > /etc/apt/sources.list; \
     apt-get update; \
     ### WKHTMLTOPDF
     if [ "x$OS" = "MAC" ] ; then apt-get install -y --no-install-recommends openssh-server build-essential xorg iputils-ping libssl-dev libxrender-dev wget gdebi ca-certificates wget xz-utils libxrender1 libxt6 libxtst6 fontconfig zlib1g-dev libpng-dev libicu-dev g++; \
     else DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends openssh-server build-essential xorg iputils-ping libssl-dev libxrender-dev wget gdebi ca-certificates wget xz-utils libxrender1 libxt6 libxtst6 fontconfig zlib1g-dev libpng-dev libicu-dev g++; \
     fi; \
-    wget http://security.debian.org/debian-security/pool/updates/main/o/openssl/libssl1.0.0_1.0.1t-1+deb8u12_amd64.deb; \
-    dpkg -i libssl1.0.0_1.0.1t-1+deb8u12_amd64.deb; \
-    wget http://ftp.de.debian.org/debian/pool/main/libp/libpng/libpng12-0_1.2.50-2+deb8u3_amd64.deb; \
-    dpkg -i libpng12-0_1.2.50-2+deb8u3_amd64.deb; \
-    dpkg -i libpng12-0_1.2.50-2+deb8u3_amd64.deb; \
-    wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.jessie_amd64.deb; \
-    dpkg -i wkhtmltox_0.12.5-1.jessie_amd64.deb; \
+    wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox_0.12.6.1-2.bullseye_amd64.deb && \
+    apt --fix-broken install ./wkhtmltox_0.12.6.1-2.bullseye_amd64.deb ; \
+    rm wkhtmltox_0.12.6.1-2.bullseye_amd64.deb ; \
     ## ELASTICADUMP
     curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -; \
     apt-get install nodejs -y; \
@@ -52,15 +48,15 @@ RUN version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \
     && rm -rf /tmp/blackfire /tmp/blackfire-probe.tar.gz
 ########   BLACKFIRE #########
 
-RUN set -ex \
-    && apt-get update \
-    && DEBIAN_FRONTEND=noninteractive apt-get install -y libmemcached-dev \
-    && rm -rf /var/lib/apt/lists/* \
-    && MEMCACHED="`mktemp -d`" \
-    && curl -skL https://github.com/php-memcached-dev/php-memcached/archive/master.tar.gz | tar zxf - --strip-components 1 -C $MEMCACHED \
-    && docker-php-ext-configure $MEMCACHED \
-    && docker-php-ext-install $MEMCACHED \
-    && rm -rf $MEMCACHED
+#RUN set -ex \
+#    && apt-get update \
+#    && DEBIAN_FRONTEND=noninteractive apt-get install -y libmemcached-dev \
+#    && rm -rf /var/lib/apt/lists/* \
+#    && MEMCACHED="`mktemp -d`" \
+#    && curl -skL https://github.com/php-memcached-dev/php-memcached/archive/master.tar.gz | tar zxf - --strip-components 1 -C $MEMCACHED \
+#    && docker-php-ext-configure $MEMCACHED \
+#    && docker-php-ext-install $MEMCACHED \
+#    && rm -rf $MEMCACHED
 
 ######## XDebug ########
 #RUN pecl install xdebug-2.7.2; \