+ php src container fully refactored and lightweight
* on host system container also refactored, some env options moved from .env to docker-compose example * dnsmasq now is separate service file + php 8.3 support * xdebug launch also refactored and lightweight * tested and worked python environment with pyenv (on today without supervisor) * database container and appropriate gui applications for management database systems moved into separate service files + build src php container helper - remove unnecessary docker compose file version directive - remove minio thing from the host php services * use redis-local.conf from example and lightweight main redis conf file
This commit is contained in:
@ -1,145 +0,0 @@
|
||||
RUN apt-get update && apt-get install -y \
|
||||
libfreetype6-dev \
|
||||
libjpeg62-turbo-dev \
|
||||
libpng-dev \
|
||||
libwebp-dev \
|
||||
&& docker-php-ext-install -j$(nproc) iconv \
|
||||
&& docker-php-ext-install mysqli \
|
||||
&& docker-php-ext-enable mysqli
|
||||
|
||||
RUN apt-get update && docker-php-ext-install pdo pdo_mysql \
|
||||
&& docker-php-ext-enable pdo pdo_mysql
|
||||
|
||||
###########################################################################
|
||||
# xDebug:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_XDEBUG=false
|
||||
|
||||
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
|
||||
# Install the xdebug extension
|
||||
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||
pecl install xdebug-2.5.5; \
|
||||
elif [ $(php -r "echo PHP_MAJOR_VERSION;") = "8" ]; then \
|
||||
if [ $(php -r "echo PHP_MINOR_VERSION;") = "1" ]; then \
|
||||
pecl install xdebug-3.1.6; \
|
||||
elif [ $(php -r "echo PHP_MINOR_VERSION;") = "2" ]; then \
|
||||
pecl install xdebug-3.3.1; \
|
||||
else \
|
||||
pecl install xdebug; \
|
||||
fi \
|
||||
else \
|
||||
pecl install xdebug-2.9.8; \
|
||||
fi && \
|
||||
docker-php-ext-enable xdebug && \
|
||||
sed -i 's/^zend_extension=/;zend_extension=/g' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Zip:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_ZIP=false
|
||||
|
||||
RUN if [ ${INSTALL_ZIP} = true ]; then \
|
||||
apt update && apt install -y libzip-dev \
|
||||
&& docker-php-ext-install zip \
|
||||
&& docker-php-ext-enable zip \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# BZ2:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_BZ2=false
|
||||
|
||||
RUN if [ ${INSTALL_BZ2} = true ]; then \
|
||||
apt update && apt install -y libbz2-ocaml-dev \
|
||||
&& docker-php-ext-install bz2 \
|
||||
&& docker-php-ext-enable bz2 \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# OPCACHE:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_OPCACHE=false
|
||||
|
||||
RUN if [ ${INSTALL_OPCACHE} = true ]; then \
|
||||
docker-php-ext-install opcache \
|
||||
&& docker-php-ext-enable opcache \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# INTL:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_INTL=false
|
||||
|
||||
RUN if [ ${INSTALL_INTL} = true ]; then \
|
||||
apt update && apt install -y libicu-dev \
|
||||
&& docker-php-ext-install intl \
|
||||
&& docker-php-ext-enable intl \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# PGSQL:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_PGSQL=false
|
||||
|
||||
RUN if [ ${INSTALL_PGSQL} = true ]; then \
|
||||
apt update && apt install -y libpq-dev \
|
||||
&& docker-php-ext-install pgsql \
|
||||
&& docker-php-ext-install pdo_pgsql \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# BCMATH:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_BCMATH=false
|
||||
|
||||
RUN if [ ${INSTALL_BCMATH} = true ]; then \
|
||||
docker-php-ext-install bcmath \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Locales:
|
||||
###########################################################################
|
||||
|
||||
RUN apt --allow-releaseinfo-change update && \
|
||||
apt install -y locales && \
|
||||
sed -i 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \
|
||||
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
|
||||
###########################################################################
|
||||
|
||||
RUN sed -i "s/^log_limit = .*/log_limit = 1024/g" "$PHP_INI_DIR/../php-fpm.d/docker.conf"
|
||||
|
||||
###########################################################################
|
||||
# php.ini opts:
|
||||
###########################################################################
|
||||
|
||||
# https://github.com/php/php-src/blob/master/php.ini-development
|
||||
RUN mv "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini"
|
||||
|
||||
###########################################################################
|
||||
# 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" "$PHP_INI_DIR/php.ini"
|
||||
|
||||
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=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"
|
@ -1,136 +0,0 @@
|
||||
RUN apt-get update && apt-get install -y \
|
||||
libfreetype6-dev \
|
||||
libjpeg62-turbo-dev \
|
||||
libpng-dev \
|
||||
libwebp-dev \
|
||||
&& docker-php-ext-install -j$(nproc) iconv \
|
||||
&& docker-php-ext-install mysqli \
|
||||
&& docker-php-ext-enable mysqli
|
||||
|
||||
RUN apt-get update && docker-php-ext-install pdo pdo_mysql \
|
||||
&& docker-php-ext-enable pdo pdo_mysql
|
||||
|
||||
###########################################################################
|
||||
# xDebug:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_XDEBUG=false
|
||||
|
||||
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
|
||||
# Install the xdebug extension
|
||||
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||
pecl install xdebug-2.5.5; \
|
||||
else \
|
||||
pecl install xdebug-2.9.8; \
|
||||
fi && \
|
||||
docker-php-ext-enable xdebug && \
|
||||
sed -i 's/^zend_extension=/;zend_extension=/g' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Zip:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_ZIP=false
|
||||
|
||||
RUN if [ ${INSTALL_ZIP} = true ]; then \
|
||||
apt update && apt install -y libzip-dev \
|
||||
&& docker-php-ext-install zip \
|
||||
&& docker-php-ext-enable zip \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# BZ2:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_BZ2=false
|
||||
|
||||
RUN if [ ${INSTALL_BZ2} = true ]; then \
|
||||
apt update && apt install -y libbz2-ocaml-dev \
|
||||
&& docker-php-ext-install bz2 \
|
||||
&& docker-php-ext-enable bz2 \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# OPCACHE:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_OPCACHE=false
|
||||
|
||||
RUN if [ ${INSTALL_OPCACHE} = true ]; then \
|
||||
docker-php-ext-install opcache \
|
||||
&& docker-php-ext-enable opcache \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# INTL:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_INTL=false
|
||||
|
||||
RUN if [ ${INSTALL_INTL} = true ]; then \
|
||||
apt update && apt install -y libicu-dev \
|
||||
&& docker-php-ext-install intl \
|
||||
&& docker-php-ext-enable intl \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# PGSQL:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_PGSQL=false
|
||||
|
||||
RUN if [ ${INSTALL_PGSQL} = true ]; then \
|
||||
apt update && apt install -y libpq-dev \
|
||||
&& docker-php-ext-install pgsql \
|
||||
&& docker-php-ext-install pdo_pgsql \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# BCMATH:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_BCMATH=false
|
||||
|
||||
RUN if [ ${INSTALL_BCMATH} = true ]; then \
|
||||
docker-php-ext-install bcmath \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Locales:
|
||||
###########################################################################
|
||||
|
||||
RUN apt install -y locales && \
|
||||
sed -i 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \
|
||||
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
|
||||
###########################################################################
|
||||
|
||||
RUN sed -i "s/^log_limit = .*/log_limit = 1024/g" "$PHP_INI_DIR/../php-fpm.d/docker.conf"
|
||||
|
||||
###########################################################################
|
||||
# php.ini opts:
|
||||
###########################################################################
|
||||
|
||||
# https://github.com/php/php-src/blob/master/php.ini-development
|
||||
RUN mv "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini"
|
||||
|
||||
###########################################################################
|
||||
# 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" "$PHP_INI_DIR/php.ini"
|
||||
|
||||
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=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"
|
@ -1,7 +0,0 @@
|
||||
# syntax = edrevo/dockerfile-plus
|
||||
FROM php:5.6-fpm
|
||||
|
||||
INCLUDE+ ./php.base56.Dockerfile
|
||||
|
||||
RUN docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ --with-webp-dir=/usr/include/ \
|
||||
&& docker-php-ext-install -j$(nproc) gd
|
@ -1,7 +0,0 @@
|
||||
# syntax = edrevo/dockerfile-plus
|
||||
FROM php:7.4-fpm
|
||||
|
||||
INCLUDE+ ./php.base.Dockerfile
|
||||
|
||||
RUN docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp \
|
||||
&& docker-php-ext-install -j$(nproc) gd
|
@ -1,8 +0,0 @@
|
||||
# syntax = edrevo/dockerfile-plus
|
||||
# https://github.com/docker-library/php/blob/52062af5056d0cd91fa5ded64fad8f9c82847b49/8.1/bookworm/fpm/Dockerfile
|
||||
FROM php:8.1-fpm
|
||||
|
||||
INCLUDE+ ./php.base.Dockerfile
|
||||
|
||||
RUN docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp \
|
||||
&& docker-php-ext-install -j$(nproc) gd
|
@ -1,7 +0,0 @@
|
||||
# syntax = edrevo/dockerfile-plus
|
||||
FROM php:8.2-fpm
|
||||
|
||||
INCLUDE+ ./php.base.Dockerfile
|
||||
|
||||
RUN docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp \
|
||||
&& docker-php-ext-install -j$(nproc) gd
|
117
src/dockerfiles/php/fpm/php.base.Dockerfile
Normal file
117
src/dockerfiles/php/fpm/php.base.Dockerfile
Normal file
@ -0,0 +1,117 @@
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
ARG DEBCONF_NOWARNINGS=yes
|
||||
|
||||
# locales ~ 20 Mb
|
||||
# libicu-dev ~ 50 Mb
|
||||
# libpq-dev ~ 14 Mb
|
||||
# libzip-dev ~ 2 Mb
|
||||
# libbz2-dev ~ 1 Mb
|
||||
# libfreetype6-dev ~ 6 Mb
|
||||
# libpng-dev ~ 3 Mb
|
||||
# libwebp-dev ~ 2 Mb
|
||||
# libjpeg62-turbo-dev ~ 2 Mb
|
||||
|
||||
# apt install does not support -qq options and not to be quited long starter message with accumulative info about installed packages
|
||||
# also apt upgrade and apt install with -qq option non propose automatic -y option, instead of apt-get install or apt-get upgrade
|
||||
# But apt update is supporting -qq options for quiting output
|
||||
RUN apt -qq update && \
|
||||
apt-get install locales libicu-dev libpq-dev libzip-dev libbz2-dev \
|
||||
libfreetype6-dev libpng-dev libwebp-dev libjpeg62-turbo-dev -qq
|
||||
|
||||
# For php7.4-fpm image - need to be upgraded apt packages
|
||||
RUN if [ $(php -r "echo PHP_MAJOR_VERSION;") = "7" ]; then \
|
||||
apt-get -qq upgrade \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Locale:
|
||||
###########################################################################
|
||||
|
||||
RUN locale-gen en_US.UTF-8
|
||||
|
||||
###########################################################################
|
||||
# Install PHP-extensions:
|
||||
###########################################################################
|
||||
|
||||
RUN docker-php-ext-install -j$(nproc) iconv
|
||||
|
||||
RUN docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp && \
|
||||
docker-php-ext-install -j$(nproc) gd
|
||||
|
||||
# opcache already installed and only need enable to
|
||||
RUN docker-php-ext-enable opcache
|
||||
|
||||
# some extension already loaded by default (of course if or after is installed)
|
||||
ARG EXTENSIONS='pdo intl mysqli pgsql zip bcmath bz2 pdo_mysql pdo_pgsql'
|
||||
|
||||
# Extension automatic enable in helper install script
|
||||
# See: https://github.com/devilbox/docker-php-fpm-7.4/blob/master/data/docker-php-ext-install#L111
|
||||
RUN docker-php-ext-install ${EXTENSIONS}
|
||||
|
||||
###########################################################################
|
||||
# xDebug:
|
||||
###########################################################################
|
||||
|
||||
# For PHP 7.4 xdebug 3.1 also is supported, but staty xdebug 2 version for compatibility experiences
|
||||
# See https://xdebug.org/docs/compat
|
||||
# And see exactly xdebug minor versions: https://pecl.php.net/package/xdebug
|
||||
RUN PHP_MAJOR_VERSION=$(php -r 'echo PHP_MAJOR_VERSION;') && \
|
||||
PHP_MINOR_VERSION=$(php -r 'echo PHP_MINOR_VERSION;') && \
|
||||
if [ $PHP_MAJOR_VERSION = '8' ]; then \
|
||||
pecl install xdebug-3.4.1; \
|
||||
elif [ $PHP_MAJOR_VERSION = '7' ]; then \
|
||||
pecl install xdebug-2.9.8; \
|
||||
else \
|
||||
echo "Not support that major PHP version: $PHP_MAJOR_VERSION"; \
|
||||
exit 1; \
|
||||
fi && \
|
||||
docker-php-ext-enable xdebug && \
|
||||
sed -i 's/^zend_extension=/;zend_extension=/g' "$PHP_INI_DIR/conf.d/docker-php-ext-xdebug.ini"
|
||||
|
||||
###########################################################################
|
||||
# Redis:
|
||||
###########################################################################
|
||||
|
||||
RUN pecl install -a redis && \
|
||||
docker-php-ext-enable redis
|
||||
|
||||
###########################################################################
|
||||
# Prepend nginx 502 on showing errors:
|
||||
# @see https://stackoverflow.com/questions/55260221/laravel-php-7-3-nginx-502-upstream-prematurely-closed-fastcgi-stdout
|
||||
###########################################################################
|
||||
|
||||
RUN sed -i 's/^log_limit = .*/log_limit = 1024/g' "$PHP_INI_DIR/../php-fpm.d/docker.conf"
|
||||
|
||||
###########################################################################
|
||||
# php.ini opts:
|
||||
###########################################################################
|
||||
|
||||
# https://github.com/php/php-src/blob/master/php.ini-development
|
||||
RUN mv "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini"
|
||||
|
||||
###########################################################################
|
||||
# Tune opts:
|
||||
###########################################################################
|
||||
|
||||
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=300M
|
||||
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=100M
|
||||
RUN sed -i "s/^upload_max_filesize = .*/upload_max_filesize = $PHP_OPT_UPLOAD_MAX_FILESIZE/g" "$PHP_INI_DIR/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" "$PHP_INI_DIR/php.ini"
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Final Touch
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
|
||||
# Clean up
|
||||
RUN apt clean && \
|
||||
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \
|
||||
rm /var/log/lastlog /var/log/faillog
|
19
src/dockerfiles/php/fpm/php74.Dockerfile
Normal file
19
src/dockerfiles/php/fpm/php74.Dockerfile
Normal file
@ -0,0 +1,19 @@
|
||||
# syntax = edrevo/dockerfile-plus
|
||||
FROM php:7.4-fpm
|
||||
|
||||
INCLUDE+ ./fpm/php.base.Dockerfile
|
||||
|
||||
ARG XDEBUG_INI_PATH=/usr/local/etc/php/conf.d/xdebug.ini
|
||||
|
||||
COPY ./xdebug2.ini ${XDEBUG_INI_PATH}
|
||||
|
||||
###########################################################################
|
||||
# Remove DST_Root_CA3
|
||||
###########################################################################
|
||||
|
||||
# mozilla\/DST_Root_CA_X3.crt still exists in php-fpm container up to 7.4. On ~8.1 it was removed
|
||||
RUN sed -i 's/^mozilla\/DST_Root_CA_X3\.crt/!mozilla\/DST_Root_CA_X3.crt/g' /etc/ca-certificates.conf && \
|
||||
update-ca-certificates
|
||||
|
||||
|
||||
|
9
src/dockerfiles/php/fpm/php81.Dockerfile
Normal file
9
src/dockerfiles/php/fpm/php81.Dockerfile
Normal file
@ -0,0 +1,9 @@
|
||||
# syntax = edrevo/dockerfile-plus
|
||||
# Original image: https://github.com/docker-library/php/blob/52062af5056d0cd91fa5ded64fad8f9c82847b49/8.1/bookworm/fpm/Dockerfile
|
||||
FROM php:8.1-fpm
|
||||
|
||||
INCLUDE+ ./fpm/php.base.Dockerfile
|
||||
|
||||
ARG XDEBUG_INI_PATH=/usr/local/etc/php/conf.d/xdebug.ini
|
||||
|
||||
COPY ./xdebug3.ini ${XDEBUG_INI_PATH}
|
8
src/dockerfiles/php/fpm/php82.Dockerfile
Normal file
8
src/dockerfiles/php/fpm/php82.Dockerfile
Normal file
@ -0,0 +1,8 @@
|
||||
# syntax = edrevo/dockerfile-plus
|
||||
FROM php:8.2-fpm
|
||||
|
||||
INCLUDE+ ./fpm/php.base.Dockerfile
|
||||
|
||||
ARG XDEBUG_INI_PATH=/usr/local/etc/php/conf.d/xdebug.ini
|
||||
|
||||
COPY ./xdebug3.ini ${XDEBUG_INI_PATH}
|
8
src/dockerfiles/php/fpm/php83.Dockerfile
Normal file
8
src/dockerfiles/php/fpm/php83.Dockerfile
Normal file
@ -0,0 +1,8 @@
|
||||
# syntax = edrevo/dockerfile-plus
|
||||
FROM php:8.3-fpm
|
||||
|
||||
INCLUDE+ ./fpm/php.base.Dockerfile
|
||||
|
||||
ARG XDEBUG_INI_PATH=/usr/local/etc/php/conf.d/xdebug.ini
|
||||
|
||||
COPY ./xdebug3.ini ${XDEBUG_INI_PATH}
|
80
src/dockerfiles/php/workspace/workspace.base.Dockerfile
Normal file
80
src/dockerfiles/php/workspace/workspace.base.Dockerfile
Normal file
@ -0,0 +1,80 @@
|
||||
###########################################################################
|
||||
# Laradock non-root user:
|
||||
###########################################################################
|
||||
|
||||
# Thath might be changed in structure/dockerfiles and structure/.env
|
||||
ARG PUID=1000
|
||||
ARG PGID=1000
|
||||
|
||||
# For more infromation about set command: See https://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html
|
||||
# RUN set -xe
|
||||
|
||||
RUN groupadd -g ${PGID} laradock && \
|
||||
useradd -u ${PUID} -g laradock -m laradock -G docker_env && \
|
||||
usermod -p "*" laradock -s /bin/bash
|
||||
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
ARG DEBCONF_NOWARNINGS=yes
|
||||
|
||||
RUN apt -qq update && \
|
||||
apt-get install tmux bash-completion inetutils-ping -qq
|
||||
|
||||
###########################################################################
|
||||
# Install PHP-extensions:
|
||||
###########################################################################
|
||||
|
||||
ARG EXTS=(bz2)
|
||||
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
RUN for EXT in ${EXTS[@]}; do apt-get install -qq php${PHP_VERSION}-${EXT}; done
|
||||
SHELL ["/bin/sh", "-c"]
|
||||
|
||||
###########################################################################
|
||||
# xDebug:
|
||||
###########################################################################
|
||||
|
||||
RUN PHP_MAJOR_VERSION=$(php -r 'echo PHP_MAJOR_VERSION;') && \
|
||||
PHP_MINOR_VERSION=$(php -r 'echo PHP_MINOR_VERSION;') && \
|
||||
if [ $PHP_MAJOR_VERSION = '8' ]; then \
|
||||
pecl install xdebug-3.4.1; \
|
||||
elif [ $PHP_MAJOR_VERSION = '7' ]; then \
|
||||
pecl install xdebug-2.9.8; \
|
||||
else \
|
||||
echo "Not support that major PHP version: $PHP_MAJOR_VERSION"; \
|
||||
exit 1; \
|
||||
fi && \
|
||||
echo ';zend_extension=xdebug.so' > /etc/php/${PHP_VERSION}/cli/conf.d/20-xdebug.ini
|
||||
|
||||
###########################################################################
|
||||
# Redis:
|
||||
###########################################################################
|
||||
|
||||
RUN pecl install -a redis && \
|
||||
echo "extension=redis.so" > /etc/php/${PHP_VERSION}/cli/conf.d/20-redis.ini
|
||||
|
||||
###########################################################################
|
||||
# Check PHP version:
|
||||
###########################################################################
|
||||
|
||||
RUN php -v | head -n 1 | grep -q "PHP ${PHP_VERSION}."
|
||||
|
||||
###########################################################################
|
||||
# Tune opts:
|
||||
###########################################################################
|
||||
|
||||
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
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Final Touch
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
|
||||
# Clean up
|
||||
RUN apt clean && \
|
||||
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \
|
||||
rm /var/log/lastlog /var/log/faillog
|
||||
|
||||
# Set default work directory
|
||||
WORKDIR /var/www
|
@ -4,6 +4,6 @@ FROM laradock/workspace:latest-7.4
|
||||
ARG PHP_VERSION=7.4
|
||||
ENV PHP_VERSION ${PHP_VERSION}
|
||||
|
||||
INCLUDE+ ./workspace.base.Dockerfile
|
||||
INCLUDE+ ./composer.Dockerfile
|
||||
INCLUDE+ ./xdebug2.Dockerfile
|
||||
INCLUDE+ ./workspace/workspace.base.Dockerfile
|
||||
|
||||
INCLUDE+ ./workspace/xdebug2.Dockerfile
|
@ -4,6 +4,6 @@ FROM laradock/workspace:latest-8.1
|
||||
ARG PHP_VERSION=8.1
|
||||
ENV PHP_VERSION ${PHP_VERSION}
|
||||
|
||||
INCLUDE+ ./workspace.base.Dockerfile
|
||||
INCLUDE+ ./composer.Dockerfile
|
||||
INCLUDE+ ./xdebug3.Dockerfile
|
||||
INCLUDE+ ./workspace/workspace.base.Dockerfile
|
||||
|
||||
INCLUDE+ ./workspace/xdebug3.Dockerfile
|
@ -4,6 +4,6 @@ FROM laradock/workspace:latest-8.2
|
||||
ARG PHP_VERSION=8.2
|
||||
ENV PHP_VERSION ${PHP_VERSION}
|
||||
|
||||
INCLUDE+ ./workspace.base.Dockerfile
|
||||
INCLUDE+ ./composer.Dockerfile
|
||||
INCLUDE+ ./xdebug3.Dockerfile
|
||||
INCLUDE+ ./workspace/workspace.base.Dockerfile
|
||||
|
||||
INCLUDE+ ./workspace/xdebug3.Dockerfile
|
9
src/dockerfiles/php/workspace/workspace83.Dockerfile
Normal file
9
src/dockerfiles/php/workspace/workspace83.Dockerfile
Normal file
@ -0,0 +1,9 @@
|
||||
# syntax = edrevo/dockerfile-plus
|
||||
FROM laradock/workspace:latest-8.3
|
||||
|
||||
ARG PHP_VERSION=8.3
|
||||
ENV PHP_VERSION ${PHP_VERSION}
|
||||
|
||||
INCLUDE+ ./workspace/workspace.base.Dockerfile
|
||||
|
||||
INCLUDE+ ./workspace/xdebug3.Dockerfile
|
6
src/dockerfiles/php/workspace/xdebug2.Dockerfile
Normal file
6
src/dockerfiles/php/workspace/xdebug2.Dockerfile
Normal file
@ -0,0 +1,6 @@
|
||||
ARG XDEBUG_INI_PATH=/etc/php/${PHP_VERSION}/cli/conf.d/xdebug.ini
|
||||
|
||||
COPY ./xdebug2.ini ${XDEBUG_INI_PATH}
|
||||
|
||||
RUN sed -i "s/^;xdebug.remote_host/xdebug.remote_host/g" ${XDEBUG_INI_PATH} && \
|
||||
sed -i "s/^xdebug.remote_connect_back/;xdebug.remote_connect_back/g" ${XDEBUG_INI_PATH}
|
6
src/dockerfiles/php/workspace/xdebug3.Dockerfile
Normal file
6
src/dockerfiles/php/workspace/xdebug3.Dockerfile
Normal file
@ -0,0 +1,6 @@
|
||||
ARG XDEBUG_INI_PATH=/etc/php/${PHP_VERSION}/cli/conf.d/xdebug.ini
|
||||
|
||||
COPY ./xdebug3.ini ${XDEBUG_INI_PATH}
|
||||
|
||||
RUN sed -i "s/^;xdebug.client_host=dockerhost/xdebug.client_host=dockerhost/g" ${XDEBUG_INI_PATH} && \
|
||||
sed -i "s/^xdebug.discover_client_host/;xdebug.discover_client_host/g" ${XDEBUG_INI_PATH}
|
24
src/dockerfiles/php/xdebug2.ini
Normal file
24
src/dockerfiles/php/xdebug2.ini
Normal file
@ -0,0 +1,24 @@
|
||||
;xdebug.remote_host=dockerhost
|
||||
xdebug.remote_connect_back=1
|
||||
xdebug.remote_port=9000
|
||||
xdebug.idekey=PHPSTORM
|
||||
|
||||
xdebug.remote_autostart=1
|
||||
xdebug.remote_enable=1
|
||||
xdebug.cli_color=0
|
||||
xdebug.profiler_enable=1
|
||||
xdebug.profiler_enable_trigger=1
|
||||
xdebug.profiler_output_dir=/tmp/profiler
|
||||
|
||||
xdebug.remote_handler=dbgp
|
||||
xdebug.remote_mode=req
|
||||
|
||||
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/trace
|
||||
xdebug.trace_output_name="trace.%t"
|
||||
|
||||
xdebug.show_exception_trace=1
|
5
src/dockerfiles/php/xdebug3.ini
Normal file
5
src/dockerfiles/php/xdebug3.ini
Normal file
@ -0,0 +1,5 @@
|
||||
xdebug.mode=off
|
||||
;xdebug.client_host=dockerhost
|
||||
xdebug.discover_client_host=1
|
||||
xdebug.start_with_request=yes
|
||||
xdebug.output_dir=/tmp/profiler
|
@ -1,153 +0,0 @@
|
||||
#! /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
|
||||
|
||||
# List all files colorized in long format
|
||||
#alias l="ls -lF ${colorflag}"
|
||||
### MEGA: I want l and la ti return hisdden files
|
||||
alias l="ls -laF ${colorflag}"
|
||||
|
||||
# List all files colorized in long format, including dot files
|
||||
alias la="ls -laF ${colorflag}"
|
||||
|
||||
# List only directories
|
||||
alias lsd="ls -lF ${colorflag} | grep --color=never '^d'"
|
||||
|
||||
# Always use color output for `ls`
|
||||
alias ls="command ls ${colorflag}"
|
||||
|
||||
# Commonly Used Aliases
|
||||
alias ..="cd .."
|
||||
alias ...="cd ../.."
|
||||
alias ....="cd ../../.."
|
||||
alias .....="cd ../../../.."
|
||||
alias ~="cd ~" # `cd` is probably faster to type though
|
||||
alias -- -="cd -"
|
||||
alias home="cd ~"
|
||||
|
||||
alias h="history"
|
||||
alias j="jobs"
|
||||
alias e='exit'
|
||||
alias c="clear"
|
||||
alias cla="clear && ls -la"
|
||||
alias cll="clear && ls -l"
|
||||
alias cls="clear && ls"
|
||||
alias code="cd /var/www"
|
||||
alias ea="vi ~/aliases.sh"
|
||||
|
||||
# Always enable colored `grep` output
|
||||
# Note: `GREP_OPTIONS="--color=auto"` is deprecated, hence the alias usage.
|
||||
alias grep='grep --color=auto'
|
||||
alias fgrep='fgrep --color=auto'
|
||||
alias egrep='egrep --color=auto'
|
||||
|
||||
alias art="php artisan"
|
||||
alias artisan="php artisan"
|
||||
alias cdump="composer dump-autoload -o"
|
||||
alias composer:dump="composer dump-autoload -o"
|
||||
alias db:reset="php artisan migrate:reset && php artisan migrate --seed"
|
||||
alias dusk="php artisan dusk"
|
||||
alias fresh="php artisan migrate:fresh"
|
||||
alias migrate="php artisan migrate"
|
||||
alias refresh="php artisan migrate:refresh"
|
||||
alias rollback="php artisan migrate:rollback"
|
||||
alias seed="php artisan db:seed"
|
||||
alias serve="php artisan serve --quiet &"
|
||||
|
||||
alias phpunit="./vendor/bin/phpunit"
|
||||
alias pu="phpunit"
|
||||
alias puf="phpunit --filter"
|
||||
alias pud='phpunit --debug'
|
||||
|
||||
alias cc='codecept'
|
||||
alias ccb='codecept build'
|
||||
alias ccr='codecept run'
|
||||
alias ccu='codecept run unit'
|
||||
alias ccf='codecept run functional'
|
||||
|
||||
alias g="gulp"
|
||||
alias npm-global="npm list -g --depth 0"
|
||||
alias ra="reload"
|
||||
alias reload="source ~/.aliases && echo \"$COL_GREEN ==> Aliases Reloaded... $COL_RESET \n \""
|
||||
alias run="npm run"
|
||||
alias tree="xtree"
|
||||
|
||||
# Xvfb
|
||||
alias xvfb="Xvfb -ac :0 -screen 0 1024x768x16 &"
|
||||
|
||||
# requires installation of 'https://www.npmjs.com/package/npms-cli'
|
||||
alias npms="npms search"
|
||||
# requires installation of 'https://www.npmjs.com/package/package-menu-cli'
|
||||
alias pm="package-menu"
|
||||
# requires installation of 'https://www.npmjs.com/package/pkg-version-cli'
|
||||
alias pv="package-version"
|
||||
# requires installation of 'https://github.com/sindresorhus/latest-version-cli'
|
||||
alias lv="latest-version"
|
||||
|
||||
# git aliases
|
||||
alias gaa="git add ."
|
||||
alias gd="git --no-pager diff"
|
||||
alias git-revert="git reset --hard && git clean -df"
|
||||
alias gs="git status"
|
||||
alias whoops="git reset --hard && git clean -df"
|
||||
alias glog="git log --oneline --decorate --graph"
|
||||
alias gloga="git log --oneline --decorate --graph --all"
|
||||
alias gsh="git show"
|
||||
alias grb="git rebase -i"
|
||||
alias gbr="git branch"
|
||||
alias gc="git commit"
|
||||
alias gck="git checkout"
|
||||
alias gull="git pull --rebase"
|
||||
alias gush="git push"
|
||||
|
||||
# Create a new directory and enter it
|
||||
function mkd() {
|
||||
mkdir -p "$@" && cd "$@"
|
||||
}
|
||||
|
||||
function md() {
|
||||
mkdir -p "$@" && cd "$@"
|
||||
}
|
||||
|
||||
function xtree {
|
||||
find ${1:-.} -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'
|
||||
}
|
||||
|
||||
# `tre` is a shorthand for `tree` with hidden files and color enabled, ignoring
|
||||
# the `.git` directory, listing directories first. The output gets piped into
|
||||
# `less` with options to preserve color and line numbers, unless the output is
|
||||
# small enough for one screen.
|
||||
function tre() {
|
||||
tree -aC -I '.git|node_modules|bower_components' --dirsfirst "$@" | less -FRNX;
|
||||
}
|
||||
|
||||
# Determine size of a file or total size of a directory
|
||||
function fs() {
|
||||
if du -b /dev/null > /dev/null 2>&1; then
|
||||
local arg=-sbh;
|
||||
else
|
||||
local arg=-sh;
|
||||
fi
|
||||
if [[ -n "$@" ]]; then
|
||||
du $arg -- "$@";
|
||||
else
|
||||
du $arg .[^.]* ./*;
|
||||
fi;
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
###########################################################################
|
||||
# Composer:
|
||||
###########################################################################
|
||||
|
||||
USER laradock
|
||||
|
||||
# Create composer dir for store composer2_auth secret
|
||||
RUN mkdir -p /home/laradock/.config/composer
|
||||
|
||||
USER root
|
||||
|
||||
# Symlink to composer auth secret
|
||||
RUN ln -s /run/secrets/composer_auth /home/laradock/.config/composer/auth.json
|
@ -1,3 +0,0 @@
|
||||
set-option -g status-interval 1
|
||||
set-option -g automatic-rename on
|
||||
set-option -g automatic-rename-format "#{?#{==:#{pane_current_command},bash},#{b:pane_current_path},#{pane_current_command}}"
|
@ -1,298 +0,0 @@
|
||||
# Set Environment Variables
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
|
||||
# Start as root
|
||||
USER root
|
||||
|
||||
###########################################################################
|
||||
# Laradock non-root user:
|
||||
###########################################################################
|
||||
|
||||
# Add a non-root user to prevent files being created with root permissions on host machine.
|
||||
ARG PUID=1000
|
||||
ENV PUID ${PUID}
|
||||
ARG PGID=1000
|
||||
ENV PGID ${PGID}
|
||||
|
||||
# always run apt update when start and after add new source list, then clean up at end.
|
||||
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 && \
|
||||
usermod -p "*" laradock -s /bin/bash && \
|
||||
apt-get install -yqq \
|
||||
apt-utils \
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Mandatory Software's Installation
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
# Mandatory Software's such as ("php-cli", "git", "vim", ....) are
|
||||
# installed on the base image 'laradock/workspace' image. If you want
|
||||
# to add more Software's or remove existing one, you need to edit the
|
||||
# base image (https://github.com/Laradock/workspace).
|
||||
#
|
||||
# next lines are here becase there is no auto build on dockerhub see https://github.com/laradock/laradock/pull/1903#issuecomment-463142846
|
||||
libzip-dev zip unzip \
|
||||
# Install the zip extension
|
||||
php${PHP_VERSION}-zip \
|
||||
# nasm
|
||||
nasm && \
|
||||
php -m | grep -q 'zip'
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Optional Software's Installation
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
# Optional Software's will only be installed if you set them to `true`
|
||||
# in the `docker-compose.yml` before the build.
|
||||
# Example:
|
||||
# - WORKSPACE_INSTALL_NODE=false
|
||||
# - ...
|
||||
#
|
||||
|
||||
###########################################################################
|
||||
# Set Timezone
|
||||
###########################################################################
|
||||
|
||||
ARG TZ=Europe/Moscow
|
||||
ENV TZ ${TZ}
|
||||
|
||||
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
||||
|
||||
###########################################################################
|
||||
# Root Aliases
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
COPY ./aliases.sh /root/aliases.sh
|
||||
|
||||
RUN sed -i 's/\r//' /root/aliases.sh && \
|
||||
echo "" >> ~/.bashrc && \
|
||||
echo "# Load Custom Aliases" >> ~/.bashrc && \
|
||||
echo "source ~/aliases.sh" >> ~/.bashrc && \
|
||||
echo "" >> ~/.bashrc
|
||||
|
||||
###########################################################################
|
||||
# ssh:
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
ARG INSTALL_SSH=false
|
||||
ENV INSTALL_SSH ${INSTALL_SSH}
|
||||
|
||||
RUN if [ ${INSTALL_SSH} = true ]; then \
|
||||
rm -f /etc/service/sshd/down \
|
||||
;fi
|
||||
|
||||
USER laradock
|
||||
|
||||
RUN if [ ${INSTALL_SSH} = true ]; then \
|
||||
mkdir -p ~/.ssh \
|
||||
&& ln -s /run/secrets/user_ssh_key ~/.ssh/id_rsa \
|
||||
&& ln -s /run/secrets/user_known_hosts ~/.ssh/known_hosts \
|
||||
;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
|
||||
|
||||
###########################################################################
|
||||
# fswatch
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
ARG INSTALL_FSWATCH=false
|
||||
|
||||
RUN if [ ${INSTALL_FSWATCH} = true ]; then \
|
||||
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 47FE03C1 \
|
||||
&& add-apt-repository -y ppa:hadret/fswatch \
|
||||
|| apt-get update -yqq \
|
||||
&& apt-get -y install fswatch \
|
||||
;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
|
||||
|
||||
###########################################################################
|
||||
# Install S3 minio client:
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
ARG INSTALL_S3_MINIO_CLIENT=false
|
||||
|
||||
RUN if [ ${INSTALL_S3_MINIO_CLIENT} = true ]; then \
|
||||
curl https://dl.min.io/client/mc/release/linux-amd64/mc > /usr/local/sbin/mc \
|
||||
&& chmod +x /usr/local/sbin/mc \
|
||||
; fi
|
||||
|
||||
###########################################################################
|
||||
# xDebug:
|
||||
###########################################################################
|
||||
|
||||
RUN if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||
pecl install xdebug-2.5.5; \
|
||||
elif [ $(php -r "echo PHP_MAJOR_VERSION;") = "8" ]; then \
|
||||
if [ $(php -r "echo PHP_MINOR_VERSION;") = "1" ]; then \
|
||||
pecl install xdebug-3.1.6; \
|
||||
elif [ $(php -r "echo PHP_MINOR_VERSION;") = "2" ]; then \
|
||||
pecl install xdebug-3.3.1; \
|
||||
else \
|
||||
pecl install xdebug; \
|
||||
fi \
|
||||
else \
|
||||
pecl install xdebug-2.9.8; \
|
||||
fi && \
|
||||
echo ';zend_extension=xdebug.so' > /etc/php/${PHP_VERSION}/cli/conf.d/20-xdebug.ini && \
|
||||
echo "alias phpunit='php -dzend_extension=xdebug.so /var/www/vendor/bin/phpunit'" >> ~/.bashrc
|
||||
|
||||
###########################################################################
|
||||
# BZ2:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_BZ2=false
|
||||
|
||||
RUN if [ ${INSTALL_BZ2} = true ]; then \
|
||||
apt-get install -y php${PHP_VERSION}-bz2 \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Non-root user : PHPUnit path
|
||||
###########################################################################
|
||||
|
||||
# add ./vendor/bin to non-root user's bashrc (needed for phpunit)
|
||||
USER laradock
|
||||
|
||||
RUN echo "" >> ~/.bashrc && \
|
||||
echo 'export PATH="/var/www/vendor/bin:$PATH"' >> ~/.bashrc
|
||||
|
||||
###########################################################################
|
||||
# Check PHP version:
|
||||
###########################################################################
|
||||
|
||||
RUN set -xe; php -v | head -n 1 | grep -q "PHP ${PHP_VERSION}."
|
||||
|
||||
###########################################################################
|
||||
# WP CLI:
|
||||
###########################################################################
|
||||
|
||||
# The command line interface for WordPress
|
||||
|
||||
USER root
|
||||
|
||||
ARG INSTALL_WP_CLI=false
|
||||
|
||||
RUN if [ ${INSTALL_WP_CLI} = true ]; then \
|
||||
curl -fsSL -o /usr/local/bin/wp https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar | bash && \
|
||||
chmod +x /usr/local/bin/wp \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Node / NVM:
|
||||
###########################################################################
|
||||
|
||||
USER laradock
|
||||
|
||||
ENV NVM_DIR /home/laradock/.nvm
|
||||
|
||||
RUN mkdir -p $NVM_DIR && \
|
||||
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash \
|
||||
&& . $NVM_DIR/nvm.sh
|
||||
|
||||
# Wouldn't execute when added to the RUN statement in the above block
|
||||
# Source NVM when loading bash since ~/.profile isn't loaded on non-login shell
|
||||
RUN echo "" >> ~/.bashrc && \
|
||||
echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.bashrc && \
|
||||
echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm' >> ~/.bashrc
|
||||
|
||||
# Add NVM binaries to root's .bashrc
|
||||
USER root
|
||||
|
||||
RUN cp -R /home/laradock/.nvm /root/ && \
|
||||
chown -R root:root /root/.nvm && \
|
||||
echo "" >> ~/.bashrc && \
|
||||
echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.bashrc && \
|
||||
echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm' >> ~/.bashrc
|
||||
|
||||
###########################################################################
|
||||
# Tmux
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
RUN apt-get update -yqq && apt-get install -y tmux
|
||||
|
||||
COPY ./tmux.conf /etc/tmux.conf
|
||||
|
||||
###########################################################################
|
||||
# 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
|
||||
|
||||
###########################################################################
|
||||
# Artisan bash autocompletion from symphony
|
||||
# @see https://wintercms.com/docs/v1.2/docs/console/introduction#autocompletion--suggested-input-values
|
||||
###########################################################################
|
||||
|
||||
RUN apt install bash-completion
|
||||
COPY /completion.sh /etc/bash_completion.d/artisan
|
||||
|
||||
###########################################################################
|
||||
# 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
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
|
||||
USER root
|
||||
|
||||
# Clean up
|
||||
RUN apt-get clean && \
|
||||
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \
|
||||
rm /var/log/lastlog /var/log/faillog
|
||||
|
||||
# Set default work directory
|
||||
WORKDIR /var/www
|
@ -1,8 +0,0 @@
|
||||
###########################################################################
|
||||
# xDebug:
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
# Copy xdebug configuration for remote debugging
|
||||
COPY ./xdebug2.ini /etc/php/${PHP_VERSION}/cli/conf.d/xdebug.ini
|
@ -1,23 +0,0 @@
|
||||
; 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
|
||||
xdebug.remote_port=9000
|
||||
xdebug.idekey=PHPSTORM
|
||||
|
||||
xdebug.remote_autostart=0
|
||||
xdebug.remote_enable=0
|
||||
xdebug.cli_color=0
|
||||
xdebug.profiler_enable=0
|
||||
xdebug.profiler_output_dir=/tmp
|
||||
|
||||
xdebug.remote_handler=dbgp
|
||||
xdebug.remote_mode=req
|
||||
|
||||
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"
|
@ -1,8 +0,0 @@
|
||||
###########################################################################
|
||||
# xDebug:
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
# Copy xdebug configuration for remote debugging
|
||||
COPY ./xdebug3.ini /etc/php/${PHP_VERSION}/cli/conf.d/xdebug.ini
|
@ -1,3 +0,0 @@
|
||||
xdebug.mode=debug
|
||||
xdebug.client_host=dockerhost
|
||||
xdebug.start_with_request=yes
|
Reference in New Issue
Block a user