1

Ich erhalte die folgende Fehlermeldung auf elastischen Bohnenstengel AWS wenn bundle exec rake --trace assets:precompile ausgeführt wird:Wie beheben Sie Fehler bei der Dateiberechtigungen für AWS Elastic Beanstalk Rails Assets Precompile?

Command failed with status (1): [/opt/rubies/ruby-2.3.0/bin/ruby /opt/rubie...] 

und an den Stack-Trace angezeigt:

Errno::EACCES: Permission denied @ dir_s_mkdir - /var/app/current/tmp/requirejs 

Ich brauche die Berechtigungen zu aktualisieren, so kann der Rake Aufgabe schreiben zu diesem tmp-Ordner. Normalerweise würde ich einfach chmod oder chown auf dem Server ausführen, um dem Benutzer Zugriff zu gewähren. Ich bin jedoch auf elastischen Bohnenstangen und ich glaube nicht, dass es an neuen Instanzen und zukünftigen Bereitstellungen arbeiten wird. Wie kann man das beheben, sodass es für alle Bereitstellungen auf jeder EC2-Instanz gilt?

+0

Warum die down vote? Sollte ich mehr Informationen zur Verfügung stellen? – tko

+0

Ich habe genau dieses Problem, hast du es jemals gelöst? – Andreas

+0

Ich habe es vorläufig durch Vorkompilieren der Assets und das Commit im Repo vor dem Deployment geschafft. Die Bereitstellung selbst ist schneller. – tko

Antwort

1

ich endlich festgelegt (siehe um gearbeitet hat) diese mit einem eb Erweiterung Befehl, der die tmp Ordner erstellt und macht es beschreibbar:

# <project-root>/.ebextensions/fix_temporary_folder_permissions.yml 
commands: 
    01_set_tmp_permissions: 
    command: "mkdir /var/app/ondeck/tmp; chmod 600 /var/app/ondeck/tmp" 

Hinweis: Ich bin nicht ganz sicher, wie das funktioniert, über mehrere Instanzen hinweg, aber ich stelle mir vor, dass sie alle ihre eigene Vorkompilierung bei der Bereitstellung ausführen.

+3

Sie müssen den Namen möglicherweise in 'fix_temporary_folder_permissions.config' ändern, wenn dies nicht funktioniert. – Andreas