Hallo ![]()
Ich versuche immer noch, unsere Pipeline so einzurichten, dass sie mit Discourse funktioniert. Ich habe einen frischen Redis-Container und einen frischen Postgres-Container für die Verwendung mit Discourse.
Der nächste Schritt für mich ist, das Image des web_only-Containers zu bauen, um sie dann zu verbinden und die Installation zu starten, wenn ich recht habe. Allerdings kann ich den Container nicht bootstrappen.
Ich erhalte diesen Fehler:
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 4632 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
0e576a9672a887d23579100756224f920ab595b819874b5e7cbe4868f4234481
** FAILED TO BOOTSTRAP ** bitte scrollen Sie nach oben und suchen Sie nach früheren Fehlermeldungen, es kann mehr als eine geben.
./discourse-doctor kann helfen, das Problem zu diagnostizieren.
Ich bin verwirrt, warum versucht wird, eine Migration durchzuführen, obwohl noch nichts gebaut wurde. Mache ich die Schritte falsch?
Dies ist das web_only.yml, das ich verwende (ein ziemlich einfaches):
templates:
- "templates/web.template.yml"
- "templates/web.ratelimited.template.yml"
env:
LANG: en_US.UTF-8
UNICORN_WORKERS: 2
DISCOURSE_DB_USERNAME: root
DISCOURSE_DB_PASSWORD: my-secret-pw
DISCOURSE_DB_HOST: 127.0.0.1
DISCOURSE_DB_NAME: communities
DISCOURSE_DEVELOPER_EMAILS: 'email@mail.com'
DISCOURSE_HOSTNAME: 'localhost'
DISCOURSE_REDIS_HOST: 127.0.0.1
SKIP_POST_DEPLOYMENT_MIGRATIONS: 1
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- mkdir -p plugins
- git clone https://github.com/discourse/docker_manager.git
- git clone https://github.com/discourse/discourse-solved.git
- git clone https://github.com/discourse/discourse-voting.git
- git clone https://github.com/discourse/discourse-slack-official.git
- git clone https://github.com/discourse/discourse-assign.git
run:
- exec:
cd: /var/www/discourse
cmd:
- sed -i 's/GlobalSetting.serve_static_assets/true/' config/environments/production.rb
- bash -c "touch -a /shared/log/rails/{sidekiq,puma.err,puma}.log"
- bash -c "ln -s /shared/log/rails/{sidekiq,puma.err,puma}.log log/"
- sed -i 's/default \$scheme;/default https;/' /etc/nginx/conf.d/discourse.conf
Muss ich jedes Mal, wenn ich einen Build bootstrappen muss, einen Postgres- und einen Redis-Container laufen haben? Ich dachte, ich könnte die Images vorbereiten, um sie selbst hochzuladen, und dann meine Umgebungen damit neu starten, ohne etwas an meiner Datenbank ändern zu müssen…
Die Pipeline, die ich bauen sollte, ist:
- Github Actions: die das Image bootstrappen können, falls ein Update erforderlich ist.
- Das Image in eine private Registry pushen.
- Dann kann mein Kubernetes-Cluster Updates erhalten und sie in meinen Umgebungen von dev bis prod bereitstellen.
Nochmals vielen Dank für all die Hilfe und Unterstützung. ![]()