diff --git a/Dockerfile b/Dockerfile index 57a62b3..958e38c 100755 --- a/Dockerfile +++ b/Dockerfile @@ -35,6 +35,6 @@ RUN apt-get update && apt-get install -y openssh-server libpq5 libpq-dev unzip g RUN pecl install -o -f igbinary && pecl install -o -f redis && docker-php-ext-enable redis igbinary && rm -rf /tmp/* COPY init /sbin/ -RUN chmod 550 /sbin/init && chown 0:33 /sbin/init +RUN chmod 550 /sbin/init && chown 0:0 /sbin/init ENTRYPOINT [ "/sbin/init" ] CMD [ "php-fpm" ] diff --git a/init b/init index b6978da..9446482 100755 --- a/init +++ b/init @@ -19,31 +19,37 @@ if [ "${role}" = "app" -a -e artisan ]; then exec /bin/bash fi - if [ "${env}" != "dev" -a -z "${SKIP_PERM}" ]; then - echo "* Setting Permissions..." - # Make sure our permissions are appropraite - find ${php} -type f -exec chmod 640 {} \; - find ${php} -type d -exec chmod 750 {} \; - chmod o+rx ${php} - chmod -R o+rx ${php}/public - chown -R lamp:www-data ${php} - chown -R www-data:www-data ${php}/storage ${php}/bootstrap ${php}/composer.* - [ -e ${php}/vendor ] && chown -R www-data:www-data ${php}/vendor + # Only adjust perms if this is an external mountpoint + if mountpoint -q ${php}; then + if [ "${env}" != "dev" -a -z "${SKIP_PERM}" ]; then + echo "* Setting Permissions..." + # Make sure our permissions are appropraite + find ${php} -type f -exec chmod 640 {} \; + find ${php} -type d -exec chmod 750 {} \; + chmod o+rx ${php} + chmod -R o+rx ${php}/public + chown -R lamp:www-data ${php} + chown -R www-data:www-data ${php}/storage ${php}/bootstrap ${php}/composer.* + [ -e ${php}/vendor ] && chown -R www-data:www-data ${php}/vendor + fi fi if [ "${env}" != "local" -a -r "artisan" ]; then # See if we need to refresh our dependancies - if [[ -r composer.lock && ( -e .composer.refresh || ! -d vendor ) ]]; then + if [[ -r composer.json && ( -e .composer.refresh || ! -d vendor ) ]]; then rm -f ${php}/bootstrap/cache/*.php - [ "${env}" != "dev" -a -z "${SKIP_PERM}" ] && chown -R www-data:www-data ${composer} - [ ! -d ${php}/vendor ] && mkdir -m 750 ${php}/vendor && chown www-data:www-data ${php}/vendor if [ "${env}" != "dev" ]; then NODEV="--no-dev" fi - [ "${env}" != "dev" -a -z "${SKIP_PERM}" ] && chmod g+w ${php} + if mountpoint -q ${composer}; then + [ "${env}" != "dev" -a -z "${SKIP_PERM}" ] && chown -R www-data:www-data ${composer} + [ ! -d ${php}/vendor ] && mkdir -m 750 ${php}/vendor && chown www-data:www-data ${php}/vendor + [ "${env}" != "dev" -a -z "${SKIP_PERM}" ] && chmod g+w ${php} + fi + su www-data -s /bin/sh -c "composer install --optimize-autoloader ${NODEV}" && ( test -e .composer.refresh && rm -f .composer.refresh ) - [ "${env}" != "dev" -a -z "${SKIP_PERM}" ] && chmod g-w ${php} + [ "${env}" != "dev" -a -z "${SKIP_PERM}" ] && mountpoint -q ${composer} && chmod g-w ${php} fi if [ -r .migrate ]; then