3

I have an app running with docker and laravel but there are some instructions that apparently are executed but not functioning.

These instructions are php artisan clear:cache and php artisan optimize. Sometimes I need to get into the container and run these instructions in order to have my changes reflected in the browsers. Apart from the failures that kubernetes detects due to the unreflected changes

FROM php:7.2.0-fpm as php RUN apt-get update && apt-get install -y openssl openssh-client \ rsync sshpass zip unzip git vim libmcrypt-dev mysql-client \ libssh2-1-dev libmagickwand-dev \n gnupg2 --no-install-recommends zlib1g-dev sass \ && pecl install mcrypt-1.0.1 \ && docker-php-ext-enable mcrypt \ && pecl install imagick \ && docker-php-ext-enable imagick \ && docker-php-ext-install pdo_mysql \ && docker-php-ext-install gd \ && docker-php-ext-install zip \ && pecl install ssh2-1.0 \ && docker-php-ext-enable ssh2 RUN curl --silent --location https://deb.nodesource.com/setup_11.x | bash - RUN apt-get install -y nodejs RUN npm install --global bower WORKDIR /var/www/html COPY install-composer.sh install-composer.sh RUN bash ./install-composer.sh COPY composer.json ./ COPY composer.lock ./ RUN composer install --no-scripts --no-autoloader COPY . ./ RUN composer update RUN composer install COPY zz-docker.conf /usr/local/etc/php-fpm.d/zz-docker.conf RUN mkdir -p /var/run/php/sock/ RUN sass resources/sass/style.scss:public/assets/stylesheets/style.css RUN bower install --allow-root RUN composer dump-autoload RUN php artisan vendor:publish --provider="Sentry\SentryLaravel\SentryLaravelServiceProvider" ONBUILD chown -R www-data:www-data . RUN php artisan optimize && php artisan config:cache \ && php artisan view:cache && php artisan view:clear 

Most of the time I need to get into the container and run the php artisan optimize, view:cache and view:clear again even though they are in the Dockerfile so it shouldn't be necessary to do it all over again

3
  • it's not clear... can you please paste the output of the possible errors you get? Commented Mar 10, 2019 at 23:59
  • You need to get into the container and run these instructions ? So, what's your docker run command ? Commented Mar 11, 2019 at 0:30
  • I need to run php artisan cache:clear and view:clear even though these instructions are in the Dockerfile Commented Mar 11, 2019 at 0:39

3 Answers 3

7

Any commands that are being executed using RUN in the Dockerfile will be executed only during the build phase. If you wish to run them while starting a container so you don't have to run them manually then you need to use a script e.g. bash script that can be used as an ENTRYPOINT for your Dockerfile and then make this script execute the command that you should run to start the application. So your entrypoint.sh can look like this:

# entrypoint.sh #!/usr/bin/env sh ... php artisan optimize php artisan config:cache php artisan view:cache php artisan view:clear ... php artisan serve # or use exec "$@" and pass php artisan serve through CMD in Dockerfile 

This will make every container that you start execute all of these commands before start serving your application.

Other links that you might want to check:

Sign up to request clarification or add additional context in comments.

Comments

1

You can also use the cmd:

sudo docker-compose exec php php /var/www/html/path_to_laravel_project_dir/artisan config:cache 

it will execute the artisan cmd in the container.

Comments

1

Just ran into a problem of cache:clear with Laravel too (no Docker involved in my case)

Fact is : if Artisan has no rights to clear caches, it just silently fails, proudly telling you cache have been successfully cleared (sigh).

See https://github.com/laravel/framework/issues/1179 for more details

*In my case, adding simple "sudo" before my command did the trick... but I lost half an hour understanding the cause (what an introduction to Laravel/Artisan :p) *
I have a Laravel v6.5

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.