+ xdebug into workspace & opcache into php-fpm
+ docker image inspect instructions
This commit is contained in:
20
src/.env
20
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
|
||||
|
||||
|
39
src/README.md
Normal file
39
src/README.md
Normal file
@ -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`
|
@ -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}
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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"
|
Reference in New Issue
Block a user