こんにちは ![]()
Discourse と連携するパイプラインの構築をまだ試みています。
Discourse と共に使用するための、新しい Redis コンテナと新しい Postgres コンテナを用意しました。
次のステップは、ウェブ専用コンテナのイメージをビルドし、それらを接続してインストールを開始することだと理解していますが、コンテナのブートストラップがうまくいきません。
以下のエラーが発生しています:
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 ** 上記をスクロールして、より早い段階のエラーメッセージを確認してください。複数のエラーがある可能性があります。
./discourse-doctor で問題を診断できるかもしれません。
まだ何も構築されていないのに、なぜマイグレーションを試みているのか理解できません。手順を間違えているのでしょうか?
使用している web_only.yml は以下の通りです(非常に基本的なものです):
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
ブートストラップを実行するたびに、Postgres と Redis コンテナを起動・実行しておく必要があるのでしょうか?イメージを自分で準備してアップロードし、その後それらを使用して環境を再実行すれば、データベースに対して何らかの操作を行う必要はない我以为いました…
私が構築するように指示されたパイプラインは以下の通りです:
- GitHub Actions:更新が必要な場合にイメージをブートストラップできます。
- イメージをプライベートレジストリにプッシュします。
- その後、Kubernetes クラスターが更新を取得し、開発環境から本番環境までデプロイします。
これまでのご支援とサポートに改めて感謝いたします。![]()