이 플러그인을 설치한 후 앱을 다시 빌드할 수 없습니다

안녕하세요,
DigitalOcean에서 테스트 설치를 진행 중입니다. 그러나 일부 PLUGINS를 추가한 후 App을 다시 빌드(Rebuild)할 수 없습니다. 문제는, 제가 추가한 플러그인을 제거한 후에도 여전히 다시 빌드가 되지 않는다는 것입니다.
플러그인 코드 블록의 첫 번째 플러그인은 DigitalOcean 설치 시 기본적으로 포함된 것이므로, 같은 형식을 따랐습니다. 그래서 무엇이 잘못되었을 수 있을까요?

아래에 전체 yaml 파일을 첨부합니다.

Welcome to Ubuntu 22.04.4 LTS (GNU/Linux 5.15.0-113-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Sun Jul 14 23:46:41 UTC 2024

  System load:  0.0                Processes:             96
  Usage of /:   25.4% of 67.66GB   Users logged in:       0
  Memory usage: 11%                
  Swap usage:   2%                 

Enable ESM Apps to receive additional future security updates.
See https://ubuntu.com/esm or run: sudo pro status


********************************************************************************

Welcome to the DigitalOcean Discourse 1-Click Application

On your first login you will be prompted to configure your Discourse installation.

All Discourse scripts and files may be found in /var/discourse and the setup
utility can be run again by launching discourse-setup in that directory.

For help and more information, visit https://do.co/3dmapBw

********************************************************************************
To delete this message of the day: rm -rf /etc/update-motd.d/99-one-click

root@xxxxx:~# cd /var/discourse
nano containers/app.yml
root@xxxxxx:/var/discourse# ./launcher rebuild app
x86_64 arch detected.
Ensuring launcher is up to date
Fetching origin
Launcher is up-to-date
Stopping old container
+ /usr/bin/docker stop -t 600 app
app
2.0.20240708-0023: Pulling from discourse/base
Digest: sha256:025e9c1f6848c4726544c6ae873d710c62f547b72afb7f537aaa44eb5377cb5c
Status: Image is up to date for discourse/base:2.0.20240708-0023
docker.io/discourse/base:2.0.20240708-0023
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2024-07-14T23:48:26.474524 #1]  INFO -- : Reading from stdin
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/merge_command.rb:50:in `merge': no implicit conversion of String into Hash (TypeError)

      first.merge(second, &merger)
                  ^^^^^^^^^^^^^^^
	from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/merge_command.rb:50:in `deep_merge'
	from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/cli.rb:61:in `block in run'
	from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/cli.rb:57:in `each'
	from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/cli.rb:57:in `run'
	from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/bin/pups:9:in `<top (required)>'
	from /usr/local/bin/pups:25:in `load'
	from /usr/local/bin/pups:25:in `<main>'
bootstrap failed with exit code 1
** 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.
b32a86eece508c0f95a8edacaf4ab693200cd5c64d54dea565466219f6d65e7f
root@xxxxx:/var/discourse# ./discourse-doctor
DISCOURSE DOCTOR Sun Jul 14 23:48:49 UTC 2024
OS: Linux ogatrainer 5.15.0-113-generic #123-Ubuntu SMP Mon Jun 10 08:16:17 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux


Found containers/app.yml

==================== YML SETTINGS ====================
DISCOURSE_HOSTNAME=xxxxxxxxxxxxxxx
SMTP_ADDRESS=xxxxxxxxxxxxxxxx
DEVELOPER_EMAILS=xxxxxxxxxxxx
SMTP_PASSWORD=xxxxxxxxxxxx
SMTP_PORT=xxx
SMTP_USER_NAME=xxxxxxxxxxxxx
LETSENCRYPT_ACCOUNT_EMAIL=me@example.com

==================== DOCKER INFO ====================
DOCKER VERSION: Docker version 27.0.3, build 7d4bcd8

DOCKER PROCESSES (docker ps -a)

CONTAINER ID   IMAGE                 COMMAND        CREATED      STATUS                      PORTS     NAMES
aa1792677667   local_discourse/app   "/sbin/boot"   2 days ago   Exited (5) 23 minutes ago             app

==================== SERIOUS PROBLEM!!!! ====================
app not running!
Attempting to rebuild
==================== REBUILD LOG ====================
x86_64 arch detected.
Ensuring launcher is up to date
Fetching origin
Launcher is up-to-date
Stopping old container
+ /usr/bin/docker stop -t 600 app
app
2.0.20240708-0023: Pulling from discourse/base
Digest: sha256:025e9c1f6848c4726544c6ae873d710c62f547b72afb7f537aaa44eb5377cb5c
Status: Image is up to date for discourse/base:2.0.20240708-0023
docker.io/discourse/base:2.0.20240708-0023
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2024-07-14T23:48:56.604647 #1]  INFO -- : Reading from stdin
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/merge_command.rb:50:in `merge': no implicit conversion of String into Hash (TypeError)

      first.merge(second, &merger)
                  ^^^^^^^^^^^^^^^
	from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/merge_command.rb:50:in `deep_merge'
	from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/cli.rb:61:in `block in run'
	from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/cli.rb:57:in `each'
	from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/cli.rb:57:in `run'
	from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/bin/pups:9:in `<top (required)>'
	from /usr/local/bin/pups:25:in `load'
	from /usr/local/bin/pups:25:in `<main>'
bootstrap failed with exit code 1
** 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.
b9a2b268dd5c4ea7a1c3c878bb3bb9c121a068b543239cc4210180e2089ea888
==================== END REBUILD LOG ====================
Failed to rebuild app.

Checking your domain name . . .

Connection to xxx.xxxxx.com succeeded.
You should probably remove any non-standard plugins and rebuild.
Attempting to restart existing container. . . 
x86_64 arch detected.

starting up existing container
+ /usr/bin/docker start app
Error response from daemon: driver failed programming external connectivity on endpoint app (830abdf507c266ee25442d83f063be25c235c2d0710065d32a3ad9157f318d5c): failed to bind port 0.0.0.0:443/tcp: Error starting userland proxy: listen tcp4 0.0.0.0:443: bind: address already in use
Error: failed to start containers: app
Failed to restart the container.


==================== PLUGINS ====================
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-reactions.git
          - git clone https://github.com/discourse/discourse-solved.git
          - git clone https://github.com/paviliondev/discourse-landing-pages.git
          - git clone https://github.com/discourse/discourse-post-voting.git
          - git clone https://github.com/discourse/discourse-calendar.git
          - git clone https://github.com/discourse/discourse-topic-voting.git
          - git clone https://github.com/discourse/discourse-zoom.git
          - git clone https://github.com/discourse/discourse-follow.git
          - git clone https://github.com/discourse/discourse-ai.git
          - git clone https://github.com/discourse/discourse-subscriptions.git
          - git clone https://github.com/discourse/discourse-affiliate.git
          - git clone https://github.com/discourse/discourse-gamification.git
          - git clone https://github.com/discourse/discourse-adplugin.git
          - git clone https://github.com/discourse/discourse-calendar.git
          - git clone https://github.com/discourse/discourse-whos-online.git
          - git clone https://github.com/discourse/discourse-signatures.git
          - git clone https://github.com/discourse/discourse-cakeday.git
          - git clone https://github.com/discourse/discourse-user-notes.git
          - git clone https://github.com/discourse/discourse-akismet.git
          - git clone https://github.com/procourse/procourse-static-pages.git

WARNING:
You have what appear to be non-official plugins.
If you are having trouble, you should disable them and try rebuilding again.

See https://github.com/discourse/discourse/blob/main/lib/plugin/metadata.rb for the official list.

========================================
Discourse version at xxx.xxxxxx.com: NOT FOUND
Discourse version at localhost: NOT FOUND


==================== MEMORY INFORMATION ====================
RAM (MB): 2059

               total        used        free      shared  buff/cache   available
Mem:            1963         214        1299           3         449        1588
Swap:           2047          46        2001

==================== DISK SPACE CHECK ====================
---------- OS Disk Space ----------
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        68G   18G   51G  26% /

==================== DISK INFORMATION ====================
Disk /dev/loop0: 87.03 MiB, 91258880 bytes, 178240 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop1: 38.83 MiB, 40714240 bytes, 79520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop2: 63.29 MiB, 66359296 bytes, 129608 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop3: 49.84 MiB, 52260864 bytes, 102072 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop4: 111.95 MiB, 117387264 bytes, 229272 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop5: 63.95 MiB, 67051520 bytes, 130960 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/vda: 70 GiB, 75161927680 bytes, 146800640 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: C2901603-FAE8-45CB-86FE-13D02E6B6DC6

Device      Start       End   Sectors  Size Type
/dev/vda1  227328 146800606 146573279 69.9G Linux filesystem
/dev/vda14   2048     10239      8192    4M BIOS boot
/dev/vda15  10240    227327    217088  106M EFI System

Partition table entries are not in disk order.


Disk /dev/vdb: 472 KiB, 483328 bytes, 944 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

==================== END DISK INFORMATION ====================



********************************************************************************

Welcome to the DigitalOcean Discourse 1-Click Application

On your first login you will be prompted to configure your Discourse installation.

All Discourse scripts and files may be found in /var/discourse and the setup
utility can be run again by launching discourse-setup in that directory.

For help and more information, visit https://do.co/3dmapBw

********************************************************************************
To delete this message of the day: rm -rf /etc/update-motd.d/99-one-click
Last login: Sun Jul 14 23:46:42 2024 from xxx.xxx.xxxx
root@xxxxxxx:~# cd /var/discourse
root@xxxxxxx:/var/discourse# ./launcher rebuild app
x86_64 arch detected.
Ensuring launcher is up to date
Fetching origin
Launcher is up-to-date
Stopping old container
+ /usr/bin/docker stop -t 600 app
app
2.0.20240708-0023: Pulling from discourse/base
Digest: sha256:025e9c1f6848c4726544c6ae873d710c62f547b72afb7f537aaa44eb5377cb5c
Status: Image is up to date for discourse/base:2.0.20240708-0023
docker.io/discourse/base:2.0.20240708-0023
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2024-07-15T00:40:19.347084 #1]  INFO -- : Reading from stdin
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/merge_command.rb:50:in `merge': no implicit conversion of String into Hash (TypeError)

      first.merge(second, &merger)
                  ^^^^^^^^^^^^^^^
	from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/merge_command.rb:50:in `deep_merge'
	from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/cli.rb:61:in `block in run'
	from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/cli.rb:57:in `each'
	from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/cli.rb:57:in `run'
	from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/bin/pups:9:in `<top (required)>'
	from /usr/local/bin/pups:25:in `load'
	from /usr/local/bin/pups:25:in `<main>'
bootstrap failed with exit code 1
** 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.
22325d070d60382ffc6f404d14ee2be77c418596cb35edd4c967ffcbef5754eb
root@xxxxxx:/var/discourse# cd ..
root@xxxxxx:/var# cd ..
root@xxxxxx:/# cd /var/discourse
nano containers/app.yml

  GNU nano 6.2                                                   containers/app.yml                                                             
es## 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

이 설치 방식은 여기에서 지원되지 않습니다. 대신 기본 VPS를 사용하고 표준 설치 과정을 따라야 합니다.

그거 결국 밑에서 표준 설치만 수행하는 거 아닌가요?

어떤 새 플러그인을 설치하셨나요?

파일을 살펴본 추측으로는 “procourse” 플러그인을 주석 처리해 보시는 것이 좋겠습니다. 목록에서 마지막에 있는 플러그인입니다.

https://github.com/procourse/procourse-static-pages.git

원래 플러그인은 더 이상 유지보수되지 않습니다. 포크가 있습니다.

그렇다고 해도 코어 변경 사항으로 인해 다시 깨져 있을 수 있습니다.


플러그인을 설치하는 것은 다소 번거로운 작업입니다. 하지만 하나를 추가하고 다시 빌드한 후, 빌드가 성공적으로 완료되었는지 및 사이트가 정상적으로 작동하는지 확인하세요. 그런 다음 다음 플러그인을 설치하는 과정으로 진행하세요.

솔직히 나도 모르겠지만, 최근 이 게시물들을 보고 나니 조심스러워졌어.

먼저 procourse와 pavilion 플러그인을 제거하겠습니다.

다들 감사합니다. Digital Ocean 설치 방식은 지원되지 않아서 그냥 포기했습니다. 대신 공식 문서에 나와 있고 커뮤니티에서도 지원하는 표준 설치 과정을 따랐는데, 새로운 문제가 생겼습니다. 초기 활성화 이메일이 전송되지 않는 겁니다. 좀 이상하네요.