Gibt es eine Möglichkeit, chown auf dem Verzeichnis /shared/uploads beim Neuaufbau der App effizienter zu gestalten? Gibt es einen Workaround?
- mkdir -p tmp/pids
- mkdir -p tmp/sockets
- touch tmp/.gitkeep
- mkdir -p /shared/log/rails
- bash -c "touch -a /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log"
- bash -c "ln -s /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log $home/log"
- bash -c "mkdir -p /shared/{uploads,backups}"
- bash -c "ln -s /shared/{uploads,backups} $home/public"
- bash -c "mkdir -p /shared/tmp/{backups,restores}"
- bash -c "ln -s /shared/tmp/{backups,restores} $home/tmp"
- chown -R discourse:www-data /shared/log/rails /shared/uploads /shared/backups /shared/tmp
- exec:
cmd:
- "cp $home/config/nginx.sample.conf /etc/nginx/conf.d/discourse.conf"
- "rm /etc/nginx/sites-enabled/default"
- "mkdir -p /var/nginx/cache"
- replace:
filename: /etc/nginx/nginx.conf
from: pid /run/nginx.pid;
Derzeit dauert allein diese Zeile mehr als 10 Minuten (bei über 200.000 Uploads). Ohne sie wäre der Neuaufbau erheblich schneller.
Ich erinnere mich, dass das schon einmal angesprochen wurde. @mpalmer , gibt es eine ausgefeilte Option für diesen Befehl, um diese Dateien zu überspringen, wenn die Berechtigungen bereits korrekt erscheinen?
mpalmer
(Matt Palmer)
13. März 2020 um 01:25
3
Ja, wahrscheinlich ist das der Grund, warum diese Zeile in web.template.yml erschienen ist:
find $home ! -user discourse -exec chown discourse {} \+
In diesem Fall wäre der Befehl wahrscheinlich so etwas wie:
find /shared/log/rails /shared/uploads /shared/backups /shared/tmp ! -user discourse -or ! -group www-data -exec chown discourse:www-data {} \+
Toll, können wir etwas tun, damit das möglich wird?