🇨🇳 Detailed installation guide + control panel | 超级详细教学安装discourse+控制面板 튜토리얼을 따라 클라우드 서버에 Discourse를 배포했습니다. Docker를 설치하고 지시에 따라 컨테이너를 시작했습니다. 그러나 구성을 완료한 후 앱 빌드 단계(로그가 중단되는 부분)에서 서버로의 SSH 연결이 응답을 멈춥니다. 서버 상태는 디스크 읽기 100%를 표시하고, 시스템이 동결됩니다. 저는 컨트롤 패널에서 재시작하는 것 외에는 다른 방법이 없습니다. 이 문제를 해결하는 방법을 아시는 분 계신가요?
로그는 아래 답변에 게시하겠습니다.
./launcher 로그
x86_64 아키텍처 감지됨.
2.0.20231218-0429: discourse/base에서 가져오는 중
Digest: sha256:468f70b9bb4c6d0c6c2bbb3efc1a5e12d145eae57bdb6946b7fe5558beb52dc1
Status: discourse/base:2.0.20231218-0429 이미지가 최신 상태입니다
docker.io/discourse/base:2.0.20231218-0429
/usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2024-02-15T10:27:53.783742 #1] INFO -- : stdin에서 읽는 중
I, [2024-02-15T10:27:53.788732 #1] INFO -- : > locale-gen $LANG && update-locale
I, [2024-02-15T10:27:53.819777 #1] INFO -- : 로케일 생성 중 (이 작업에 시간이 걸릴 수 있습니다)...
생성 완료.
I, [2024-02-15T10:27:53.819971 #1] INFO -- : > mkdir -p /shared/postgres_run
I, [2024-02-15T10:27:53.822342 #1] INFO -- :
I, [2024-02-15T10:27:53.822640 #1] INFO -- : > chown postgres:postgres /shared/postgres_run
I, [2024-02-15T10:27:53.824680 #1] INFO -- :
I, [2024-02-15T10:27:53.824924 #1] INFO -- : > chmod 775 /shared/postgres_run
I, [2024-02-15T10:27:53.826606 #1] INFO -- :
I, [2024-02-15T10:27:53.826773 #1] INFO -- : > rm -fr /var/run/postgresql
I, [2024-02-15T10:27:53.828655 #1] INFO -- :
I, [2024-02-15T10:27:53.828815 #1] INFO -- : > ln -s /shared/postgres_run /var/run/postgresql
I, [2024-02-15T10:27:53.831027 #1] INFO -- :
I, [2024-02-15T10:27:53.831176 #1] INFO -- : > socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1
2024/02/15 10:27:53 socat[19] E connect(6, AF=1 "/shared/postgres_run/.s.PGSQL.5432", 36): No such file or directory
I, [2024-02-15T10:27:53.838657 #1] INFO -- :
I, [2024-02-15T10:27:53.838799 #1] INFO -- : > rm -fr /shared/postgres_run/.s*
I, [2024-02-15T10:27:53.841286 #1] INFO -- :
I, [2024-02-15T10:27:53.841411 #1] INFO -- : > rm -fr /shared/postgres_run/*.pid
I, [2024-02-15T10:27:53.843857 #1] INFO -- :
I, [2024-02-15T10:27:53.844057 #1] INFO -- : > mkdir -p /shared/postgres_run/13-main.pg_stat_tmp
I, [2024-02-15T10:27:53.845883 #1] INFO -- :
I, [2024-02-15T10:27:53.846049 #1] INFO -- : > chown postgres:postgres /shared/postgres_run/13-main.pg_stat_tmp
I, [2024-02-15T10:27:53.847952 #1] INFO -- :
I, [2024-02-15T10:27:53.852041 #1] INFO -- : File > /etc/service/postgres/run chmod: +x chown:
I, [2024-02-15T10:27:53.855952 #1] INFO -- : File > /etc/service/postgres/log/run chmod: +x chown:
I, [2024-02-15T10:27:53.859781 #1] INFO -- : File > /etc/runit/3.d/99-postgres chmod: +x chown:
I, [2024-02-15T10:27:53.863808 #1] INFO -- : File > /root/upgrade_postgres chmod: +x chown:
I, [2024-02-15T10:27:53.864070 #1] INFO -- : > chown -R root /var/lib/postgresql/13/main
I, [2024-02-15T10:27:55.115302 #1] INFO -- :
I, [2024-02-15T10:27:55.115451 #1] INFO -- : > [ ! -e /shared/postgres_data ] && install -d -m 0755 -o postgres -g postgres /shared/postgres_data && sudo -E -u postgres /usr/lib/postgresql/13/bin/initdb -D /shared/postgres_data || exit 0
I, [2024-02-15T10:27:55.117522 #1] INFO -- :
I, [2024-02-15T10:27:55.117656 #1] INFO -- : > chown -R postgres:postgres /shared/postgres_data
I, [2024-02-15T10:27:55.128602 #1] INFO -- :
I, [2024-02-15T10:27:55.128937 #1] INFO -- : > chown -R postgres:postgres /var/run/postgresql
I, [2024-02-15T10:27:55.131289 #1] INFO -- :
I, [2024-02-15T10:27:55.131550 #1] INFO -- : > /root/upgrade_postgres
I, [2024-02-15T10:27:55.136105 #1] INFO -- :
I, [2024-02-15T10:27:55.136339 #1] INFO -- : > rm /root/upgrade_postgres
I, [2024-02-15T10:27:55.138143 #1] INFO -- :
I, [2024-02-15T10:27:55.138557 #1] INFO -- : /etc/postgresql/13/main/postgresql.conf에서 data_directory = '/var/lib/postgresql/13/main'을 data_directory = '/shared/postgres_data'로 대체
I, [2024-02-15T10:27:55.139064 #1] INFO -- : /etc/postgresql/13/main/postgresql.conf에서 (?-mix:#?listen_addresses *=.*)을 listen_addresses = '*'로 대체
I, [2024-02-15T10:27:55.142593 #1] INFO -- : /etc/postgresql/13/main/postgresql.conf에서 (?-mix:#?synchronous_commit *=.*)을 synchronous_commit = $db_synchronous_commit로 대체
I, [2024-02-15T10:27:55.143215 #1] INFO -- : /etc/postgresql/13/main/postgresql.conf에서 (?-mix:#?shared_buffers *=.*)을 shared_buffers = $db_shared_buffers로 대체
I, [2024-02-15T10:27:55.143821 #1] INFO -- : /etc/postgresql/13/main/postgresql.conf에서 (?-mix:#?work_mem *=.*)을 work_mem = $db_work_mem으로 대체
I, [2024-02-15T10:27:55.144347 #1] INFO -- : /etc/postgresql/13/main/postgresql.conf에서 (?-mix:#?default_text_search_config *=.*)을 default_text_search_config = '$db_default_text_search_config'로 대체
I, [2024-02-15T10:27:55.144822 #1] INFO -- : > install -d -m 0755 -o postgres -g postgres /shared/postgres_backup
I, [2024-02-15T10:27:55.149060 #1] INFO -- :
I, [2024-02-15T10:27:55.149426 #1] INFO -- : /etc/postgresql/13/main/postgresql.conf에서 (?-mix:#?checkpoint_segments *=.*)을 checkpoint_segments = $db_checkpoint_segments로 대체
I, [2024-02-15T10:27:55.149729 #1] INFO -- : /etc/postgresql/13/main/postgresql.conf에서 (?-mix:#?logging_collector *=.*)을 logging_collector = $db_logging_collector로 대체
I, [2024-02-15T10:27:55.150305 #1] INFO -- : /etc/postgresql/13/main/postgresql.conf에서 (?-mix:#?log_min_duration_statement *=.*)을 log_min_duration_statement = $db_log_min_duration_statement로 대체
I, [2024-02-15T10:27:55.150833 #1] INFO -- : /etc/postgresql/13/main/pg_hba.conf에서 (?-mix:^#local +replication +postgres +peer$)을 local replication postgres peer로 대체
I, [2024-02-15T10:27:55.151186 #1] INFO -- : /etc/postgresql/13/main/pg_hba.conf에서 (?-mix:^host.*all.*all.*127.*$)을 host all all 0.0.0.0/0 md5로 대체
I, [2024-02-15T10:27:55.151662 #1] INFO -- : /etc/postgresql/13/main/pg_hba.conf에서 (?-mix:^host.*all.*all.*::1\/128.*$)을 host all all ::/0 md5로 대체
I, [2024-02-15T10:27:55.152088 #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-02-15T10:27:55.155843 #1] INFO -- : > sleep 5
2024-02-15 10:27:55.190 UTC [42] LOG: starting PostgreSQL 13.13 (Debian 13.13-1.pgdg110+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit
2024-02-15 10:27:55.190 UTC [42] LOG: listening on IPv4 address "0.0.0.0", port 5432
2024-02-15 10:27:55.191 UTC [42] LOG: listening on IPv6 address "::", port 5432
2024-02-15 10:27:55.194 UTC [42] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2024-02-15 10:27:55.200 UTC [45] LOG: database system was shut down at 2024-02-15 10:26:58 UTC
2024-02-15 10:27:55.204 UTC [42] LOG: database system is ready to accept connections
I, [2024-02-15T10:28:00.163378 #1] INFO -- :
I, [2024-02-15T10:28:00.163700 #1] INFO -- : > su postgres -c 'createdb discourse' || true
2024-02-15 10:28:00.223 UTC [55] postgres@postgres ERROR: database "discourse" already exists
2024-02-15 10:28:00.223 UTC [55] postgres@postgres STATEMENT: CREATE DATABASE discourse;
createdb: error: database creation failed: ERROR: database "discourse" already exists
I, [2024-02-15T10:28:00.224612 #1] INFO -- :
I, [2024-02-15T10:28:00.225093 #1] INFO -- : > su postgres -c 'psql discourse -c "create user discourse;"' || true
2024-02-15 10:28:00.273 UTC [59] postgres@discourse ERROR: role "discourse" already exists
2024-02-15 10:28:00.273 UTC [59] postgres@discourse STATEMENT: create user discourse;
ERROR: role "discourse" already exists
I, [2024-02-15T10:28:00.274926 #1] INFO -- :
I, [2024-02-15T10:28:00.275392 #1] INFO -- : > su postgres -c 'psql discourse -c "grant all privileges on database discourse to discourse;"' || true
I, [2024-02-15T10:28:00.321218 #1] INFO -- : GRANT
I, [2024-02-15T10:28:00.321681 #1] INFO -- : > su postgres -c 'psql discourse -c "alter schema public owner to discourse;"'
I, [2024-02-15T10:28:00.368758 #1] INFO -- : ALTER SCHEMA
I, [2024-02-15T10:28:00.369222 #1] INFO -- : > su postgres -c 'psql template1 -c "create extension if not exists hstore;"'
NOTICE: extension "hstore" already exists, skipping
I, [2024-02-15T10:28:00.419312 #1] INFO -- : CREATE EXTENSION
I, [2024-02-15T10:28:00.419764 #1] INFO -- : > su postgres -c 'psql template1 -c "create extension if not exists pg_trgm;"'
NOTICE: extension "pg_trgm" already exists, skipping
I, [2024-02-15T10:28:00.467914 #1] INFO -- : CREATE EXTENSION
I, [2024-02-15T10:28:00.468449 #1] INFO -- : > su postgres -c 'psql template1 -c "create extension if not exists vector;"'
NOTICE: extension "vector" already exists, skipping
I, [2024-02-15T10:28:00.517577 #1] INFO -- : CREATE EXTENSION
I, [2024-02-15T10:28:00.518046 #1] INFO -- : > su postgres -c 'psql discourse -c "create extension if not exists hstore;"'
NOTICE: extension "hstore" already exists, skipping
I, [2024-02-15T10:28:00.563004 #1] INFO -- : CREATE EXTENSION
I, [2024-02-15T10:28:00.563470 #1] INFO -- : > su postgres -c 'psql discourse -c "create extension if not exists pg_trgm;"'
NOTICE: extension "pg_trgm" already exists, skipping
I, [2024-02-15T10:28:00.618027 #1] INFO -- : CREATE EXTENSION
I, [2024-02-15T10:28:00.618552 #1] INFO -- : > su postgres -c 'psql discourse -c "create extension if not exists vector;"'
NOTICE: extension "vector" already exists, skipping
I, [2024-02-15T10:28:00.669078 #1] INFO -- : CREATE EXTENSION
I, [2024-02-15T10:28:00.670057 #1] INFO -- : > sudo -u postgres psql discourse
I, [2024-02-15T10:28:00.672371 #1] INFO -- : update pg_database set encoding = pg_char_to_encoding('UTF8') where datname = 'discourse' AND encoding = pg_char_to_encoding('SQL_ASCII');
I, [2024-02-15T10:28:00.730978 #1] INFO -- : File > /var/lib/postgresql/take-database-backup chmod: +x chown: postgres:postgres
I, [2024-02-15T10:28:00.733740 #1] INFO -- : File > /var/spool/cron/crontabs/postgres chmod: chown:
I, [2024-02-15T10:28:00.733836 #1] INFO -- : > echo postgres installed!
I, [2024-02-15T10:28:00.735684 #1] INFO -- : postgres installed!
I, [2024-02-15T10:28:00.740680 #1] INFO -- : File > /etc/service/redis/run chmod: +x chown:
I, [2024-02-15T10:28:00.745130 #1] INFO -- : File > /etc/service/redis/log/run chmod: +x chown:
I, [2024-02-15T10:28:00.749422 #1] INFO -- : File > /etc/runit/3.d/10-redis chmod: +x chown:
I, [2024-02-15T10:28:00.749951 #1] INFO -- : /etc/redis/redis.conf에서 daemonize yes을 로 대체
I, [2024-02-15T10:28:00.750813 #1] INFO -- : /etc/redis/redis.conf에서 (?-mix:^pidfile.*$)을 로 대체
I, [2024-02-15T10:28:00.751445 #1] INFO -- : > install -d -m 0755 -o redis -g redis /shared/redis_data
I, [2024-02-15T10:28:00.756305 #1] INFO -- :
I, [2024-02-15T10:28:00.756731 #1] INFO -- : /etc/redis/redis.conf에서 (?-mix:^logfile.*$)을 logfile ""로 대체
I, [2024-02-15T10:28:00.757237 #1] INFO -- : /etc/redis/redis.conf에서 (?-mix:^bind .*$)을 로 대체
I, [2024-02-15T10:28:00.758178 #1] INFO -- : /etc/redis/redis.conf에서 (?-mix:^dir .*$)을 dir /shared/redis_data로 대체
I, [2024-02-15T10:28:00.758990 #1] INFO -- : /etc/redis/redis.conf에서 (?-mix:^protected-mode yes)을 protected-mode no로 대체
I, [2024-02-15T10:28:00.759791 #1] INFO -- : /etc/redis/redis.conf에서 # io-threads 4을 io-threads $redis_io_threads로 대체
I, [2024-02-15T10:28:00.760914 #1] INFO -- : > echo redis installed
I, [2024-02-15T10:28:00.763943 #1] INFO -- : redis installed
I, [2024-02-15T10:28:00.764240 #1] INFO -- : > cat /etc/redis/redis.conf | grep logfile
I, [2024-02-15T10:28:00.769404 #1] INFO -- : logfile ""
I, [2024-02-15T10:28:00.769851 #1] INFO -- : > exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf
I, [2024-02-15T10:28:00.771248 #1] INFO -- : > sleep 10
111:C 15 Feb 2024 10:28:00.779 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
111:C 15 Feb 2024 10:28:00.779 # Redis version=7.0.7, bits=64, commit=00000000, modified=0, pid=111, just started
111:C 15 Feb 2024 10:28:00.779 # Configuration loaded
111:M 15 Feb 2024 10:28:00.780 * monotonic clock: POSIX clock_gettime
111:M 15 Feb 2024 10:28:00.781 * Running mode=standalone, port=6379.
111:M 15 Feb 2024 10:28:00.781 # Server initialized
111:M 15 Feb 2024 10:28:00.782 * Loading RDB produced by version 7.0.7
111:M 15 Feb 2024 10:28:00.782 * RDB age 62 seconds
111:M 15 Feb 2024 10:28:00.782 * RDB memory usage when created 0.98 Mb
111:M 15 Feb 2024 10:28:00.782 * Done loading RDB, keys loaded: 34, keys expired: 0.
111:M 15 Feb 2024 10:28:00.782 * DB loaded from disk: 0.001 seconds
111:M 15 Feb 2024 10:28:00.782 * Ready to accept connections
I, [2024-02-15T10:28:10.773983 #1] INFO -- :
I, [2024-02-15T10:28:10.774312 #1] INFO -- : > thpoff echo "thpoff is installed!"
I, [2024-02-15T10:28:10.777770 #1] INFO -- : thpoff is installed!
I, [2024-02-15T10:28:10.777992 #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-02-15T10:28:10.841325 #1] INFO -- :
I, [2024-02-15T10:28:10.841704 #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-02-15T10:28:10.912056 #1] INFO -- :
I, [2024-02-15T10:28:10.912495 #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-02-15T10:28:10.975717 #1] INFO -- :
I, [2024-02-15T10:28:10.976065 #1] INFO -- : > rm -f /etc/cron.d/anacron
I, [2024-02-15T10:28:10.980294 #1] INFO -- :
I, [2024-02-15T10:28:10.983044 #1] INFO -- : File > /etc/cron.d/anacron chmod: chown:
I, [2024-02-15T10:28:10.987324 #1] INFO -- : File > /etc/runit/1.d/copy-env chmod: +x chown:
I, [2024-02-15T10:28:10.991444 #1] INFO -- : File > /etc/service/unicorn/run chmod: +x chown:
I, [2024-02-15T10:28:10.995677 #1] INFO -- : File > /etc/service/nginx/run chmod: +x chown:
I, [2024-02-15T10:28:10.999661 #1] INFO -- : File > /etc/runit/3.d/01-nginx chmod: +x chown:
I, [2024-02-15T10:28:11.003463 #1] INFO -- : File > /etc/runit/3.d/02-unicorn chmod: +x chown:
I, [2024-02-15T10:28:11.003703 #1] INFO -- : /etc/service/unicorn/run에서 # postgres을 sv start postgres || exit 1로 대체
I, [2024-02-15T10:28:11.004008 #1] INFO -- : > exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf
I, [2024-02-15T10:28:11.005833 #1] INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git reset --hard
138:C 15 Feb 2024 10:28:11.012 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
138:C 15 Feb 2024 10:28:11.012 # Redis version=7.0.7, bits=64, commit=00000000, modified=0, pid=138, just started
138:C 15 Feb 2024 10:28:11.012 # Configuration loaded
138:M 15 Feb 2024 10:28:11.012 * monotonic clock: POSIX clock_gettime
138:M 15 Feb 2024 10:28:11.014 # Warning: Could not create server TCP listening socket *:6379: bind: Address already in use
138:M 15 Feb 2024 10:28:11.014 # Failed listening on port 6379 (TCP), aborting.
Updating files: 36% (12265/33715)
Updating files: 37% (12475/33715)
Updating files: 38% (12812/33715)
Updating files: 39% (13149/33715)
Updating files: 40% (13486/33715)
Updating files: 41% (13824/33715)
Updating files: 42% (14161/33715)
Updating files: 43% (14498/33715)
Updating files: 44% (14835/33715)
Updating files: 45% (15172/33715)
Updating files: 46% (15509/33715)
Updating files: 47% (15847/33715)
Updating files: 48% (16184/33715)
Updating files: 49% (16521/33715)
Updating files: 50% (16858/33715)
Updating files: 51% (17195/33715)
Updating files: 52% (17532/33715)
Updating files: 53% (17869/33715)
Updating files: 54% (18207/33715)
Updating files: 55% (18544/33715)
Updating files: 56% (18881/33715)
Updating files: 57% (19218/33715)
Updating files: 58% (19555/33715)
Updating files: 59% (19892/33715)
Updating files: 60% (20229/33715)
Updating files: 61% (20567/33715)
Updating files: 62% (20904/33715)
Updating files: 63% (21241/33715)
Updating files: 64% (21578/33715)
Updating files: 65% (21915/33715)
Updating files: 66% (22252/33715)
Updating files: 67% (22590/33715)
Updating files: 68% (22927/33715)
Updating files: 69% (23264/33715)
Updating files: 70% (23601/33715)
Updating files: 71% (23938/33715)
Updating files: 72% (24275/33715)
Updating files: 73% (24612/33715)
Updating files: 74% (24950/33715)
Updating files: 75% (25287/33715)
Updating files: 76% (25624/33715)
Updating files: 77% (25961/33715)
Updating files: 78% (26298/33715)
Updating files: 79% (26635/33715)
Updating files: 80% (26972/33715)
Updating files: 81% (27310/33715)
Updating files: 82% (27647/33715)
Updating files: 82% (27668/33715)
Updating files: 83% (27984/33715)
Updating files: 84% (28321/33715)
Updating files: 85% (28658/33715)
Updating files: 86% (28995/33715)
Updating files: 87% (29333/33715)
Updating files: 88% (29670/33715)
Updating files: 89% (30007/33715)
Updating files: 90% (30344/33715)
Updating files: 91% (30681/33715)
Updating files: 92% (31018/33715)
Updating files: 93% (31355/33715)
Updating files: 94% (31693/33715)
Updating files: 95% (32030/33715)
Updating files: 96% (32367/33715)
Updating files: 97% (32704/33715)
Updating files: 98% (33041/33715)
Updating files: 99% (33378/33715)
Updating files: 100% (33715/33715)
Updating files: 100% (33715/33715), done.
I, [2024-02-15T10:28:13.867424 #1] INFO -- : HEAD is now at 6ab1a19e9 DEV: Convert min_trust_level_to_allow_invite to groups (#24893)
I, [2024-02-15T10:28:13.870245 #1] INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git clean -f
I, [2024-02-15T10:28:14.033356 #1] INFO -- :
I, [2024-02-15T10:28:14.033496 #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 tests-passed
git fetch --depth 1 origin tests-passed
else
git fetch --tags --prune-tags --prune --force origin
fi
'
From https://github.com/discourse/discourse
- [deleted] (none) -> origin/0-drop-code
- [deleted] (none) -> origin/bulk-button-class
- [deleted] (none) -> origin/dependabot/bundler/excon-0.108.0
- [deleted] (none) -> origin/dependabot/bundler/hashdiff-1.1.0
- [deleted] (none) -> origin/dependabot/bundler/parallel-1.24.0
- [deleted] (none) -> origin/dependabot/bundler/rubocop-discourse-3.6.0
- [deleted] (none) -> origin/dependabot/npm_and_yarn/app/assets/javascripts/uppy/drop-target-2.0.2
- [deleted] (none) -> origin/dev/add-new-chat-metrics
- [deleted] (none) -> origin/dev/allow-chat-mentions-to-have-several-notifications
- [deleted] (none) -> origin/dev/convert-min-trust-level-to-create-tag-to-group
- [deleted] (none) -> origin/dev/convert-min-trust-level-to-ignore-to-groups
- [deleted] (none) -> origin/dev/rethink-mass-mentions-polymorphic
- [deleted] (none) -> origin/feature/migrations-schema-generator
- [deleted] (none) -> origin/fix-join-filter-upload
- [deleted] (none) -> origin/fix-modal-flash-minor
- [deleted] (none) -> origin/global-notice-reactive
- [deleted] (none) -> origin/labeler
- [deleted] (none) -> origin/low-ram-help
- [deleted] (none) -> origin/multi-invite
- [deleted] (none) -> origin/plugin-extra-js
- [deleted] (none) -> origin/table-builder-modal-modifier
- [deleted] (none) -> origin/tests-passed-broken
- [deleted] (none) -> origin/wip_categories
- [deleted] (none) -> origin/wizard-split
6ab1a19e9..c30aeafd9 main -> origin/main
* [new branch] 0-ember-bump -> origin/0-ember-bump
* [new branch] 0-event-helper -> origin/0-event-helper
* [new branch] 0-extend-native -> origin/0-extend-native
* [new branch] 0-fix-perf-watched-words -> origin/0-fix-perf-watched-words
* [new branch] 0-rev -> origin/0-rev
* [new branch] 0-screen-track -> origin/0-screen-track
* [new branch] add-api-for-forced-auth -> origin/add-api-for-forced-auth
* [new branch] asciinema-iframe -> origin/asciinema-iframe
* [new branch] async-category-search -> origin/async-category-search
* [new branch] bulk-select-dropdown-items -> origin/bulk-select-dropdown-items
* [new branch] convert-header-to-glimmer -> origin/convert-header-to-glimmer
* [new branch] csp-strict-dynamic -> origin/csp-strict-dynamic
* [new branch] decorator-transforms -> origin/decorator-transforms
* [new branch] dependabot/bundler/omniauth-2.0.0 -> origin/dependabot/bundler/omniauth-2.0.0
* [new branch] dependabot/bundler/parallel_tests-4.4.0 -> origin/dependabot/bundler/parallel_tests-4.4.0
* [new branch] dependabot/bundler/rack-mini-profiler-3.3.1 -> origin/dependabot/bundler/rack-mini-profiler-3.3.1
* [new branch] dev-convert-topic-map-expanded-widget-to-component -> origin/dev-convert-topic-map-expanded-widget-to-component
* [new branch] dev/add-modifier-user-action-stream-builder -> origin/dev/add-modifier-user-action-stream-builder
* [new branch] dev/check-whether-online-user-ids-may-be-memoized-between-job-runs -> origin/dev/check-whether-online-user-ids-may-be-memoized-between-job-runs
+ 79ea38776...bd0faffec dev/drop-notification_id-column-on-chat-mentions -> origin/dev/drop-notification_id-column-on-chat-mentions (forced update)
* [new branch] dev/drop-the-user-id-column-from-chat-mentions -> origin/dev/drop-the-user-id-column-from-chat-mentions
+ e0c0191bb...6751ac529 dev/dry-up-user-status-serializers -> origin/dev/dry-up-user-status-serializers (forced update)
* [new branch] dev/experiment-theme-settings-free-ui -> origin/dev/experiment-theme-settings-free-ui
* [new branch] dev/groundwork-theme-settings-editor -> origin/dev/groundwork-theme-settings-editor
* [new branch] dev/make-admins-tl4-in-tests -> origin/dev/make-admins-tl4-in-tests
* [new branch] dev/promote-plugin-post-deploy-migrations -> origin/dev/promote-plugin-post-deploy-migrations
* [new branch] dev/proof-of-concept-rewriting-mentions-notification-logic -> origin/dev/proof-of-concept-rewriting-mentions-notification-logic
* [new branch] dev_category_order_database -> origin/dev_category_order_database
* [new branch] dev_update_category_position -> origin/dev_update_category_position
* [new branch] discover_enrollment -> origin/discover_enrollment
* [new branch] extra-js-revert -> origin/extra-js-revert
* [new branch] fast-edit-expand-regex -> origin/fast-edit-expand-regex
8780daeee..d92b6b19b feature/bookmark-menu-and-modal-redesign -> origin/feature/bookmark-menu-and-modal-redesign
* [new branch] feature/custom-date-range -> origin/feature/custom-date-range
* [new branch] feature/paste-upload-on-first-upload-input-templates -> origin/feature/paste-upload-on-first-upload-input-templates
* [new branch] feature_async_load_colors -> origin/feature_async_load_colors
* [new branch] feature_track_mentions -> origin/feature_track_mentions
* [new branch] fix_category_chooser -> origin/fix_category_chooser
* [new branch] fix_in_any_groups -> origin/fix_in_any_groups
* [new branch] fix_reviewable_translation -> origin/fix_reviewable_translation
7f2bdca65..4db506cea generic-import-latest -> origin/generic-import-latest
* [new branch] hijacks -> origin/hijacks
* [new branch] issue/respect-homepage-admin-sidebar-back -> origin/issue/respect-homepage-admin-sidebar-back
* [new branch] issue/run-admin-sidebar-init-after-logs-notice -> origin/issue/run-admin-sidebar-init-after-logs-notice
* [new branch] loic-rubocop-plugin-rules -> origin/loic-rubocop-plugin-rules
+ 90a3535b7...54d0135bc migrations-convert -> origin/migrations-convert (forced update)
* [new branch] promote-migration-tweak -> origin/promote-migration-tweak
* [new branch] redesign-my-threads-index -> origin/redesign-my-threads-index
* [new branch] revert-25009-dev/convert-min-trust-to-allow-self-wiki-to-groups -> origin/revert-25009-dev/convert-min-trust-to-allow-self-wiki-to-groups
* [new branch] revert-bulk-topic-actions -> origin/revert-bulk-topic-actions
* [new branch] scrolling -> origin/scrolling
* [new branch] sidebar-above-outlet -> origin/sidebar-above-outlet
* [new branch] site-logo-height -> origin/site-logo-height
d7f7f79b6..92749b738 stable -> origin/stable
* [new branch] system-test-for-soft-load-search -> origin/system-test-for-soft-load-search
6ab1a19e9..c30aeafd9 tests-passed -> origin/tests-passed
* [new branch] tmp/move-notifiers-specs -> origin/tmp/move-notifiers-specs
* [new branch] unhide_lazy_load_categories -> origin/unhide_lazy_load_categories
* [new branch] universal-nonce -> origin/universal-nonce
* [new branch] user-menu-full-name -> origin/user-menu-full-name
* [new branch] ux-label-bold -> origin/ux-label-bold
* [new branch] virtual-scroll-list -> origin/virtual-scroll-list
t [tag update] beta -> beta
t [tag update] latest-release -> latest-release
* [new tag] v3.1.4 -> v3.1.4
* [new tag] v3.1.5 -> v3.1.5
* [new tag] v3.2.0 -> v3.2.0
* [new tag] v3.2.0.beta4 -> v3.2.0.beta4
* [new tag] v3.2.0.beta5 -> v3.2.0.beta5
I, [2024-02-15T10:28:16.245050 #1] INFO -- :
I, [2024-02-15T10:28:16.245159 #1] INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse bash -c '
set -o errexit
if [[ $(git symbolic-ref --short HEAD) == tests-passed ]] ; then
git pull
else
git -c advice.detachedHead=false checkout tests-passed
fi
'
Switched to a new branch 'tests-passed'
I, [2024-02-15T10:28:23.253872 #1] INFO -- : Branch 'tests-passed' set up to track remote branch 'tests-passed' from 'origin'.
I, [2024-02-15T10:28:23.254007 #1] INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git config user.discourse-version tests-passed
I, [2024-02-15T10:28:23.264578 #1] INFO -- :
I, [2024-02-15T10:28:23.264750 #1] INFO -- : > cd /var/www/discourse && mkdir -p tmp
I, [2024-02-15T10:28:23.268499 #1] INFO -- :
I, [2024-02-15T10:28:23.268683 #1] INFO -- : > cd /var/www/discourse && chown discourse:www-data tmp
I, [2024-02-15T10:28:23.272081 #1] INFO -- :
I, [2024-02-15T10:28:23.272162 #1] INFO -- : > cd /var/www/discourse && mkdir -p tmp/pids
I, [2024-02-15T10:28:23.275033 #1] INFO -- :
I, [2024-02-15T10:28:23.275255 #1] INFO -- : > cd /var/www/discourse && mkdir -p tmp/sockets
I, [2024-02-15T10:28:23.278006 #1] INFO -- :
I, [2024-02-15T10:28:23.278205 #1] INFO -- : > cd /var/www/discourse && touch tmp/.gitkeep
I, [2024-02-15T10:28:23.281859 #1] INFO -- :
I, [2024-02-15T10:28:23.281991 #1] INFO -- : > cd /var/www/discourse && mkdir -p /shared/log/rails
I, [2024-02-15T10:28:23.284816 #1] INFO -- :
I, [2024-02-15T10:28:23.284885 #1] INFO -- : > cd /var/www/discourse && bash -c "touch -a /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log"
I, [2024-02-15T10:28:23.288517 #1] INFO -- :
I, [2024-02-15T10:28:23.288699 #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-02-15T10:28:23.292668 #1] INFO -- :
I, [2024-02-15T10:28:23.292739 #1] INFO -- : > cd /var/www/discourse && bash -c "mkdir -p /shared/{uploads,backups}"
I, [2024-02-15T10:28:23.296906 #1] INFO -- :
I, [2024-02-15T10:28:23.296988 #1] INFO -- : > cd /var/www/discourse && bash -c "ln -s /shared/{uploads,backups} /var/www/discourse/public"
I, [2024-02-15T10:28:23.300824 #1] INFO -- :
I, [2024-02-15T10:28:23.301054 #1] INFO -- : > cd /var/www/discourse && bash -c "mkdir -p /shared/tmp/{backups,restores}"
I, [2024-02-15T10:28:23.305107 #1] INFO -- :
I, [2024-02-15T10:28:23.305304 #1] INFO -- : > cd /var/www/discourse && bash -c "ln -s /shared/tmp/{backups,restores} /var/www/discourse/tmp"
I, [2024-02-15T10:28:23.309337 #1] INFO -- :
I, [2024-02-15T10:28:23.309640 #1] INFO -- : > cd /var/www/discourse && chown -R discourse:www-data /shared/log/rails /shared/uploads /shared/backups /shared/tmp
I, [2024-02-15T10:28:23.313054 #1] INFO -- :
I, [2024-02-15T10:28:23.313172 #1] INFO -- : > cd /var/www/discourse && [ ! -d public/plugins ] || find public/plugins/ -maxdepth 1 -xtype l -delete
I, [2024-02-15T10:28:23.315102 #1] INFO -- :
I, [2024-02-15T10:28:23.316685 #1] INFO -- : /etc/service/unicorn/run에서 # redis을 sv start redis || exit 1로 대체
I, [2024-02-15T10:28:23.317733 #1] INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/discourse/docker_manager.git
Cloning into 'docker_manager'...
I, [2024-02-15T10:28:26.376448 #1] INFO -- :
I, [2024-02-15T10:28:26.377014 #1] INFO -- : > cp /var/www/discourse/config/nginx.sample.conf /etc/nginx/conf.d/discourse.conf
I, [2024-02-15T10:28:26.382672 #1] INFO -- :
I, [2024-02-15T10:28:26.382999 #1] INFO -- : > rm /etc/nginx/sites-enabled/default
I, [2024-02-15T10:28:26.385923 #1] INFO -- :
I, [2024-02-15T10:28:26.386108 #1] INFO -- : > mkdir -p /var/nginx/cache
I, [2024-02-15T10:28:26.388292 #1] INFO -- :
I, [2024-02-15T10:28:26.388901 #1] INFO -- : /etc/nginx/nginx.conf에서 pid /run/nginx.pid;을 daemon off;로 대체
I, [2024-02-15T10:28:26.391324 #1] INFO -- : /etc/nginx/conf.d/discourse.conf에서 (?m-ix:upstream[^\}]+\})을 upstream discourse { server 127.0.0.1:3000; }로 대체
I, [2024-02-15T10:28:26.391633 #1] INFO -- : /etc/nginx/conf.d/discourse.conf에서 (?-mix:server_name.+$)을 server_name _ ;로 대체
I, [2024-02-15T10:28:26.392107 #1] INFO -- : /etc/nginx/conf.d/discourse.conf에서 (?-mix:client_max_body_size.+$)을 client_max_body_size $upload_size ;로 대체
I, [2024-02-15T10:28:26.392579 #1] INFO -- : /etc/nginx/nginx.conf에서 (?-mix:worker_connections.+$)을 worker_connections $nginx_worker_connections ;로 대체
I, [2024-02-15T10:28:26.392893 #1] INFO -- : > echo "done configuring web"
I, [2024-02-15T10:28:26.394573 #1] INFO -- : done configuring web
I, [2024-02-15T10:28:26.394967 #1] INFO -- : > cd /var/www/discourse && gem install bundler --conservative -v $(awk '/BUNDLED WITH/ { getline; gsub(/ /,""); print $0 }' Gemfile.lock)
I, [2024-02-15T10:28:27.261440 #1] INFO -- : Successfully installed bundler-2.5.3
1 gem installed
I, [2024-02-15T10:28:27.261620 #1] INFO -- : > cd /var/www/discourse && find /var/www/discourse ! -user discourse -exec chown discourse {} \+
I, [2024-02-15T10:28:31.381167 #1] INFO -- :
I, [2024-02-15T10:28:31.381815 #1] INFO -- : > cd /var/www/discourse && if [ "tests-passed" != "tests-passed" ]; then
rm -rf app/assets/javascripts/node_modules
fi
I, [2024-02-15T10:28:31.385573 #1] INFO -- :
I, [2024-02-15T10:28:31.385994 #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".
I, [2024-02-15T10:30:20.264448 #1] INFO -- : 비동기 프로세스 종료
I, [2024-02-15T10:30:20.265295 #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 pid: 42 프로세스에 INT 신호 전송
2024-02-15 10:30:20.265 UTC [42] LOG: 빠른 종료 요청 수신
I, [2024-02-15T10:30:20.265390 #1] INFO -- : exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 111 프로세스에 TERM 신호 전송
111:signal-handler (1707993020) SIGTERM 수신, 종료 예약 중...
111:M 15 Feb 2024 10:30:20.284 # 사용자가 종료를 요청했습니다...
111:M 15 Feb 2024 10:30:20.285 * 종료 전에 최종 RDB 스냅샷을 저장합니다.
2024-02-15 10:30:20.303 UTC [42] LOG: 활성 트랜잭션 중단
2024-02-15 10:30:20.307 UTC [42] LOG: 백그라운드 워커 "logical replication launcher" (PID 51)이 종료 코드 1로 종료됨
2024-02-15 10:30:20.309 UTC [46] LOG: 종료 중
111:M 15 Feb 2024 10:30:20.335 * DB가 디스크에 저장됨
111:M 15 Feb 2024 10:30:20.344 # Redis가 이제 종료 준비가 되었습니다, 안녕...
2024-02-15 10:30:20.463 UTC [42] LOG: 데이터베이스 시스템이 종료되었습니다
bootstrap가 종료 코드 1로 실패했습니다
** BOOTSTRAP 실패 ** 이전의 오류 메시지를 확인하십시오. 오류가 여러 개일 수 있습니다.
./discourse-doctor가 문제를 진단하는 데 도움이 될 수 있습니다.
c861827aef2d0dda3f1fc07c2cfe615a91eef803ab3fb36b5d71698adadc21e1
./discourse-doctor 로그
DISCOURSE DOCTOR Thu 15 Feb 2024 06:32:48 PM CST
OS: Linux iZj6cgi365ov99veqodfgnZ 5.4.0-171-generic #189-Ubuntu SMP Fri Jan 5 14:23:02 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
containers/app.yml 발견
==================== YML 설정 ====================
DISCOURSE_HOSTNAME=*
SMTP_ADDRESS=*
DEVELOPER_EMAILS=*
SMTP_PASSWORD=*
SMTP_PORT=*
SMTP_USER_NAME=*
LETSENCRYPT_ACCOUNT_EMAIL=*
==================== DOCKER 정보 ====================
DOCKER 버전: Docker version 25.0.3, build 4debf41
DOCKER 프로세스 (docker ps -a)
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e34a707c2cba discourse/base:2.0.20231218-0429 "/bin/bash -c '/usr/…" 2 hours ago Exited (255) 18 minutes ago quirky_fermat
==================== 심각한 문제!!!! ====================
앱이 실행되지 않습니다!
재구축 시도 중
==================== 재구축 로그 ====================
x86_64 아키텍처 감지됨.
launcher가 최신 상태인지 확인 중
Fetching origin
Launcher는 최신 상태입니다
2.0.20231218-0429: discourse/base에서 가져오는 중
Digest: sha256:468f70b9bb4c6d0c6c2bbb3efc1a5e12d145eae57bdb6946b7fe5558beb52dc1
Status: discourse/base:2.0.20231218-0429 이미지는 최신 상태입니다
docker.io/discourse/base:2.0.20231218-0429
/usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2024-02-15T10:32:58.066976 #1] INFO -- : stdin에서 읽는 중
I, [2024-02-15T10:32:58.072322 #1] INFO -- : > locale-gen $LANG && update-locale
I, [2024-02-15T10:32:58.144173 #1] INFO -- : 로케일 생성 중(시간이 걸릴 수 있습니다)...
생성이 완료되었습니다.
I, [2024-02-15T10:32:58.144356 #1] INFO -- : > mkdir -p /shared/postgres_run
I, [2024-02-15T10:32:58.151295 #1] INFO -- :
I, [2024-02-15T10:32:58.152268 #1] INFO -- : > chown postgres:postgres /shared/postgres_run
I, [2024-02-15T10:32:58.155924 #1] INFO -- :
I, [2024-02-15T10:32:58.156188 #1] INFO -- : > chmod 775 /shared/postgres_run
I, [2024-02-15T10:32:58.159244 #1] INFO -- :
I, [2024-02-15T10:32:58.159572 #1] INFO -- : > rm -fr /var/run/postgresql
I, [2024-02-15T10:32:58.162267 #1] INFO -- :
I, [2024-02-15T10:32:58.162579 #1] INFO -- : > ln -s /shared/postgres_run /var/run/postgresql
I, [2024-02-15T10:32:58.165310 #1] INFO -- :
I, [2024-02-15T10:32:58.165607 #1] INFO -- : > socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1
2024/02/15 10:32:58 socat[19] E connect(6, AF=1 "/shared/postgres_run/.s.PGSQL.5432", 36): No such file or directory
I, [2024-02-15T10:32:58.188054 #1] INFO -- :
I, [2024-02-15T10:32:58.188429 #1] INFO -- : > rm -fr /shared/postgres_run/.s*
I, [2024-02-15T10:32:58.191661 #1] INFO -- :
I, [2024-02-15T10:32:58.191844 #1] INFO -- : > rm -fr /shared/postgres_run/*.pid
I, [2024-02-15T10:32:58.194737 #1] INFO -- :
I, [2024-02-15T10:32:58.195096 #1] INFO -- : > mkdir -p /shared/postgres_run/13-main.pg_stat_tmp
I, [2024-02-15T10:32:58.197379 #1] INFO -- :
I, [2024-02-15T10:32:58.197747 #1] INFO -- : > chown postgres:postgres /shared/postgres_run/13-main.pg_stat_tmp
I, [2024-02-15T10:32:58.199854 #1] INFO -- :
I, [2024-02-15T10:32:58.204841 #1] INFO -- : File > /etc/service/postgres/run chmod: +x chown:
I, [2024-02-15T10:32:58.209036 #1] INFO -- : File > /etc/service/postgres/log/run chmod: +x chown:
I, [2024-02-15T10:32:58.214787 #1] INFO -- : File > /etc/runit/3.d/99-postgres chmod: +x chown:
I, [2024-02-15T10:32:58.218929 #1] INFO -- : File > /root/upgrade_postgres chmod: +x chown:
I, [2024-02-15T10:32:58.219263 #1] INFO -- : > chown -R root /var/lib/postgresql/13/main
I, [2024-02-15T10:32:59.721972 #1] INFO -- :
I, [2024-02-15T10:32:59.722380 #1] INFO -- : > [ ! -e /shared/postgres_data ] && install -d -m 0755 -o postgres -g postgres /shared/postgres_data && sudo -E -u postgres /usr/lib/postgresql/13/bin/initdb -D /shared/postgres_data || exit 0
I, [2024-02-15T10:32:59.724421 #1] INFO -- :
I, [2024-02-15T10:32:59.724554 #1] INFO -- : > chown -R postgres:postgres /shared/postgres_data
I, [2024-02-15T10:32:59.751357 #1] INFO -- :
I, [2024-02-15T10:32:59.751770 #1] INFO -- : > chown -R postgres:postgres /var/run/postgresql
I, [2024-02-15T10:32:59.754527 #1] INFO -- :
I, [2024-02-15T10:32:59.754836 #1] INFO -- : > /root/upgrade_postgres
I, [2024-02-15T10:32:59.760384 #1] INFO -- :
I, [2024-02-15T10:32:59.760719 #1] INFO -- : > rm /root/upgrade_postgres
I, [2024-02-15T10:32:59.762618 #1] INFO -- :
I, [2024-02-15T10:32:59.763346 #1] INFO -- : /etc/postgresql/13/main/postgresql.conf에서 data_directory = '/var/lib/postgresql/13/main'을 data_directory = '/shared/postgres_data'로 대체
I, [2024-02-15T10:32:59.763898 #1] INFO -- : /etc/postgresql/13/main/postgresql.conf에서 (?-mix:#?listen_addresses *=.*)을 listen_addresses = '*'로 대체
I, [2024-02-15T10:32:59.764407 #1] INFO -- : /etc/postgresql/13/main/postgresql.conf에서 (?-mix:#?synchronous_commit *=.*)을 synchronous_commit = $db_synchronous_commit으로 대체
I, [2024-02-15T10:32:59.764961 #1] INFO -- : /etc/postgresql/13/main/postgresql.conf에서 (?-mix:#?shared_buffers *=.*)을 shared_buffers = $db_shared_buffers로 대체
I, [2024-02-15T10:32:59.765445 #1] INFO -- : /etc/postgresql/13/main/postgresql.conf에서 (?-mix:#?work_mem *=.*)을 work_mem = $db_work_mem으로 대체
I, [2024-02-15T10:32:59.765966 #1] INFO -- : /etc/postgresql/13/main/postgresql.conf에서 (?-mix:#?default_text_search_config *=.*)을 default_text_search_config = '$db_default_text_search_config'로 대체
I, [2024-02-15T10:32:59.766437 #1] INFO -- : > install -d -m 0755 -o postgres -g postgres /shared/postgres_backup
I, [2024-02-15T10:32:59.772080 #1] INFO -- :
I, [2024-02-15T10:32:59.772535 #1] INFO -- : /etc/postgresql/13/main/postgresql.conf에서 (?-mix:#?checkpoint_segments *=.*)을 checkpoint_segments = $db_checkpoint_segments으로 대체
I, [2024-02-15T10:32:59.772939 #1] INFO -- : /etc/postgresql/13/main/postgresql.conf에서 (?-mix:#?logging_collector *=.*)을 logging_collector = $db_logging_collector로 대체
I, [2024-02-15T10:32:59.773467 #1] INFO -- : /etc/postgresql/13/main/postgresql.conf에서 (?-mix:#?log_min_duration_statement *=.*)을 log_min_duration_statement = $db_log_min_duration_statement으로 대체
I, [2024-02-15T10:32:59.774259 #1] INFO -- : /etc/postgresql/13/main/pg_hba.conf에서 (?-mix:^#local +replication +postgres +peer$)을 local replication postgres peer로 대체
I, [2024-02-15T10:32:59.774561 #1] INFO -- : /etc/postgresql/13/main/pg_hba.conf에서 (?-mix:^host.*all.*all.*127.*$)을 host all all 0.0.0.0/0 md5로 대체
I, [2024-02-15T10:32:59.775081 #1] INFO -- : /etc/postgresql/13/main/pg_hba.conf에서 (?-mix:^host.*all.*all.*::1\/128.*$)을 host all all ::/0 md5로 대체
I, [2024-02-15T10:32:59.775507 #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-02-15T10:32:59.778511 #1] INFO -- : > sleep 5
2024-02-15 10:32:59.875 UTC [42] LOG: starting PostgreSQL 13.13 (Debian 13.13-1.pgdg110+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit
2024-02-15 10:32:59.876 UTC [42] LOG: listening on IPv4 address "0.0.0.0", port 5432
2024-02-15 10:32:59.877 UTC [42] LOG: listening on IPv6 address "::", port 5432
2024-02-15 10:32:59.880 UTC [42] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2024-02-15 10:32:59.886 UTC [45] LOG: database system was shut down at 2024-02-15 10:30:20 UTC
2024-02-15 10:32:59.891 UTC [42] LOG: database system is ready to accept connections
I, [2024-02-15T10:33:04.781190 #1] INFO -- :
I, [2024-02-15T10:33:04.781481 #1] INFO -- : > su postgres -c 'createdb discourse' || true
2024-02-15 10:33:04.885 UTC [55] postgres@postgres ERROR: database "discourse" already exists
2024-02-15 10:33:04.885 UTC [55] postgres@postgres STATEMENT: CREATE DATABASE discourse;
createdb: error: database creation failed: ERROR: database "discourse" already exists
I, [2024-02-15T10:33:04.887989 #1] INFO -- :
I, [2024-02-15T10:33:04.888519 #1] INFO -- : > su postgres -c 'psql discourse -c "create user discourse;"' || true
2024-02-15 10:33:04.950 UTC [59] postgres@discourse ERROR: role "discourse" already exists
2024-02-15 10:33:04.950 UTC [59] postgres@discourse STATEMENT: create user discourse;
ERROR: role "discourse" already exists
I, [2024-02-15T10:33:04.952839 #1] INFO -- :
I, [2024-02-15T10:33:04.953301 #1] INFO -- : > su postgres -c 'psql discourse -c "grant all privileges on database discourse to discourse;"' || true
I, [2024-02-15T10:33:05.002768 #1] INFO -- : GRANT
I, [2024-02-15T10:33:05.003148 #1] INFO -- : > su postgres -c 'psql discourse -c "alter schema public owner to discourse;"'
I, [2024-02-15T10:33:05.053723 #1] INFO -- : ALTER SCHEMA
I, [2024-02-15T10:33:05.053931 #1] INFO -- : > su postgres -c 'psql template1 -c "create extension if not exists hstore;"'
NOTICE: extension "hstore" already exists, skipping
I, [2024-02-15T10:33:05.110606 #1] INFO -- : CREATE EXTENSION
I, [2024-02-15T10:33:05.111079 #1] INFO -- : > su postgres -c 'psql template1 -c "create extension if not exists pg_trgm;"'
NOTICE: extension "pg_trgm" already exists, skipping
I, [2024-02-15T10:33:05.156719 #1] INFO -- : CREATE EXTENSION
I, [2024-02-15T10:33:05.157309 #1] INFO -- : > su postgres -c 'psql template1 -c "create extension if not exists vector;"'
NOTICE: extension "vector" already exists, skipping
I, [2024-02-15T10:33:05.202622 #1] INFO -- : CREATE EXTENSION
I, [2024-02-15T10:33:05.202859 #1] INFO -- : > su postgres -c 'psql discourse -c "create extension if not exists hstore;"'
NOTICE: extension "hstore" already exists, skipping
I, [2024-02-15T10:33:05.253597 #1] INFO -- : CREATE EXTENSION
I, [2024-02-15T10:33:05.254116 #1] INFO -- : > su postgres -c 'psql discourse -c "create extension if not exists pg_trgm;"'
NOTICE: extension "pg_trgm" already exists, skipping
I, [2024-02-15T10:33:05.298429 #1] INFO -- : CREATE EXTENSION
I, [2024-02-15T10:33:05.298902 #1] INFO -- : > su postgres -c 'psql discourse -c "create extension if not exists vector;"'
NOTICE: extension "vector" already exists, skipping
I, [2024-02-15T10:33:05.348357 #1] INFO -- : CREATE EXTENSION
I, [2024-02-15T10:33:05.348865 #1] INFO -- : > sudo -u postgres psql discourse
I, [2024-02-15T10:33:05.352505 #1] INFO -- : update pg_database set encoding = pg_char_to_encoding('UTF8') where datname = 'discourse' AND encoding = pg_char_to_encoding('SQL_ASCII');
I, [2024-02-15T10:33:05.434503 #1] INFO -- : File > /var/lib/postgresql/take-database-backup chmod: +x chown: postgres:postgres
I, [2024-02-15T10:33:05.439741 #1] INFO -- : File > /var/spool/cron/crontabs/postgres chmod: chown:
I, [2024-02-15T10:33:05.439953 #1] INFO -- : > echo postgres installed!
I, [2024-02-15T10:33:05.442035 #1] INFO -- : postgres installed!
I, [2024-02-15T10:33:05.447602 #1] INFO -- : File > /etc/service/redis/run chmod: +x chown:
I, [2024-02-15T10:33:05.453493 #1] INFO -- : File > /etc/service/redis/log/run chmod: +x chown:
I, [2024-02-15T10:33:05.458965 #1] INFO -- : File > /etc/runit/3.d/10-redis chmod: +x chown:
I, [2024-02-15T10:33:05.459960 #1] INFO -- : /etc/redis/redis.conf에서 daemonize yes을(를) (빈 값)으로 대체
I, [2024-02-15T10:33:05.460629 #1] INFO -- : /etc/redis/redis.conf에서 (?-mix:^pidfile.*$)을(를) (빈 값)으로 대체
I, [2024-02-15T10:33:05.461384 #1] INFO -- : > install -d -m 0755 -o redis -g redis /shared/redis_data
I, [2024-02-15T10:33:05.465040 #1] INFO -- :
I, [2024-02-15T10:33:05.465645 #1] INFO -- : /etc/redis/redis.conf에서 (?-mix:^logfile.*$)을(를) logfile ""로 대체
I, [2024-02-15T10:33:05.466438 #1] INFO -- : /etc/redis/redis.conf에서 (?-mix:^bind .*$)을(를) (빈 값)으로 대체
I, [2024-02-15T10:33:05.467357 #1] INFO -- : /etc/redis/redis.conf에서 (?-mix:^dir .*$)을(를) dir /shared/redis_data로 대체
I, [2024-02-15T10:33:05.468322 #1] INFO -- : /etc/redis/redis.conf에서 (?-mix:^protected-mode yes)을(를) protected-mode no로 대체
I, [2024-02-15T10:33:05.469224 #1] INFO -- : /etc/redis/redis.conf에서 # io-threads 4을(를) io-threads $redis_io_threads로 대체
I, [2024-02-15T10:33:05.469833 #1] INFO -- : > echo redis installed
I, [2024-02-15T10:33:05.473332 #1] INFO -- : redis installed
I, [2024-02-15T10:33:05.473556 #1] INFO -- : > cat /etc/redis/redis.conf | grep logfile
I, [2024-02-15T10:33:05.482371 #1] INFO -- : logfile ""
I, [2024-02-15T10:33:05.482879 #1] INFO -- : > exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf
I, [2024-02-15T10:33:05.486036 #1] INFO -- : > sleep 10
111:C 15 Feb 2024 10:33:05.494 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
111:C 15 Feb 2024 10:33:05.494 # Redis version=7.0.7, bits=64, commit=00000000, modified=0, pid=111, just started
111:C 15 Feb 2024 10:33:05.494 # Configuration loaded
111:M 15 Feb 2024 10:33:05.495 * monotonic clock: POSIX clock_gettime
111:M 15 Feb 2024 10:33:05.496 * Running mode=standalone, port=6379.
111:M 15 Feb 2024 10:33:05.496 # Server initialized
111:M 15 Feb 2024 10:33:05.497 * Loading RDB produced by version 7.0.7
111:M 15 Feb 2024 10:33:05.497 * RDB age 165 seconds
111:M 15 Feb 2024 10:33:05.497 * RDB memory usage when created 0.96 Mb
111:M 15 Feb 2024 10:33:05.498 * Done loading RDB, keys loaded: 34, keys expired: 0.
111:M 15 Feb 2024 10:33:05.498 * DB loaded from disk: 0.001 seconds
111:M 15 Feb 2024 10:33:05.498 * Ready to accept connections
I, [2024-02-15T10:33:15.489334 #1] INFO -- :
I, [2024-02-15T10:33:15.489635 #1] INFO -- : > thpoff echo "thpoff is installed!"
I, [2024-02-15T10:33:15.493689 #1] INFO -- : thpoff is installed!
I, [2024-02-15T10:33:15.493894 #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-02-15T10:33:15.558077 #1] INFO -- :
I, [2024-02-15T10:33:15.558490 #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-02-15T10:33:15.637632 #1] INFO -- :
I, [2024-02-15T10:33:15.638063 #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-02-15T10:33:15.705466 #1] INFO -- :
I, [2024-02-15T10:33:15.705909 #1] INFO -- : > rm -f /etc/cron.d/anacron
I, [2024-02-15T10:33:15.710220 #1] INFO -- :
I, [2024-02-15T10:33:15.713372 #1] INFO -- : File > /etc/cron.d/anacron chmod: chown:
I, [2024-02-15T10:33:15.718596 #1] INFO -- : File > /etc/runit/1.d/copy-env chmod: +x chown:
I, [2024-02-15T10:33:15.722935 #1] INFO -- : File > /etc/service/unicorn/run chmod: +x chown:
I, [2024-02-15T10:33:15.727457 #1] INFO -- : File > /etc/service/nginx/run chmod: +x chown:
I, [2024-02-15T10:33:15.732032 #1] INFO -- : File > /etc/runit/3.d/01-nginx chmod: +x chown:
I, [2024-02-15T10:33:15.736451 #1] INFO -- : File > /etc/runit/3.d/02-unicorn chmod: +x chown:
I, [2024-02-15T10:33:15.736788 #1] INFO -- : /etc/service/unicorn/run에서 # postgres을(를) sv start postgres || exit 1로 대체
I, [2024-02-15T10:33:15.737110 #1] INFO -- : > exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf
I, [2024-02-15T10:33:15.739873 #1] INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git reset --hard
138:C 15 Feb 2024 10:33:15.744 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
138:C 15 Feb 2024 10:33:15.744 # Redis version=7.0.7, bits=64, commit=00000000, modified=0, pid=138, just started
138:C 15 Feb 2024 10:33:15.744 # Configuration loaded
138:M 15 Feb 2024 10:33:15.746 * monotonic clock: POSIX clock_gettime
138:M 15 Feb 2024 10:33:15.746 # Warning: Could not create server TCP listening socket *:6379: bind: Address already in use
138:M 15 Feb 2024 10:33:15.746 # Failed listening on port 6379 (TCP), aborting.
Updating files: 39% (13472/33715)
Updating files: 40% (13486/33715)
Updating files: 41% (13824/33715)
Updating files: 42% (14161/33715)
Updating files: 43% (14498/33715)
Updating files: 44% (14835/33715)
Updating files: 45% (15172/33715)
Updating files: 46% (15509/33715)
Updating files: 47% (15847/33715)
Updating files: 48% (16184/33715)
Updating files: 49% (16521/33715)
Updating files: 50% (16858/33715)
Updating files: 51% (17195/33715)
Updating files: 52% (17532/33715)
Updating files: 53% (17869/33715)
Updating files: 54% (18207/33715)
Updating files: 55% (18544/33715)
Updating files: 56% (18881/33715)
Updating files: 57% (19218/33715)
Updating files: 58% (19555/33715)
Updating files: 59% (19892/33715)
Updating files: 60% (20229/33715)
Updating files: 61% (20567/33715)
Updating files: 62% (20904/33715)
Updating files: 63% (21241/33715)
Updating files: 64% (21578/33715)
Updating files: 65% (21915/33715)
Updating files: 66% (22252/33715)
Updating files: 67% (22590/33715)
Updating files: 68% (22927/33715)
Updating files: 69% (23264/33715)
Updating files: 70% (23601/33715)
Updating files: 71% (23938/33715)
Updating files: 72% (24275/33715)
Updating files: 73% (24612/33715)
Updating files: 74% (24950/33715)
Updating files: 75% (25287/33715)
Updating files: 76% (25624/33715)
Updating files: 77% (25961/33715)
Updating files: 78% (26298/33715)
Updating files: 79% (26635/33715)
Updating files: 80% (26972/33715)
Updating files: 81% (27310/33715)
Updating files: 82% (27647/33715)
Updating files: 83% (27984/33715)
Updating files: 84% (28321/33715)
Updating files: 85% (28658/33715)
Updating files: 86% (28995/33715)
Updating files: 87% (29333/33715)
Updating files: 88% (29670/33715)
Updating files: 89% (30007/33715)
Updating files: 90% (30344/33715)
Updating files: 91% (30681/33715)
Updating files: 92% (31018/33715)
Updating files: 93% (31355/33715)
Updating files: 94% (31693/33715)
Updating files: 94% (32000/33715)
Updating files: 95% (32030/33715)
Updating files: 96% (32367/33715)
Updating files: 97% (32704/33715)
Updating files: 98% (33041/33715)
Updating files: 99% (33378/33715)
Updating files: 100% (33715/33715)
Updating files: 100% (33715/33715), done.
I, [2024-02-15T10:33:18.782143 #1] INFO -- : HEAD is now at 6ab1a19e9 DEV: Convert min_trust_level_to_allow_invite to groups (#24893)
I, [2024-02-15T10:33:18.782611 #1] INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git clean -f
I, [2024-02-15T10:33:18.995525 #1] INFO -- :
I, [2024-02-15T10:33:18.995981 #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 tests-passed
git fetch --depth 1 origin tests-passed
else
git fetch --tags --prune-tags --prune --force origin
fi
'
From https://github.com/discourse/discourse
- [deleted] (none) -> origin/0-drop-code
- [deleted] (none) -> origin/bulk-button-class
- [deleted] (none) -> origin/dependabot/bundler/excon-0.108.0
- [deleted] (none) -> origin/dependabot/bundler/hashdiff-1.1.0
- [deleted] (none) -> origin/dependabot/bundler/parallel-1.24.0
- [deleted] (none) -> origin/dependabot/bundler/rubocop-discourse-3.6.0
- [deleted] (none) -> origin/dependabot/npm_and_yarn/app/assets/javascripts/uppy/drop-target-2.0.2
- [deleted] (none) -> origin/dev/add-new-chat-metrics
- [deleted] (none) -> origin/dev/allow-chat-mentions-to-have-several-notifications
- [deleted] (none) -> origin/dev/convert-min-trust-level-to-create-tag-to-group
- [deleted] (none) -> origin/dev/convert-min-trust-level-to-ignore-to-groups
- [deleted] (none) -> origin/dev/rethink-mass-mentions-polymorphic
- [deleted] (none) -> origin/feature/migrations-schema-generator
- [deleted] (none) -> origin/fix-join-filter-upload
- [deleted] (none) -> origin/fix-modal-flash-minor
- [deleted] (none) -> origin/global-notice-reactive
- [deleted] (none) -> origin/labeler
- [deleted] (none) -> origin/low-ram-help
- [deleted] (none) -> origin/multi-invite
- [deleted] (none) -> origin/plugin-extra-js
- [deleted] (none) -> origin/table-builder-modal-modifier
- [deleted] (none) -> origin/tests-passed-broken
- [deleted] (none) -> origin/wip_categories
- [deleted] (none) -> origin/wizard-split
6ab1a19e9..cb8958f20 main -> origin/main
* [new branch] 0-ember-bump -> origin/0-ember-bump
* [new branch] 0-event-helper -> origin/0-event-helper
* [new branch] 0-extend-native -> origin/0-extend-native
* [new branch] 0-fix-perf-watched-words -> origin/0-fix-perf-watched-words
* [new branch] 0-rev -> origin/0-rev
* [new branch] 0-screen-track -> origin/0-screen-track
* [new branch] add-api-for-forced-auth -> origin/add-api-for-forced-auth
* [new branch] asciinema-iframe -> origin/asciinema-iframe
* [new branch] async-category-search -> origin/async-category-search
* [new branch] bulk-select-dropdown-items -> origin/bulk-select-dropdown-items
* [new branch] convert-header-to-glimmer -> origin/convert-header-to-glimmer
* [new branch] csp-strict-dynamic -> origin/csp-strict-dynamic
* [new branch] decorator-transforms -> origin/decorator-transforms
* [new branch] dependabot/bundler/omniauth-2.0.0 -> origin/dependabot/bundler/omniauth-2.0.0
* [new branch] dependabot/bundler/parallel_tests-4.4.0 -> origin/dependabot/bundler/parallel_tests-4.4.0
* [new branch] dev-convert-topic-map-expanded-widget-to-component -> origin/dev-convert-topic-map-expanded-widget-to-component
* [new branch] dev/add-modifier-user-action-stream-builder -> origin/dev/add-modifier-user-action-stream-builder
* [new branch] dev/check-whether-online-user-ids-may-be-memoized-between-job-runs -> origin/dev/check-whether-online-user-ids-may-be-memoized-between-job-runs
+ 79ea38776...bd0faffec dev/drop-notification_id-column-on-chat-mentions -> origin/dev/drop-notification_id-column-on-chat-mentions (forced update)
* [new branch] dev/drop-the-user-id-column-from-chat-mentions -> origin/dev/drop-the-user-id-column-from-chat-mentions
+ e0c0191bb...6751ac529 dev/dry-up-user-status-serializers -> origin/dev/dry-up-user-status-serializers (forced update)
* [new branch] dev/experiment-theme-settings-free-ui -> origin/dev/experiment-theme-settings-free-ui
* [new branch] dev/groundwork-theme-settings-editor -> origin/dev/groundwork-theme-settings-editor
* [new branch] dev/make-admins-tl4-in-tests -> origin/dev/make-admins-tl4-in-tests
* [new branch] dev/promote-plugin-post-deploy-migrations -> origin/dev/promote-plugin-post-deploy-migrations
* [new branch] dev/proof-of-concept-rewriting-mentions-notification-logic -> origin/dev/proof-of-concept-rewriting-mentions-notification-logic
* [new branch] dev_category_order_database -> origin/dev_category_order_database
* [new branch] dev_update_category_position -> origin/dev_update_category_position
* [new branch] discover_enrollment -> origin/discover_enrollment
* [new branch] extra-js-revert -> origin/extra-js-revert
* [new branch] fast-edit-expand-regex -> origin/fast-edit-expand-regex
8780daeee..d92b6b19b feature/bookmark-menu-and-modal-redesign -> origin/feature/bookmark-menu-and-modal-redesign
* [new branch] feature/custom-date-range -> origin/feature/custom-date-range
* [new branch] feature/paste-upload-on-first-upload-input-templates -> origin/feature/paste-upload-on-first-upload-input-templates
* [new branch] feature_async_load_colors -> origin/feature_async_load_colors
* [new branch] feature_track_mentions -> origin/feature_track_mentions
* [new branch] fix_category_chooser -> origin/fix_category_chooser
* [new branch] fix_in_any_groups -> origin/fix_in_any_groups
* [new branch] fix_reviewable_translation -> origin/fix_reviewable_translation
7f2bdca65..4db506cea generic-import-latest -> origin/generic-import-latest
* [new branch] hijacks -> origin/hijacks
* [new branch] issue/respect-homepage-admin-sidebar-back -> origin/issue/respect-homepage-admin-sidebar-back
* [new branch] issue/run-admin-sidebar-init-after-logs-notice -> origin/issue/run-admin-sidebar-init-after-logs-notice
* [new branch] loic-rubocop-plugin-rules -> origin/loic-rubocop-plugin-rules
+ 90a3535b7...54d0135bc migrations-convert -> origin/migrations-convert (forced update)
* [new branch] promote-migration-tweak -> origin/promote-migration-tweak
* [new branch] redesign-my-threads-index -> origin/redesign-my-threads-index
* [new branch] revert-25009-dev/convert-min-trust-to-allow-self-wiki-to-groups -> origin/revert-25009-dev/convert-min-trust-to-allow-self-wiki-to-groups
* [new branch] revert-bulk-topic-actions -> origin/revert-bulk-topic-actions
* [new branch] scrolling -> origin/scrolling
* [new branch] sidebar-above-outlet -> origin/sidebar-above-outlet
* [new branch] site-logo-height -> origin/site-logo-height
d7f7f79b6..92749b738 stable -> origin/stable
* [new branch] system-test-for-soft-load-search -> origin/system-test-for-soft-load-search
6ab1a19e9..c30aeafd9 tests-passed -> origin/tests-passed
* [new branch] tmp/move-notifiers-specs -> origin/tmp/move-notifiers-specs
* [new branch] unhide_lazy_load_categories -> origin/unhide_lazy_load_categories
* [new branch] universal-nonce -> origin/universal-nonce
* [new branch] user-menu-full-name -> origin/user-menu-full-name
* [new branch] ux-label-bold -> origin/ux-label-bold
* [new branch] virtual-scroll-list -> origin/virtual-scroll-list
t [tag update] beta -> beta
t [tag update] latest-release -> latest-release
* [new tag] v3.1.4 -> v3.1.4
* [new tag] v3.1.5 -> v3.1.5
* [new tag] v3.2.0 -> v3.2.0
* [new tag] v3.2.0.beta4 -> v3.2.0.beta4
* [new tag] v3.2.0.beta5 -> v3.2.0.beta5
I, [2024-02-15T10:33:21.020697 #1] INFO -- :
I, [2024-02-15T10:33:21.020828 #1] INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse bash -c '
set -o errexit
if [[ $(git symbolic-ref --short HEAD) == tests-passed ]] ; then
git pull
else
git -c advice.detachedHead=false checkout tests-passed
fi
'
Switched to a new branch 'tests-passed'
I, [2024-02-15T10:33:27.398231 #1] INFO -- : Branch 'tests-passed' set up to track remote branch 'tests-passed' from 'origin'.
I, [2024-02-15T10:33:27.398367 #1] INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git config user.discourse-version tests-passed
I, [2024-02-15T10:33:27.409709 #1] INFO -- :
I, [2024-02-15T10:33:27.409806 #1] INFO -- : > cd /var/www/discourse && mkdir -p tmp
I, [2024-02-15T10:33:27.414863 #1] INFO -- :
I, [2024-02-15T10:33:27.415285 #1] INFO -- : > cd /var/www/discourse && chown discourse:www-data tmp
I, [2024-02-15T10:33:27.419956 #1] INFO -- :
I, [2024-02-15T10:33:27.420033 #1] INFO -- : > cd /var/www/discourse && mkdir -p tmp/pids
I, [2024-02-15T10:33:27.423192 #1] INFO -- :
I, [2024-02-15T10:33:27.423258 #1] INFO -- : > cd /var/www/discourse && mkdir -p tmp/sockets
I, [2024-02-15T10:33:27.426439 #1] INFO -- :
I, [2024-02-15T10:33:27.426506 #1] INFO -- : > cd /var/www/discourse && touch tmp/.gitkeep
I, [2024-02-15T10:33:27.437513 #1] INFO -- :
I, [2024-02-15T10:33:27.437625 #1] INFO -- : > cd /var/www/discourse && mkdir -p /shared/log/rails
I, [2024-02-15T10:33:27.443985 #1] INFO -- :
I, [2024-02-15T10:33:27.444072 #1] INFO -- : > cd /var/www/discourse && bash -c "touch -a /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log"
I, [2024-02-15T10:33:27.448513 #1] INFO -- :
I, [2024-02-15T10:33:27.448609 #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-02-15T10:33:27.452785 #1] INFO -- :
I, [2024-02-15T10:33:27.452858 #1] INFO -- : > cd /var/www/discourse && bash -c "mkdir -p /shared/{uploads,backups}"
I, [2024-02-15T10:33:27.456712 #1] INFO -- :
I, [2024-02-15T10:33:27.456788 #1] INFO -- : > cd /var/www/discourse && bash -c "ln -s /shared/{uploads,backups} /var/www/discourse/public"
I, [2024-02-15T10:33:27.460782 #1] INFO -- :
I, [2024-02-15T10:33:27.460919 #1] INFO -- : > cd /var/www/discourse && bash -c "mkdir -p /shared/tmp/{backups,restores}"
I, [2024-02-15T10:33:27.464865 #1] INFO -- :
I, [2024-02-15T10:33:27.465167 #1] INFO -- : > cd /var/www/discourse && bash -c "ln -s /shared/tmp/{backups,restores} /var/www/discourse/tmp"
I, [2024-02-15T10:33:27.468963 #1] INFO -- :
I, [2024-02-15T10:33:27.469128 #1] INFO -- : > cd /var/www/discourse && chown -R discourse:www-data /shared/log/rails /shared/uploads /shared/backups /shared/tmp
I, [2024-02-15T10:33:27.474059 #1] INFO -- :
I, [2024-02-15T10:33:27.474159 #1] INFO -- : > cd /var/www/discourse && [ ! -d public/plugins ] || find public/plugins/ -maxdepth 1 -xtype l -delete
I, [2024-02-15T10:33:27.476508 #1] INFO -- :
I, [2024-02-15T10:33:27.476825 #1] INFO -- : /etc/service/unicorn/run에서 # redis을(를) sv start redis || exit 1로 대체
I, [2024-02-15T10:33:27.477168 #1] INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/discourse/docker_manager.git
Cloning into 'docker_manager'...
I, [2024-02-15T10:33:29.856181 #1] INFO -- :
I, [2024-02-15T10:33:29.856587 #1] INFO -- : > cp /var/www/discourse/config/nginx.sample.conf /etc/nginx/conf.d/discourse.conf
I, [2024-02-15T10:33:29.860625 #1] INFO -- :
I, [2024-02-15T10:33:29.860903 #1] INFO -- : > rm /etc/nginx/sites-enabled/default
I, [2024-02-15T10:33:29.864710 #1] INFO -- :
I, [2024-02-15T10:33:29.864911 #1] INFO -- : > mkdir -p /var/nginx/cache
I, [2024-02-15T10:33:29.868193 #1] INFO -- :
I, [2024-02-15T10:33:29.868767 #1] INFO -- : /etc/nginx/nginx.conf에서 pid /run/nginx.pid;을(를) daemon off;로 대체
I, [2024-02-15T10:33:29.869091 #1] INFO -- : /etc/nginx/conf.d/discourse.conf에서 (?m-ix:upstream[^\}]+\})을(를) upstream discourse { server 127.0.0.1:3000; }로 대체
I, [2024-02-15T10:33:29.869415 #1] INFO -- : /etc/nginx/conf.d/discourse.conf에서 (?-mix:server_name.+$)을(를) server_name _ ;로 대체
I, [2024-02-15T10:33:29.869918 #1] INFO -- : /etc/nginx/conf.d/discourse.conf에서 (?-mix:client_max_body_size.+$)을(를) client_max_body_size $upload_size ;로 대체
I, [2024-02-15T10:33:29.870365 #1] INFO -- : /etc/nginx/nginx.conf에서 (?-mix:worker_connections.+$)을(를) worker_connections $nginx_worker_connections ;로 대체
I, [2024-02-15T10:33:29.870684 #1] INFO -- : > echo "done configuring web"
I, [2024-02-15T10:33:29.872978 #1] INFO -- : done configuring web
I, [2024-02-15T10:33:29.873275 #1] INFO -- : > cd /var/www/discourse && gem install bundler --conservative -v $(awk '/BUNDLED WITH/ { getline; gsub(/ /,""); print $0 }' Gemfile.lock)
I, [2024-02-15T10:33:30.711167 #1] INFO -- : Successfully installed bundler-2.5.3
1 gem installed
I, [2024-02-15T10:33:30.711498 #1] INFO -- : > cd /var/www/discourse && find /var/www/discourse ! -user discourse -exec chown discourse {} \+
I, [2024-02-15T10:33:34.307137 #1] INFO -- :
I, [2024-02-15T10:33:34.307628 #1] INFO -- : > cd /var/www/discourse && if [ "tests-passed" != "tests-passed" ]; then
rm -rf app/assets/javascripts/node_modules
fi
I, [2024-02-15T10:33:34.309730 #1] INFO -- :
I, [2024-02-15T10:33:34.309933 #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-11c50905-365e-459d-8c6c-c8b5753a7862 > discourse > @uppy/aws-s3@3.0.6" has incorrect peer dependency "@uppy/core@^3.1.2".
warning "workspace-aggregator-11c50905-365e-459d-8c6c-c8b5753a7862 > discourse > @uppy/aws-s3-multipart@3.1.3" has incorrect peer dependency "@uppy/core@^3.1.2".
warning "workspace-aggregator-11c50905-365e-459d-8c6c-c8b5753a7862 > discourse > @uppy/xhr-upload@3.1.1" has incorrect peer dependency "@uppy/core@^3.1.2".
warning "workspace-aggregator-11c50905-365e-459d-8c6c-c8b5753a7862 > discourse > ember-router-service-refresh-polyfill@1.1.0" has incorrect peer dependency "ember-source@^3.4 || 4".
warning "workspace-aggregator-11c50905-365e-459d-8c6c-c8b5753a7862 > discourse-plugins > ember-this-fallback@0.4.0" has unmet peer dependency "ember-source@^3.28.11 || ^4.0.0".
warning "workspace-aggregator-11c50905-365e-459d-8c6c-c8b5753a7862 > admin > ember-source > router_js@8.0.3" has unmet peer dependency "rsvp@^4.8.5".
warning "workspace-aggregator-11c50905-365e-459d-8c6c-c8b5753a7862 > discourse > @uppy/aws-s3 > @uppy/xhr-upload@3.3.0" has incorrect peer dependency "@uppy/core@^3.2.1".
I, [2024-02-15T10:36:32.516222 #1] INFO -- : yarn install v1.22.19
[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.19
[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@2.0.1 ✔
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 74.39s.
Done in 171.35s.
yarn cache v1.22.19
success Cleared cache.
Done in 6.23s.
I, [2024-02-15T10:36:32.521200 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'bundle config --local deployment true'
I, [2024-02-15T10:36:32.867913 #1] INFO -- :
I, [2024-02-15T10:36:32.868310 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'bundle config --local without "development test"'
I, [2024-02-15T10:36:33.035500 #1] INFO -- : You are replacing the current local value of without, which is currently "test:development"
I, [2024-02-15T10:36:33.035622 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'bundle install --retry 3 --jobs 4'
I, [2024-02-15T10:36:58.988329 #1] INFO -- : Fetching gem metadata from https://rubygems.org/.........
Fetching minitest 5.22.2
Fetching concurrent-ruby 1.2.3
Fetching bigdecimal 3.1.6
Fetching cbor 0.5.9.8
Installing concurrent-ruby 1.2.3
Installing minitest 5.22.2
Installing bigdecimal 3.1.6 with native extensions
Installing cbor 0.5.9.8 with native extensions
Fetching excon 0.109.0
Installing excon 0.109.0
Fetching fastimage 2.3.0
Fetching google-protobuf 3.25.2 (x86_64-linux)
Installing fastimage 2.3.0
Fetching highline 3.0.1
Installing highline 3.0.1
Installing google-protobuf 3.25.2 (x86_64-linux)
Fetching image_size 3.4.0
Installing image_size 3.4.0
Fetching regexp_parser 2.9.0
Fetching zeitwerk 2.6.13
Installing regexp_parser 2.9.0
Installing zeitwerk 2.6.13
Fetching logster 2.17.1
Fetching stackprof 0.2.26
Installing stackprof 0.2.26 with native extensions
Installing logster 2.17.1
Fetching nokogiri 1.16.2 (x86_64-linux)
Installing nokogiri 1.16.2 (x86_64-linux)
Fetching request_store 1.6.0
Installing request_store 1.6.0
Fetching rack-protection 3.2.0
Installing rack-protection 3.2.0
Fetching bootsnap 1.18.3
Installing bootsnap 1.18.3 with native extensions
Fetching net-http 0.4.1
Installing net-http 0.4.1
Fetching sass-embedded 1.70.0 (x86_64-linux-gnu)
Fetching puma 6.4.2
Installing sass-embedded 1.70.0 (x86_64-linux-gnu)
Installing puma 6.4.2 with native extensions
Fetching rbtrace 0.5.1
Installing rbtrace 0.5.1 with native extensions
Fetching net-imap 0.4.10
Installing net-imap 0.4.10
Fetching net-smtp 0.4.0.1
Installing net-smtp 0.4.0.1
Fetching activesupport 7.0.8
Installing activesupport 7.0.8
Fetching tzinfo-data 1.2024.1
Installing tzinfo-data 1.2024.1
Fetching faraday-net_http 3.1.0
Installing faraday-net_http 3.1.0
Fetching sassc-embedded 1.70.0
Installing sassc-embedded 1.70.0
Fetching activemodel 7.0.8
Installing activemodel 7.0.8
Fetching faraday 2.9.0
Installing faraday 2.9.0
Fetching actionview 7.0.8
Installing actionview 7.0.8
Fetching activejob 7.0.8
Installing activejob 7.0.8
Fetching activerecord 7.0.8
Installing activerecord 7.0.8
Fetching actionpack 7.0.8
Installing actionpack 7.0.8
Fetching actionmailer 7.0.8
Installing actionmailer 7.0.8
Fetching railties 7.0.8
Installing railties 7.0.8
Bundle complete! 138 Gemfile dependencies, 170 gems now installed.
Gems in the groups 'development' and 'test' were not installed.
Bundled gems are installed into `./vendor/bundle`
I, [2024-02-15T10:36:58.988791 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'LOAD_PLUGINS=0 bundle exec rake plugin:pull_compatible_all'
I, [2024-02-15T10:37:03.050745 #1] INFO -- : docker_manager is already at latest compatible version
I, [2024-02-15T10:37:03.051134 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
I, [2024-02-15T10:37:09.441141 #1] INFO -- :
I, [2024-02-15T10:37:09.441453 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile'
Node.js heap_size_limit (958.25) is less than 2048MB. Setting --max-old-space-size=2048.
111:M 15 Feb 2024 10:38:06.041 * 100 changes in 300 seconds. Saving...
111:M 15 Feb 2024 10:38:06.057 * Background saving started by pid 3440
3440:C 15 Feb 2024 10:38:06.077 * DB saved on disk
3440:C 15 Feb 2024 10:38:06.077 * Fork CoW for RDB: current 0 MB, peak 0 MB, average 0 MB
111:M 15 Feb 2024 10:38:06.157 * Background saving terminated with success
2024-02-15 10:54:01.821 UTC [49] WARNING: worker took too long to start; canceled
2024-02-15 10:55:16.957 UTC [3452] WARNING: autovacuum worker started without a worker entry
제 서버는 논리 코어 2개와 2GB RAM을 갖추고 있으며, 4GB 스왑을 활성화했습니다.
운영체제는 Ubuntu 20.04입니다.
이전 빌드에서는 전체 로그를 저장하지는 않았지만, 아래 내용을 확인했습니다.
WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
그래서 지시된 대로 조치했지만, 여전히 실행되지 않습니다.
이 줄은 SSH에서 본 마지막 줄이었고, 이후 서버가 100% 디스크 읽기 상태로 동결되었습니다. 아래 두 줄은 재부팅 후 로그 파일에서 발견한 것입니다.
자세한 정보 감사합니다. 이렇게 해주셔서 다행입니다.
하지만 이 작업을 수행해도 다음 재부팅까지만 효과가 있을 것으로 보입니다. 재부팅 후에도 다시 실행해야 합니다. 이를 영구적으로 설정하는 방법에 대한 팁은 MKJ’s Opinionated Discourse Deployment Configuration에서 확인해 보세요.
메모리(RAM+스왑)가 부족할 가능성이 있어 보입니다. 다만 2+4라면 충분해야 합니다. 다음 간단한 진단 명령을 실행한 후 결과를 공유해 주세요:
cat /etc/lsb-release
uptime
df -h /
free
swapon
vmstat 5 5
dmesg|egrep -i "memory|oom|kill"
ps auxrc
app.yml 파일도 여기에 공유해 주십시오. 단, 파일 내부의 비밀번호와 시크릿 토큰은 제외해야 합니다!
두 개의 SSH 연결을 설정할 수 있다면, 한 연결에서는 앱 재빌드를 실행하고 다른 연결에서는 시스템이 어떤 일을 하고 있는지 관찰할 수 있습니다. 저는 다음과 같이 번갈아 가며 확인하는 것을 선호합니다.
vmstat 5 5
ps auxrc
원격 디스크(네트워크 연결 저장소)로 스왑을 하고 있을 수도 있으며, 이는 잘 알려진 문제입니다. 속도가 매우 느려집니다. 이로 인해 타임아웃이 발생하여 문제가 생기는 것일 수 있습니다. 타임아웃을 조정할 수 있는 방법이 있을지도 모릅니다.
이 글을 찾았는데 도움이 될까요?
(일부 systemd 릴리스의 경우 기본 systemd 타임아웃은 90초이므로, 이는 꽤 잘 맞습니다).
postgresql의 systemd 유닛(또는 전역적으로)에서 TimeoutStartSec를 늘려서 이 문제를 우회해 볼 수 있지만, 이는 아마도 다음에 서비스가 갑자기 시작되지 않을 때까지 문제를 가리는 것에 불과할 것입니다.
수정: 만약 그렇다면 이 조언이 좋을 수 있습니다:
/etc/systemd/system.conf에서 다음 줄의 주석을 해제할 수 있습니다:DefaultTimeoutStartSec=90s DefaultTimeoutStopSec=90s그리고 적절한 값으로 변경하십시오.
도와주셔서 정말 감사합니다!
결과:
root@iZj6cgi365ov99veqodfgnZ:/# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.6 LTS"
root@iZj6cgi365ov99veqodfgnZ:/# uptime
09:24:47 up 12:57, 0 users, load average: 0.04, 0.08, 0.07
root@iZj6cgi365ov99veqodfgnZ:/# df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 59G 14G 43G 24% /
root@iZj6cgi365ov99veqodfgnZ:/# free
total used free shared buff/cache available
Mem: 1912944 536564 85752 2120 1290628 1186896
Swap: 2097148 3584 2093564
root@iZj6cgi365ov99veqodfgnZ:/# swapon
NAME TYPE SIZE USED PRIO
/swapfile file 2G 3.5M -2
root@iZj6cgi365ov99veqodfgnZ:/# vmstat 5 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 3868 98444 398504 870220 0 0 10 5 90 125 1 0 99 0 0
0 0 3868 100300 398512 870424 0 0 1 3 1188 2171 1 1 98 0 0
2 0 3868 99828 398520 870424 0 0 0 4 1117 2067 1 1 98 0 0
0 0 3868 99324 398528 870428 0 0 0 5 1181 2186 1 0 98 0 0
0 0 3868 104112 398584 870428 0 0 0 41 1144 2104 1 1 98 0 0
root@iZj6cgi365ov99veqodfgnZ:/# dmesg|egrep -i "memory|oom|kill"
[ 0.005681] check: Scanning 1 areas for low memory corruption
[ 0.005904] ACPI: Reserving FACP table memory at [mem 0x7a9e0bfe-0x7a9e0c71]
[ 0.005905] ACPI: Reserving DSDT table memory at [mem 0x7a9e0040-0x7a9e0bfd]
[ 0.005905] ACPI: Reserving FACS table memory at [mem 0x7a9e0000-0x7a9e003f]
[ 0.005906] ACPI: Reserving SSDT table memory at [mem 0x7a9e0c72-0x7a9e18d7]
[ 0.005906] ACPI: Reserving APIC table memory at [mem 0x7a9e18d8-0x7a9e1957]
[ 0.005907] ACPI: Reserving SRAT table memory at [mem 0x7a9e1958-0x7a9e1a1f]
[ 0.006464] Early memory node ranges
[ 0.013922] PM: Registered nosave memory: [mem 0x00000000-0x00000fff]
[ 0.013924] PM: Registered nosave memory: [mem 0x0009f000-0x0009ffff]
[ 0.013925] PM: Registered nosave memory: [mem 0x000a0000-0x000effff]
[ 0.013926] PM: Registered nosave memory: [mem 0x000f0000-0x000fffff]
[ 0.013928] PM: Registered nosave memory: [mem 0x14000000-0x1511ffff]
[ 0.018845] Memory: 1851216K/1990960K available (14339K kernel code, 2395K rwdata, 9288K rodata, 2768K init, 17228K bss, 139744K reserved, 0K cma-reserved)
[ 0.039645] Freeing SMP alternatives memory: 40K
[ 0.042284] x86/mm: Memory block size: 128MB
[ 0.275835] Freeing initrd memory: 53892K
[ 0.276020] check: Scanning for low memory corruption every 60 seconds
[ 0.658145] Freeing unused decrypted memory: 2040K
[ 0.658779] Freeing unused kernel image memory: 2768K
[ 0.659406] Freeing unused kernel image memory: 2036K
[ 0.659689] Freeing unused kernel image memory: 952K
root@iZj6cgi365ov99veqodfgnZ:/# ps auxrc
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 8756 0.1 3.0 684704 58528 ? Rl 09:16 0:00 node
root 9225 0.0 0.1 11488 3248 pts/0 R+ 09:26 0:00 ps
app.yml:
## this is the all-in-one, standalone Discourse Docker container template
##
## After making changes to this file, you MUST rebuild
## /var/discourse/launcher rebuild app
##
## BE *VERY* CAREFUL WHEN EDITING!
## YAML FILES ARE SUPER SUPER SENSITIVE TO MISTAKES IN WHITESPACE OR ALIGNMENT!
## visit http://www.yamllint.com/ to validate this file as needed
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
## Uncomment the next line to enable the IPv6 listener
#- "templates/web.ipv6.template.yml"
- "templates/web.ratelimited.template.yml"
## Uncomment these two lines if you wish to add Lets Encrypt (https)
- "templates/web.ssl.template.yml"
- "templates/web.letsencrypt.ssl.template.yml"
## which TCP/IP ports should this container expose?
## If you want Discourse to share a port with another webserver like Apache or nginx,
## see https://meta.discourse.org/t/17247 for details
expose:
- "80:80" # http
- "443:443" # https
params:
db_default_text_search_config: "pg_catalog.english"
## Set db_shared_buffers to a max of 25% of the total memory.
## will be set automatically by bootstrap based on detected RAM, or you can override
db_shared_buffers: "256MB"
upload_size: 300m
## can improve sorting performance, but adds memory usage per-connection
#db_work_mem: "40MB"
## Which Git revision should this container use? (default: tests-passed)
#version: tests-passed
env:
LC_ALL: en_US.UTF-8
LANG: en_US.UTF-8
LANGUAGE: en_US.UTF-8
DISCOURSE_DEFAULT_LOCALE: zh_CN
## How many concurrent web requests are supported? Depends on memory and CPU cores.
## will be set automatically by bootstrap based on detected CPUs, or you can override
UNICORN_WORKERS: 2
## TODO: The domain name this Discourse instance will respond to
## Required. Discourse will not work with a bare IP number.
DISCOURSE_HOSTNAME: *
## Uncomment if you want the container to be started with the same
## hostname (-h option) as specified above (default "$hostname-$config")
#DOCKER_USE_HOSTNAME: true
## TODO: List of comma delimited emails that will be made admin and developer
## on initial signup example 'user1@example.com,user2@example.com'
DISCOURSE_DEVELOPER_EMAILS: *
## TODO: The SMTP mail server used to validate new accounts and send notifications
# SMTP ADDRESS, username, and password are required
# WARNING the char '#' in SMTP password can cause problems!
DISCOURSE_SMTP_ADDRESS: *
DISCOURSE_SMTP_PORT: *
DISCOURSE_SMTP_USER_NAME: *
DISCOURSE_SMTP_PASSWORD: *
#DISCOURSE_SMTP_ENABLE_START_TLS: true # (optional, default true)
DISCOURSE_SMTP_DOMAIN: *
DISCOURSE_NOTIFICATION_EMAIL: *
## If you added the Lets Encrypt template, uncomment below to get a free SSL certificate
LETSENCRYPT_ACCOUNT_EMAIL: me@example.com
## The http or https CDN address for this Discourse instance (configured to pull)
## see https://meta.discourse.org/t/14857 for details
#DISCOURSE_CDN_URL: https://discourse-cdn.example.com
## The maxmind geolocation IP address key for IP address lookup
## see https://meta.discourse.org/t/-/137387/23 for details
#DISCOURSE_MAXMIND_LICENSE_KEY: 1234567890123456
## The Docker container is stateless; all data is stored in /shared
volumes:
- volume:
host: /var/discourse/shared/standalone
guest: /shared
- volume:
host: /var/discourse/shared/standalone/log/var-log
guest: /var/log
## Plugins go here
## see https://meta.discourse.org/t/19157 for details
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/docker_manager.git
## Any custom commands to run after building
run:
- exec: echo "Beginning of custom commands"
## If you want to set the 'From' email address for your first registration, uncomment and change:
## After getting the first signup email, re-comment the line. It only needs to run once.
#- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
- exec: echo "End of custom commands"
앞서 언급했듯이 저는 클라우드 서버를 사용하고 있습니다. 사실, 클라우드 서버 대시보드는 서버 상태를 실시간으로 모니터링할 수 있게 해 주며, 저는 대시보드 데이터를 통해 서버가 멈췄다는 것을 알게 된 후에야 디스크 읽기 100% 상태였다는 사실을 인지하게 되었습니다. 평소에는 다른 터미널을 열어 top 명령어를 실행합니다. 크래시가 발생하기 전, top에서 cpu wa 값이 90 이상으로 올라가는 것을 볼 수 있었습니다.
디스크에 대해서는… 클라우드 서비스 제공업체가 디스크를 어떻게 연결하는지 정확히 모르겠습니다. 대시보드에서 디스크가 약 2500 IOPS의 읽기 속도로 풀로드 상태로 작동하는 것을 관찰했습니다.
또한, 제 모든 서비스가 시스템 디스크에서 실행되고 있으므로, 타임아웃을 유발할 정도로 레이턴시가 높을 것이라고는 생각하지 않습니다. 결국 시스템 자체도 극도로 높은 레이턴시를 견디지 못할 테니까요.
저는 리눅스에 대해 잘 모릅니다. 따라서 위 내용은 제 추측일 뿐입니다. 조언이 있으시면 언제든 공유해 주시면 감사하겠습니다. 커뮤니티에서 받을 수 있는 모든 도움에 진심으로 감사드립니다.
(번역 소프트웨어를 사용하고 있으므로, 언어 표현이 부정확하거나 어색한 부분이 있다면 양해 부탁드립니다.)
로그에서 OOM 관련 내용을 검색하고 계신 것 같네요? 지난 크래시 이후로 재시작을 했기 때문에, 이전 실행에 대한 기록이 로그에 남아 있을지 확실하지 않습니다.
사실 저는 이 명령어를 실행하지 않았습니다. 대신 sysctl.conf 파일을 편집했는데, 이것이 영구적인 조치일까요?
다음은 Aliyun 대시보드에서 가져온 모니터링 데이터입니다.
크래시 이후 ‘cpu_total’ 데이터가 단절되어 간헐적으로만 수집되고 있으며, 이로 인해 차트의 그래프 선이 뚜렷한 톱니 모양으로 나타납니다. 그러나 IOPS 데이터는 비교적 연속적으로 유지되고 있습니다.
이 시점에서 RAM 사용량은 거의 100% 수준을 유지하고 있습니다. 하지만 공식 Discourse 문서에는 소규모 커뮤니티에는 1GB가 완전히 충분하다고 되어 있지 않나요?
- 기본값인 1GB RAM은 소규모 Discourse 커뮤니티에서 문제없이 작동합니다. 대규모 커뮤니티에는 2GB RAM을 권장합니다.
discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub
완전히 당황스럽습니다.
커뮤니티 운영에는 충분하지만, 재구축(rebuild)에는 최소 2GB가 필요합니다. 메모리 부족 관련 질문이 너무 많으므로 이 부분은 업데이트되어야 합니다.
하지만 여러분의 문제가 그것에서 비롯된 것인지는 알 수 없습니다.
그 전에 그런 이야기를 들어본 적이 없습니다. 1GB 램 서버로 콘솔 재구축에 성공한 적이 있지만, UX 업데이트 시도 중 일부는 실패했습니다.
램 대신 스왑 메모리를 추가하는 것이 도움이 될 수 있습니다.
최근 코어 시스템에 상당한 변경 사항이 있었다고 언급했기 때문에, 최신 버전의 discourse는 이전 버전보다 잘 작동하려면 더 많은 메모리가 필요할 수 있습니다.
더 낮은 버전의 Discourse를 설치하는 것은 일시적으로 가능해 보입니다… 하지만 이것이 현재 문제를 실제로 해결할까요? 아니면, 더 낮은 버전을 성공적으로 설치할 수 있다면, 최신 버전의 Discourse를 빌드하는 데 2GB의 RAM이 실제로 부족하다는 것을 의미하는 것일까요?
새로운 사용자의 일일 답변 한도에 도달했습니다… 그래서 이 답변을 편집하여 추가 정보를 넣을 수밖에 없습니다. 죄송합니다.
저는 Aliyun의 Simple Application Server를 사용 중이며, 구성을 4GB RAM으로 업그레이드할 수 있습니다. 그러나 패키지의 저렴한 가격 때문에 네트워크 구성도 함께 업그레이드되는데, 이는 제가 필요하지 않은 부분입니다. 특히 가격이 거의 두 배가 되는 점을 고려하면 더 그렇습니다. 또한 이 서버는 데이터를 백업한 후 구성을 다운그레이드하는 것을 지원하지 않으므로, 2코어 2GB RAM 구성만 사용할 수 있을 것입니다. 대안으로, 월정액이 아닌 단기적으로 고성능 서버를 열어 빌드를 완료한 후, 빌드된 앱을 어딘가에 업로드하고 제 서버에서 다운로드하여 직접 실행할 수 있는 방법이 있을까요? 시스템 소프트웨어 환경이 동일하다면 이것이 가능할까요? Docker와 빌드 프로세스에 대해 잘 알지 못하므로, 유사한 해결책이 있다면 누군가 설명해 주시면 감사하겠습니다.
별도 줄…
현재 제 서버는 2코어, 2GB RAM, 60GB ESSD 시스템 디스크, 2TB 트래픽, 최대 30Mbps 대역폭, 그리고 공개 IP를 포함하고 있습니다. 월 비용은 34 RMB(약 4.78 USD)로, 매우 저렴하다고 생각합니다.
이렇게 가격이 매우 저렴하기 때문에, 구성 항목을 패키지로 변경할 수 없고 업그레이드 후 다운그레이드할 수 없다는 단점을 감수해야 합니다
.
구분선…
좋습니다, 방금 서버를 재시작했습니다. 놀랍게도 저장된 로그의 끝에 제 눈에 띈 줄이 하나 있습니다. 이전에 본 적이 없는 것 같습니다.
3440:C 16 Feb 2024 03:03:04.088 * DB saved on disk
3440:C 16 Feb 2024 03:03:04.088 * Fork CoW for RDB: current 0 MB, peak 0 MB, average 0 MB
111:M 16 Feb 2024 03:03:04.167 * Background saving terminated with success
111:M 16 Feb 2024 03:58:50.500 * Replication backlog freed after 3600 seconds without connected replicas.
이제 스왑 파일 크기를 늘리고 vmstat을 실행한 채로 다시 시도해 보겠습니다.
잠시만요… 갑자기 VSCode로 서버에 연결하고 있고, 루트 디렉터리 '/'를 워크스페이스로 직접 설정해 놓았다는 것을 깨달았습니다. VSCode는 큰 워크스페이스의 경우 파일 변경 사항을 추적하지 못할 수 있다고 경고했지만, 여전히 일부 IO와 디스크 리소스를 소비하는 것은 맞겠죠…? 워크스페이스를 열지 않고 터미널로만 연결하여 빌드를 시도해 보겠습니다. 지금은 이것이 문제인지 확인하기 위해 스왑을 늘리지 않겠습니다.
그것이 가능하다고 생각하지 않습니다. 새로운 설치에 사용할 이전 버전의 사본을 누군가가 저장해 두지 않는 한 말입니다.
저 역시 전문가가 아니지만, 여기에는 여러분이 찾는 답을 알고 있을 전문가들이 있습니다.
재구축을 위해 일시적으로 RAM을 추가할 수 있다면, 그 후 서버 비용을 줄이기 위해 RAM을 이전 수준으로 낮출 수 있을 것입니다.
수정: 신규 회원이므로 오늘 더 이상 답변을 남길 수 없네요. 내일 더 이야기할 수 있겠습니다.
아래는 DigitalOcean 서버의 가격 그래프입니다. 디스크에 변경 사항이 없는 한, 이러한 변경 사항은 되돌릴 수 있습니다:
답변과 추가 세부 정보에 감사드립니다.
사실, 재부팅 이후가 아니라 이전에 OOM(Out of Memory) 및 유사한 항목을 검색하는 것이 더 유용할 것입니다. 따라서 아직 재부팅을 하지 않았다면 다시 실행해 주십시오.
재건(rebuild)이 중요한 구간에 도달할 때, 두 번째 연결에서 동시에 vmstat 5를 실행하면 유용한 정보를 얻을 수 있을 것입니다.
하지만 실제로는 저에게 두 가지 가설만 있습니다.
- 메모리 부족으로 인해 진행 속도가 느려지거나, 일부 프로세스가 종료될 수 있음
- 진행 속도가 느려서 시간 부족이 발생함
RAM을 늘리거나 줄이는 것 모두를 허용하지 않는 공급업체 정책이 안타깝습니다.
초기 설치와 1~2개월마다 재건이 필요한 후속 업데이트는 이전보다 더 많은 메모리가 필요합니다. 하지만
memory=RAM+swap
이므로, 시간적 압박이 없다면 swap을 추가하는 것이 성공할 것입니다.
디스크 공간이 충분합니다. 두 번째와 세 번째 swapfile을 추가하는 것을 권장합니다. 새 파일을 만들도록 수정된 아래 지침을 참조하십시오.
이미 /swapfile이 있으므로, /swapfile.1과 /swapfile.2로 이름을 바꿔 이 명령들을 실행하십시오.
그 후
swapon
을 실행하면 세 개의 파일이 사용 중이거나 사용 준비 상태임을 보여야 하며,
free
를 실행하면 약 2GB의 RAM과 약 6GB의 swap이 표시되어야 합니다.
그리고 다시 시도하십시오!
수정: 제 1GB RAM 인스턴스에서 app.yml에
db_shared_buffers: "128MB"
가 있는 것을 발견했습니다.
app.yml을 수정할 때는 매우 주의하십시오 - 공백을 추가하거나 제거하지 마십시오!
정말 모두에게 감사드립니다! 문제가 해결되었고, 부트스트랩도 성공적으로 완료되었습니다. 문제는 실제로 VSCode 때문이었던 것 같습니다. 루트 디렉토리를 워크스페이스로 직접 설정했기 때문에, 설치 과정에서 VSCode가 모든 파일 변경 사항을 추적하려 했기 때문일 것입니다. 제 추측입니다. 이전에는 크래시가 발생했을 때 디스크 읽기량이 정점에 달한 반면 쓰기량은 낮았던 것이 궁금했습니다. 만약 스왑 사용량이 많았다면 쓰기량도 더 높아야 했을 텐데 말이죠. 이제는 VSCode가 계속 파일 변경 사항을 읽고 있었기 때문인 것 같습니다. 시스템에 너무 많은 변경을 가했기 때문에, 클라우드 서버를 초기화하고 처음부터 설치를 다시 진행할 계획입니다. 도움을 주신 모든 분들께 감사드립니다. 모두 제 탓이었습니다.
이제 앱을 성공적으로 빌드했고, 빌드 중 최대 메모리 사용량은 RAM 2GB + 스왑 약 2GB였습니다. 빌드 중 SSH 연결에 일부 지연이 있었지만, 연결이 끊기지는 않았고 전반적으로 비교적 빨랐습니다. 스왑 사용량이 정점에 달했을 때, 실제로 제 ESSD의 최대 읽기 속도 한계에 도달했지만, 매우 짧은 시간이었고 큰 영향은 없었습니다.
축하합니다, Tumbleweed @tumbleweed !!
![]()



