재구축 실패 및 오류 발생

포럼이 잠시 동안은 잘 작동했지만, 현재 버전 2.8.0.beta7에서 업그레이드를 시도하니 다음과 같은 오류가 발생합니다.


I, [2022-05-17T07:29:17.860652 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
bundler: failed to load command: rake (/var/www/discourse/vendor/bundle/ruby/2.7.0/bin/rake)
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/runtime.rb:309:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.11.0. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/runtime.rb:25:in `block in setup'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/spec_set.rb:136:in `each'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/spec_set.rb:136:in `each'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/runtime.rb:24:in `map'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/runtime.rb:24:in `setup'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler.rb:151:in `setup'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/setup.rb:20:in `block in <top (required)>'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/ui/shell.rb:136:in `with_level'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/ui/shell.rb:88:in `silence'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/setup.rb:20:in `<top (required)>'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/cli/exec.rb:56:in `require_relative'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/cli/exec.rb:56:in `kernel_load'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/cli/exec.rb:23:in `run'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/cli.rb:483:in `exec'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/cli.rb:31:in `dispatch'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/cli.rb:25:in `start'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/exe/bundle:48:in `block in <top (required)>'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/lib/bundler/friendly_errors.rb:103:in `with_friendly_errors'
        from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.13/exe/bundle:36:in `<top (required)>'
        from /usr/local/bin/bundle:23:in `load'
        from /usr/local/bin/bundle:23:in `<main>'
I, [2022-05-17T07:29:18.139287 #1]  INFO -- :

왜 종속성 게마(의존성 패키지)가 일치하지 않는지 모르겠습니다.

제가 수행한 작업은 다음과 같습니다:

  1. 서버에 로그인하여 github pull 실행
  2. ./launcher rebuild app 실행
    2.1 docker-manager 외에는 다른 플러그인이 없습니다.
  3. 여러 번 시도해 보았고, ./discourse-doctor도 실행해 보았지만 동일한 오류가 표시됩니다.
  4. 데이터를 저장하는 data 컨테이너가 있습니다.

사이트가 오프라인 상태이므로 도움을 부탁드립니다. :frowning:

데이터 컨테이너를 다시 빌드한 후 웹 컨테이너를 다시 빌드해 보세요.

답변 감사합니다.

데이터 컨테이너를 다시 빌드해 보았지만, 여전히 같은 오류가 발생합니다.

아래 명령을 실행하면

  ./launcher start app

포럼이 다시 시작되는지 확인할 수 있습니다

죄송합니다. 앱 컨테이너가 없어서 그렇게 하면 안 됩니다.

다만 버전을 tests-passed에서 stable로 변경한 후, 모든 gems를 설치할 수 있었습니다. 포럼이 다시 온라인으로 돌아왔습니다. 차이점이 무엇인지, 그리고 왜 그런지 확실하지 않습니다.

그렇다면 컨테이너 이름을 사용하셨어야 합니다.

    ./launcher start web_only

하지만 당신의 해결책은 작동했습니다!

죄송합니다. 제가 말하려는 건 yml 파일을 data.yml로 설정했다는 겁니다. 그래서

./launcher start data

처럼 실행할 수 있을 줄 알았죠.

하지만 빌드 과정에서 오류가 발생해서 Docker 컨테이너를 빌드할 수 없었습니다. 따라서 위의 CLI 명령어로 실행하는 것은 불가능하다고 생각합니다.

어쨌든 비슷한 문제를 겪고 계신 분이나 해결 방법을 찾으신 분이라면 여기에 공유해 주세요.

감사합니다.

app.yml 플러그인 목록을 공유해 주세요. 최신 Discourse와 충돌하는 플러그인이 있습니다.

하지만 시도해 보셨나요? 재빌드가 실패하면 기존 컨테이너를 다시 시작할 수 있습니다.

이 내용을 이해하기가 어렵습니다.

플러그인 문제인 것 같아 명확해 보이지만, 그는 또한 이렇게 말했습니다.

하지만

따라서 그는 다시 온라인 상태인 것으로 보입니다.

맞습니다, ./launcher start app는 이전 컨테이너를 시작합니다.

hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git

제가 설치한 플러그인은 이것뿐입니다.

해당 플러그인만 사용하여 다시 시도해 보았습니다. 버전을 tests-passed로 변경하면 위의 오류가 발생한다는 것을 확인했습니다. 하지만 stable로 변경하면 정상적으로 작동합니다.

실제로 stable 버전의 다른 플러그인들을 추가로 설치해도 앱을 빌드할 수 있습니다. 따라서 제 경우엔 플러그인 문제라고 생각하지 않습니다.