refactor the workspace docker file
This commit is contained in:
parent
56f422ade0
commit
5635b47c6f
@ -34,6 +34,7 @@ MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
|||||||
# in the `docker-compose.yml` before the build.
|
# in the `docker-compose.yml` before the build.
|
||||||
# Example:
|
# Example:
|
||||||
# - INSTALL_ZIP_ARCHIVE=true
|
# - INSTALL_ZIP_ARCHIVE=true
|
||||||
|
# - ...
|
||||||
#
|
#
|
||||||
|
|
||||||
#####################################
|
#####################################
|
||||||
|
@ -32,65 +32,10 @@ MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
|||||||
#
|
#
|
||||||
# Optional Software's will only be installed if you set them to `true`
|
# Optional Software's will only be installed if you set them to `true`
|
||||||
# in the `docker-compose.yml` before the build.
|
# in the `docker-compose.yml` before the build.
|
||||||
|
# Example:
|
||||||
|
# - INSTALL_NODE=false
|
||||||
|
# - ...
|
||||||
#
|
#
|
||||||
# - INSTALL_XDEBUG= false
|
|
||||||
# - INSTALL_MONGO= false
|
|
||||||
# - COMPOSER_GLOBAL_INSTALL= false
|
|
||||||
# - INSTALL_NODE= false
|
|
||||||
# - INSTALL_DRUSH= false
|
|
||||||
#
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# xDebug:
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
# Check if xDebug needs to be installed
|
|
||||||
ARG INSTALL_XDEBUG=false
|
|
||||||
ENV INSTALL_XDEBUG ${INSTALL_XDEBUG}
|
|
||||||
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
|
|
||||||
# Load the xdebug extension only with phpunit commands
|
|
||||||
apt-get update && \
|
|
||||||
apt-get install -y --force-yes php7.0-xdebug && \
|
|
||||||
sed -i 's/^/;/g' /etc/php/7.0/cli/conf.d/20-xdebug.ini && \
|
|
||||||
echo "alias phpunit='php -dzend_extension=xdebug.so /var/www/laravel/vendor/bin/phpunit'" >> ~/.bashrc \
|
|
||||||
;fi
|
|
||||||
# ADD for REMOTE debugging
|
|
||||||
COPY ./xdebug.ini /etc/php/7.0/cli/conf.d/xdebug.ini
|
|
||||||
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# ssh:
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
# Check if ssh needs to be installed
|
|
||||||
# See: https://github.com/phusion/baseimage-docker#enabling_ssh
|
|
||||||
ADD insecure_id_rsa /tmp/id_rsa
|
|
||||||
ADD insecure_id_rsa.pub /tmp/id_rsa.pub
|
|
||||||
ARG INSTALL_WORKSPACE_SSH=false
|
|
||||||
ENV INSTALL_WORKSPACE_SSH ${INSTALL_WORKSPACE_SSH}
|
|
||||||
RUN if [ ${INSTALL_WORKSPACE_SSH} = true ]; then \
|
|
||||||
rm -f /etc/service/sshd/down && \
|
|
||||||
cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys \
|
|
||||||
&& cat /tmp/id_rsa.pub >> /root/.ssh/id_rsa.pub \
|
|
||||||
&& cat /tmp/id_rsa >> /root/.ssh/id_rsa \
|
|
||||||
&& rm -f /tmp/id_rsa* \
|
|
||||||
&& chmod 644 /root/.ssh/authorized_keys /root/.ssh/id_rsa.pub \
|
|
||||||
&& chmod 400 /root/.ssh/id_rsa \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# MongoDB:
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
# Check if Mongo needs to be installed
|
|
||||||
ARG INSTALL_MONGO=false
|
|
||||||
ENV INSTALL_MONGO ${INSTALL_MONGO}
|
|
||||||
RUN if [ ${INSTALL_MONGO} = true ]; then \
|
|
||||||
# Install the mongodb extension
|
|
||||||
pecl install mongodb && \
|
|
||||||
echo "extension=mongodb.so" >> /etc/php/7.0/cli/php.ini \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
#####################################
|
||||||
# Non-Root User:
|
# Non-Root User:
|
||||||
@ -121,6 +66,62 @@ RUN if [ ${COMPOSER_GLOBAL_INSTALL} = true ]; then \
|
|||||||
composer global install \
|
composer global install \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
# Crontab
|
||||||
|
#####################################
|
||||||
|
USER root
|
||||||
|
|
||||||
|
COPY ./crontab /var/spool/cron/crontabs
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
# xDebug:
|
||||||
|
#####################################
|
||||||
|
|
||||||
|
# Check if xDebug needs to be installed
|
||||||
|
ARG INSTALL_XDEBUG=false
|
||||||
|
ENV INSTALL_XDEBUG ${INSTALL_XDEBUG}
|
||||||
|
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
|
||||||
|
# Load the xdebug extension only with phpunit commands
|
||||||
|
apt-get update && \
|
||||||
|
apt-get install -y --force-yes php7.0-xdebug && \
|
||||||
|
sed -i 's/^/;/g' /etc/php/7.0/cli/conf.d/20-xdebug.ini && \
|
||||||
|
echo "alias phpunit='php -dzend_extension=xdebug.so /var/www/laravel/vendor/bin/phpunit'" >> ~/.bashrc \
|
||||||
|
;fi
|
||||||
|
# ADD for REMOTE debugging
|
||||||
|
COPY ./xdebug.ini /etc/php/7.0/cli/conf.d/xdebug.ini
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
# ssh:
|
||||||
|
#####################################
|
||||||
|
ARG INSTALL_WORKSPACE_SSH=false
|
||||||
|
ENV INSTALL_WORKSPACE_SSH ${INSTALL_WORKSPACE_SSH}
|
||||||
|
|
||||||
|
ADD insecure_id_rsa /tmp/id_rsa
|
||||||
|
ADD insecure_id_rsa.pub /tmp/id_rsa.pub
|
||||||
|
|
||||||
|
RUN if [ ${INSTALL_WORKSPACE_SSH} = true ]; then \
|
||||||
|
rm -f /etc/service/sshd/down && \
|
||||||
|
cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys \
|
||||||
|
&& cat /tmp/id_rsa.pub >> /root/.ssh/id_rsa.pub \
|
||||||
|
&& cat /tmp/id_rsa >> /root/.ssh/id_rsa \
|
||||||
|
&& rm -f /tmp/id_rsa* \
|
||||||
|
&& chmod 644 /root/.ssh/authorized_keys /root/.ssh/id_rsa.pub \
|
||||||
|
&& chmod 400 /root/.ssh/id_rsa \
|
||||||
|
;fi
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
# MongoDB:
|
||||||
|
#####################################
|
||||||
|
|
||||||
|
# Check if Mongo needs to be installed
|
||||||
|
ARG INSTALL_MONGO=false
|
||||||
|
ENV INSTALL_MONGO ${INSTALL_MONGO}
|
||||||
|
RUN if [ ${INSTALL_MONGO} = true ]; then \
|
||||||
|
# Install the mongodb extension
|
||||||
|
pecl install mongodb && \
|
||||||
|
echo "extension=mongodb.so" >> /etc/php/7.0/cli/php.ini \
|
||||||
|
;fi
|
||||||
|
|
||||||
#####################################
|
#####################################
|
||||||
# Drush:
|
# Drush:
|
||||||
#####################################
|
#####################################
|
||||||
@ -167,6 +168,7 @@ RUN if [ ${INSTALL_NODE} = true ]; then \
|
|||||||
|
|
||||||
# Add NVM binaries to root's .bashrc
|
# Add NVM binaries to root's .bashrc
|
||||||
USER root
|
USER root
|
||||||
|
|
||||||
RUN if [ ${INSTALL_NODE} = true ]; then \
|
RUN if [ ${INSTALL_NODE} = true ]; then \
|
||||||
echo "" >> ~/.bashrc && \
|
echo "" >> ~/.bashrc && \
|
||||||
echo 'export NVM_DIR="/home/laradock/.nvm"' >> ~/.bashrc && \
|
echo 'export NVM_DIR="/home/laradock/.nvm"' >> ~/.bashrc && \
|
||||||
@ -177,10 +179,13 @@ RUN if [ ${INSTALL_NODE} = true ]; then \
|
|||||||
# PHP Aerospike:
|
# PHP Aerospike:
|
||||||
#####################################
|
#####################################
|
||||||
USER root
|
USER root
|
||||||
ARG INSTALL_AEROSPIKE_EXTENSION=false
|
|
||||||
|
ARG INSTALL_AEROSPIKE_EXTENSION=true
|
||||||
ENV INSTALL_AEROSPIKE_EXTENSION ${INSTALL_AEROSPIKE_EXTENSION}
|
ENV INSTALL_AEROSPIKE_EXTENSION ${INSTALL_AEROSPIKE_EXTENSION}
|
||||||
|
|
||||||
# Copy aerospike configration for remote debugging
|
# Copy aerospike configration for remote debugging
|
||||||
COPY ./aerospike.ini /etc/php/7.0/cli/conf.d/aerospike.ini
|
COPY ./aerospike.ini /etc/php/7.0/cli/conf.d/aerospike.ini
|
||||||
|
|
||||||
RUN if [ ${INSTALL_AEROSPIKE_EXTENSION} = true ]; then \
|
RUN if [ ${INSTALL_AEROSPIKE_EXTENSION} = true ]; then \
|
||||||
# Install the php aerospike extension
|
# Install the php aerospike extension
|
||||||
curl -L -o /tmp/aerospike-client-php.tar.gz "https://github.com/luciano-jr/aerospike-client-php/archive/master.tar.gz" \
|
curl -L -o /tmp/aerospike-client-php.tar.gz "https://github.com/luciano-jr/aerospike-client-php/archive/master.tar.gz" \
|
||||||
@ -194,16 +199,11 @@ RUN if [ ${INSTALL_AEROSPIKE_EXTENSION} = true ]; then \
|
|||||||
) \
|
) \
|
||||||
&& rm /tmp/aerospike-client-php.tar.gz \
|
&& rm /tmp/aerospike-client-php.tar.gz \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
RUN if [ ${INSTALL_AEROSPIKE_EXTENSION} = false ]; then \
|
RUN if [ ${INSTALL_AEROSPIKE_EXTENSION} = false ]; then \
|
||||||
rm /etc/php/7.0/cli/conf.d/aerospike.ini \
|
rm /etc/php/7.0/cli/conf.d/aerospike.ini \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Crontab
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
COPY ./crontab /var/spool/cron/crontabs
|
|
||||||
|
|
||||||
#
|
#
|
||||||
#--------------------------------------------------------------------------
|
#--------------------------------------------------------------------------
|
||||||
# Final Touch
|
# Final Touch
|
||||||
|
Loading…
Reference in New Issue
Block a user