Google-protobuf 버전 문제: 3.2.1에서 3.2.2로 업데이트 시 오류 발생

Breaking change for people on stable versions (v3.2.1 and down) with discourse_docker에서 이어지는 토론입니다.

3.2.1에서 3.2.2로 업그레이드를 시도하다가 이 문제를 겪고 있습니다. 3.2.1로 되돌려 보았지만, ./launcher rebuild app을 실행할 때 여전히 여기 언급된 오류가 발생합니다.

인스턴스를 다시 정상적으로 실행하려면 무엇을 해야 하나요? 3.2.2 버전을 선호합니다(테스트 목적으로 자체 관리되는 비-도커 인스턴스와 동일한 버전을 유지하고 있기 때문이죠). 하지만 3.2.1로 돌아가는 것도 대안으로 환영합니다.

참조된 스레드에서 깨진 변경 사항이 되돌려졌다는 언급이 있습니다 [1], 하지만 제 인스턴스를 어떻게 수정해야 할지 도무지 알 수가 없습니다.

정상적으로 작동하는 도커 인스턴스로 돌아가려면 어떻게 해야 하나요?


  1. ↩︎

정확히 말씀드리면, 문제가 발생한 버전은 Docker화되어 설치된 환경입니다. 셀프 지원(self-supported) 설치에 대한 도움은 요청하지 않습니다.

정리하자면, 표준 stable 버전인 3.2.1을 사용 중이셨고, /launcher rebuild app을 실행하여 3.2.2로 업데이트하시려 하셨으나 리빌드 오류(특히 링크된 Contribute > Bug 토픽에 있는 오류)가 발생했습니다.

확인차 로그를 여기에 붙여넣어 주실 수 있을까요?

/launcher start app을 사용하여 ‘리빌드 전’ 사이트를 다시 실행해 볼 수 있을까요?

맞습니다. 그 후 yml 파일에서 version: 값을 v3.2.2에서 v3.2.1로 되돌려 3.2.1로 복귀해 보았습니다.

재빌드를 시도할 때의 전체 출력입니다 (이것은 3.2.1이든 3.2.2든 발생하며, 이 경우 재빌드를 시도하는 것은 3.2.2입니다):

# ./launcher rebuild app
x86_64 arch detected.
Ensuring launcher is up to date
Launcher is up-to-date
Stopping old container
+ /usr/bin/docker stop -t 600 app
app
2.0.20240602-0023: Pulling from discourse/base
Digest: sha256:5e0c30da851a00e824a58b033d59b8f3dd840b513a7694a7a5d0674285c0ee3c
Status: Image is up to date for discourse/base:2.0.20240602-0023
docker.io/discourse/base:2.0.20240602-0023
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2024-06-19T16:29:37.189196 #1]  INFO -- : Reading from stdin
I, [2024-06-19T16:29:37.204472 #1]  INFO -- : File > /etc/service/postgres/run  chmod: +x  chown: 
I, [2024-06-19T16:29:37.210369 #1]  INFO -- : File > /etc/service/postgres/log/run  chmod: +x  chown: 
I, [2024-06-19T16:29:37.242802 #1]  INFO -- : File > /etc/runit/3.d/99-postgres  chmod: +x  chown: 
I, [2024-06-19T16:29:37.278471 #1]  INFO -- : File > /root/install_postgres  chmod: +x  chown: 
I, [2024-06-19T16:29:37.285823 #1]  INFO -- : File > /root/upgrade_postgres  chmod: +x  chown: 
I, [2024-06-19T16:29:37.286335 #1]  INFO -- : Replacing data_directory = '/var/lib/postgresql/13/main' with data_directory = '/shared/postgres_data' in /etc/postgresql/13/main/postgresql.conf
I, [2024-06-19T16:29:37.288417 #1]  INFO -- : Replacing (?-mix:#?listen_addresses *=.*) with listen_addresses = '*' in /etc/postgresql/13/main/postgresql.conf
I, [2024-06-19T16:29:37.288949 #1]  INFO -- : Replacing (?-mix:#?synchronous_commit *=.*) with synchronous_commit = $db_synchronous_commit in /etc/postgresql/13/main/postgresql.conf
I, [2024-06-19T16:29:37.289425 #1]  INFO -- : Replacing (?-mix:#?shared_buffers *=.*) with shared_buffers = $db_shared_buffers in /etc/postgresql/13/main/postgresql.conf
I, [2024-06-19T16:29:37.289877 #1]  INFO -- : Replacing (?-mix:#?work_mem *=.*) with work_mem = $db_work_mem in /etc/postgresql/13/main/postgresql.conf
I, [2024-06-19T16:29:37.290317 #1]  INFO -- : Replacing (?-mix:#?default_text_search_config *=.*) with default_text_search_config = '$db_default_text_search_config' in /etc/postgresql/13/main/postgresql.conf
I, [2024-06-19T16:29:37.290807 #1]  INFO -- : Replacing (?-mix:#?checkpoint_segments *=.*) with checkpoint_segments = $db_checkpoint_segments in /etc/postgresql/13/main/postgresql.conf
I, [2024-06-19T16:29:37.291237 #1]  INFO -- : Replacing (?-mix:#?logging_collector *=.*) with logging_collector = $db_logging_collector in /etc/postgresql/13/main/postgresql.conf
I, [2024-06-19T16:29:37.291687 #1]  INFO -- : Replacing (?-mix:#?log_min_duration_statement *=.*) with log_min_duration_statement = $db_log_min_duration_statement in /etc/postgresql/13/main/postgresql.conf
I, [2024-06-19T16:29:37.292292 #1]  INFO -- : Replacing (?-mix:^#local +replication +postgres +peer$) with local replication postgres  peer in /etc/postgresql/13/main/pg_hba.conf
I, [2024-06-19T16:29:37.292682 #1]  INFO -- : Replacing (?-mix:^host.*all.*all.*127.*$) with host all all 0.0.0.0/0 md5 in /etc/postgresql/13/main/pg_hba.conf
I, [2024-06-19T16:29:37.293062 #1]  INFO -- : Replacing (?-mix:^host.*all.*all.*::1\/128.*$) with host all all ::/0 md5 in /etc/postgresql/13/main/pg_hba.conf
I, [2024-06-19T16:29:37.293475 #1]  INFO -- : > [ -f /root/install_postgres ] && /root/install_postgres && rm -f /root/install_postgres
I, [2024-06-19T16:29:37.617564 #1]  INFO -- : Generating locales (this might take a while)...
Generation complete.

I, [2024-06-19T16:29:37.617883 #1]  INFO -- : > 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
I, [2024-06-19T16:29:37.627053 #1]  INFO -- : File > /usr/local/bin/create_db  chmod: +x  chown: 
I, [2024-06-19T16:29:37.634858 #1]  INFO -- : File > /var/lib/postgresql/take-database-backup  chmod: +x  chown: postgres:postgres
I, [2024-06-19T16:29:37.646035 #1]  INFO -- : File > /var/spool/cron/crontabs/postgres  chmod:   chown: 
I, [2024-06-19T16:29:37.646530 #1]  INFO -- : > sleep 5
2024-06-19 16:29:37.752 UTC [36] LOG:  starting PostgreSQL 13.15 (Debian 13.15-1.pgdg110+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit
2024-06-19 16:29:37.753 UTC [36] LOG:  listening on IPv4 address "0.0.0.0", port 5432
2024-06-19 16:29:37.753 UTC [36] LOG:  listening on IPv6 address "::", port 5432
2024-06-19 16:29:37.764 UTC [36] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2024-06-19 16:29:37.779 UTC [45] LOG:  database system was shut down at 2024-06-19 16:28:49 UTC
2024-06-19 16:29:37.792 UTC [36] LOG:  database system is ready to accept connections
I, [2024-06-19T16:29:42.649466 #1]  INFO -- : 
I, [2024-06-19T16:29:42.649741 #1]  INFO -- : > /usr/local/bin/create_db
2024-06-19 16:29:42.758 UTC [55] postgres@postgres ERROR:  database "discourse" already exists
2024-06-19 16:29:42.758 UTC [55] postgres@postgres STATEMENT:  CREATE DATABASE discourse;
createdb: error: database creation failed: ERROR:  database "discourse" already exists
2024-06-19 16:29:42.838 UTC [58] postgres@discourse ERROR:  role "discourse" already exists
2024-06-19 16:29:42.838 UTC [58] postgres@discourse STATEMENT:  create user discourse;
ERROR:  role "discourse" already exists
NOTICE:  extension "hstore" already exists, skipping
NOTICE:  extension "pg_trgm" already exists, skipping
NOTICE:  extension "vector" already exists, skipping
NOTICE:  extension "hstore" already exists, skipping
NOTICE:  extension "pg_trgm" already exists, skipping
NOTICE:  extension "vector" already exists, skipping
I, [2024-06-19T16:29:43.496414 #1]  INFO -- : GRANT
ALTER SCHEMA
CREATE EXTENSION
CREATE EXTENSION
CREATE EXTENSION
CREATE EXTENSION
CREATE EXTENSION
CREATE EXTENSION
UPDATE 0

I, [2024-06-19T16:29:43.496557 #1]  INFO -- : > echo postgres installed!
I, [2024-06-19T16:29:43.500829 #1]  INFO -- : postgres installed!

I, [2024-06-19T16:29:43.508723 #1]  INFO -- : File > /etc/service/redis/run  chmod: +x  chown: 
I, [2024-06-19T16:29:43.516429 #1]  INFO -- : File > /etc/service/redis/log/run  chmod: +x  chown: 
I, [2024-06-19T16:29:43.523894 #1]  INFO -- : File > /etc/runit/3.d/10-redis  chmod: +x  chown: 
I, [2024-06-19T16:29:43.524636 #1]  INFO -- : Replacing daemonize yes with  in /etc/redis/redis.conf
I, [2024-06-19T16:29:43.525669 #1]  INFO -- : Replacing (?-mix:^pidfile.*$) with  in /etc/redis/redis.conf
I, [2024-06-19T16:29:43.526428 #1]  INFO -- : > install -d -m 0755 -o redis -g redis /shared/redis_data
I, [2024-06-19T16:29:43.531798 #1]  INFO -- : 
I, [2024-06-19T16:29:43.532263 #1]  INFO -- : Replacing (?-mix:^logfile.*$) with logfile "" in /etc/redis/redis.conf
I, [2024-06-19T16:29:43.533104 #1]  INFO -- : Replacing (?-mix:^bind .*$) with  in /etc/redis/redis.conf
I, [2024-06-19T16:29:43.533859 #1]  INFO -- : Replacing (?-mix:^dir .*$) with dir /shared/redis_data in /etc/redis/redis.conf
I, [2024-06-19T16:29:43.534726 #1]  INFO -- : Replacing (?-mix:^protected-mode yes) with protected-mode no in /etc/redis/redis.conf
I, [2024-06-19T16:29:43.535413 #1]  INFO -- : Replacing # io-threads 4 with io-threads $redis_io_threads in /etc/redis/redis.conf
I, [2024-06-19T16:29:43.536124 #1]  INFO -- : > echo redis installed
I, [2024-06-19T16:29:43.539548 #1]  INFO -- : redis installed

I, [2024-06-19T16:29:43.539828 #1]  INFO -- : > cat /etc/redis/redis.conf | grep logfile
I, [2024-06-19T16:29:43.547576 #1]  INFO -- : logfile ""

I, [2024-06-19T16:29:43.547869 #1]  INFO -- : > exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf
I, [2024-06-19T16:29:43.550551 #1]  INFO -- : > sleep 10
98:C 19 Jun 2024 16:29:43.568 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
98:C 19 Jun 2024 16:29:43.568 # Redis version=7.0.7, bits=64, commit=00000000, modified=0, pid=98, just started
98:C 19 Jun 2024 16:29:43.568 # Configuration loaded
98:M 19 Jun 2024 16:29:43.569 * monotonic clock: POSIX clock_gettime
98:M 19 Jun 2024 16:29:43.570 * Running mode=standalone, port=6379.
98:M 19 Jun 2024 16:29:43.570 # Server initialized
98:M 19 Jun 2024 16:29:43.571 * Loading RDB produced by version 7.0.7
98:M 19 Jun 2024 16:29:43.571 * RDB age 56 seconds
98:M 19 Jun 2024 16:29:43.571 * RDB memory usage when created 2.72 Mb
98:M 19 Jun 2024 16:29:43.574 * Done loading RDB, keys loaded: 1439, keys expired: 7.
98:M 19 Jun 2024 16:29:43.574 * DB loaded from disk: 0.003 seconds
98:M 19 Jun 2024 16:29:43.574 * Ready to accept connections
I, [2024-06-19T16:29:53.554340 #1]  INFO -- : 
I, [2024-06-19T16:29:53.554739 #1]  INFO -- : > thpoff echo "thpoff is installed!"
I, [2024-06-19T16:29:53.568722 #1]  INFO -- : thpoff is installed!

I, [2024-06-19T16:29:53.569423 #1]  INFO -- : > /usr/local/bin/ruby -e 'if ENV["DISCOURSE_SMTP_ADDRESS"] == "smtp.example.com"; puts "Aborting! Mail is not configured!"; exit 1; end'
I, [2024-06-19T16:29:53.644769 #1]  INFO -- : 
I, [2024-06-19T16:29:53.644882 #1]  INFO -- : > /usr/local/bin/ruby -e 'if ENV["DISCOURSE_HOSTNAME"] == "discourse.example.com"; puts "Aborting! Domain is not configured!"; exit 1; end'
I, [2024-06-19T16:29:53.698408 #1]  INFO -- : 
I, [2024-06-19T16:29:53.698552 #1]  INFO -- : > /usr/local/bin/ruby -e 'if (ENV["DISCOURSE_CDN_URL"] || "")[0..1] == "//"; puts "Aborting! CDN must have a protocol specified. Once fixed you should rebake your posts now to correct all posts."; exit 1; end'
I, [2024-06-19T16:29:53.769418 #1]  INFO -- : 
I, [2024-06-19T16:29:53.769642 #1]  INFO -- : > rm -f /etc/cron.d/anacron
I, [2024-06-19T16:29:53.773445 #1]  INFO -- : 
I, [2024-06-19T16:29:53.777142 #1]  INFO -- : File > /etc/cron.d/anacron  chmod:   chown: 
I, [2024-06-19T16:29:53.784282 #1]  INFO -- : File > /etc/runit/1.d/copy-env  chmod: +x  chown: 
I, [2024-06-19T16:29:53.792507 #1]  INFO -- : File > /etc/service/unicorn/run  chmod: +x  chown: 
I, [2024-06-19T16:29:53.800157 #1]  INFO -- : File > /etc/service/nginx/run  chmod: +x  chown: 
I, [2024-06-19T16:29:53.806613 #1]  INFO -- : File > /etc/runit/3.d/01-nginx  chmod: +x  chown: 
I, [2024-06-19T16:29:53.813587 #1]  INFO -- : File > /etc/runit/3.d/02-unicorn  chmod: +x  chown: 
I, [2024-06-19T16:29:53.813756 #1]  INFO -- : Replacing # postgres with if [ -f /root/install_postgres ]; then
  /root/install_postgres
  rm /root/install_postgres
fi
sv start postgres || exit 1
 in /etc/service/unicorn/run
I, [2024-06-19T16:29:53.815437 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git reset --hard
Updating files: 100% (34508/34508), done.
I, [2024-06-19T16:29:56.326930 #1]  INFO -- : HEAD is now at 62b1b69e8 UX: constrain width of chat transcripts in posts (#27288)

I, [2024-06-19T16:29:56.327046 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git clean -f
I, [2024-06-19T16:29:56.461596 #1]  INFO -- : 
I, [2024-06-19T16:29:56.461718 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse bash -c '
  set -o errexit
  if [ $(git rev-parse --is-shallow-repository) == "true" ]; then
      git remote set-branches --add origin main
      git remote set-branches origin v3.2.2
      git fetch --depth 1 origin v3.2.2
  else
      git fetch --tags --prune-tags --prune --force origin
  fi
'
From https://github.com/discourse/discourse
 - [deleted]             (none)     -> origin/add_filter_webhook_events_by_status
 - [deleted]             (none)     -> origin/add_lifecycle_rule_for_inventories
 - [deleted]             (none)     -> origin/application-route-actions
 - [deleted]             (none)     -> origin/avoid_unformatted_logs
 - [deleted]             (none)     -> origin/categories-modal-fix
 - [deleted]             (none)     -> origin/decorator-transforms-take-2
 - [deleted]             (none)     -> origin/dependabot/bundler/rails_failover-2.1.0
 - [deleted]             (none)     -> origin/dev/ember-58-upgrade-playground
 - [deleted]             (none)     -> origin/dev/rfc-value-modifier-plugin-api
 - [deleted]             (none)     -> origin/dev/standalone-home-logo-contents-component
 - [deleted]             (none)     -> origin/discourse-route-actions
 - [deleted]             (none)     -> origin/discourse-url-native-class
 - [deleted]             (none)     -> origin/fix-bbcode-parser
 - [deleted]             (none)     -> origin/fix-group-chat-member-count
 - [deleted]             (none)     -> origin/ghost-button
 - [deleted]             (none)     -> origin/issue/bulk-action-pm-fixes
 - [deleted]             (none)     -> origin/loic-update-to-rails-7.1
 - [deleted]             (none)     -> origin/migrations-tooling/converter
 - [deleted]             (none)     -> origin/permalinks
 - [deleted]             (none)     -> origin/route-native-class
 - [deleted]             (none)     -> origin/search-result-consistency
 - [deleted]             (none)     -> origin/support_alternate_bucket_s3_inventory
 - [deleted]             (none)     -> origin/update-official-plugin-list
 - [deleted]             (none)     -> origin/user-posts-stream-native-class
 - [deleted]             (none)     -> origin/ux-account-disclaimer
   62b1b69e8..b2a9676f0  main                    -> origin/main
 * [new branch]          0-a-fix-bread           -> origin/0-a-fix-bread
 * [new branch]          0-a-topic-status        -> origin/0-a-topic-status
 * [new branch]          add_mechanism_to_redeliver_all_webhook_events -> origin/add_mechanism_to_redeliver_all_webhook_events
 * [new branch]          add_mechanism_to_redeliver_all_webhook_events_wip -> origin/add_mechanism_to_redeliver_all_webhook_events_wip
 + 098e99e83...f82803b6a coco/generic-importer   -> origin/coco/generic-importer  (forced update)
 * [new branch]          dependabot/bundler/libv8-node-21.7.2.0 -> origin/dependabot/bundler/libv8-node-21.7.2.0
 * [new branch]          dependabot/bundler/oauth2-2.0.9 -> origin/dependabot/bundler/oauth2-2.0.9
 * [new branch]          dependabot/bundler/omniauth-2.1.2 -> origin/dependabot/bundler/omniauth-2.1.2
 * [new branch]          dependabot/bundler/omniauth-google-oauth2-1.1.2 -> origin/dependabot/bundler/omniauth-google-oauth2-1.1.2
 + 01982d4eb...8dbbc3bbc dependabot/bundler/sqlite3-2.0.2 -> origin/dependabot/bundler/sqlite3-2.0.2  (forced update)
 * [new branch]          detect-default-readonly -> origin/detect-default-readonly
 * [new branch]          dev-remove-invalid-csp-script-src-values -> origin/dev-remove-invalid-csp-script-src-values
 * [new branch]          dev/add-behavior-transformers -> origin/dev/add-behavior-transformers
 * [new branch]          dev/backend-for-admin-config-area-about -> origin/dev/backend-for-admin-config-area-about
 * [new branch]          dev/ember-source-5.9.0-upgrade -> origin/dev/ember-source-5.9.0-upgrade
 * [new branch]          dev/enable-admin-notice-glimmer-header -> origin/dev/enable-admin-notice-glimmer-header
 * [new branch]          dev/header-contents-outlet -> origin/dev/header-contents-outlet
 + fc63df2f0...a1e330e65 feature/user-fields-required-for-existing-users-2 -> origin/feature/user-fields-required-for-existing-users-2  (forced update)
 * [new branch]          fix-custom-homepage-preloading -> origin/fix-custom-homepage-preloading
 * [new branch]          fix-password-reset-security-key -> origin/fix-password-reset-security-key
 * [new branch]          fix-post-revision-tags-serializer -> origin/fix-post-revision-tags-serializer
   b3d6801e8..f8f0ed481  formtoolkit             -> origin/formtoolkit
 * [new branch]          grant-admin-fetch-user  -> origin/grant-admin-fetch-user
 * [new branch]          issue/do-not-enforce-2fa-on-social-logins -> origin/issue/do-not-enforce-2fa-on-social-logins
 * [new branch]          issue/topic-view-real-browser-tracking -> origin/issue/topic-view-real-browser-tracking
 * [new branch]          jjaffeux-otp-validation -> origin/jjaffeux-otp-validation
 * [new branch]          loic-rails-7.1-upgrade-take-2 -> origin/loic-rails-7.1-upgrade-take-2
 * [new branch]          loic-use-messageformat-gem -> origin/loic-use-messageformat-gem
 * [new branch]          mt/converter            -> origin/mt/converter
 * [new branch]          rake-task-monitor-rebaking-progress -> origin/rake-task-monitor-rebaking-progress
 * [new branch]          remove-btn-transitions  -> origin/remove-btn-transitions
 * [new branch]          remove-summarization    -> origin/remove-summarization
   5558028f8..d0c2a9164  stable                  -> origin/stable
   62b1b69e8..604ca4d46  tests-passed            -> origin/tests-passed
 * [new branch]          ux-remove-quaternary    -> origin/ux-remove-quaternary
I, [2024-06-19T16:29:57.270097 #1]  INFO -- : 
I, [2024-06-19T16:29:57.270275 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse bash -c '
  set -o errexit
  if [[ $(git symbolic-ref --short HEAD) == v3.2.2 ]] ; then
      git pull
  else
      git -c advice.detachedHead=false checkout v3.2.2
  fi
'
HEAD is now at 747ecc1f8 Bump version to v3.2.2
I, [2024-06-19T16:30:02.501591 #1]  INFO -- : 
I, [2024-06-19T16:30:02.501740 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git config user.discourse-version v3.2.2
I, [2024-06-19T16:30:02.519370 #1]  INFO -- : 
I, [2024-06-19T16:30:02.519528 #1]  INFO -- : > cd /var/www/discourse && mkdir -p tmp
I, [2024-06-19T16:30:02.524857 #1]  INFO -- : 
I, [2024-06-19T16:30:02.524986 #1]  INFO -- : > cd /var/www/discourse && chown discourse:www-data tmp
I, [2024-06-19T16:30:02.529833 #1]  INFO -- : 
I, [2024-06-19T16:30:02.529903 #1]  INFO -- : > cd /var/www/discourse && mkdir -p tmp/pids
I, [2024-06-19T16:30:02.534525 #1]  INFO -- : 
I, [2024-06-19T16:30:02.534607 #1]  INFO -- : > cd /var/www/discourse && mkdir -p tmp/sockets
I, [2024-06-19T16:30:02.538844 #1]  INFO -- : 
I, [2024-06-19T16:30:02.538929 #1]  INFO -- : > cd /var/www/discourse && touch tmp/.gitkeep
I, [2024-06-19T16:30:02.543937 #1]  INFO -- : 
I, [2024-06-19T16:30:02.544038 #1]  INFO -- : > cd /var/www/discourse && mkdir -p                    /shared/log/rails
I, [2024-06-19T16:30:02.548959 #1]  INFO -- : 
I, [2024-06-19T16:30:02.549060 #1]  INFO -- : > cd /var/www/discourse && bash -c "touch -a           /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log"
I, [2024-06-19T16:30:02.555980 #1]  INFO -- : 
I, [2024-06-19T16:30:02.556101 #1]  INFO -- : > cd /var/www/discourse && bash -c "ln    -s           /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log /var/www/discourse/log"
I, [2024-06-19T16:30:02.563456 #1]  INFO -- : 
I, [2024-06-19T16:30:02.563569 #1]  INFO -- : > cd /var/www/discourse && bash -c "mkdir -p           /shared/{uploads,backups}"
I, [2024-06-19T16:30:02.570907 #1]  INFO -- : 
I, [2024-06-19T16:30:02.571015 #1]  INFO -- : > cd /var/www/discourse && bash -c "ln    -s           /shared/{uploads,backups} /var/www/discourse/public"
I, [2024-06-19T16:30:02.578365 #1]  INFO -- : 
I, [2024-06-19T16:30:02.578487 #1]  INFO -- : > cd /var/www/discourse && bash -c "mkdir -p           /shared/tmp/{backups,restores}"
I, [2024-06-19T16:30:02.585995 #1]  INFO -- : 
I, [2024-06-19T16:30:02.586105 #1]  INFO -- : > cd /var/www/discourse && bash -c "ln    -s           /shared/tmp/{backups,restores} /var/www/discourse/tmp"
I, [2024-06-19T16:30:02.593324 #1]  INFO -- : 
I, [2024-06-19T16:30:02.593444 #1]  INFO -- : > cd /var/www/discourse && chown -R discourse:www-data /shared/log/rails /shared/uploads /shared/backups /shared/tmp
I, [2024-06-19T16:30:02.990438 #1]  INFO -- : 
I, [2024-06-19T16:30:02.990596 #1]  INFO -- : > cd /var/www/discourse && [ ! -d public/plugins ] || find public/plugins/ -maxdepth 1 -xtype l -delete
I, [2024-06-19T16:30:02.993796 #1]  INFO -- : 
I, [2024-06-19T16:30:02.994012 #1]  INFO -- : Replacing # redis with sv start redis || exit 1 in /etc/service/unicorn/run
I, [2024-06-19T16:30:02.994864 #1]  INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/discourse/docker_manager.git
Cloning into 'docker_manager'...
I, [2024-06-19T16:30:03.763190 #1]  INFO -- : 
I, [2024-06-19T16:30:03.763339 #1]  INFO -- : > cd /var/www/discourse/plugins && sudo -E -u discourse git clone https://github.com/singerscreations/discourse-stopforumspam.git
Cloning into 'discourse-stopforumspam'...
warning: unable to access '/root/.config/git/attributes': Permission denied
I, [2024-06-19T16:30:04.489256 #1]  INFO -- : 
I, [2024-06-19T16:30:04.489447 #1]  INFO -- : > cd /var/www/discourse/plugins && sudo -E -u discourse git clone https://github.com/discourse/discourse-openid-connect
Cloning into 'discourse-openid-connect'...
warning: unable to access '/root/.config/git/attributes': Permission denied
I, [2024-06-19T16:30:05.077859 #1]  INFO -- : 
I, [2024-06-19T16:30:05.078029 #1]  INFO -- : > cd /var/www/discourse/plugins && sudo -E -u discourse git clone https://github.com/discourse/discourse-solved.git
Cloning into 'discourse-solved'...
warning: unable to access '/root/.config/git/attributes': Permission denied
I, [2024-06-19T16:30:06.381166 #1]  INFO -- : 
I, [2024-06-19T16:30:06.381369 #1]  INFO -- : > cd /var/www/discourse/plugins && sudo -E -u discourse git clone https://github.com/discourse/discourse-data-explorer.git
Cloning into 'discourse-data-explorer'...
warning: unable to access '/root/.config/git/attributes': Permission denied
I, [2024-06-19T16:30:07.110252 #1]  INFO -- : 
I, [2024-06-19T16:30:07.110401 #1]  INFO -- : > cd /var/www/discourse/plugins && sudo -E -u discourse git clone https://github.com/discourse/discourse-rss-polling.git
Cloning into 'discourse-rss-polling'...
warning: unable to access '/root/.config/git/attributes': Permission denied
I, [2024-06-19T16:30:11.162550 #1]  INFO -- : 
I, [2024-06-19T16:30:11.163202 #1]  INFO -- : > cp /var/www/discourse/config/nginx.sample.conf /etc/nginx/conf.d/discourse.conf
I, [2024-06-19T16:30:11.171245 #1]  INFO -- : 
I, [2024-06-19T16:30:11.171542 #1]  INFO -- : > rm /etc/nginx/sites-enabled/default
I, [2024-06-19T16:30:11.175899 #1]  INFO -- : 
I, [2024-06-19T16:30:11.176038 #1]  INFO -- : > mkdir -p /var/nginx/cache
I, [2024-06-19T16:30:11.180113 #1]  INFO -- : 
I, [2024-06-19T16:30:11.180481 #1]  INFO -- : Replacing pid /run/nginx.pid; with daemon off; in /etc/nginx/nginx.conf
I, [2024-06-19T16:30:11.180996 #1]  INFO -- : Replacing (?m-ix:upstream[^\}]+\}) with upstream discourse { server 127.0.0.1:3000; } in /etc/nginx/conf.d/discourse.conf
I, [2024-06-19T16:30:11.181467 #1]  INFO -- : Replacing (?-mix:server_name.+$) with server_name _ ; in /etc/nginx/conf.d/discourse.conf
I, [2024-06-19T16:30:11.181952 #1]  INFO -- : Replacing (?-mix:client_max_body_size.+$) with client_max_body_size $upload_size ; in /etc/nginx/conf.d/discourse.conf
I, [2024-06-19T16:30:11.187456 #1]  INFO -- : Replacing (?-mix:worker_connections.+$) with worker_connections $nginx_worker_connections ; in /etc/nginx/nginx.conf
I, [2024-06-19T16:30:11.187758 #1]  INFO -- : > echo "done configuring web"
I, [2024-06-19T16:30:11.191735 #1]  INFO -- : done configuring web

I, [2024-06-19T16:30:11.192060 #1]  INFO -- : > cd /var/www/discourse && gem install bundler --conservative -v $(awk '/BUNDLED WITH/ { getline; gsub(/ /,""); print $0 }' Gemfile.lock)
I, [2024-06-19T16:30:11.490376 #1]  INFO -- : 
I, [2024-06-19T16:30:11.490484 #1]  INFO -- : > cd /var/www/discourse && find /var/www/discourse ! -user discourse -exec chown discourse {} \+
I, [2024-06-19T16:30:12.418148 #1]  INFO -- : 
I, [2024-06-19T16:30:12.418551 #1]  INFO -- : > cd /var/www/discourse && if [ "v3.2.2" != "tests-passed" ]; then
  rm -rf app/assets/javascripts/node_modules
fi
I, [2024-06-19T16:30:12.423540 #1]  INFO -- : 
I, [2024-06-19T16:30:12.423656 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'yarn install --frozen-lockfile && yarn cache clean'
warning "@discourse/lint-configs > eslint-plugin-ember > ember-eslint-parser@0.2.5" has unmet peer dependency "@typescript-eslint/parser@^6.15.0".
warning "@discourse/lint-configs > eslint-plugin-ember > ember-eslint-parser@0.2.5" has incorrect peer dependency "typescript@^5.3.3".
warning " > @glint/environment-ember-loose@1.3.0" has unmet peer dependency "@glimmer/component@^1.1.2".
warning Resolution field "unset-value@2.0.1" is incompatible with requested version "unset-value@^1.0.0"
warning Pattern ["wrap-ansi@^7.0.0"] is trying to unpack in the same destination "/home/discourse/.cache/yarn/v6/npm-wrap-ansi-cjs-7.0.0-67e145cff510a6a6984bdf1152911d69d2eb9e43-integrity/node_modules/wrap-ansi-cjs" as pattern ["wrap-ansi-cjs@npm:wrap-ansi@^7.0.0"]. This could result in non-deterministic behavior, skipping.
warning " > discourse-markdown-it@1.0.0" has unmet peer dependency "xss@*".
warning "workspace-aggregator-eedacfe6-1247-45f5-b721-910d0d6109a7 > discourse > @uppy/aws-s3@3.0.6" has incorrect peer dependency "@uppy/core@^3.1.2".
warning "workspace-aggregator-eedacfe6-1247-45f5-b721-910d0d6109a7 > discourse > @uppy/aws-s3-multipart@3.1.3" has incorrect peer dependency "@uppy/core@^3.1.2".
warning "workspace-aggregator-eedacfe6-1247-45f5-b721-910d0d6109a7 > discourse > @uppy/xhr-upload@3.1.1" has incorrect peer dependency "@uppy/core@^3.1.2".
warning "workspace-aggregator-eedacfe6-1247-45f5-b721-910d0d6109a7 > discourse > ember-router-service-refresh-polyfill@1.1.0" has incorrect peer dependency "ember-source@^3.4 || 4".
warning "workspace-aggregator-eedacfe6-1247-45f5-b721-910d0d6109a7 > discourse-plugins > ember-this-fallback@0.4.0" has unmet peer dependency "ember-source@^3.28.11 || ^4.0.0".
warning "workspace-aggregator-eedacfe6-1247-45f5-b721-910d0d6109a7 > admin > ember-source > router_js@8.0.3" has unmet peer dependency "rsvp@^4.8.5".
warning "workspace-aggregator-eedacfe6-1247-45f5-b721-910d0d6109a7 > discourse > @uppy/aws-s3 > @uppy/xhr-upload@3.3.0" has incorrect peer dependency "@uppy/core@^3.2.1".
I, [2024-06-19T16:31:12.560930 #1]  INFO -- : yarn install v1.22.22
[1/5] Validating package.json...
[2/5] Resolving packages...
[3/5] Fetching packages...
[4/5] Linking dependencies...
[5/5] Building fresh packages...
$ yarn --cwd app/assets/javascripts $(node -e 'const argv = JSON.parse(process.env.npm_config_argv).original; const passthrough = [`--frozen-lockfile`, `-s`].filter(arg => argv.includes(arg)); console.log(passthrough.join(` `));')
yarn install v1.22.22
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
$ ./run-patch-package
patch-package 8.0.0
Applying patches...
@ember/test-helpers@2.9.4 ✔
babel-plugin-debug-macros@0.3.4 ✔
content-tag@1.2.2 ✔
ember-cli@5.0.0 ✔
ember-this-fallback@0.4.0 (1 deprecation-name) ✔
ember-this-fallback@0.4.0 (2 themes) ✔
ember-this-fallback@0.4.0 (3 exclude-strict-mode) ✔
virtual-dom@2.1.1 ✔
Done in 28.86s.
Done in 54.65s.
yarn cache v1.22.22
success Cleared cache.
Done in 4.90s.

I, [2024-06-19T16:31:12.561489 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle config --local deployment true'
I, [2024-06-19T16:31:12.787714 #1]  INFO -- : 
I, [2024-06-19T16:31:12.787885 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle config --local without "development test"'
I, [2024-06-19T16:31:12.971751 #1]  INFO -- : You are replacing the current local value of without, which is currently "test:development"

I, [2024-06-19T16:31:12.971890 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle install --retry 3 --jobs 4'
google-protobuf-3.25.2-x86_64-linux requires ruby version < 3.3.dev, >= 2.7,
which is incompatible with the current version, 3.3.2
I, [2024-06-19T16:31:21.798426 #1]  INFO -- : Fetching gem metadata from https://rubygems.org/.........
Fetching https://github.com/rails/sprockets

I, [2024-06-19T16:31:21.799159 #1]  INFO -- : Terminating async processes
I, [2024-06-19T16:31:21.799214 #1]  INFO -- : Sending INT to 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: 36
I, [2024-06-19T16:31:21.799271 #1]  INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 98
2024-06-19 16:31:21.799 UTC [36] LOG:  received fast shutdown request
98:signal-handler (1718814681) Received SIGTERM scheduling shutdown...
2024-06-19 16:31:21.804 UTC [36] LOG:  aborting any active transactions
2024-06-19 16:31:21.807 UTC [36] LOG:  background worker "logical replication launcher" (PID 51) exited with exit code 1
2024-06-19 16:31:21.809 UTC [46] LOG:  shutting down
98:M 19 Jun 2024 16:31:21.836 # User requested shutdown...
98:M 19 Jun 2024 16:31:21.836 * Saving the final RDB snapshot before exiting.
98:M 19 Jun 2024 16:31:21.865 * DB saved on disk
98:M 19 Jun 2024 16:31:21.865 # Redis is now ready to exit, bye bye...
2024-06-19 16:31:21.923 UTC [36] LOG:  database system is shut down


FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle install --retry 3 --jobs 4' failed with return #<Process::Status: pid 684 exit 5>
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"bundle_exec", "cmd"=>["su discourse -c 'bundle config --local deployment true'", "su discourse -c 'bundle config --local without \"development test\"'", "su discourse -c 'bundle install --retry 3 --jobs 4'"]}
bootstrap failed with exit code 5
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
39efb3eeb31ffd19bdb08a2e81b3427ee0de11308afb8aecc998872ef2ce7acd

./launcher start app를 실행하면 이전 v3.2.1 컨테이너가 다시 실행됩니다. 다시 실행하기 위해 이렇게 해야 한다는 생각은 하지 못했습니다 (비프로덕션 인스턴스이므로 실행되지 않는 것이 큰 문제는 아닙니다).

하지만 3.2.2로 업그레이드하고 싶은데, 어떻게 진행해야 할지 모르겠습니다.

감사합니다!

그 점을 잘 듣고 있지만, 다시 한번 짚고 넘어가야 할 점은 우리가 기본적으로 제공하는 Discourse 버전(tests-passed)이 가장 많이 테스트되고 호환성이 높다는 것입니다. 이는 또 다른 사례로, 사람들이 일부러 “stable” 버전으로 전환했다가 가장 인기 있는 배포 버전이 아니어서 틈새에 빠진 버그들을 겪는 경우입니다.


@tgxworld 이 문제를 해결하려면 stable 버전에서 sass gem을 업데이트해야 할 것 같습니다.

항상 피드백에 감사드립니다.

제가 지원되지 않는 개발자용 빌드를 실행한 것이 아니라, 도커에서 실행하는 레퍼런스 빌드를 사용한다는 점을 명확히 하고 싶었습니다. 저희 인프라 팀은 모든 것을 직접 패키징하는 것을 선호하기 때문에 자체 지원(self-supported) 배포 방식을 사용하고 있으며, 이 방식에 문제가 발생했을 때를 대비해 레퍼런스 빌드로 되돌아갈 수 있도록 하기 위함입니다. 자체 지원 빌드에서는 베타 버전을 실행하지 않으며, 이로 인해 최신 안정 버전보다 다소 뒤처지기도 합니다.

이번 경우처럼 프로덕션 배포가 자체 지원 방식이므로 루비(ruby) 관련 문제는 이미 수정한 상태였지만, 이미지를 직접 다시 빌드하지 않고 도커 이미지 자체에서 해당 문제를 수정하는 방법을 어떻게 해야 할지 확신이 서지 않았습니다.

이 문제를 마무리하기 위해 말씀드리면, 현재 3.3.0으로 마이그레이션을 완료했으며, 이제 우리에게는 더 이상 해당 문제가 되지 않습니다.