Browse Source
+ php 8.1
+ php 8.1
* refactoring composer version & auth secrets apply separate for workspacesmaster
dimti
2 years ago
26 changed files with 390 additions and 74 deletions
-
6docker-compose.base.yml
-
24docker-compose.yml.example
-
52dockerfiles/php-fpm/php81.Dockerfile
-
0dockerfiles/php-fpm/xdebug2/xdebug.ini
-
0dockerfiles/php-fpm/xdebug2/xdebug.sh
-
26dockerfiles/php-fpm/xdebug3/xdebug.ini
-
87dockerfiles/php-fpm/xdebug3/xdebug.sh
-
1dockerfiles/workspace/.gitignore
-
0dockerfiles/workspace/crontab-example/laradock
-
0dockerfiles/workspace/laradock.example
-
2dockerfiles/workspace/workspace73.Dockerfile
-
2dockerfiles/workspace/workspace74.Dockerfile
-
113dockerfiles/workspace/workspace81.Dockerfile
-
14get-composer-auth.sh
-
5src/.env
-
3src/docker-compose.base.yml
-
16src/docker-compose.yml
-
2src/dockerfiles/php-fpm/php.base.Dockerfile
-
7src/dockerfiles/php-fpm/php81.Dockerfile
-
5src/dockerfiles/workspace/composer.json
-
16src/dockerfiles/workspace/composer1.Dockerfile
-
16src/dockerfiles/workspace/composer2.Dockerfile
-
53src/dockerfiles/workspace/workspace.base.Dockerfile
-
1src/dockerfiles/workspace/workspace73.Dockerfile
-
1src/dockerfiles/workspace/workspace74.Dockerfile
-
8src/dockerfiles/workspace/workspace81.Dockerfile
@ -0,0 +1,52 @@ |
|||
FROM dimti/php:8.1 |
|||
|
|||
########################################################################### |
|||
# Redis and igbinary: |
|||
########################################################################### |
|||
|
|||
ARG INSTALL_REDIS=false |
|||
|
|||
COPY ./igbinary.ini /usr/local/etc/php/conf.d/igbinary.ini |
|||
|
|||
RUN if [ ${INSTALL_REDIS} = true ]; then \ |
|||
pecl install -a igbinary \ |
|||
&& docker-php-ext-enable igbinary \ |
|||
&& printf "yes\n" | pecl install redis \ |
|||
&& docker-php-ext-enable redis \ |
|||
;fi |
|||
|
|||
########################################################################### |
|||
# Pear Mail and Mail_Mime: |
|||
########################################################################### |
|||
|
|||
ARG INSTALL_PEAR_MAIL=false |
|||
|
|||
RUN if [ ${INSTALL_PEAR_MAIL} = true ]; then \ |
|||
pear install Mail && pear install Mail_Mime \ |
|||
;fi |
|||
|
|||
########################################################################### |
|||
# xDebug (termporary): |
|||
########################################################################### |
|||
|
|||
# Copy xdebug configuration for remote debugging |
|||
COPY ./xdebug3/xdebug.ini /usr/local/etc/php/conf.d/xdebug.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=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_POST_MAX_SIZE/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" |
@ -0,0 +1,26 @@ |
|||
; 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=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 |
@ -0,0 +1,87 @@ |
|||
#! /bin/bash |
|||
|
|||
# NOTE: At the moment, this has only been confirmed to work with PHP 7 |
|||
|
|||
PHP_VERSION=$2 # Without dot |
|||
WITH_PROFILER=$3 |
|||
|
|||
# Grab full name of php-fpm container |
|||
PHP_FPM_CONTAINER=$(docker ps | grep php${PHP_VERSION} | awk '{print $1}') |
|||
|
|||
if [[ -z "${PHP_FPM_CONTAINER}" ]]; then |
|||
echo "Unable to find php fpm container: php${PHP_VERSION}" |
|||
exit 1 |
|||
fi |
|||
|
|||
if [[ ! -z "${WITH_PROFILER}" ]]; then |
|||
echo "With profiler option". |
|||
fi |
|||
|
|||
xdebug_status () |
|||
{ |
|||
echo 'xDebug status' |
|||
|
|||
docker exec -it $PHP_FPM_CONTAINER bash -c 'php -v' |
|||
} |
|||
|
|||
|
|||
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" |
|||
REMOTE_AUTOSTART_CMD="sed -i 's/^xdebug.remote_autostart=0/xdebug.remote_autostart=1/g' /usr/local/etc/php/conf.d/xdebug.ini" |
|||
REMOTE_ENABLE_CMD="sed -i 's/^xdebug.remote_enable=0/xdebug.remote_enable=1/g' /usr/local/etc/php/conf.d/xdebug.ini" |
|||
PROFILER_ENABLE_CDM="sed -i 's/^xdebug.profiler_enable=0/xdebug.profiler_enable=1/g' /usr/local/etc/php/conf.d/xdebug.ini" |
|||
|
|||
docker exec -it $PHP_FPM_CONTAINER bash -c "${ON_CMD}" |
|||
docker exec -it $PHP_FPM_CONTAINER bash -c "${REMOTE_AUTOSTART_CMD}" |
|||
docker exec -it $PHP_FPM_CONTAINER bash -c "${REMOTE_ENABLE_CMD}" |
|||
if [[ ! -z "${WITH_PROFILER}" ]]; then |
|||
docker exec -it $PHP_FPM_CONTAINER bash -c "${PROFILER_ENABLE_CDM}" |
|||
fi |
|||
docker restart $PHP_FPM_CONTAINER |
|||
docker exec -it $PHP_FPM_CONTAINER bash -c 'php -v' |
|||
} |
|||
|
|||
|
|||
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" |
|||
REMOTE_AUTOSTART_CMD="sed -i 's/^xdebug.remote_autostart=1/xdebug.remote_autostart=0/g' /usr/local/etc/php/conf.d/xdebug.ini" |
|||
REMOTE_ENABLE_CMD="sed -i 's/^xdebug.remote_enable=1/xdebug.remote_enable=0/g' /usr/local/etc/php/conf.d/xdebug.ini" |
|||
PROFILER_DISABLE_CMD="sed -i 's/^xdebug.profiler_enable=1/xdebug.profiler_enable=0/g' /usr/local/etc/php/conf.d/xdebug.ini" |
|||
|
|||
docker exec -it $PHP_FPM_CONTAINER bash -c "${OFF_CMD}" |
|||
docker exec -it $PHP_FPM_CONTAINER bash -c "${REMOTE_AUTOSTART_CMD}" |
|||
docker exec -it $PHP_FPM_CONTAINER bash -c "${REMOTE_ENABLE_CMD}" |
|||
docker exec -it $PHP_FPM_CONTAINER bash -c "${PROFILER_DISABLE_CMD}" |
|||
# docker-compose restart php-fpm |
|||
docker restart $PHP_FPM_CONTAINER |
|||
docker exec -it $PHP_FPM_CONTAINER bash -c 'php -v' |
|||
} |
|||
|
|||
|
|||
case $1 in |
|||
stop|STOP) |
|||
xdebug_stop |
|||
;; |
|||
start|START) |
|||
xdebug_start |
|||
;; |
|||
status|STATUS) |
|||
xdebug_status |
|||
;; |
|||
*) |
|||
echo "xDebug [Stop | Start | Status] in the ${PHP_FPM_CONTAINER} container." |
|||
echo "xDebug must have already been installed." |
|||
echo "Usage:" |
|||
echo " .php-fpm/xdebug.sh 73|74 stop|start|status" |
|||
|
|||
esac |
|||
|
|||
exit 1 |
@ -1 +1,2 @@ |
|||
/aliases.sh |
|||
/crontab |
@ -0,0 +1,113 @@ |
|||
FROM dimti/workspace:8.1 |
|||
|
|||
ARG PHP_VERSION=8.1 |
|||
|
|||
########################################################################### |
|||
# Laradock non-root user: |
|||
########################################################################### |
|||
|
|||
ARG CUSTOM_PUID=1000 |
|||
ENV PUID ${CUSTOM_PUID} |
|||
ARG CUSTOM_PGID=1000 |
|||
ENV PGID ${CUSTOM_PGID} |
|||
|
|||
RUN usermod -u ${CUSTOM_PUID} laradock && groupmod -g ${CUSTOM_PGID} laradock |
|||
|
|||
RUN chown -R ${CUSTOM_PUID}:${CUSTOM_PGID} /home/laradock |
|||
|
|||
########################################################################### |
|||
# Set Timezone |
|||
########################################################################### |
|||
|
|||
ARG CUSTOM_TZ=Europe/Moscow |
|||
ENV TZ ${CUSTOM_TZ} |
|||
|
|||
RUN ln -snf /usr/share/zoneinfo/$CUSTOM_TZ /etc/localtime && echo $CUSTOM_TZ > /etc/timezone |
|||
|
|||
########################################################################### |
|||
# Additional PHP-extensions: |
|||
########################################################################### |
|||
|
|||
#RUN pecl install igbinary && pecl install -a redis |
|||
RUN pecl install -a redis |
|||
|
|||
RUN echo "extension=redis.so" > /etc/php/${PHP_VERSION}/cli/conf.d/20-redis.ini |
|||
|
|||
########################################################################### |
|||
# Update composer version |
|||
########################################################################### |
|||
|
|||
USER root |
|||
|
|||
ARG COMPOSER_VERSION=2 |
|||
ENV COMPOSER_VERSION ${COMPOSER_VERSION} |
|||
RUN composer self-update --${COMPOSER_VERSION} |
|||
|
|||
########################################################################### |
|||
# Install custom node version |
|||
########################################################################### |
|||
|
|||
USER root |
|||
|
|||
ARG CUSTOM_NODE_VERSION |
|||
ENV CUSTOM_NODE_VERSION ${CUSTOM_NODE_VERSION} |
|||
|
|||
RUN if [ ! -z "${CUSTOM_NODE_VERSION}" ]; then \ |
|||
. ~/.bashrc && nvm install ${CUSTOM_NODE_VERSION} \ |
|||
&& . ~/.bashrc && nvm alias default ${CUSTOM_NODE_VERSION} \ |
|||
&& cp -R ~/.nvm/alias /home/laradock/.nvm \ |
|||
&& cp -R ~/.nvm/versions /home/laradock/.nvm \ |
|||
&& chown -R ${CUSTOM_PUID}:${CUSTOM_PGID} /home/laradock/.nvm \ |
|||
;fi |
|||
|
|||
########################################################################### |
|||
# 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: |
|||
########################################################################### |
|||
|
|||
USER root |
|||
|
|||
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 |
|||
########################################################################### |
|||
|
|||
USER root |
|||
|
|||
COPY ./crontab /etc/cron.d |
|||
|
|||
RUN chmod -R 644 /etc/cron.d |
@ -0,0 +1,7 @@ |
|||
# syntax = edrevo/dockerfile-plus |
|||
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,5 +0,0 @@ |
|||
{ |
|||
"require": { |
|||
|
|||
} |
|||
} |
@ -0,0 +1,16 @@ |
|||
########################################################################### |
|||
# Composer: |
|||
########################################################################### |
|||
|
|||
USER laradock |
|||
|
|||
# Create composer dir for store composer2_auth secret |
|||
RUN mkdir -p /home/laradock/.composer |
|||
|
|||
USER root |
|||
|
|||
# Symlink to composer auth secret |
|||
RUN ln -s /run/secrets/composer1_auth /home/laradock/.composer/auth.json |
|||
|
|||
# Chooce composer version |
|||
RUN composer self-update --1 |
@ -0,0 +1,16 @@ |
|||
########################################################################### |
|||
# 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/composer2_auth /home/laradock/.config/composer/auth.json |
|||
|
|||
# Chooce composer version |
|||
RUN composer self-update --2 |
@ -0,0 +1,8 @@ |
|||
# syntax = edrevo/dockerfile-plus |
|||
FROM laradock/workspace:latest-8.1 |
|||
|
|||
ARG PHP_VERSION=8.1 |
|||
ENV PHP_VERSION ${PHP_VERSION} |
|||
|
|||
INCLUDE+ ./workspace.base.Dockerfile |
|||
INCLUDE+ ./composer2.Dockerfile |
Write
Preview
Loading…
Cancel
Save
Reference in new issue