Merge branch 'master' into master
This commit is contained in:
@ -13,7 +13,8 @@
|
||||
#
|
||||
|
||||
ARG LARADOCK_PHP_VERSION
|
||||
FROM laradock/workspace:2.6.1-${LARADOCK_PHP_VERSION}
|
||||
ARG BASE_IMAGE_TAG_PREFIX=latest
|
||||
FROM laradock/workspace:${BASE_IMAGE_TAG_PREFIX}-${LARADOCK_PHP_VERSION}
|
||||
|
||||
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||
|
||||
@ -50,6 +51,7 @@ ARG UBUNTU_SOURCE
|
||||
COPY ./sources.sh /tmp/sources.sh
|
||||
|
||||
RUN if [ ${CHANGE_SOURCE} = true ]; then \
|
||||
chmod +x /tmp/sources.sh && \
|
||||
/bin/sh -c /tmp/sources.sh && \
|
||||
rm -rf /tmp/sources.sh \
|
||||
;fi
|
||||
@ -59,7 +61,7 @@ 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 && \
|
||||
useradd -l -u ${PUID} -g laradock -m laradock -G docker_env && \
|
||||
usermod -p "*" laradock -s /bin/bash && \
|
||||
apt-get install -yqq \
|
||||
apt-utils \
|
||||
@ -73,7 +75,7 @@ RUN set -xe; \
|
||||
# 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
|
||||
# next lines are here because 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${LARADOCK_PHP_VERSION}-zip \
|
||||
@ -196,6 +198,14 @@ COPY ./crontab /etc/cron.d
|
||||
|
||||
RUN chmod -R 644 /etc/cron.d
|
||||
|
||||
###########################################################################
|
||||
# Update Repositories
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
RUN apt-get update -yqq
|
||||
|
||||
###########################################################################
|
||||
# Drush:
|
||||
###########################################################################
|
||||
@ -348,17 +358,49 @@ 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${LARADOCK_PHP_VERSION}-xdebug && \
|
||||
sed -i 's/^;//g' /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/20-xdebug.ini \
|
||||
# Install the xdebug extension
|
||||
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "8" ]; then \
|
||||
pecl install xdebug-3.0.0; \
|
||||
else \
|
||||
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||
pecl install xdebug-2.5.5; \
|
||||
else \
|
||||
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "7" ] && [ $(php -r "echo PHP_MINOR_VERSION;") = "0" ]; then \
|
||||
pecl install xdebug-2.9.0; \
|
||||
else \
|
||||
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "7" ] && [ $(php -r "echo PHP_MINOR_VERSION;") = "1" ]; then \
|
||||
pecl install xdebug-2.9.8; \
|
||||
else \
|
||||
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "7" ]; then \
|
||||
pecl install xdebug-2.9.8; \
|
||||
else \
|
||||
#pecl install xdebug; \
|
||||
echo "xDebug 3 required, not supported."; \
|
||||
fi \
|
||||
fi \
|
||||
fi \
|
||||
fi \
|
||||
fi && \
|
||||
echo "zend_extension=xdebug.so" >> /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/20-xdebug.ini \
|
||||
;fi
|
||||
|
||||
# ADD for REMOTE debugging
|
||||
COPY ./xdebug.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/xdebug.ini
|
||||
|
||||
RUN sed -i "s/xdebug.remote_autostart=0/xdebug.remote_autostart=1/" /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/xdebug.ini && \
|
||||
sed -i "s/xdebug.remote_enable=0/xdebug.remote_enable=1/" /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/xdebug.ini && \
|
||||
sed -i "s/xdebug.cli_color=0/xdebug.cli_color=1/" /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/xdebug.ini
|
||||
RUN if [ $(php -r "echo PHP_MAJOR_VERSION;") = "8" ]; then \
|
||||
sed -i "s/xdebug.remote_host=/xdebug.client_host=/" /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/xdebug.ini && \
|
||||
sed -i "s/xdebug.remote_connect_back=0/xdebug.discover_client_host=false/" /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/xdebug.ini && \
|
||||
sed -i "s/xdebug.remote_port=9000/xdebug.client_port=9003/" /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/xdebug.ini && \
|
||||
sed -i "s/xdebug.profiler_enable=0/; xdebug.profiler_enable=0/" /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/xdebug.ini && \
|
||||
sed -i "s/xdebug.profiler_output_dir=/xdebug.output_dir=/" /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/xdebug.ini && \
|
||||
sed -i "s/xdebug.remote_mode=req/; xdebug.remote_mode=req/" /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/xdebug.ini && \
|
||||
sed -i "s/xdebug.remote_autostart=0/xdebug.start_with_request=yes/" /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/xdebug.ini && \
|
||||
sed -i "s/xdebug.remote_enable=0/xdebug.mode=debug/" /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/xdebug.ini \
|
||||
;else \
|
||||
sed -i "s/xdebug.remote_autostart=0/xdebug.remote_autostart=1/" /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/xdebug.ini && \
|
||||
sed -i "s/xdebug.remote_enable=0/xdebug.remote_enable=1/" /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/xdebug.ini \
|
||||
;fi
|
||||
RUN sed -i "s/xdebug.cli_color=0/xdebug.cli_color=1/" /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/xdebug.ini
|
||||
|
||||
###########################################################################
|
||||
# pcov:
|
||||
@ -442,10 +484,11 @@ RUN if [ ${INSTALL_MONGO} = true ]; then \
|
||||
pecl install mongo && \
|
||||
echo "extension=mongo.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/mongo.ini && \
|
||||
ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/mongo.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/30-mongo.ini \
|
||||
;fi && \
|
||||
pecl install mongodb && \
|
||||
echo "extension=mongodb.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/mongodb.ini && \
|
||||
ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/mongodb.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/30-mongodb.ini \
|
||||
;else \
|
||||
pecl install mongodb && \
|
||||
echo "extension=mongodb.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/mongodb.ini && \
|
||||
ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/mongodb.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/30-mongodb.ini \
|
||||
;fi \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
@ -571,9 +614,15 @@ RUN if [ ${INSTALL_LIBPNG} = true ]; then \
|
||||
ARG INSTALL_INOTIFY=false
|
||||
|
||||
RUN if [ ${INSTALL_INOTIFY} = true ]; then \
|
||||
pecl -q install inotify && \
|
||||
echo "extension=inotify.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/inotify.ini && \
|
||||
ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/inotify.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/20-inotify.ini \
|
||||
if [ $(php -r "echo PHP_MAJOR_VERSION;") != "5" ]; then \
|
||||
pecl -q install inotify-0.1.6 && \
|
||||
echo "extension=inotify.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/inotify.ini && \
|
||||
ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/inotify.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/20-inotify.ini \
|
||||
else \
|
||||
pecl -q install inotify && \
|
||||
echo "extension=inotify.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/inotify.ini && \
|
||||
ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/inotify.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/20-inotify.ini \
|
||||
;fi \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
@ -585,10 +634,13 @@ ARG AST_VERSION=1.0.3
|
||||
ENV AST_VERSION ${AST_VERSION}
|
||||
|
||||
RUN if [ ${INSTALL_AST} = true ]; then \
|
||||
# Install AST extension
|
||||
printf "\n" | pecl -q install ast-${AST_VERSION} && \
|
||||
echo "extension=ast.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/ast.ini && \
|
||||
phpenmod -v ${LARADOCK_PHP_VERSION} -s cli ast \
|
||||
# AST extension requires PHP 7.0.0 or newer
|
||||
if [ $(php -r "echo PHP_MAJOR_VERSION;") != "5" ]; then \
|
||||
# Install AST extension
|
||||
printf "\n" | pecl -q install ast-${AST_VERSION} && \
|
||||
echo "extension=ast.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/ast.ini && \
|
||||
phpenmod -v ${LARADOCK_PHP_VERSION} -s cli ast \
|
||||
;fi \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
@ -605,6 +657,17 @@ RUN if [ ${INSTALL_FSWATCH} = true ]; then \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
|
||||
# GraphViz extension
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_GRAPHVIZ=false
|
||||
|
||||
RUN if [ ${INSTALL_GRAPHVIZ} = true ]; then \
|
||||
apt-get update && \
|
||||
apt-get install -y graphviz \
|
||||
;fi
|
||||
|
||||
# IonCube Loader
|
||||
###########################################################################
|
||||
|
||||
@ -650,6 +713,14 @@ ARG INSTALL_NPM_VUE_CLI=false
|
||||
ARG INSTALL_NPM_ANGULAR_CLI=false
|
||||
ARG NPM_REGISTRY
|
||||
ENV NPM_REGISTRY ${NPM_REGISTRY}
|
||||
ARG NPM_FETCH_RETRIES
|
||||
ENV NPM_FETCH_RETRIES ${NPM_FETCH_RETRIES}
|
||||
ARG NPM_FETCH_RETRY_FACTOR
|
||||
ENV NPM_FETCH_RETRY_FACTOR ${NPM_FETCH_RETRY_FACTOR}
|
||||
ARG NPM_FETCH_RETRY_MINTIMEOUT
|
||||
ENV NPM_FETCH_RETRY_MINTIMEOUT ${NPM_FETCH_RETRY_MINTIMEOUT}
|
||||
ARG NPM_FETCH_RETRY_MAXTIMEOUT
|
||||
ENV NPM_FETCH_RETRY_MAXTIMEOUT ${NPM_FETCH_RETRY_MAXTIMEOUT}
|
||||
ENV NVM_DIR /home/laradock/.nvm
|
||||
ARG NVM_NODEJS_ORG_MIRROR
|
||||
ENV NVM_NODEJS_ORG_MIRROR ${NVM_NODEJS_ORG_MIRROR}
|
||||
@ -662,6 +733,10 @@ RUN if [ ${INSTALL_NODE} = true ]; then \
|
||||
&& nvm install ${NODE_VERSION} \
|
||||
&& nvm use ${NODE_VERSION} \
|
||||
&& nvm alias ${NODE_VERSION} \
|
||||
&& npm config set fetch-retries ${NPM_FETCH_RETRIES} \
|
||||
&& npm config set fetch-retry-factor ${NPM_FETCH_RETRY_FACTOR} \
|
||||
&& npm config set fetch-retry-mintimeout ${NPM_FETCH_RETRY_MINTIMEOUT} \
|
||||
&& npm config set fetch-retry-maxtimeout ${NPM_FETCH_RETRY_MAXTIMEOUT} \
|
||||
&& if [ ${NPM_REGISTRY} ]; then \
|
||||
npm config set registry ${NPM_REGISTRY} \
|
||||
;fi \
|
||||
@ -718,6 +793,24 @@ RUN if [ ${NPM_REGISTRY} ]; then \
|
||||
. ~/.bashrc && npm config set registry ${NPM_REGISTRY} \
|
||||
;fi
|
||||
|
||||
# Mount .npmrc into home folder
|
||||
COPY ./.npmrc /root/.npmrc
|
||||
COPY ./.npmrc /home/laradock/.npmrc
|
||||
|
||||
|
||||
###########################################################################
|
||||
# PNPM:
|
||||
###########################################################################
|
||||
|
||||
USER laradock
|
||||
|
||||
ARG INSTALL_PNPM=false
|
||||
|
||||
RUN if [ ${INSTALL_PNPM} = true ]; then \
|
||||
npx pnpm add -g pnpm \
|
||||
;fi
|
||||
|
||||
|
||||
###########################################################################
|
||||
# YARN:
|
||||
###########################################################################
|
||||
@ -799,6 +892,7 @@ RUN set -xe; \
|
||||
|
||||
USER root
|
||||
ARG INSTALL_OCI8=false
|
||||
ARG ORACLE_INSTANT_CLIENT_MIRROR=https://github.com/diogomascarenha/oracle-instantclient/raw/master/
|
||||
|
||||
ENV LD_LIBRARY_PATH="/opt/oracle/instantclient_12_1"
|
||||
ENV OCI_HOME="/opt/oracle/instantclient_12_1"
|
||||
@ -812,8 +906,8 @@ RUN if [ ${INSTALL_OCI8} = true ]; then \
|
||||
# Install Oracle Instantclient
|
||||
&& mkdir /opt/oracle \
|
||||
&& cd /opt/oracle \
|
||||
&& wget https://github.com/diogomascarenha/oracle-instantclient/raw/master/instantclient-basic-linux.x64-12.1.0.2.0.zip \
|
||||
&& wget https://github.com/diogomascarenha/oracle-instantclient/raw/master/instantclient-sdk-linux.x64-12.1.0.2.0.zip \
|
||||
&& wget ${ORACLE_INSTANT_CLIENT_MIRROR}instantclient-basic-linux.x64-12.1.0.2.0.zip \
|
||||
&& wget ${ORACLE_INSTANT_CLIENT_MIRROR}instantclient-sdk-linux.x64-12.1.0.2.0.zip \
|
||||
&& unzip /opt/oracle/instantclient-basic-linux.x64-12.1.0.2.0.zip -d /opt/oracle \
|
||||
&& unzip /opt/oracle/instantclient-sdk-linux.x64-12.1.0.2.0.zip -d /opt/oracle \
|
||||
&& ln -s /opt/oracle/instantclient_12_1/libclntsh.so.12.1 /opt/oracle/instantclient_12_1/libclntsh.so \
|
||||
@ -828,7 +922,7 @@ RUN if [ ${INSTALL_OCI8} = true ]; then \
|
||||
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||
echo 'instantclient,/opt/oracle/instantclient_12_1/' | pecl install oci8-2.0.10; \
|
||||
else \
|
||||
echo 'instantclient,/opt/oracle/instantclient_12_1/' | pecl install oci8; \
|
||||
echo 'instantclient,/opt/oracle/instantclient_12_1/' | pecl install oci8-2.2.0; \
|
||||
fi \
|
||||
&& echo "extension=oci8.so" >> /etc/php/${LARADOCK_PHP_VERSION}/cli/php.ini \
|
||||
&& php -m | grep -q 'oci8' \
|
||||
@ -866,7 +960,7 @@ ARG INSTALL_LARAVEL_ENVOY=false
|
||||
|
||||
RUN if [ ${INSTALL_LARAVEL_ENVOY} = true ]; then \
|
||||
# Install the Laravel Envoy
|
||||
composer global require "laravel/envoy=~1.0" \
|
||||
composer global require "laravel/envoy=~2.0" \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
@ -973,8 +1067,10 @@ RUN set -eux; \
|
||||
ln -sfn /opt/mssql-tools/bin/bcp /usr/bin/bcp && \
|
||||
echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
|
||||
locale-gen && \
|
||||
if [ $(php -r "echo PHP_MINOR_VERSION;") = "0" ]; then \
|
||||
if [ $(php -r "echo PHP_VERSION_ID - PHP_RELEASE_VERSION;") = "70000" ]; then \
|
||||
pecl install sqlsrv-5.3.0 pdo_sqlsrv-5.3.0 \
|
||||
;elif [ $(php -r "echo PHP_VERSION_ID - PHP_RELEASE_VERSION;") = "70100" ]; then \
|
||||
pecl install sqlsrv-5.6.1 pdo_sqlsrv-5.6.1 \
|
||||
;else \
|
||||
pecl install sqlsrv pdo_sqlsrv \
|
||||
;fi && \
|
||||
@ -1038,7 +1134,7 @@ RUN if [ ${INSTALL_SYMFONY} = true ]; then \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# PYTHON:
|
||||
# PYTHON2:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_PYTHON=false
|
||||
@ -1049,6 +1145,18 @@ RUN if [ ${INSTALL_PYTHON} = true ]; then \
|
||||
&& python -m pip install --upgrade virtualenv \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# PYTHON3:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_PYTHON3=false
|
||||
|
||||
RUN if [ ${INSTALL_PYTHON3} = true ]; then \
|
||||
apt-get -y install python3 python3-pip python3-dev build-essential \
|
||||
&& python3 -m pip install --upgrade --force-reinstall pip \
|
||||
&& python3 -m pip install --upgrade virtualenv \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# POWERLINE:
|
||||
###########################################################################
|
||||
@ -1118,10 +1226,10 @@ ARG INSTALL_PG_CLIENT=false
|
||||
RUN if [ ${INSTALL_PG_CLIENT} = true ]; then \
|
||||
# Install the pgsql client
|
||||
apt-get install wget \
|
||||
&& add-apt-repository "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" \
|
||||
&& wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - \
|
||||
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" | tee /etc/apt/sources.list.d/pgdg.list \
|
||||
&& apt-get update \
|
||||
&& apt-get -y install postgresql-client-10 \
|
||||
&& apt-get -y install postgresql-client-12 \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
@ -1159,11 +1267,19 @@ ARG LARADOCK_PHALCON_VERSION
|
||||
ENV LARADOCK_PHALCON_VERSION ${LARADOCK_PHALCON_VERSION}
|
||||
|
||||
RUN if [ $INSTALL_PHALCON = true ]; then \
|
||||
apt-get update && apt-get install -y unzip libpcre3-dev gcc make re2c \
|
||||
apt-get update && apt-get install -y unzip libpcre3-dev gcc make re2c git automake autoconf\
|
||||
&& git clone https://github.com/jbboehr/php-psr.git \
|
||||
&& cd php-psr \
|
||||
&& phpize \
|
||||
&& ./configure \
|
||||
&& make \
|
||||
&& make test \
|
||||
&& make install \
|
||||
&& curl -L -o /tmp/cphalcon.zip https://github.com/phalcon/cphalcon/archive/v${LARADOCK_PHALCON_VERSION}.zip \
|
||||
&& unzip -d /tmp/ /tmp/cphalcon.zip \
|
||||
&& cd /tmp/cphalcon-${LARADOCK_PHALCON_VERSION}/build \
|
||||
&& ./install \
|
||||
&& echo "extension=psr.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/phalcon.ini \
|
||||
&& echo "extension=phalcon.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/phalcon.ini \
|
||||
&& ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/phalcon.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/30-phalcon.ini \
|
||||
&& rm -rf /tmp/cphalcon* \
|
||||
@ -1242,6 +1358,20 @@ RUN if [ ${INSTALL_YAML} = true ]; then \
|
||||
ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/yaml.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/35-yaml.ini \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# RDKAFKA:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_RDKAFKA=false
|
||||
|
||||
RUN if [ ${INSTALL_RDKAFKA} = true ]; then \
|
||||
apt-get install -y librdkafka-dev && \
|
||||
pecl install rdkafka && \
|
||||
echo "extension=rdkafka.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/rdkafka.ini && \
|
||||
ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/rdkafka.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/20-rdkafka.ini \
|
||||
&& php -m | grep -q 'rdkafka' \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# FFMpeg:
|
||||
###########################################################################
|
||||
@ -1254,6 +1384,55 @@ RUN if [ ${INSTALL_FFMPEG} = true ]; then \
|
||||
apt-get -y install ffmpeg \
|
||||
;fi
|
||||
|
||||
|
||||
###########################################################################
|
||||
# BBC Audio Waveform Image Generator:
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
ARG INSTALL_AUDIOWAVEFORM=false
|
||||
|
||||
RUN if [ ${INSTALL_AUDIOWAVEFORM} = true ]; then \
|
||||
apt-get -y install git wget make cmake gcc g++ libmad0-dev libid3tag0-dev libsndfile1-dev libgd-dev libboost-filesystem-dev libboost-program-options-dev libboost-regex-dev \
|
||||
&& git clone https://github.com/bbc/audiowaveform.git \
|
||||
&& cd audiowaveform \
|
||||
&& wget https://github.com/google/googletest/archive/release-1.10.0.tar.gz \
|
||||
&& tar xzf release-1.10.0.tar.gz \
|
||||
&& ln -s googletest-release-1.10.0/googletest googletest \
|
||||
&& ln -s googletest-release-1.10.0/googlemock googlemock \
|
||||
&& mkdir build \
|
||||
&& cd build \
|
||||
&& cmake .. \
|
||||
&& make \
|
||||
&& make install \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# wkhtmltopdf:
|
||||
#####################################
|
||||
|
||||
USER root
|
||||
|
||||
ARG INSTALL_WKHTMLTOPDF=false
|
||||
|
||||
RUN if [ ${INSTALL_WKHTMLTOPDF} = true ]; then \
|
||||
apt-get install -y \
|
||||
libxrender1 \
|
||||
libfontconfig1 \
|
||||
libx11-dev \
|
||||
libjpeg62 \
|
||||
libxtst6 \
|
||||
fontconfig \
|
||||
libjpeg-turbo8-dev \
|
||||
xfonts-base \
|
||||
xfonts-75dpi \
|
||||
wget \
|
||||
&& wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.bionic_amd64.deb \
|
||||
&& dpkg -i wkhtmltox_0.12.6-1.bionic_amd64.deb \
|
||||
&& apt -f install \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Mailparse extension:
|
||||
###########################################################################
|
||||
@ -1290,12 +1469,133 @@ RUN if [ ${INSTALL_GIT_PROMPT} = true ]; then \
|
||||
rm /tmp/git-prompt \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# XMLRPC:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_XMLRPC=false
|
||||
|
||||
RUN if [ ${INSTALL_XMLRPC} = true ]; then \
|
||||
docker-php-ext-install xmlrpc \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Lnav:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_LNAV=false
|
||||
|
||||
RUN if [ ${INSTALL_LNAV} = true ]; then \
|
||||
apt-get install -y lnav \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Protoc:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_PROTOC=false
|
||||
ARG PROTOC_VERSION
|
||||
|
||||
RUN if [ ${INSTALL_PROTOC} = true ]; then \
|
||||
if [ ${PROTOC_VERSION} = "latest" ]; then \
|
||||
REAL_PROTOC_VERSION=$(curl -s https://api.github.com/repos/protocolbuffers/protobuf/releases/latest | \
|
||||
sed -nr 's/.*"tag_name":\s?"v(.+?)".*/\1/p'); \
|
||||
else \
|
||||
REAL_PROTOC_VERSION=${PROTOC_VERSION}; \
|
||||
fi && \
|
||||
PROTOC_ZIP=protoc-${REAL_PROTOC_VERSION}-linux-x86_64.zip; \
|
||||
curl -L -o /tmp/protoc.zip https://github.com/protocolbuffers/protobuf/releases/download/v${REAL_PROTOC_VERSION}/${PROTOC_ZIP} && \
|
||||
unzip -q -o /tmp/protoc.zip -d /usr/local bin/protoc && \
|
||||
unzip -q -o /tmp/protoc.zip -d /usr/local 'include/*' && \
|
||||
rm -f /tmp/protoc.zip && \
|
||||
chmod +x /usr/local/bin/protoc && \
|
||||
chmod -R +r /usr/local/include/google \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Check PHP version:
|
||||
###########################################################################
|
||||
|
||||
RUN set -xe; php -v | head -n 1 | grep -q "PHP ${LARADOCK_PHP_VERSION}."
|
||||
|
||||
###########################################################################
|
||||
# Oh My ZSH!
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
ARG SHELL_OH_MY_ZSH=false
|
||||
RUN if [ ${SHELL_OH_MY_ZSH} = true ]; then \
|
||||
apt install -y zsh \
|
||||
;fi
|
||||
|
||||
ARG SHELL_OH_MY_ZSH_AUTOSUGESTIONS=false
|
||||
ARG SHELL_OH_MY_ZSH_ALIASES=false
|
||||
|
||||
USER laradock
|
||||
RUN if [ ${SHELL_OH_MY_ZSH} = true ]; then \
|
||||
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh) --keep-zshrc" && \
|
||||
sed -i -r 's/^plugins=\(.*?\)$/plugins=(laravel5)/' /home/laradock/.zshrc && \
|
||||
echo '\n\
|
||||
bindkey "^[OB" down-line-or-search\n\
|
||||
bindkey "^[OC" forward-char\n\
|
||||
bindkey "^[OD" backward-char\n\
|
||||
bindkey "^[OF" end-of-line\n\
|
||||
bindkey "^[OH" beginning-of-line\n\
|
||||
bindkey "^[[1~" beginning-of-line\n\
|
||||
bindkey "^[[3~" delete-char\n\
|
||||
bindkey "^[[4~" end-of-line\n\
|
||||
bindkey "^[[5~" up-line-or-history\n\
|
||||
bindkey "^[[6~" down-line-or-history\n\
|
||||
bindkey "^?" backward-delete-char\n' >> /home/laradock/.zshrc && \
|
||||
if [ ${SHELL_OH_MY_ZSH_AUTOSUGESTIONS} = true ]; then \
|
||||
sh -c "git clone https://github.com/zsh-users/zsh-autosuggestions /home/laradock/.oh-my-zsh/custom/plugins/zsh-autosuggestions" && \
|
||||
sed -i 's~plugins=(~plugins=(zsh-autosuggestions ~g' /home/laradock/.zshrc && \
|
||||
sed -i '1iZSH_AUTOSUGGEST_BUFFER_MAX_SIZE=20' /home/laradock/.zshrc && \
|
||||
sed -i '1iZSH_AUTOSUGGEST_STRATEGY=(history completion)' /home/laradock/.zshrc && \
|
||||
sed -i '1iZSH_AUTOSUGGEST_USE_ASYNC=1' /home/laradock/.zshrc && \
|
||||
sed -i '1iTERM=xterm-256color' /home/laradock/.zshrc \
|
||||
;fi && \
|
||||
if [ ${SHELL_OH_MY_ZSH_ALIASES} = true ]; then \
|
||||
echo "" >> /home/laradock/.zshrc && \
|
||||
echo "# Load Custom Aliases" >> /home/laradock/.zshrc && \
|
||||
echo "source /home/laradock/aliases.sh" >> /home/laradock/.zshrc && \
|
||||
echo "" >> /home/laradock/.zshrc \
|
||||
;fi \
|
||||
;fi
|
||||
|
||||
USER root
|
||||
|
||||
###########################################################################
|
||||
# ZSH User Aliases
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
COPY ./aliases.sh /root/aliases.sh
|
||||
COPY ./aliases.sh /home/laradock/aliases.sh
|
||||
|
||||
RUN if [ ${SHELL_OH_MY_ZSH} = true ]; then \
|
||||
sed -i 's/\r//' /root/aliases.sh && \
|
||||
sed -i 's/\r//' /home/laradock/aliases.sh && \
|
||||
chown laradock:laradock /home/laradock/aliases.sh && \
|
||||
echo "" >> ~/.zshrc && \
|
||||
echo "# Load Custom Aliases" >> ~/.zshrc && \
|
||||
echo "source ~/aliases.sh" >> ~/.zshrc && \
|
||||
echo "" >> ~/.zshrc \
|
||||
;fi
|
||||
|
||||
USER laradock
|
||||
|
||||
RUN if [ ${SHELL_OH_MY_ZSH} = true ]; then \
|
||||
echo "" >> ~/.zshrc && \
|
||||
echo "# Load Custom Aliases" >> ~/.zshrc && \
|
||||
echo "source ~/aliases.sh" >> ~/.zshrc && \
|
||||
echo "" >> ~/.zshrc \
|
||||
;fi
|
||||
|
||||
USER root
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Final Touch
|
||||
|
Reference in New Issue
Block a user