新しい Discourse の Docker イメージを構築しようとしていますが、migrate ステージで失敗しているようです。
I, [2020-12-15T15:02:28.688540 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
I, [2020-12-15T15:04:19.530701 #1] INFO -- :
I, [2020-12-15T15:04:19.530966 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile'
一時ファイルを破棄中
アセットをバンドル中
I, [2020-12-15T15:04:36.448680 #374] INFO -- : Writing /var/www/discourse/public/assets/vendor-bdb3fefe8aefde7bf6aef331a6edd24482502b370ed9f6f299836c72ee6a843c.js
I, [2020-12-15T15:04:43.818563 #374] INFO -- : Writing /var/www/discourse/public/assets/admin-073db5e5695d9f3834b9ad41d66ef30a02b9ca85fc9c95f272257ea9c7a67f21.js
I, [2020-12-15T15:04:43.822864 #374] INFO -- : Writing /var/www/discourse/public/assets/browser-detect-115ab5953de1b5bb122bfb26b757f5391dd8d1d2aef2b81baf7b59aee99d9f34.js
.
.
.
.
.
.
.
.
.
.
.
35:M 15 Dec 2020 15:06:27.009 * 300 秒間に 10 件の変更。保存中...
35:M 15 Dec 2020 15:06:27.010 * バックグラウンド保存を pid 1066 で開始
1066:C 15 Dec 2020 15:06:27.010 # サーバールートディレクトリ /pups 内の RDB ファイル dump.rdb を保存するために開くのに失敗しました: 権限がありません
35:M 15 Dec 2020 15:06:27.110 # バックグラウンド保存エラー
35:M 15 Dec 2020 15:06:33.020 * 300 秒間に 10 件の変更。保存中...
35:M 15 Dec 2020 15:06:33.020 * バックグラウンド保存を pid 1067 で開始
1067:C 15 Dec 2020 15:06:33.020 # サーバールートディレクトリ /pups 内の RDB ファイル dump.rdb を保存するために開くのに失敗しました: 権限がありません
35:M 15 Dec 2020 15:06:33.121 # バックグラウンド保存エラー
35:M 15 Dec 2020 15:06:39.030 * 300 秒間に 10 件の変更。保存中...
35:M 15 Dec 2020 15:06:39.031 * バックグラウンド保存を pid 1068 で開始
1068:C 15 Dec 2020 15:06:39.031 # サーバールートディレクトリ /pups 内の RDB ファイル dump.rdb を保存するために開くのに失敗しました: 権限がありません
35:M 15 Dec 2020 15:06:39.131 # バックグラウンド保存エラー
gzip -f -c -9 /var/www/discourse/public/assets/application-42d4413fabab7a4b12e0c25fb01f736af560aa283089071a8493f37c9b042a4a.js > /var/www/discourse/public/assets/application-42d4413fabab7a4b12e0c25fb01f736af560aa283089071a8493f37c9b042a4a.js.gz
brotli -f --quality=11 /var/www/discourse/public/assets/application-42d4413fabab7a4b12e0c25fb01f736af560aa283089071a8493f37c9b042a4a.js --output=/var/www/discourse/public/assets/application-42d4413fabab7a4b12e0c25fb01f736af560aa283089071a8493f37c9b042a4a.js.br
35:M 15 Dec 2020 15:06:45.041 * 300 秒間に 10 件の変更。保存中...
35:M 15 Dec 2020 15:06:45.042 * バックグラウンド保存を pid 1072 で開始
1072:C 15 Dec 2020 15:06:45.042 # サーバールートディレクトリ /pups 内の RDB ファイル dump.rdb を保存するために開くのに失敗しました: 権限がありません
35:M 15 Dec 2020 15:06:45.142 # バックグラウンド保存エラー
application-42d4413fabab7a4b12e0c25fb01f736af560aa283089071a8493f37c9b042a4a.js の圧縮完了: 25.87 秒
すべての JS ファイルの圧縮完了: 83.62 秒
CSS のコンパイル開始: 2020-12-15 15:06:49 UTC
デフォルトの CSS コンパイル中 2020-12-15 15:06:49 UTC
precompile ターゲット: デスクトップ Dark
35:M 15 Dec 2020 15:06:51.051 * 300 秒間に 10 件の変更。保存中...
35:M 15 Dec 2020 15:06:51.051 * バックグラウンド保存を pid 1074 で開始
1074:C 15 Dec 2020 15:06:51.051 # サーバールートディレクトリ /pups 内の RDB ファイル dump.rdb を保存するために開くのに失敗しました: 権限がありません
35:M 15 Dec 2020 15:06:51.151 # バックグラウンド保存エラー
rake aborted!
Redis::CommandError: ERR Error running script (call to f_45fe64238f6598e6c505af0aad74b4e178e891f4): @user_script:14: @user_script: 14: -MISCONF Redis は RDB スナップショットの保存に設定されていますが、現在ディスクへの永続化ができません。RDB スナップショットの保存に失敗した場合に書き込みエラーを報告するようにこのインスタンスが設定されているため(stop-writes-on-bgsave-error オプション)、データセットを変更する可能性のあるコマンドは無効化されています。RDB エラーの詳細については、Redis ログを確認してください。
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/redis-4.2.5/lib/redis/client.rb:132:in `call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rack-mini-profiler-2.2.0/lib/mini_profiler/profiling_methods.rb:85:in `block in profile_method'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/redis-4.2.5/lib/redis.rb:2585:in `block in _eval'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/redis-4.2.5/lib/redis.rb:69:in `block in synchronize'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/redis-4.2.5/lib/redis.rb:69:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/redis-4.2.5/lib/redis.rb:2584:in `_eval'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/redis-4.2.5/lib/redis.rb:2636:in `evalsha'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/message_bus-3.3.4/lib/message_bus/backends/redis.rb:425:in `cached_eval'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/message_bus-3.3.4/lib/message_bus/backends/redis.rb:144:in `publish'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/message_bus-3.3.4/lib/message_bus.rb:382:in `publish'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/message_bus-3.3.4/lib/message_bus/distributed_cache.rb:80:in `publish'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/message_bus-3.3.4/lib/message_bus/distributed_cache.rb:90:in `set'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/message_bus-3.3.4/lib/message_bus/distributed_cache.rb:135:in `[]='
/var/www/discourse/app/models/theme.rb:142:in `get_set_cache'
/var/www/discourse/app/models/theme.rb:158:in `components_for'
/var/www/discourse/app/models/theme.rb:185:in `block in transform_ids'
/var/www/discourse/app/models/theme.rb:142:in `get_set_cache'
/var/www/discourse/app/models/theme.rb:177:in `transform_ids'
/var/www/discourse/app/models/theme.rb:371:in `list_baked_fields'
/var/www/discourse/app/models/theme.rb:367:in `resolve_baked_field'
/var/www/discourse/lib/stylesheet/manager.rb:423:in `color_scheme_digest'
/var/www/discourse/lib/stylesheet/manager.rb:361:in `digest'
/var/www/discourse/lib/stylesheet/manager.rb:339:in `stylesheet_filename'
/var/www/discourse/lib/stylesheet/manager.rb:300:in `source_map_filename'
/var/www/discourse/lib/stylesheet/manager.rb:251:in `compile'
/var/www/discourse/lib/stylesheet/manager.rb:169:in `block (2 levels) in precompile_css'
/var/www/discourse/lib/stylesheet/manager.rb:162:in `each'
/var/www/discourse/lib/stylesheet/manager.rb:162:in `block in precompile_css'
/var/www/discourse/lib/stylesheet/manager.rb:161:in `each'
/var/www/discourse/lib/stylesheet/manager.rb:161:in `precompile_css'
/var/www/discourse/lib/tasks/assets.rake:54:in `block (2 levels) in <main>'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rails_multisite-2.5.0/lib/rails_multisite/connection_management.rb:76:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rails_multisite-2.5.0/lib/rails_multisite/connection_management.rb:86:in `each_connection'
/var/www/discourse/lib/tasks/assets.rake:47:in `block in <main>'
/var/www/discourse/lib/tasks/assets.rake:331:in `block in <main>'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
Tasks: TOP => assets:precompile:css
(--trace を付けてタスクを実行して完全なトレースを確認してください)
I, [2020-12-15T15:06:53.012968 #1] INFO -- : MaxMindDB をダウンロード中...
JavaScript を圧縮し、ソースマップを生成中
I, [2020-12-15T15:06:53.013385 #1] INFO -- : 非同期プロセスを終了中
I, [2020-12-15T15:06:53.013424 #1] INFO -- : exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 35 に TERM を送信
35:signal-handler (1608044813) SIGTERM 受信、シャットダウンをスケジューリング...
35:M 15 Dec 2020 15:06:53.054 # ユーザーによるシャットダウン要求...
35:M 15 Dec 2020 15:06:53.054 * 終了前に最終的な RDB スナップショットを保存中。
35:M 15 Dec 2020 15:06:53.054 # サーバールートディレクトリ /pups 内の RDB ファイル dump.rdb を保存するために開くのに失敗しました: 権限がありません
35:M 15 Dec 2020 15:06:53.054 # DB の保存中にエラーが発生し、終了できません。
35:M 15 Dec 2020 15:06:53.054 # SIGTERM 受信しましたが、サーバーのシャットダウン中にエラーが発生しました。詳細についてはログを確認してください。
35:M 15 Dec 2020 15:06:57.060 * 300 秒間に 10 件の変更。保存中...
35:M 15 Dec 2020 15:06:57.060 * バックグラウンド保存を pid 1078 で開始
1078:C 15 Dec 2020 15:06:57.061 # サーバールートディレクトリ /pups 内の RDB ファイル dump.rdb を保存するために開くのに失敗しました: 権限がありません
35:M 15 Dec 2020 15:06:57.161 # バックグラウンド保存エラー
I, [2020-12-15T15:07:03.014092 #1] INFO -- : exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid:35 が正常に終了しなかったため、強制終了します!
失敗
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile' が失敗しました。戻り値: #<Process::Status: pid 372 exit 1>
失敗の場所: /pups/lib/pups/exec_command.rb:112:in `spawn'
以下のパラメータで exec が失敗しました: {"cd"=>"$home", "hook"=>"assets_precompile", "cmd"=>["su discourse -c 'bundle exec rake themes:update assets:precompile'"]}
be9c92f00a4814e5e9ebcdb06f25232b03f7522390b97c157085c2f7ef7f3387
** ブートストラップに失敗しました ** 上記にスクロールして、以前のエラーメッセージを確認してください。複数のエラーが存在する可能性があります。
要約すると、このエラーが表示されています
68:C 15 Dec 2020 15:06:39.031 # サーバールートディレクトリ /pups 内の RDB ファイル dump.rdb を保存するために開くのに失敗しました: 権限がありません
35:M 15 Dec 2020 15:06:39.131 # バックグラウンド保存エラー
35:M 15 Dec 2020 15:06:51.051 * バックグラウンド保存を pid 1074 で開始
1074:C 15 Dec 2020 15:06:51.051 # サーバールートディレクトリ /pups 内の RDB ファイル dump.rdb を保存するために開くのに失敗しました: 権限がありません
35:M 15 Dec 2020 15:06:51.151 # バックグラウンド保存エラー
rake aborted!
Redis::CommandError: ERR Error running script (call to f_45fe64238f6598e6c505af0aad74b4e178e891f4): @user_script:14: @user_script: 14: -MISCONF Redis は RDB スナップショットの保存に設定されていますが、現在ディスクへの永続化ができません。RDB スナップショットの保存に失敗した場合に書き込みエラーを報告するようにこのインスタンスが設定されているため(stop-writes-on-bgsave-error オプション)、データセットを変更する可能性のあるコマンドは無効化されています。RDB エラーの詳細については、Redis ログを確認してください。
私の app.yaml ファイルは以下の通りです
templates:
- "templates/web.template.yml"
- "templates/web.ratelimited.template.yml"
- "templates/redis.template.yml"
env:
LANG: en_US.UTF-8
UNICORN_WORKERS: 8
DISCOURSE_DB_USERNAME: discourse
DISCOURSE_DB_PASSWORD: "xxxxx"
DISCOURSE_DB_HOST: "xxxxx"
DISCOURSE_REDIS_HOST: 127.0.0.1
DISCOURSE_REDIS_PORT: "6379"
DISCOURSE_DB_NAME: discourse_prod_2
DISCOURSE_DEVELOPER_EMAILS: 'xxxxxxx'
DISCOURSE_HOSTNAME: 'localhost'
DISCOURSE_DB_PORT: "5301"
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
セキュリティ上の理由から、パスワード、ホスト名、メールアドレスは伏せています。Redis については、別の Docker コンテナを実行しています。localhost と指定されたポートから接続することは可能です。
何か見落としているものがあれば、お知らせください。