+ php 8.1

* refactoring composer version & auth secrets apply separate for workspaces
This commit is contained in:
2022-11-21 10:25:35 +03:00
parent d625dbb158
commit c3d132b120
26 changed files with 390 additions and 74 deletions

View File

@ -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

View File

@ -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}

View File

@ -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

View File

@ -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 && \

View 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

View File

@ -1,5 +0,0 @@
{
"require": {
}
}

View 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

View 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

View File

@ -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
###########################################################################

View File

@ -5,3 +5,4 @@ ARG PHP_VERSION=7.3
ENV PHP_VERSION ${PHP_VERSION}
INCLUDE+ ./workspace.base.Dockerfile
INCLUDE+ ./composer1.Dockerfile

View File

@ -5,3 +5,4 @@ ARG PHP_VERSION=7.4
ENV PHP_VERSION ${PHP_VERSION}
INCLUDE+ ./workspace.base.Dockerfile
INCLUDE+ ./composer1.Dockerfile

View 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