Browse Source

improved php using current user instead of root, improved timeout limit

Bachir Soussi Chiadmi 4 years ago
parent
commit
5eb02ec37b

+ 1 - 1
Docker/nginx/default.conf

@@ -29,7 +29,7 @@ server {
         fastcgi_intercept_errors off;
         fastcgi_intercept_errors off;
         fastcgi_buffer_size 16k;
         fastcgi_buffer_size 16k;
         fastcgi_buffers 4 16k;
         fastcgi_buffers 4 16k;
-        # fastcgi_read_timeout 150;
+        fastcgi_read_timeout 150;
     }
     }
 
 
     location ~ /\.ht {
     location ~ /\.ht {

+ 28 - 12
Docker/php-legacy/Dockerfile

@@ -1,5 +1,4 @@
-FROM php:5.6-fpm
-
+FROM php:7.3-fpm
 
 
 RUN apt-get update && apt-get install -y \
 RUN apt-get update && apt-get install -y \
 		libfreetype6-dev \
 		libfreetype6-dev \
@@ -7,27 +6,44 @@ RUN apt-get update && apt-get install -y \
     libmcrypt-dev \
     libmcrypt-dev \
 		libpng-dev \
 		libpng-dev \
 		mysql-client \
 		mysql-client \
-    zip && \
-		docker-php-ext-install -j$(nproc) iconv mcrypt && \
+    zip \
+    libzip-dev && \
+		# docker-php-ext-install -j$(nproc) iconv && \
 		docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \
 		docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \
+		apt-get install -y imagemagick libmagickwand-dev && \
+    pecl install imagick && docker-php-ext-enable imagick && \
 		docker-php-ext-install -j$(nproc) gd && \
 		docker-php-ext-install -j$(nproc) gd && \
 		docker-php-ext-install pdo_mysql zip && \
 		docker-php-ext-install pdo_mysql zip && \
 		docker-php-ext-install opcache && \
 		docker-php-ext-install opcache && \
+		docker-php-ext-install bcmath && \
 		apt-get install -y git vim && \
 		apt-get install -y git vim && \
-		pecl install redis-3.1.0 && \
-    pecl install xdebug-2.5.0 && \
-    docker-php-ext-enable redis xdebug && \
-		export COMPOSER_HOME=/usr/local/composer && \
-	    curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer && \
-	    composer global require drush/drush:8 && \
-	    composer global install && \
-	    ln -s /usr/local/composer/vendor/drush/drush/drush /usr/local/bin/drush
+		pecl install redis-4.3.0 && \
+    pecl install xdebug-2.7.0 && \
+    docker-php-ext-enable redis xdebug
+
+RUN export COMPOSER_HOME=/usr/local/composer && \
+	    curl -sS https://getcomposer.org/installer \
+				| php -- --install-dir=/usr/local/bin --filename=composer && \
+			curl https://drupalconsole.com/installer \
+				-L -o /usr/local/bin/drupal && \
+			chmod +x /usr/local/bin/drupal && \
+			curl https://github.com/drush-ops/drush-launcher/releases/download/0.6.0/drush.phar \
+				-L -o /usr/local/bin/drush && \
+			chmod +x /usr/local/bin/drush
+
+RUN apt-get install -y curl && \
+		curl -sL https://deb.nodesource.com/setup_11.x | bash - && \
+		curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
+		echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \
+    apt-get update && \
+		apt-get install -y nodejs yarn
 
 
 RUN apt-get install -y rsyslog
 RUN apt-get install -y rsyslog
 COPY ./rsyslog-drupal.conf /etc/rsyslog.d/drupal.conf
 COPY ./rsyslog-drupal.conf /etc/rsyslog.d/drupal.conf
 # ENTRYPOINT ["sh", "-c", "service rsyslog start ; tail -f /dev/null"]
 # ENTRYPOINT ["sh", "-c", "service rsyslog start ; tail -f /dev/null"]
 
 
 COPY ./php-custom.ini /usr/local/etc/php/conf.d/php-custom.ini
 COPY ./php-custom.ini /usr/local/etc/php/conf.d/php-custom.ini
+# COPY ./php-fpm-custom.conf /usr/local/etc/php-fpm.d/php-fpm-custom.conf
 
 
 COPY ./bashrc /root/.bashrc
 COPY ./bashrc /root/.bashrc
 COPY ./inputrc /root/.inputrc
 COPY ./inputrc /root/.inputrc

+ 1 - 1
Docker/php-legacy/bashrc

@@ -1,4 +1,4 @@
 
 
-PS1='\e[36m\e[1mPHP-5.6\e[0m:\e[90m\w\e[0m\n$ '
+PS1='\e[36m\e[1mPHP-7.0\e[0m:\e[90m\w\e[0m\n$ '
 bind '"\e[A": history-search-backward'
 bind '"\e[A": history-search-backward'
 bind '"\e[B": history-search-forward'
 bind '"\e[B": history-search-forward'

+ 4 - 1
Docker/php-legacy/php-custom.ini

@@ -1,4 +1,7 @@
-memory_limit = 526M
+memory_limit = 2048M
+upload_max_filesize = 50M
+post_max_size = 50M
+;max_execution_time = 150
 
 
 ; Log level
 ; Log level
 ; Possible Values: alert, error, warning, notice, debug
 ; Possible Values: alert, error, warning, notice, debug

+ 23 - 2
Docker/php/Dockerfile

@@ -45,5 +45,26 @@ COPY ./rsyslog-drupal.conf /etc/rsyslog.d/drupal.conf
 COPY ./php-custom.ini /usr/local/etc/php/conf.d/php-custom.ini
 COPY ./php-custom.ini /usr/local/etc/php/conf.d/php-custom.ini
 # COPY ./php-fpm-custom.conf /usr/local/etc/php-fpm.d/php-fpm-custom.conf
 # COPY ./php-fpm-custom.conf /usr/local/etc/php-fpm.d/php-fpm-custom.conf
 
 
-COPY ./bashrc /root/.bashrc
-COPY ./inputrc /root/.inputrc
+# COPY ./bashrc /root/.bashrc
+# COPY ./inputrc /root/.inputrc
+
+ARG USER_UID
+ARG USER_UNAME
+ARG USER_GID
+ARG USER_GNAME
+
+RUN if getent group ${USER_GNAME} ; then groupdel ${USER_GNAME}; fi &&\
+		groupadd -g ${USER_GID} ${USER_GNAME} &&\
+    useradd -l -u ${USER_UID} -g ${USER_GNAME} ${USER_UNAME} &&\
+    install -d -m 0755 -o ${USER_UNAME} -g ${USER_GNAME} /home/${USER_UNAME} &&\
+    chown --changes --silent --no-dereference --recursive \
+          --from=33:33 ${USER_UID}:${USER_GID} \
+        /home/${USER_UNAME}
+        # /.composer \
+        # /var/run/php-fpm \
+        # /var/lib/php/sessions \
+
+COPY ./bashrc /home/${USER_UNAME}/.bashrc
+COPY ./inputrc /home/${USER_UNAME}/.inputrc
+
+USER ${USER_UNAME}

+ 2 - 2
Docker/php/php-custom.ini

@@ -1,7 +1,7 @@
-memory_limit = 1024M
+memory_limit = 2048M
 upload_max_filesize = 50M
 upload_max_filesize = 50M
 post_max_size = 50M
 post_max_size = 50M
-;max_execution_time = 150
+max_execution_time = 150
 
 
 ; Log level
 ; Log level
 ; Possible Values: alert, error, warning, notice, debug
 ; Possible Values: alert, error, warning, notice, debug

+ 34 - 0
Makefile

@@ -0,0 +1,34 @@
+#!/usr/bin/make
+
+SHELL = /bin/sh
+
+USER_UID := $(shell id -u)
+USER_UNAME := $(shell id -un)
+USER_GID := $(shell id -g)
+USER_GNAME := $(shell id -gn)
+
+export USER_UID
+export USER_UNAME
+export USER_GID
+export USER_GNAME
+
+build:
+		docker-compose build --build-arg USER_UID=$(USER_UID) --build-arg USER_UNAME=$(USER_UNAME) --build-arg USER_GID=$(USER_GID) --build-arg USER_GNAME=$(USER_GNAME)
+
+buildnc:
+		docker-compose build --no-cache --build-arg USER_UID=$(USER_UID) --build-arg USER_UNAME=$(USER_UNAME) --build-arg USER_GID=$(USER_GID) --build-arg USER_GNAME=$(USER_GNAME)
+
+up:
+		docker-compose up -d
+
+upbuild:
+		docker-compose up -d --build
+
+down:
+		docker-compose down
+
+php:
+		docker exec -it materiod8_php_1 bash
+
+phplegacy:
+		docker exec -it materiod8_php-legacy_1 bash

+ 25 - 0
README.md

@@ -111,6 +111,31 @@ sudo docker exec -it materiod8_mysql_1 bash
 ```
 ```
 once inside the mysql container you can use mysql command to drop then create and load the db with your file
 once inside the mysql container you can use mysql command to drop then create and load the db with your file
 
 
+## Makefile
+
+```makefile
+build:
+		docker-compose build --build-arg USER_UID=$(USER_UID) --build-arg USER_UNAME=$(USER_UNAME) --build-arg USER_GID=$(USER_GID) --build-arg USER_GNAME=$(USER_GNAME)
+
+buildnc:
+		docker-compose build --no-cache --build-arg USER_UID=$(USER_UID) --build-arg USER_UNAME=$(USER_UNAME) --build-arg USER_GID=$(USER_GID) --build-arg USER_GNAME=$(USER_GNAME)
+
+up:
+		docker-compose up -d
+
+upbuild:
+		docker-compose up -d --build
+
+down:
+		docker-compose down
+
+php:
+		docker exec -it materiod8_php_1 bash
+
+phplegacy:
+		docker exec -it materiod8_php-legacy_1 bash
+```
+
 
 
 # sources
 # sources
 https://www.ostraining.com/blog/drupal/docker/
 https://www.ostraining.com/blog/drupal/docker/

+ 3 - 2
docker-compose.yml

@@ -77,8 +77,9 @@ services:
     build: ./Docker/php/
     build: ./Docker/php/
     expose:
     expose:
       - 9000
       - 9000
+    user: ${USER_UID}:${USER_GID}
     volumes:
     volumes:
-      - php-root-data:/root
+      - php-user-data:/home/${USER_UNAME}
       - "${PROJECT_ROOT}:/var/www/html/d8.materio.com/public_html"
       - "${PROJECT_ROOT}:/var/www/html/d8.materio.com/public_html"
       - "${LEGACY_ROOT}:/var/www/html/d7.materio.com/public_html"
       - "${LEGACY_ROOT}:/var/www/html/d7.materio.com/public_html"
       - "${LOG_ROOT}/php:/var/log:rw"
       - "${LOG_ROOT}/php:/var/log:rw"
@@ -155,7 +156,7 @@ services:
 
 
 
 
 volumes:
 volumes:
-    php-root-data:
+    php-user-data:
     php-legacy-root-data:
     php-legacy-root-data:
     db-data:
     db-data:
     db-data-legacy:
     db-data-legacy: