+ php 8.1
* refactoring composer version & auth secrets apply separate for workspaces
This commit is contained in:
		@ -53,7 +53,7 @@ services:
 | 
			
		||||
    secrets:
 | 
			
		||||
      - user_ssh_key
 | 
			
		||||
      - user_known_hosts
 | 
			
		||||
      - composer_auth
 | 
			
		||||
      - composer_auth2
 | 
			
		||||
  inbucket:
 | 
			
		||||
    image: inbucket/inbucket
 | 
			
		||||
    restart: always
 | 
			
		||||
@ -92,5 +92,7 @@ secrets:
 | 
			
		||||
    file: ~/.ssh/id_rsa
 | 
			
		||||
  user_known_hosts:
 | 
			
		||||
    file: ~/.ssh/known_hosts
 | 
			
		||||
  composer_auth:
 | 
			
		||||
  composer1_auth:
 | 
			
		||||
    file: ~/.composer/auth.json
 | 
			
		||||
  composer2_auth:
 | 
			
		||||
    file: ~/.config/composer/auth.json
 | 
			
		||||
 | 
			
		||||
@ -21,18 +21,38 @@ services:
 | 
			
		||||
      service: php
 | 
			
		||||
    build:
 | 
			
		||||
      dockerfile: php74.Dockerfile
 | 
			
		||||
  php81:
 | 
			
		||||
    extends:
 | 
			
		||||
      file: docker-compose.base.yml
 | 
			
		||||
      service: php
 | 
			
		||||
    build:
 | 
			
		||||
      dockerfile: php81.Dockerfile
 | 
			
		||||
  workspace73:
 | 
			
		||||
    extends:
 | 
			
		||||
      file: docker-compose.base.yml
 | 
			
		||||
      service: workspace
 | 
			
		||||
    build:
 | 
			
		||||
      dockerfile: workspace73.Dockerfile
 | 
			
		||||
    secrets:
 | 
			
		||||
      - user_ssh_key
 | 
			
		||||
      - user_known_hosts
 | 
			
		||||
      - composer_auth1
 | 
			
		||||
  workspace74:
 | 
			
		||||
    extends:
 | 
			
		||||
      file: docker-compose.base.yml
 | 
			
		||||
      service: workspace
 | 
			
		||||
    build:
 | 
			
		||||
      dockerfile: workspace74.Dockerfile
 | 
			
		||||
    secrets:
 | 
			
		||||
      - user_ssh_key
 | 
			
		||||
      - user_known_hosts
 | 
			
		||||
      - composer_auth1
 | 
			
		||||
  workspace81:
 | 
			
		||||
    extends:
 | 
			
		||||
      file: docker-compose.base.yml
 | 
			
		||||
      service: workspace
 | 
			
		||||
    build:
 | 
			
		||||
      dockerfile: workspace81.Dockerfile
 | 
			
		||||
  inbucket:
 | 
			
		||||
    extends:
 | 
			
		||||
      file: docker-compose.base.yml
 | 
			
		||||
@ -65,7 +85,7 @@ secrets:
 | 
			
		||||
    file: ~/.ssh/id_rsa
 | 
			
		||||
  user_known_hosts:
 | 
			
		||||
    file: ~/.ssh/known_hosts
 | 
			
		||||
  composer_auth1:
 | 
			
		||||
  composer1_auth:
 | 
			
		||||
    file: ~/.composer/auth.json
 | 
			
		||||
  composer_auth2:
 | 
			
		||||
  composer2_auth:
 | 
			
		||||
    file: ~/.config/composer/auth.json
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										52
									
								
								dockerfiles/php-fpm/php81.Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								dockerfiles/php-fpm/php81.Dockerfile
									
									
									
									
									
										Normal file
									
								
							@ -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"
 | 
			
		||||
							
								
								
									
										26
									
								
								dockerfiles/php-fpm/xdebug3/xdebug.ini
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								dockerfiles/php-fpm/xdebug3/xdebug.ini
									
									
									
									
									
										Normal file
									
								
							@ -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
 | 
			
		||||
							
								
								
									
										87
									
								
								dockerfiles/php-fpm/xdebug3/xdebug.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										87
									
								
								dockerfiles/php-fpm/xdebug3/xdebug.sh
									
									
									
									
									
										Executable file
									
								
							@ -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
									
								
								dockerfiles/workspace/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								dockerfiles/workspace/.gitignore
									
									
									
									
										vendored
									
									
								
							@ -1 +1,2 @@
 | 
			
		||||
/aliases.sh
 | 
			
		||||
/crontab
 | 
			
		||||
 | 
			
		||||
@ -114,6 +114,6 @@ RUN sed -i "s/^upload_max_filesize = .*/upload_max_filesize = $PHP_OPT_UPLOAD_MA
 | 
			
		||||
 | 
			
		||||
USER root
 | 
			
		||||
 | 
			
		||||
COPY ./crontab73 /etc/cron.d
 | 
			
		||||
COPY ./crontab /etc/cron.d
 | 
			
		||||
 | 
			
		||||
RUN chmod -R 644 /etc/cron.d
 | 
			
		||||
 | 
			
		||||
@ -114,6 +114,6 @@ RUN sed -i "s/^upload_max_filesize = .*/upload_max_filesize = $PHP_OPT_UPLOAD_MA
 | 
			
		||||
 | 
			
		||||
USER root
 | 
			
		||||
 | 
			
		||||
COPY ./crontab74 /etc/cron.d
 | 
			
		||||
COPY ./crontab /etc/cron.d
 | 
			
		||||
 | 
			
		||||
RUN chmod -R 644 /etc/cron.d
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										113
									
								
								dockerfiles/workspace/workspace81.Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										113
									
								
								dockerfiles/workspace/workspace81.Dockerfile
									
									
									
									
									
										Normal file
									
								
							@ -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
 | 
			
		||||
@ -1,11 +1,11 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
FILE=${HOME}/.config/composer/auth.json
 | 
			
		||||
 | 
			
		||||
if [[ -f "${FILE}" ]]; then
 | 
			
		||||
  if [[ ! -z "$(cat $FILE | grep github)" ]]; then
 | 
			
		||||
    exit 0
 | 
			
		||||
  fi
 | 
			
		||||
fi
 | 
			
		||||
#FILE=${HOME}/.config/composer/auth.json
 | 
			
		||||
#
 | 
			
		||||
#if [[ -f "${FILE}" ]]; then
 | 
			
		||||
#  if [[ ! -z "$(cat $FILE | grep github)" ]]; then
 | 
			
		||||
#    exit 0
 | 
			
		||||
#  fi
 | 
			
		||||
#fi
 | 
			
		||||
 | 
			
		||||
echo "Get token: https://github.com/settings/tokens/new?scopes=repo&description=Composer"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										5
									
								
								src/.env
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								src/.env
									
									
									
									
									
								
							@ -14,10 +14,7 @@ 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_NODE_VERSION=lts/dubnium
 | 
			
		||||
WORKSPACE_NODE_VERSION=lts/hydrogen
 | 
			
		||||
WORKSPACE_NPM_REGISTRY=
 | 
			
		||||
WORKSPACE_YARN_VERSION=latest
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -30,9 +30,6 @@ services:
 | 
			
		||||
        - 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_WP_CLI=${WORKSPACE_INSTALL_WP_CLI}
 | 
			
		||||
        - INSTALL_NODE=${WORKSPACE_INSTALL_NODE}
 | 
			
		||||
        - INSTALL_GULP=${WORKSPACE_INSTALL_GULP}
 | 
			
		||||
 | 
			
		||||
@ -19,6 +19,12 @@ services:
 | 
			
		||||
      service: php-fpm
 | 
			
		||||
    build:
 | 
			
		||||
      dockerfile: php74.Dockerfile
 | 
			
		||||
  php81:
 | 
			
		||||
    extends:
 | 
			
		||||
      file: docker-compose.base.yml
 | 
			
		||||
      service: php-fpm
 | 
			
		||||
    build:
 | 
			
		||||
      dockerfile: php81.Dockerfile
 | 
			
		||||
  workspace73:
 | 
			
		||||
    extends:
 | 
			
		||||
      file: docker-compose.base.yml
 | 
			
		||||
@ -31,11 +37,19 @@ services:
 | 
			
		||||
      service: workspace
 | 
			
		||||
    build:
 | 
			
		||||
      dockerfile: workspace74.Dockerfile
 | 
			
		||||
  workspace81:
 | 
			
		||||
    extends:
 | 
			
		||||
      file: docker-compose.base.yml
 | 
			
		||||
      service: workspace
 | 
			
		||||
    build:
 | 
			
		||||
      dockerfile: workspace81.Dockerfile
 | 
			
		||||
 | 
			
		||||
secrets:
 | 
			
		||||
  user_ssh_key:
 | 
			
		||||
    file: ~/.ssh/id_rsa
 | 
			
		||||
  user_known_hosts:
 | 
			
		||||
    file: ~/.ssh/known_hosts
 | 
			
		||||
  composer_auth:
 | 
			
		||||
  composer1_auth:
 | 
			
		||||
    file: ~/.composer/auth.json
 | 
			
		||||
  composer2_auth:
 | 
			
		||||
    file: ~/.config/composer/auth.json
 | 
			
		||||
 | 
			
		||||
@ -23,6 +23,8 @@ 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 \
 | 
			
		||||
    pecl install xdebug-3.1.6; \
 | 
			
		||||
  else \
 | 
			
		||||
    pecl install xdebug-2.9.8; \
 | 
			
		||||
  fi && \
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										7
									
								
								src/dockerfiles/php-fpm/php81.Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								src/dockerfiles/php-fpm/php81.Dockerfile
									
									
									
									
									
										Normal file
									
								
							@ -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": {
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
} 
 | 
			
		||||
							
								
								
									
										16
									
								
								src/dockerfiles/workspace/composer1.Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								src/dockerfiles/workspace/composer1.Dockerfile
									
									
									
									
									
										Normal file
									
								
							@ -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
 | 
			
		||||
							
								
								
									
										16
									
								
								src/dockerfiles/workspace/composer2.Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								src/dockerfiles/workspace/composer2.Dockerfile
									
									
									
									
									
										Normal file
									
								
							@ -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
 | 
			
		||||
@ -176,7 +176,13 @@ COPY ./xdebug.ini /etc/php/${PHP_VERSION}/cli/conf.d/xdebug.ini
 | 
			
		||||
ARG INSTALL_XDEBUG=false
 | 
			
		||||
 | 
			
		||||
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
 | 
			
		||||
    pecl install xdebug-2.8.1 && \
 | 
			
		||||
    if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
 | 
			
		||||
      pecl install xdebug-2.5.5; \
 | 
			
		||||
    elif [ $(php -r "echo PHP_MAJOR_VERSION;") = "8" ]; then \
 | 
			
		||||
      pecl install xdebug-3.1.6; \
 | 
			
		||||
    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 \
 | 
			
		||||
;fi
 | 
			
		||||
@ -192,51 +198,6 @@ RUN if [ ${INSTALL_BZ2} = true ]; then \
 | 
			
		||||
;fi
 | 
			
		||||
 | 
			
		||||
###########################################################################
 | 
			
		||||
# Composer:
 | 
			
		||||
###########################################################################
 | 
			
		||||
 | 
			
		||||
USER root
 | 
			
		||||
 | 
			
		||||
# Add the composer.json
 | 
			
		||||
COPY ./composer.json /home/laradock/.composer/composer.json
 | 
			
		||||
 | 
			
		||||
# Make sure that ~/.composer belongs to laradock
 | 
			
		||||
RUN chown -R laradock:laradock /home/laradock/.composer
 | 
			
		||||
 | 
			
		||||
RUN ln -s /run/secrets/composer_auth /home/laradock/.composer/auth.json
 | 
			
		||||
 | 
			
		||||
# Export composer vendor path
 | 
			
		||||
RUN echo "" >> ~/.bashrc && \
 | 
			
		||||
    echo 'export PATH="$HOME/.composer/vendor/bin:$PATH"' >> ~/.bashrc
 | 
			
		||||
 | 
			
		||||
# Update composer
 | 
			
		||||
ARG COMPOSER_VERSION=2
 | 
			
		||||
ENV COMPOSER_VERSION ${COMPOSER_VERSION}
 | 
			
		||||
RUN composer self-update --${COMPOSER_VERSION}
 | 
			
		||||
 | 
			
		||||
USER laradock
 | 
			
		||||
 | 
			
		||||
# Check if global install need to be ran
 | 
			
		||||
ARG COMPOSER_GLOBAL_INSTALL=false
 | 
			
		||||
ENV COMPOSER_GLOBAL_INSTALL ${COMPOSER_GLOBAL_INSTALL}
 | 
			
		||||
 | 
			
		||||
RUN if [ ${COMPOSER_GLOBAL_INSTALL} = true ]; then \
 | 
			
		||||
    # run the install
 | 
			
		||||
    composer global install \
 | 
			
		||||
;fi
 | 
			
		||||
 | 
			
		||||
ARG COMPOSER_REPO_PACKAGIST
 | 
			
		||||
ENV COMPOSER_REPO_PACKAGIST ${COMPOSER_REPO_PACKAGIST}
 | 
			
		||||
 | 
			
		||||
RUN if [ ${COMPOSER_REPO_PACKAGIST} ]; then \
 | 
			
		||||
    composer config -g repo.packagist composer ${COMPOSER_REPO_PACKAGIST} \
 | 
			
		||||
;fi
 | 
			
		||||
 | 
			
		||||
# Export composer vendor path
 | 
			
		||||
RUN echo "" >> ~/.bashrc && \
 | 
			
		||||
    echo 'export PATH="~/.composer/vendor/bin:$PATH"' >> ~/.bashrc
 | 
			
		||||
 | 
			
		||||
###########################################################################
 | 
			
		||||
# Non-root user : PHPUnit path
 | 
			
		||||
###########################################################################
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -5,3 +5,4 @@ ARG PHP_VERSION=7.3
 | 
			
		||||
ENV PHP_VERSION ${PHP_VERSION}
 | 
			
		||||
 | 
			
		||||
INCLUDE+ ./workspace.base.Dockerfile
 | 
			
		||||
INCLUDE+ ./composer1.Dockerfile
 | 
			
		||||
 | 
			
		||||
@ -5,3 +5,4 @@ ARG PHP_VERSION=7.4
 | 
			
		||||
ENV PHP_VERSION ${PHP_VERSION}
 | 
			
		||||
 | 
			
		||||
INCLUDE+ ./workspace.base.Dockerfile
 | 
			
		||||
INCLUDE+ ./composer1.Dockerfile
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										8
									
								
								src/dockerfiles/workspace/workspace81.Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								src/dockerfiles/workspace/workspace81.Dockerfile
									
									
									
									
									
										Normal file
									
								
							@ -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
 | 
			
		||||
		Reference in New Issue
	
	Block a user