Die Aufwärmphase des Symfony-Cache während des Container-Image-Erstellungsprozesses wird nicht korrekt benanntPhp

PHP-Programmierer chatten hier
Guest
 Die Aufwärmphase des Symfony-Cache während des Container-Image-Erstellungsprozesses wird nicht korrekt benannt

Post by Guest »

Ich habe eine Symfony-Anwendung, die in einem Container gespeichert ist.
Der letzte Schritt des Prozesses besteht darin, den Cache aufzuwärmen, damit das Bild „wie es ist“ verwendet werden kann. Während der Befehl scheinbar gut funktioniert, ist das Endergebnis, dass es zwei Cache-Verzeichnisse für die Umgebung gibt, eines mit dem richtigen Namen und eines mit einer Tilde (~).

Code: Select all

root@c238674823ae:/app/var/cache# ls -la
total 0
drwxr-xr-x 1 root root  16 Jan  2 11:46 .
drwxr-xr-x 1 root root  72 Jan  2 11:46 ..
drwxr-xr-x 1 root root 146 Jan  2 11:46 prod
drwxr-xr-x 1 root root 146 Jan  2 11:46 pro~
Einige Verzeichnisse fehlen im Cache-Verzeichnis mit dem „richtigen“ Namen, was dazu führt, dass die Anwendung fehlschlägt.
Dies sind die Dockerfile-Schritte, in denen die Cache ist aufgewärmt:

Code: Select all

ENV COMPOSER_MEMORY_LIMIT=-1

RUN set -eux; \
mkdir -p var/cache var/log; \
composer dump-autoload -o --apcu --no-dev; \
composer dump-env prod; \
chmod +x bin/console; sync;

RUN set eux; \
rm -rf var/cache/* && \
bin/console cache:clear && \
bin/console assets:install public && \
bin/console importmap:install && \
bin/console sass:build -v && \
bin/console asset-map:compile;

Wenn ich rm -rf var/cache/prod && mv var/cache/pro~ var/cache/prod manuell ausführe, funktioniert die Anwendung normal ... aber ich Ich habe Angst, mich darauf zu verlassen, da dies kein normales oder erwartetes Verhalten zu sein scheint.
Wenn ich nach dem Start der Anwendung bin/console cache:clear, jetzt funktioniert die Anwendung, aber das erfordert uns nach der Bereitstellung des neuen Images einen Befehl auszuführen, was bei jeder Bereitstellung zu einer Ausfallzeit von ein paar Sekunden führt, was unerwünscht ist.
Warum wird der Befehl „cache:clear“ nicht korrekt beendet? Warum wurde es ohne Fehler beendet, wenn es nicht korrekt beendet wurde?
Und jetzt etwas Dummes. Wenn ich das mache (cache:clear zweimal ausführen):

Code: Select all

RUN set eux; \
rm -rf var/cache/* && \
bin/console cache:clear && \
bin/console cache:clear && \
bin/console assets:install public && \
bin/console importmap:install && \
bin/console sass:build -v && \
bin/console asset-map:compile;
Jetzt funktioniert es und es gibt ein einziges Cache-Verzeichnis :(

Code: Select all

docker run -it web-api/env-prod:local ls -la var/cache
total 0
drwxr-xr-x 1 root root   8 Jan  2 12:11 .
drwxr-xr-x 1 root root  72 Jan  2 12:11 ..
drwxr-xr-x 1 root root 170 Jan  2 12:11 prod

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post