@@ -49,6 +49,22 @@ ARG PGID=1000
4949RUN groupadd -g $PGID laradock && \
5050 useradd -u $PUID -g laradock -m laradock
5151
52+
53+ #####################################
54+ # SOAP:
55+ #####################################
56+ USER root
57+
58+ ARG INSTALL_SOAP=false
59+ ENV INSTALL_SOAP ${INSTALL_SOAP}
60+
61+ RUN if [ ${INSTALL_SOAP} = true ]; then \
62+ # Install the PHP SOAP extension
63+ apt-get -y update && \
64+ add-apt-repository -y ppa:ondrej/php && \
65+ apt-get -y install libxml2-dev php7.1-soap \
66+ ;fi
67+
5268#####################################
5369# Set Timezone
5470#####################################
@@ -81,7 +97,25 @@ RUN if [ ${COMPOSER_GLOBAL_INSTALL} = true ]; then \
8197#####################################
8298USER root
8399
84- COPY ./crontab /var/spool/cron/crontabs
100+ COPY ./crontab /etc/cron.d
101+ RUN chmod -R 644 /etc/cron.d
102+
103+ #####################################
104+ # User Aliases
105+ #####################################
106+
107+ USER laradock
108+ COPY ./aliases.sh /home/laradock/aliases.sh
109+ RUN echo "" >> ~/.bashrc && \
110+ echo "# Load Custom Aliases" >> ~/.bashrc && \
111+ echo "source /home/laradock/aliases.sh" >> ~/.bashrc && \
112+ echo "" >> ~/.bashrc
113+
114+ USER root
115+ RUN echo "" >> ~/.bashrc && \
116+ echo "# Load Custom Aliases" >> ~/.bashrc && \
117+ echo "source /home/laradock/aliases.sh" >> ~/.bashrc && \
118+ echo "" >> ~/.bashrc
85119
86120#####################################
87121# xDebug:
@@ -176,7 +210,7 @@ ENV INSTALL_NODE ${INSTALL_NODE}
176210ENV NVM_DIR /home/laradock/.nvm
177211RUN if [ ${INSTALL_NODE} = true ]; then \
178212 # Install nvm (A Node Version Manager)
179- curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.6 /install.sh | bash && \
213+ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1 /install.sh | bash && \
180214 . $NVM_DIR/nvm.sh && \
181215 nvm install ${NODE_VERSION} && \
182216 nvm use ${NODE_VERSION} && \
@@ -209,10 +243,16 @@ USER laradock
209243
210244ARG INSTALL_YARN=false
211245ENV INSTALL_YARN ${INSTALL_YARN}
246+ ARG YARN_VERSION=latest
247+ ENV YARN_VERSION ${YARN_VERSION}
212248
213249RUN if [ ${INSTALL_YARN} = true ]; then \
214250 [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" && \
215- curl -o- -L https://yarnpkg.com/install.sh | bash && \
251+ if [ ${YARN_VERSION} = "latest" ]; then \
252+ curl -o- -L https://yarnpkg.com/install.sh | bash; \
253+ else \
254+ curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version ${YARN_VERSION}; \
255+ fi && \
216256 echo "" >> ~/.bashrc && \
217257 echo 'export PATH="$HOME/.yarn/bin:$PATH"' >> ~/.bashrc \
218258;fi
@@ -255,6 +295,23 @@ RUN if [ ${INSTALL_AEROSPIKE_EXTENSION} = false ]; then \
255295 rm /etc/php/7.1/cli/conf.d/aerospike.ini \
256296;fi
257297
298+ #####################################
299+ # PHP V8JS:
300+ #####################################
301+ USER root
302+
303+ ARG INSTALL_V8JS_EXTENSION=false
304+ ENV INSTALL_V8JS_EXTENSION ${INSTALL_V8JS_EXTENSION}
305+
306+ RUN if [ ${INSTALL_V8JS_EXTENSION} = true ]; then \
307+ # Install the php V8JS extension
308+ add-apt-repository -y ppa:pinepain/libv8-5.4 \
309+ && apt-get update \
310+ && apt-get install -y php-dev php-pear libv8-5.4 \
311+ && pecl install v8js \
312+ && echo "extension=v8js.so" >> /etc/php/7.1/cli/php.ini \
313+ ;fi
314+
258315#####################################
259316# Non-root user : PHPUnit path
260317#####################################
@@ -265,6 +322,111 @@ USER laradock
265322RUN echo "" >> ~/.bashrc && \
266323 echo 'export PATH="/var/www/vendor/bin:$PATH"' >> ~/.bashrc
267324
325+ #####################################
326+ # Laravel Artisan Alias
327+ #####################################
328+ USER root
329+
330+ RUN echo "" >> ~/.bashrc && \
331+ echo 'alias art="php artisan"' >> ~/.bashrc
332+
333+ #####################################
334+ # Laravel Envoy:
335+ #####################################
336+ USER laradock
337+
338+ ARG INSTALL_LARAVEL_ENVOY=true
339+ ENV INSTALL_LARAVEL_ENVOY ${INSTALL_LARAVEL_ENVOY}
340+
341+ RUN if [ ${INSTALL_LARAVEL_ENVOY} = true ]; then \
342+ # Install the Laravel Envoy
343+ composer global require "laravel/envoy=~1.0" \
344+ ;fi
345+
346+ #####################################
347+ # Deployer:
348+ #####################################
349+ USER laradock
350+
351+ ARG INSTALL_DEPLOYER=false
352+ ENV INSTALL_DEPLOYER ${INSTALL_DEPLOYER}
353+
354+ RUN if [ ${INSTALL_DEPLOYER} = true ]; then \
355+ # Install the Deployer
356+ composer global require "deployer/deployer" \
357+ ;fi
358+
359+ #####################################
360+ # Linuxbrew:
361+ #####################################
362+ USER root
363+
364+ ARG INSTALL_LINUXBREW=true
365+ ENV INSTALL_LINUXBREW ${INSTALL_LINUXBREW}
366+
367+ RUN if [ ${INSTALL_LINUXBREW} = true ]; then \
368+
369+ # Preparation
370+ apt-get update && \
371+ apt-get upgrade -y && \
372+ apt-get install -y build-essential make cmake scons curl git \
373+ ruby autoconf automake autoconf-archive \
374+ gettext libtool flex bison \
375+ libbz2-dev libcurl4-openssl-dev \
376+ libexpat-dev libncurses-dev && \
377+
378+ # Install the Linuxbrew
379+ git clone https://github.com/Homebrew/linuxbrew.git ~/.linuxbrew && \
380+
381+ echo "" >> ~/.bashrc && \
382+ echo 'export PKG_CONFIG_PATH"=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.bashrc && \
383+
384+ # Setup linuxbrew
385+ echo 'export LINUXBREWHOME="$HOME/.linuxbrew"' >> ~/.bashrc && \
386+ echo 'export PATH="$LINUXBREWHOME/bin:$PATH"' >> ~/.bashrc && \
387+ echo 'export MANPATH="$LINUXBREWHOME/man:$MANPATH"' >> ~/.bashrc && \
388+ echo 'export PKG_CONFIG_PATH="$LINUXBREWHOME/lib64/pkgconfig:$LINUXBREWHOME/lib/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.bashrc && \
389+ echo 'export LD_LIBRARY_PATH="$LINUXBREWHOME/lib64:$LINUXBREWHOME/lib:$LD_LIBRARY_PATH"' >> ~/.bashrc \
390+ ;fi
391+
392+ #####################################
393+ # Minio:
394+ #####################################
395+ USER root
396+ ARG INSTALL_MC=false
397+ ENV INSTALL_MC ${INSTALL_MC}
398+
399+ COPY mc/config.json /root/.mc/config.json
400+
401+ RUN if [ ${INSTALL_MC} = true ]; then\
402+ curl -fsSL -o /usr/local/bin/mc https://dl.minio.io/client/mc/release/linux-amd64/mc && \
403+ chmod +x /usr/local/bin/mc \
404+ ;fi
405+
406+ #####################################
407+ # Symfony:
408+ #####################################
409+ USER root
410+ ARG INSTALL_SYMFONY=false
411+ ENV INSTALL_SYMFONY ${INSTALL_SYMFONY}
412+ RUN if [ ${INSTALL_SYMFONY} = true ]; then \
413+
414+ mkdir -p /usr/local/bin \
415+ && curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \
416+ && chmod a+x /usr/local/bin/symfony \
417+
418+ # Symfony 3 alias
419+ && echo 'alias dev="php bin/console -e=dev"' >> ~/.bashrc \
420+ && echo 'alias prod="php bin/console -e=prod"' >> ~/.bashrc \
421+
422+ # Symfony 2 alias
423+ # && echo 'alias dev="php app/console -e=dev"' >> ~/.bashrc \
424+ # && echo 'alias prod="php app/console -e=prod"' >> ~/.bashrc \
425+
426+ ;fi
427+
428+ USER laradock
429+
268430#
269431#--------------------------------------------------------------------------
270432# Final Touch
0 commit comments