# Обновление и пересборка контейнеров не удаются

**URL:** https://meta.discourse.org/t/updating-and-container-rebuild-fails/181226
**Category:** Self-hosting
**Created:** [26.Февраль.2021 13:11:38 UTC](https://meta.discourse.org/t/updating-and-container-rebuild-fails/181226 "2021-02-26T13:11:38Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![DerEnderKeks](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/derenderkeks/32/211263_2.png) [@DerEnderKeks](https://meta.discourse.org/u/DerEnderKeks)
#### Post date: [26.Февраль.2021 13:11:38 UTC](https://meta.discourse.org/t/updating-and-container-rebuild-fails/181226/1 "2021-02-26T13:11:38Z")

</div>

Я пытался обновить экземпляр Discourse, но процесс завершился неудачей на каком-то этапе.

> **Лог**
>
> ```log
> $ bundle install --deployment --jobs 4 --without test development
> [DEPRECATED] Флаг `--deployment` устарел, так как он зависит от сохранения состояния между вызовами bundler, чего bundler в будущих версиях делать больше не будет. Вместо этого используйте `bundle config set --local deployment 'true'` и прекратите использование этого флага.
> [DEPRECATED] Флаг `--without` устарел, так как он зависит от сохранения состояния между вызовами bundler, чего bundler в будущих версиях делать больше не будет. Вместо этого используйте `bundle config set --local without 'test development'` и прекратите использование этого флага.
> Warning: текущая версия Bundler (2.2.4) старше версии, создавшей файл блокировки (2.2.6). Мы рекомендуем вам обновиться до версии, создавшей файл блокировки, запустив `gem install bundler:2.2.6`.
> Получение индекса источников из https://rubygems.org/
> 
> Повторная попытка получения данных из-за ошибки (2/4): Bundler::HTTPError Не удалось получить спецификации с https://rubygems.org/ из-за внутренней ошибки <тайм-аут (https://rubygems.org/specs.4.8.gz)>
> 
> Повторная попытка получения данных из-за ошибки (3/4): Bundler::HTTPError Не удалось получить спецификации с https://rubygems.org/ из-за внутренней ошибки <тайм-аут (https://rubygems.org/specs.4.8.gz)>
> 
> Повторная попытка получения данных из-за ошибки (4/4): Bundler::HTTPError Не удалось получить спецификации с https://rubygems.org/ из-за внутренней ошибки <тайм-аут (https://rubygems.org/specs.4.8.gz)>
> 
> Не удалось получить спецификации с https://rubygems.org/ из-за внутренней ошибки <тайм-аут (https://rubygems.org/specs.4.8.gz)>
> Docker Manager: НЕ УДАЛОСЬ ОБНОВИТЬСЯ
> <RuntimeError: RuntimeError>
> /var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:196:in `run'
> /var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:93:in `upgrade'
> /var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:19:in `block in <main>'
> /var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:6:in `fork'
> /var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:6:in `<main>'
> /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:59:in `load'
> /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:59:in `load'
> /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-6.0.3.3/lib/rails/commands/runner/runner_command.rb:42:in `perform'
> /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.0.1/lib/thor/command.rb:27:in `run'
> /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.0.1/lib/thor/invocation.rb:127:in `invoke_command'
> /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.0.1/lib/thor.rb:392:in `dispatch'
> /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-6.0.3.3/lib/rails/command/base.rb:69:in `perform'
> /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-6.0.3.3/lib/rails/command.rb:46:in `invoke'
> /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-6.0.3.3/lib/rails/commands.rb:18:in `<main>'
> /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
> /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
> /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
> /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
> /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
> /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:324:in `block in require'
> /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:291:in `load_dependency'
> /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:324:in `require'
> bin/rails:17:in `<main>'
> Запуск 7 остановленных изначально рабочих процессов Unicorn
> 
> ```

Когда я пытаюсь вручную пересобрать контейнер с помощью команды `./launcher rebuild app`, это также завершается неудачей при попытке обновить gems:

> **Лог**
>
> ```log
> I, [2021-02-26T12:23:11.223827 #1] INFO -- : > cd /var/www/discourse && gem update bundler
> ERROR: While executing gem ... (Gem::RemoteFetcher::UnknownHostError)
> timed out (https://rubygems.org/specs.4.8.gz)
> I, [2021-02-26T12:24:11.735359 #1] INFO -- :
> I, [2021-02-26T12:24:11.736230 #1] INFO -- : Завершение асинхронных процессов
> I, [2021-02-26T12:24:11.736294 #1] INFO -- : Отправка сигнала INT для HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 51
> I, [2021-02-26T12:24:11.736371 #1] INFO -- : Отправка сигнала TERM для exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 168
> 2021-02-26 12:24:11.736 UTC [51] LOG: получен запрос на быстрое завершение работы
> 168:signal-handler (1614342251) Получен сигнал SIGTERM, планирование завершения работы...
> 2021-02-26 12:24:11.741 UTC [51] LOG: отмена всех активных транзакций
> 2021-02-26 12:24:11.744 UTC [51] LOG: фоновый рабочий процесс "logical replication launcher" (PID 60) завершился с кодом выхода 1
> 2021-02-26 12:24:11.747 UTC [55] LOG: завершение работы
> 2021-02-26 12:24:11.789 UTC [51] LOG: система баз данных завершена
> 168:M 26 Feb 2021 12:24:11.810 # Пользователь запросил завершение работы...
> 168:M 26 Feb 2021 12:24:11.810 * Сохранение финального снимка RDB перед выходом.
> 168:M 26 Feb 2021 12:24:11.865 * БД сохранена на диск
> 168:M 26 Feb 2021 12:24:11.865 # Redis теперь готов к выходу, до свидания...
> 
> FAILED
> --------------------
> Pups::ExecError: cd /var/www/discourse && gem update bundler завершился с кодом возврата #<Process::Status: pid 305 exit 1>
> Место ошибки: /pups/lib/pups/exec_command.rb:112:in `spawn'
> Выполнение не удалось с параметрами {"cd"=>"$home", "hook"=>"web", "cmd"=>["gem update bundler", "find $home ! -user discourse -exec chown discourse {} \\+"]}
> 7e5c5abe3bf7402b1f3464d4675df48d306251160de17810bc0ebba248e8b6fe
> **НЕ УДАЛОСЬ ЗАПУСТИТЬСЯ** пожалуйста, прокрутите вверх и поищите более ранние сообщения об ошибках, их может быть больше одной.
> ./discourse-doctor может помочь диагностировать проблему.
> 
> ```

Ошибка указывает на то, что не удается разрешить имя хоста, но когда я вручную захожу в контейнер (`debian:buster-slim`), всё работает нормально (я могу выполнить curl [rubygems.org](http://rubygems.org)).  
Не делает ли образ Discourse что-то странное с DNS, что может вызывать эту проблему?
