diff --git a/.env.example b/.env.example index a1c2290..1509a02 100644 --- a/.env.example +++ b/.env.example @@ -14,8 +14,8 @@ INSTALL_PEAR_MAIL=true PHP_OPT_SHORT_OPEN_TAG=On PHP_OPT_MAX_EXECUTION_TIME=600 PHP_OPT_MEMORY_LIMIT=500M -PHP_OPT_POST_MAX_SIZE=200M -PHP_OPT_UPLOAD_MAX_FILESIZE=20M +PHP_OPT_POST_MAX_SIZE=48M +PHP_OPT_UPLOAD_MAX_FILESIZE=16M ### MINIO S3 ############################################# MINIO_ACCESS_KEY=s3.local diff --git a/config/nginx/includes.d/staticfiles.conf b/config/nginx/includes.d/staticfiles.conf index bd0f761..96b9bb3 100644 --- a/config/nginx/includes.d/staticfiles.conf +++ b/config/nginx/includes.d/staticfiles.conf @@ -21,7 +21,7 @@ location = /empty { expires 0; empty_gif; } -location ~* \.(eot|ttf|woff|woff2|pdf|css|js|mp4)$ { +location ~* \.(eot|ttf|woff|woff2|otf|pdf|css|js|mp4)$ { try_files $uri /404; access_log off; expires max; diff --git a/docker-compose.base.yml b/docker-compose.base.yml index 882c226..0a31eef 100755 --- a/docker-compose.base.yml +++ b/docker-compose.base.yml @@ -39,6 +39,11 @@ services: - CUSTOM_PGID=${WORKSPACE_PGID} - CUSTOM_TZ=${WORKSPACE_TIMEZONE} - CUSTOM_NODE_VERSION=${WORKSPACE_CUSTOM_NODE_VERSION} + - PHP_OPT_SHORT_OPEN_TAG=${PHP_OPT_SHORT_OPEN_TAG} + - PHP_OPT_MAX_EXECUTION_TIME=${PHP_OPT_MAX_EXECUTION_TIME} + - PHP_OPT_MEMORY_LIMIT=${PHP_OPT_MEMORY_LIMIT} + - PHP_OPT_POST_MAX_SIZE=${PHP_OPT_POST_MAX_SIZE} + - PHP_OPT_UPLOAD_MAX_FILESIZE=${PHP_OPT_UPLOAD_MAX_FILESIZE} restart: always volumes: - ${PROJECTS_DIR}:/var/www diff --git a/dockerfiles/php-fpm/php73.Dockerfile b/dockerfiles/php-fpm/php73.Dockerfile index c519184..32e4c9f 100644 --- a/dockerfiles/php-fpm/php73.Dockerfile +++ b/dockerfiles/php-fpm/php73.Dockerfile @@ -33,20 +33,26 @@ RUN if [ ${INSTALL_PEAR_MAIL} = true ]; then \ COPY ./xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini ########################################################################### +# Permission denied on /tmp folder: +########################################################################### + +RUN chmod 1777 /tmp + +########################################################################### # Tune opts: ########################################################################### ARG PHP_OPT_SHORT_OPEN_TAG=Off RUN sed -i "s/^short_open_tag = .*/short_open_tag = $PHP_OPT_SHORT_OPEN_TAG/g" "$PHP_INI_DIR/php.ini" -ARG PHP_OPT_MAX_EXECUTION_TIME=30 +ARG PHP_OPT_MAX_EXECUTION_TIME=600 RUN sed -i "s/^max_execution_time = .*/max_execution_time = $PHP_OPT_MAX_EXECUTION_TIME/g" "$PHP_INI_DIR/php.ini" -ARG PHP_OPT_MEMORY_LIMIT=128M +ARG PHP_OPT_MEMORY_LIMIT=256M RUN sed -i "s/^memory_limit = .*/memory_limit = $PHP_OPT_MEMORY_LIMIT/g" "$PHP_INI_DIR/php.ini" -ARG PHP_OPT_POST_MAX_SIZE=8M +ARG PHP_OPT_POST_MAX_SIZE=48M RUN sed -i "s/^post_max_size = .*/post_max_size = $PHP_OPT_POST_MAX_SIZE/g" "$PHP_INI_DIR/php.ini" -ARG PHP_OPT_UPLOAD_MAX_FILESIZE=2M +ARG PHP_OPT_UPLOAD_MAX_FILESIZE=16M RUN sed -i "s/^upload_max_filesize = .*/upload_max_filesize = $PHP_OPT_UPLOAD_MAX_FILESIZE/g" "$PHP_INI_DIR/php.ini" diff --git a/dockerfiles/php-fpm/php74.Dockerfile b/dockerfiles/php-fpm/php74.Dockerfile index 3cd3b82..50ef77d 100644 --- a/dockerfiles/php-fpm/php74.Dockerfile +++ b/dockerfiles/php-fpm/php74.Dockerfile @@ -35,6 +35,7 @@ COPY ./xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini ########################################################################### # Permission denied on /tmp folder: ########################################################################### + RUN chmod 1777 /tmp ########################################################################### @@ -44,14 +45,14 @@ RUN chmod 1777 /tmp ARG PHP_OPT_SHORT_OPEN_TAG=Off RUN sed -i "s/^short_open_tag = .*/short_open_tag = $PHP_OPT_SHORT_OPEN_TAG/g" "$PHP_INI_DIR/php.ini" -ARG PHP_OPT_MAX_EXECUTION_TIME=30 +ARG PHP_OPT_MAX_EXECUTION_TIME=600 RUN sed -i "s/^max_execution_time = .*/max_execution_time = $PHP_OPT_MAX_EXECUTION_TIME/g" "$PHP_INI_DIR/php.ini" -ARG PHP_OPT_MEMORY_LIMIT=128M +ARG PHP_OPT_MEMORY_LIMIT=256M RUN sed -i "s/^memory_limit = .*/memory_limit = $PHP_OPT_MEMORY_LIMIT/g" "$PHP_INI_DIR/php.ini" -ARG PHP_OPT_POST_MAX_SIZE=8M +ARG PHP_OPT_POST_MAX_SIZE=48M RUN sed -i "s/^post_max_size = .*/post_max_size = $PHP_OPT_POST_MAX_SIZE/g" "$PHP_INI_DIR/php.ini" -ARG PHP_OPT_UPLOAD_MAX_FILESIZE=2M +ARG PHP_OPT_UPLOAD_MAX_FILESIZE=16M RUN sed -i "s/^upload_max_filesize = .*/upload_max_filesize = $PHP_OPT_UPLOAD_MAX_FILESIZE/g" "$PHP_INI_DIR/php.ini" diff --git a/dockerfiles/php-fpm/xdebug.ini b/dockerfiles/php-fpm/xdebug.ini index 579d2f6..7540bad 100644 --- a/dockerfiles/php-fpm/xdebug.ini +++ b/dockerfiles/php-fpm/xdebug.ini @@ -1,15 +1,15 @@ -; NOTE: The actual debug.so extention is NOT SET HERE but rather (/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini) +; NOTE: The actual xdebug.so extention is NOT SET HERE but rather (/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini) ;xdebug.remote_host=dockerhost xdebug.remote_connect_back=1 xdebug.remote_port=9000 xdebug.idekey=PHPSTORM -xdebug.remote_autostart=0 -xdebug.remote_enable=0 +xdebug.remote_autostart=1 +xdebug.remote_enable=1 xdebug.cli_color=0 -xdebug.profiler_enable=0 -xdebug.profiler_enable_trigger=0 +xdebug.profiler_enable=1 +xdebug.profiler_enable_trigger=1 xdebug.profiler_output_dir=/tmp xdebug.remote_handler=dbgp @@ -23,4 +23,4 @@ xdebug.trace_enable_trigger=1 xdebug.trace_output_dir=/tmp xdebug.trace_output_name="trace.%t" -xdebug.show_exception_trace=0 \ No newline at end of file +xdebug.show_exception_trace=1 \ No newline at end of file diff --git a/dockerfiles/workspace/.gitignore b/dockerfiles/workspace/.gitignore new file mode 100644 index 0000000..981738e --- /dev/null +++ b/dockerfiles/workspace/.gitignore @@ -0,0 +1 @@ +/aliases.sh \ No newline at end of file diff --git a/dockerfiles/workspace/aliases.sh.example b/dockerfiles/workspace/aliases.sh.example new file mode 100644 index 0000000..af1dc89 --- /dev/null +++ b/dockerfiles/workspace/aliases.sh.example @@ -0,0 +1,23 @@ +#! /bin/bash + +# Colors used for status updates +ESC_SEQ="\x1b[" +COL_RESET=$ESC_SEQ"39;49;00m" +COL_RED=$ESC_SEQ"31;01m" +COL_GREEN=$ESC_SEQ"32;01m" +COL_YELLOW=$ESC_SEQ"33;01m" +COL_BLUE=$ESC_SEQ"34;01m" +COL_MAGENTA=$ESC_SEQ"35;01m" +COL_CYAN=$ESC_SEQ"36;01m" + +# Detect which `ls` flavor is in use +if ls --color > /dev/null 2>&1; then # GNU `ls` + colorflag="--color" + export LS_COLORS='no=00:fi=00:di=01;31:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.ogg=01;35:*.mp3=01;35:*.wav=01;35:' +else # macOS `ls` + colorflag="-G" + export LSCOLORS='BxBxhxDxfxhxhxhxhxcxcx' +fi + +# Always use color output for `ls` +alias ls="command ls ${colorflag}" \ No newline at end of file diff --git a/dockerfiles/workspace/workspace73.Dockerfile b/dockerfiles/workspace/workspace73.Dockerfile index e1e8be6..fcb5261 100644 --- a/dockerfiles/workspace/workspace73.Dockerfile +++ b/dockerfiles/workspace/workspace73.Dockerfile @@ -1,5 +1,7 @@ FROM dimti/workspace:7.3 +ARG PHP_VERSION=7.3 + ########################################################################### # Laradock non-root user: ########################################################################### @@ -28,7 +30,7 @@ RUN ln -snf /usr/share/zoneinfo/$CUSTOM_TZ /etc/localtime && echo $CUSTOM_TZ > / RUN pecl install -a redis -RUN echo "extension=redis.so" > /etc/php/7.3/cli/conf.d/20-redis.ini +RUN echo "extension=redis.so" > /etc/php/${PHP_VERSION}/cli/conf.d/20-redis.ini ########################################################################### # S3 config @@ -62,6 +64,46 @@ RUN if [ ! -z "${CUSTOM_NODE_VERSION}" ]; then \ RUN sed -i 's/^mozilla\/DST_Root_CA_X3\.crt/!mozilla\/DST_Root_CA_X3.crt/g' /etc/ca-certificates.conf && update-ca-certificates ########################################################################### +# Laradock Aliases +########################################################################### + +USER laradock + +COPY ./aliases.sh /home/laradock/aliases.sh + +RUN echo "" >> ~/.bashrc && \ + echo "# Load Custom Aliases" >> ~/.bashrc && \ + echo "source ~/aliases.sh" >> ~/.bashrc && \ + echo "" >> ~/.bashrc + +########################################################################### +# S3 config +########################################################################### + +USER laradock + +COPY ./minio/auth.json /home/laradock/.mc/config.json + +########################################################################### +# Tune opts: +########################################################################### + +ARG PHP_OPT_SHORT_OPEN_TAG=Off +RUN sed -i "s/^short_open_tag = .*/short_open_tag = $PHP_OPT_SHORT_OPEN_TAG/g" /etc/php/${PHP_VERSION}/cli/php.ini + +ARG PHP_OPT_MAX_EXECUTION_TIME=600 +RUN sed -i "s/^max_execution_time = .*/max_execution_time = $PHP_OPT_MAX_EXECUTION_TIME/g" /etc/php/${PHP_VERSION}/cli/php.ini + +ARG PHP_OPT_MEMORY_LIMIT=256M +RUN sed -i "s/^memory_limit = .*/memory_limit = $PHP_OPT_MEMORY_LIMIT/g" /etc/php/${PHP_VERSION}/cli/php.ini + +ARG PHP_OPT_POST_MAX_SIZE=48M +RUN sed -i "s/^post_max_size = .*/post_max_size = $PHP_OPT_UPLOAD_MAX_FILESIZE/g" /etc/php/${PHP_VERSION}/cli/php.ini + +ARG PHP_OPT_UPLOAD_MAX_FILESIZE=16M +RUN sed -i "s/^upload_max_filesize = .*/upload_max_filesize = $PHP_OPT_UPLOAD_MAX_FILESIZE/g" /etc/php/${PHP_VERSION}/cli/php.ini + +########################################################################### # Crontab ########################################################################### diff --git a/dockerfiles/workspace/workspace74.Dockerfile b/dockerfiles/workspace/workspace74.Dockerfile index c205f08..027091a 100644 --- a/dockerfiles/workspace/workspace74.Dockerfile +++ b/dockerfiles/workspace/workspace74.Dockerfile @@ -1,4 +1,6 @@ -FROM dimti/workspace:7.4 +FROM src_workspace74:latest + +ARG PHP_VERSION=7.4 ########################################################################### # Laradock non-root user: @@ -29,15 +31,7 @@ RUN ln -snf /usr/share/zoneinfo/$CUSTOM_TZ /etc/localtime && echo $CUSTOM_TZ > / #RUN pecl install igbinary && pecl install -a redis RUN pecl install -a redis -RUN echo "extension=redis.so" > /etc/php/7.4/cli/conf.d/20-redis.ini - -########################################################################### -# S3 config -########################################################################### - -USER laradock - -COPY ./minio/auth.json /home/laradock/.mc/config.json +RUN echo "extension=redis.so" > /etc/php/${PHP_VERSION}/cli/conf.d/20-redis.ini ########################################################################### # Install custom node version @@ -63,6 +57,43 @@ RUN if [ ! -z "${CUSTOM_NODE_VERSION}" ]; then \ RUN sed -i 's/^mozilla\/DST_Root_CA_X3\.crt/!mozilla\/DST_Root_CA_X3.crt/g' /etc/ca-certificates.conf && update-ca-certificates ########################################################################### +# Laradock Aliases +########################################################################### + +USER laradock + +COPY ./aliases.sh /home/laradock/aliases.sh + +RUN echo "" >> ~/.bashrc && \ + echo "# Load Custom Aliases" >> ~/.bashrc && \ + echo "source ~/aliases.sh" >> ~/.bashrc && \ + echo "" >> ~/.bashrc + +########################################################################### +# S3 config +########################################################################### + +USER laradock + +COPY ./minio/auth.json /home/laradock/.mc/config.json + +########################################################################### +# Tune opts: +########################################################################### + +ARG PHP_OPT_MAX_EXECUTION_TIME=600 +RUN sed -i "s/^max_execution_time = .*/max_execution_time = $PHP_OPT_MAX_EXECUTION_TIME/g" /etc/php/${PHP_VERSION}/cli/php.ini + +ARG PHP_OPT_MEMORY_LIMIT=256M +RUN sed -i "s/^memory_limit = .*/memory_limit = $PHP_OPT_MEMORY_LIMIT/g" /etc/php/${PHP_VERSION}/cli/php.ini + +ARG PHP_OPT_POST_MAX_SIZE=48M +RUN sed -i "s/^post_max_size = .*/post_max_size = $PHP_OPT_UPLOAD_MAX_FILESIZE/g" /etc/php/${PHP_VERSION}/cli/php.ini + +ARG PHP_OPT_UPLOAD_MAX_FILESIZE=16M +RUN sed -i "s/^upload_max_filesize = .*/upload_max_filesize = $PHP_OPT_UPLOAD_MAX_FILESIZE/g" /etc/php/${PHP_VERSION}/cli/php.ini + +########################################################################### # Crontab ########################################################################### diff --git a/dockerfiles/workspace/xdebug.sh b/dockerfiles/workspace/xdebug.sh index 9b2a9ee..d2ccc59 100755 --- a/dockerfiles/workspace/xdebug.sh +++ b/dockerfiles/workspace/xdebug.sh @@ -25,12 +25,12 @@ xdebug_start () echo 'Start xDebug' # And uncomment line with xdebug extension, thus enabling it - ON_CMD="sed -i 's/^;zend_extension=/zend_extension=/g' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini" + ON_CMD='sed -i "s/^;zend_extension=/zend_extension=/g" /etc/php/$PHP_VERSION/cli/conf.d/20-xdebug.ini' docker exec -it $WORKSPACE_CONTAINER bash -c "${ON_CMD}" docker exec -it $WORKSPACE_CONTAINER bash -c 'php -v' - echo 'In cli use this for resolve hostname for debugger in your IDE :' + echo 'In cli use this for resolve hostname for debugger in your IDE:' echo 'export PHP_IDE_CONFIG="serverName=loc.mydomain.ru"' } @@ -40,7 +40,7 @@ xdebug_stop () echo 'Stop xDebug' # Comment out xdebug extension line - OFF_CMD="sed -i 's/^zend_extension=/;zend_extension=/g' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini" + OFF_CMD='sed -i "s/^zend_extension=/;zend_extension=/g" /etc/php/$PHP_VERSION/cli/conf.d/20-xdebug.ini' docker exec -it $WORKSPACE_CONTAINER bash -c "${OFF_CMD}" docker exec -it $WORKSPACE_CONTAINER bash -c 'php -v' diff --git a/src/.env b/src/.env index 9b67d3c..b600a2c 100644 --- a/src/.env +++ b/src/.env @@ -4,20 +4,21 @@ WORKSPACE_PGID=1000 WORKSPACE_TIMEZONE=Europe/Moscow WORKSPACE_INSTALL_SSH=true WORKSPACE_INSTALL_MYSQL_CLIENT=true -WORKSPACE_INSTALL_PYTHON=true WORKSPACE_INSTALL_FSWATCH=false WORKSPACE_INSTALL_PING=true WORKSPACE_INSTALL_S3_MINIO_CLIENT=true +WORKSPACE_INSTALL_XDEBUG=true +WORKSPACE_INSTALL_BZ2=true +# PHP-extensions already installed: INTL, PGSQL, BCMATH +WORKSPACE_INSTALL_WP_CLI=true +WORKSPACE_INSTALL_NODE=true +WORKSPACE_INSTALL_GULP=true +WORKSPACE_INSTALL_YARN=true WORKSPACE_COMPOSER_VERSION=1 WORKSPACE_COMPOSER_GLOBAL_INSTALL=true WORKSPACE_COMPOSER_REPO_PACKAGIST= -WORKSPACE_INSTALL_XDEBUG=false -WORKSPACE_INSTALL_WP_CLI=true -WORKSPACE_INSTALL_NODE=true WORKSPACE_NODE_VERSION=lts/dubnium WORKSPACE_NPM_REGISTRY= -WORKSPACE_INSTALL_GULP=true -WORKSPACE_INSTALL_YARN=true WORKSPACE_YARN_VERSION=latest ### PHP-FPM ############################################# @@ -25,11 +26,12 @@ INSTALL_XDEBUG=true INSTALL_REDIS=true INSTALL_ZIP=true INSTALL_BZ2=true +INSTALL_OPCACHE=true INSTALL_INTL=true INSTALL_PGSQL=true INSTALL_BCMATH=true -PHP_OPT_SHORT_OPEN_TAG=On PHP_OPT_MAX_EXECUTION_TIME=600 -PHP_OPT_MEMORY_LIMIT=500M -PHP_OPT_UPLOAD_MAX_FILESIZE=20M +PHP_OPT_MEMORY_LIMIT=256M +PHP_OPT_POST_MAX_SIZE=48M +PHP_OPT_UPLOAD_MAX_FILESIZE=16M diff --git a/src/README.md b/src/README.md new file mode 100644 index 0000000..de4f2c7 --- /dev/null +++ b/src/README.md @@ -0,0 +1,39 @@ +## For use DOCKER_BUILD_KIT + +Set bash env vars: + +```bash +export DOCKER_BUILDKIT=1 +export COMPOSE_DOCKER_CLI_BUILD=1 + +``` + +## Recommended aliases + +```bash +alias dc='docker-compose' +alias dils='docker image ls | grep' +alias dirm='docker image rm' +``` + +## Visualize docker images tree + +https://github.com/justone/dockviz + +### Setup + +Add into your `~/.bash_aliases`: + +`alias dockviz="docker run -it --rm -v /var/run/docker.sock:/var/run/docker.sock nate/dockviz"` + +For use visualization with `/usr/bin/dot` + +`apt install graphviz` + +### Containers + +`dockviz containers -d | dot -Tpng -o ~/containers.png` + +### Images + +`dockviz images -d | dot -Tpng -o ~/images.png` diff --git a/src/docker-compose.base.yml b/src/docker-compose.base.yml index 5d7748e..279a4d9 100755 --- a/src/docker-compose.base.yml +++ b/src/docker-compose.base.yml @@ -8,12 +8,13 @@ services: - INSTALL_XDEBUG=${INSTALL_XDEBUG} - INSTALL_ZIP=${INSTALL_ZIP} - INSTALL_BZ2=${INSTALL_BZ2} + - INSTALL_OPCACHE=${INSTALL_OPCACHE} - INSTALL_INTL=${INSTALL_INTL} - INSTALL_PGSQL=${INSTALL_PGSQL} - INSTALL_BCMATH=${INSTALL_BCMATH} - - PHP_OPT_SHORT_OPEN_TAG=${PHP_OPT_SHORT_OPEN_TAG} - PHP_OPT_MAX_EXECUTION_TIME=${PHP_OPT_MAX_EXECUTION_TIME} - PHP_OPT_MEMORY_LIMIT=${PHP_OPT_MEMORY_LIMIT} + - PHP_OPT_POST_MAX_SIZE=${PHP_OPT_POST_MAX_SIZE} - PHP_OPT_UPLOAD_MAX_FILESIZE=${PHP_OPT_UPLOAD_MAX_FILESIZE} workspace: build: @@ -24,18 +25,22 @@ services: - TZ=${WORKSPACE_TIMEZONE} - INSTALL_SSH=${WORKSPACE_INSTALL_SSH} - INSTALL_MYSQL_CLIENT=${WORKSPACE_INSTALL_MYSQL_CLIENT} - - INSTALL_PYTHON=${WORKSPACE_INSTALL_PYTHON} - INSTALL_FSWATCH=${WORKSPACE_INSTALL_FSWATCH} - INSTALL_PING=${WORKSPACE_INSTALL_PING} - INSTALL_S3_MINIO_CLIENT=${WORKSPACE_INSTALL_S3_MINIO_CLIENT} + - INSTALL_XDEBUG=${WORKSPACE_INSTALL_XDEBUG} + - INSTALL_BZ2=${WORKSPACE_INSTALL_BZ2} - COMPOSER_VERSION=${WORKSPACE_COMPOSER_VERSION} - COMPOSER_GLOBAL_INSTALL=${WORKSPACE_COMPOSER_GLOBAL_INSTALL} - COMPOSER_REPO_PACKAGIST=${WORKSPACE_COMPOSER_REPO_PACKAGIST} - - INSTALL_XDEBUG=${WORKSPACE_INSTALL_XDEBUG} - INSTALL_WP_CLI=${WORKSPACE_INSTALL_WP_CLI} - INSTALL_NODE=${WORKSPACE_INSTALL_NODE} - - NODE_VERSION=${WORKSPACE_NODE_VERSION} - - NPM_REGISTRY=${WORKSPACE_NPM_REGISTRY} - INSTALL_GULP=${WORKSPACE_INSTALL_GULP} - INSTALL_YARN=${WORKSPACE_INSTALL_YARN} + - NODE_VERSION=${WORKSPACE_NODE_VERSION} + - NPM_REGISTRY=${WORKSPACE_NPM_REGISTRY} - YARN_VERSION=${WORKSPACE_YARN_VERSION} + - PHP_OPT_MAX_EXECUTION_TIME=${PHP_OPT_MAX_EXECUTION_TIME} + - PHP_OPT_MEMORY_LIMIT=${PHP_OPT_MEMORY_LIMIT} + - PHP_OPT_POST_MAX_SIZE=${PHP_OPT_POST_MAX_SIZE} + - PHP_OPT_UPLOAD_MAX_FILESIZE=${PHP_OPT_UPLOAD_MAX_FILESIZE} diff --git a/src/dockerfiles/php-fpm/php.base.Dockerfile b/src/dockerfiles/php-fpm/php.base.Dockerfile index dbff369..3c25b28 100644 --- a/src/dockerfiles/php-fpm/php.base.Dockerfile +++ b/src/dockerfiles/php-fpm/php.base.Dockerfile @@ -55,6 +55,17 @@ RUN if [ ${INSTALL_BZ2} = true ]; then \ ;fi ########################################################################### +# OPCACHE: +########################################################################### + +ARG INSTALL_OPCACHE=false + +RUN if [ ${INSTALL_OPCACHE} = true ]; then \ + docker-php-ext-install opcache \ + && docker-php-ext-enable opcache \ +;fi + +########################################################################### # INTL: ########################################################################### @@ -98,7 +109,6 @@ RUN apt --allow-releaseinfo-change update && \ sed -i 's/# ru_RU.UTF-8 UTF-8/ru_RU.UTF-8 UTF-8/' /etc/locale.gen && \ locale-gen - ########################################################################### # Prepend nginx 502 on showing errors: # @see https://stackoverflow.com/questions/55260221/laravel-php-7-3-nginx-502-upstream-prematurely-closed-fastcgi-stdout @@ -117,14 +127,14 @@ RUN mv "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini" # Tune opts: ########################################################################### -ARG PHP_OPT_SHORT_OPEN_TAG=Off -RUN sed -i "s/^short_open_tag = .*/short_open_tag = $PHP_OPT_SHORT_OPEN_TAG/g" "$PHP_INI_DIR/php.ini" - -ARG PHP_OPT_MAX_EXECUTION_TIME=30 +ARG PHP_OPT_MAX_EXECUTION_TIME=600 RUN sed -i "s/^max_execution_time = .*/max_execution_time = $PHP_OPT_MAX_EXECUTION_TIME/g" "$PHP_INI_DIR/php.ini" -ARG PHP_OPT_MEMORY_LIMIT=128M +ARG PHP_OPT_MEMORY_LIMIT=256M RUN sed -i "s/^memory_limit = .*/memory_limit = $PHP_OPT_MEMORY_LIMIT/g" "$PHP_INI_DIR/php.ini" -ARG PHP_OPT_UPLOAD_MAX_FILESIZE=2M +ARG PHP_OPT_POST_MAX_SIZE=48M +RUN sed -i "s/^post_max_size = .*/post_max_size = $PHP_OPT_UPLOAD_MAX_FILESIZE/g" "$PHP_INI_DIR/php.ini" + +ARG PHP_OPT_UPLOAD_MAX_FILESIZE=16M RUN sed -i "s/^upload_max_filesize = .*/upload_max_filesize = $PHP_OPT_UPLOAD_MAX_FILESIZE/g" "$PHP_INI_DIR/php.ini" diff --git a/src/dockerfiles/php-fpm/xdebug.ini b/src/dockerfiles/php-fpm/xdebug.ini index 6981068..3e66428 100644 --- a/src/dockerfiles/php-fpm/xdebug.ini +++ b/src/dockerfiles/php-fpm/xdebug.ini @@ -1,4 +1,4 @@ -; NOTE: The actual debug.so extention is NOT SET HERE but rather (/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini) +; NOTE: The actual xdebug.so extension is NOT SET HERE but rather (/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini) ;xdebug.remote_host=dockerhost xdebug.remote_connect_back=1 diff --git a/src/dockerfiles/workspace/workspace.base.Dockerfile b/src/dockerfiles/workspace/workspace.base.Dockerfile index f987152..dae9c41 100644 --- a/src/dockerfiles/workspace/workspace.base.Dockerfile +++ b/src/dockerfiles/workspace/workspace.base.Dockerfile @@ -78,28 +78,18 @@ ENV TZ ${TZ} RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone ########################################################################### -# User Aliases +# Root Aliases ########################################################################### USER root COPY ./aliases.sh /root/aliases.sh -COPY ./aliases.sh /home/laradock/aliases.sh RUN sed -i 's/\r//' /root/aliases.sh && \ - sed -i 's/\r//' /home/laradock/aliases.sh && \ - chown laradock:laradock /home/laradock/aliases.sh && \ echo "" >> ~/.bashrc && \ echo "# Load Custom Aliases" >> ~/.bashrc && \ echo "source ~/aliases.sh" >> ~/.bashrc && \ - echo "" >> ~/.bashrc - -USER laradock - -RUN echo "" >> ~/.bashrc && \ - echo "# Load Custom Aliases" >> ~/.bashrc && \ - echo "source ~/aliases.sh" >> ~/.bashrc && \ - echo "" >> ~/.bashrc + echo "" >> ~/.bashrc \ ########################################################################### # ssh: @@ -136,20 +126,6 @@ RUN if [ ${INSTALL_MYSQL_CLIENT} = true ]; then \ ;fi ########################################################################### -# PYTHON: -########################################################################### - -USER root - -ARG INSTALL_PYTHON=false - -RUN if [ ${INSTALL_PYTHON} = true ]; then \ - apt-get update && apt-get -y install python python-pip python-dev build-essential \ - && python -m pip install --upgrade "pip < 21.0" \ - && python -m pip install --upgrade virtualenv \ -;fi - -########################################################################### # fswatch ########################################################################### @@ -191,6 +167,32 @@ RUN if [ ${INSTALL_S3_MINIO_CLIENT} = true ]; then \ ; fi ########################################################################### +# xDebug: +########################################################################### + +# Copy xdebug configuration for remote debugging +COPY ./xdebug.ini /etc/php/${PHP_VERSION}/cli/conf.d/xdebug.ini + +ARG INSTALL_XDEBUG=false + +RUN if [ ${INSTALL_XDEBUG} = true ]; then \ + # Load the xdebug extension only with phpunit commands + apt-get install -y php${PHP_VERSION}-xdebug && \ + sed -i 's/^zend_extension=/;zend_extension=/g' /etc/php/${PHP_VERSION}/cli/conf.d/20-xdebug.ini && \ + echo "alias phpunit='php -dzend_extension=xdebug.so /var/www/vendor/bin/phpunit'" >> ~/.bashrc \ +;fi + +########################################################################### +# BZ2: +########################################################################### + +ARG INSTALL_BZ2=false + +RUN if [ ${INSTALL_BZ2} = true ]; then \ + apt-get install -y php${PHP_VERSION}-bz2 \ +;fi + +########################################################################### # Composer: ########################################################################### @@ -252,28 +254,6 @@ RUN echo "" >> ~/.bashrc && \ RUN set -xe; php -v | head -n 1 | grep -q "PHP ${PHP_VERSION}." ########################################################################### -# xDebug: -########################################################################### - -USER root - -ARG INSTALL_XDEBUG=false - -RUN if [ ${INSTALL_XDEBUG} = true ]; then \ - # Load the xdebug extension only with phpunit commands - apt-get install -y php${PHP_VERSION}-xdebug && \ - sed -i 's/^;//g' /etc/php/${PHP_VERSION}/cli/conf.d/20-xdebug.ini && \ - echo "alias phpunit='php -dzend_extension=xdebug.so /var/www/vendor/bin/phpunit'" >> ~/.bashrc \ -;fi - -# ADD for REMOTE debugging -COPY ./xdebug.ini /etc/php/${PHP_VERSION}/cli/conf.d/xdebug.ini - -RUN sed -i "s/xdebug.remote_autostart=0/xdebug.remote_autostart=1/" /etc/php/${PHP_VERSION}/cli/conf.d/xdebug.ini && \ - sed -i "s/xdebug.remote_enable=0/xdebug.remote_enable=1/" /etc/php/${PHP_VERSION}/cli/conf.d/xdebug.ini && \ - sed -i "s/xdebug.cli_color=0/xdebug.cli_color=1/" /etc/php/${PHP_VERSION}/cli/conf.d/xdebug.ini - -########################################################################### # WP CLI: ########################################################################### @@ -420,6 +400,30 @@ RUN if [ ${INSTALL_YARN} = true ]; then \ # Add PATH for YARN ENV PATH $PATH:/home/laradock/.yarn/bin +########################################################################### +# Remove DST_Root_CA3 +########################################################################### + +USER root + +RUN sed -i 's/^mozilla\/DST_Root_CA_X3\.crt/!mozilla\/DST_Root_CA_X3.crt/g' /etc/ca-certificates.conf && update-ca-certificates + +########################################################################### +# Tune opts: +########################################################################### + +ARG PHP_OPT_MAX_EXECUTION_TIME=600 +RUN sed -i "s/^max_execution_time = .*/max_execution_time = $PHP_OPT_MAX_EXECUTION_TIME/g" /etc/php/${PHP_VERSION}/cli/php.ini + +ARG PHP_OPT_MEMORY_LIMIT=256M +RUN sed -i "s/^memory_limit = .*/memory_limit = $PHP_OPT_MEMORY_LIMIT/g" /etc/php/${PHP_VERSION}/cli/php.ini + +ARG PHP_OPT_POST_MAX_SIZE=48M +RUN sed -i "s/^post_max_size = .*/post_max_size = $PHP_OPT_UPLOAD_MAX_FILESIZE/g" /etc/php/${PHP_VERSION}/cli/php.ini + +ARG PHP_OPT_UPLOAD_MAX_FILESIZE=16M +RUN sed -i "s/^upload_max_filesize = .*/upload_max_filesize = $PHP_OPT_UPLOAD_MAX_FILESIZE/g" /etc/php/${PHP_VERSION}/cli/php.ini + # #-------------------------------------------------------------------------- # Final Touch diff --git a/src/dockerfiles/workspace/workspace73.Dockerfile b/src/dockerfiles/workspace/workspace73.Dockerfile index d2c3efc..40f00f5 100644 --- a/src/dockerfiles/workspace/workspace73.Dockerfile +++ b/src/dockerfiles/workspace/workspace73.Dockerfile @@ -1,6 +1,7 @@ # syntax = edrevo/dockerfile-plus -ARG PHP_VERSION=7.3 +FROM laradock/workspace:latest-7.3 -FROM laradock/workspace:latest-${PHP_VERSION} +ARG PHP_VERSION=7.3 +ENV PHP_VERSION ${PHP_VERSION} INCLUDE+ ./workspace.base.Dockerfile diff --git a/src/dockerfiles/workspace/workspace74.Dockerfile b/src/dockerfiles/workspace/workspace74.Dockerfile index b56af3c..2c72faf 100644 --- a/src/dockerfiles/workspace/workspace74.Dockerfile +++ b/src/dockerfiles/workspace/workspace74.Dockerfile @@ -1,6 +1,7 @@ # syntax = edrevo/dockerfile-plus -ARG PHP_VERSION=7.4 +FROM laradock/workspace:latest-7.4 -FROM laradock/workspace:latest-${PHP_VERSION} +ARG PHP_VERSION=7.4 +ENV PHP_VERSION ${PHP_VERSION} INCLUDE+ ./workspace.base.Dockerfile diff --git a/src/dockerfiles/workspace/xdebug.ini b/src/dockerfiles/workspace/xdebug.ini index 901a38f..35b7229 100644 --- a/src/dockerfiles/workspace/xdebug.ini +++ b/src/dockerfiles/workspace/xdebug.ini @@ -1,4 +1,4 @@ -; NOTE: The actual debug.so extention is NOT SET HERE but rather (/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini) +; NOTE: The actual xdebug.so extension is NOT SET HERE but rather (/etc/php/7.4/conf.d/20-xdebug.ini) xdebug.remote_host=dockerhost xdebug.remote_connect_back=0 @@ -9,7 +9,7 @@ xdebug.remote_autostart=0 xdebug.remote_enable=0 xdebug.cli_color=0 xdebug.profiler_enable=0 -xdebug.profiler_output_dir="~/xdebug/phpstorm/tmp/profiling" +xdebug.profiler_output_dir=/tmp xdebug.remote_handler=dbgp xdebug.remote_mode=req @@ -18,3 +18,6 @@ xdebug.var_display_max_children=-1 xdebug.var_display_max_data=-1 xdebug.var_display_max_depth=-1 +xdebug.trace_enable_trigger=1 +xdebug.trace_output_dir=/tmp +xdebug.trace_output_name="trace.%t" \ No newline at end of file