Я пытаюсь собрать новый образ Docker для Discourse, но, похоже, процесс завершается ошибкой на этапе миграции.
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 -- : Запись /var/www/discourse/public/assets/vendor-bdb3fefe8aefde7bf6aef331a6edd24482502b370ed9f6f299836c72ee6a843c.js
I, [2020-12-15T15:04:43.818563 #374] INFO -- : Запись /var/www/discourse/public/assets/admin-073db5e5695d9f3834b9ad41d66ef30a02b9ca85fc9c95f272257ea9c7a67f21.js
I, [2020-12-15T15:04:43.822864 #374] INFO -- : Запись /var/www/discourse/public/assets/browser-detect-115ab5953de1b5bb122bfb26b757f5391dd8d1d2aef2b81baf7b59aee99d9f34.js
.
.
.
.
.
.
.
.
.
.
.
35:M 15 Dec 2020 15:06:27.009 * 10 изменений за 300 секунд. Сохранение...
35:M 15 Dec 2020 15:06:27.010 * Фоновое сохранение запущено процессом с pid 1066
1066:C 15 Dec 2020 15:06:27.010 # Не удалось открыть файл RDB dump.rdb (в корневой директории сервера /pups) для сохранения: Отказано в доступе
35:M 15 Dec 2020 15:06:27.110 # Ошибка фонового сохранения
35:M 15 Dec 2020 15:06:33.020 * 10 изменений за 300 секунд. Сохранение...
35:M 15 Dec 2020 15:06:33.020 * Фоновое сохранение запущено процессом с pid 1067
1067:C 15 Dec 2020 15:06:33.020 # Не удалось открыть файл RDB dump.rdb (в корневой директории сервера /pups) для сохранения: Отказано в доступе
35:M 15 Dec 2020 15:06:33.121 # Ошибка фонового сохранения
35:M 15 Dec 2020 15:06:39.030 * 10 изменений за 300 секунд. Сохранение...
35:M 15 Dec 2020 15:06:39.031 * Фоновое сохранение запущено процессом с pid 1068
1068:C 15 Dec 2020 15:06:39.031 # Не удалось открыть файл RDB dump.rdb (в корневой директории сервера /pups) для сохранения: Отказано в доступе
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 * 10 изменений за 300 секунд. Сохранение...
35:M 15 Dec 2020 15:06:45.042 * Фоновое сохранение запущено процессом с pid 1072
1072:C 15 Dec 2020 15:06:45.042 # Не удалось открыть файл RDB dump.rdb (в корневой директории сервера /pups) для сохранения: Отказано в доступе
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: Desktop Dark
35:M 15 Dec 2020 15:06:51.051 * 10 изменений за 300 секунд. Сохранение...
35:M 15 Dec 2020 15:06:51.051 * Фоновое сохранение запущено процессом с pid 1074
1074:C 15 Dec 2020 15:06:51.051 # Не удалось открыть файл RDB dump.rdb (в корневой директории сервера /pups) для сохранения: Отказано в доступе
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 is configured to save RDB snapshots, but it is currently not able to persist on disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (stop-writes-on-bgsave-error option). Please check the Redis logs for details about the RDB error.
/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>'
Задачи: 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 -- : Отправка сигнала TERM процессу exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 35
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 # Не удалось открыть файл RDB dump.rdb (в корневой директории сервера /pups) для сохранения: Отказано в доступе
35:M 15 Dec 2020 15:06:53.054 # Ошибка при попытке сохранения базы данных, выход невозможен.
35:M 15 Dec 2020 15:06:53.054 # Получен сигнал SIGTERM, но при попытке завершения работы сервера возникли ошибки; проверьте логи для получения дополнительной информации
35:M 15 Dec 2020 15:06:57.060 * 10 изменений за 300 секунд. Сохранение...
35:M 15 Dec 2020 15:06:57.060 * Фоновое сохранение запущено процессом с pid 1078
1078:C 15 Dec 2020 15:06:57.061 # Не удалось открыть файл RDB dump.rdb (в корневой директории сервера /pups) для сохранения: Отказано в доступе
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 # Не удалось открыть файл RDB dump.rdb (в корневой директории сервера /pups) для сохранения: Отказано в доступе
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 # Не удалось открыть файл RDB dump.rdb (в корневой директории сервера /pups) для сохранения: Отказано в доступе
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 is configured to save RDB snapshots, but it is currently not able to persist on disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (stop-writes-on-bgsave-error option). Please check the Redis logs for details about the RDB error.
Мой файл 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 и указанном порту.
Пожалуйста, подскажите, чего мне не хватает.