セットアップ中にブートストラップに失敗しました

Discourse のセットアップで以下のエラーが発生しました:

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && gem update bundler failed with return #<Process::Status: pid 297 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"web", "cmd"=>["gem update bundler", "find $home ! -user discourse -exec chown discourse {} \\+"]}
d85fae83cd3f933238f0e21e6e562469400baf63643d9c6dcd138c739dfa0830
** FAILED TO BOOTSTRAP ** 上記のエラーメッセージをスクロールして、より以前のエラーメッセージも確認してください。複数のエラーが含まれている可能性があります。
./discourse-doctor を使用すると、問題の診断に役立つ場合があります。

いくつかの解決策を試しましたが、うまくいきませんでした。

「いいね!」 1

Discourse Doctorを試しましたか?

「いいね!」 1
./discourse-doctor
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && gem update bundler が失敗しました。戻り値: #<Process::Status: pid 298 exit 1>
失敗場所: /pups/lib/pups/exec_command.rb:112:in `spawn'
以下のパラメータで exec が失敗しました: {"cd"=>"$home", "hook"=>"web", "cmd"=>["gem update bundler", "find $home ! -user discourse -exec chown discourse {} \\+"]}
00e8acc18f87b395d0b4f8de4d859dad8c8824b148243fa8f0c6085e5b0982a4
** ブートストラップに失敗しました ** 上記にスクロールして、それ以前のエラーメッセージを確認してください。複数のエラーが存在する可能性があります。
./discourse-doctor を使用して問題を診断できる場合があります。
==================== END REBUILD LOG ====================
アプリの再構築に失敗しました。

ドメイン名を確認しています...

sosyal.dursuncanpoyraz.com.tr への接続に成功しました。
標準外のプラグインを削除して再構築することをお勧めします。
既存のコンテナを再起動しようとしています...

+ /usr/bin/docker run --shm-size=512m -d --restart=always -e LANG=en_US.UTF-8 -e RAILS_ENV=production -e UNICORN_WORKERS=4 -e UNICORN_SIDEKIQS=1 -e RUBY_GLOBAL_METHOD_CACHE_SIZE=131072 -e RUBY_GC_HEAP_GROWTH_MAX_SLOTS=40000 -e RUBY_GC_HEAP_INIT_SLOTS=400000 -e RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=1.5 -e DISCOURSE_DB_SOCKET=/var/run/postgresql -e DISCOURSE_DB_HOST= -e DISCOURSE_DB_PORT= -e LETSENCRYPT_DIR=/shared/letsencrypt -e DISCOURSE_DEFAULT_LOCALE=en -e DISCOURSE_HOSTNAME=sosyal.dursuncanpoyraz.com.tr -e DISCOURSE_DEVELOPER_EMAILS=poyrazdursuncan@gmail.com -e DISCOURSE_SMTP_ADDRESS=smtp.gmail.com -e DISCOURSE_SMTP_PORT=587 -e DISCOURSE_SMTP_USER_NAME=poyrazdursuncan@gmail.com -e 'DISCOURSE_SMTP_PASSWORD=Poyraz!19681973' -e DISCOURSE_SMTP_ENABLE_START_TLS=true -e LETSENCRYPT_ACCOUNT_EMAIL= -h localhost-app -e DOCKER_HOST_IP=172.17.0.1 --name app -t -p 80:80 -p 443:443 -v /var/discourse/shared/standalone:/shared -v /var/discourse/shared/standalone/log/var-log:/var/log --mac-address 02:78:00:1c:c3:10 local_discourse/app /sbin/boot
ローカルにイメージ 'local_discourse/app:latest' が見つかりません
docker: デーモンからのエラー応答: local_discourse/app へのプルアクセスが拒否されました。リポジトリが存在しないか、'docker login' が必要かもしれません: 拒否: 要求されたリソースへのアクセスが拒否されました。
詳細は 'docker run --help' を参照してください。
コンテナの再起動に失敗しました。


==================== PLUGINS ====================
          - git clone https://github.com/discourse/docker_manager.git

非公式のプラグインは検出されませんでした。

公式リストについては、https://github.com/discourse/discourse/blob/master/lib/plugin/metadata.rb を参照してください。

========================================
「いいね!」 1

FAILED メッセージの上に数行追加してください。これは新規インストールと想定されますか?そうでない場合、app.yml ファイルに変更を加えましたか?

「いいね!」 1

どうやら Docker がベースイメージをプルできないようです。以前 Docker Hub にログインしたものの、ログインが期限切れになった場合にこの現象が発生した記憶があります。あるいは、レート制限に達している可能性もあります。

「いいね!」 2

仮想サーバーのセキュリティルールが原因でしょうか?仮想サーバーに初めて接続した際も、同じエラーが発生しました。

追記:
Docker の知識はありません。昨日から学習を始めており、昨日は最大で 20 個のイメージをプルしました。

「いいね!」 1

解決策はありませんか?助けてくれる方はいますか?

新しい VM を起動するか、簡単な Docker プログラムを実行してみてください。Hello World のようなサンプルがあります。Docker が正常に動作するかどうかを確認できます。

「いいね!」 1

Docker は正常に動作しています。Docker を使って TeamSpeak 3 をインストールし、さらに Nginx もインストールしてポート 80 のテストも行いました。しかし、Discourse のコマンド実行時にエラーが発生します。

ゼロからセットアップを開始しました。

root@localhost:~# su -
root@localhost:~# git clone https://github.com/discourse/discourse_docker.git /var/discourse
Cloning into '/var/discourse'...
remote: Enumerating objects: 5025, done.
remote: Total 5025 (delta 0), reused 0 (delta 0), pack-reused 5025
Receiving objects: 100% (5025/5025), 1.10 MiB | 2.40 MiB/s, done.
Resolving deltas: 100% (3259/3259), done.
root@localhost:~# cd /var/discourse
root@localhost:/var/discourse# ./discourse-setup
Docker not installed. Enter to install from https://get.docker.com/ or Ctrl+C to exit
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 13857  100 13857    0     0   6805      0  0:00:02  0:00:02 --:--:--  6809
# Executing docker install script, commit: 3d8fe77c2c46c5b7571f94b42793905e5b3e42e4
+ sh -c apt-get update -qq > /dev/null
+ sh -c DEBIAN_FRONTEND=noninteractive apt-get install -y -qq apt-transport-https ca-certificates curl > /dev/null
+ sh -c curl -fsSL "https://download.docker.com/linux/ubuntu/gpg" | apt-key add -qq - > /dev/null
Warning: apt-key output should not be parsed (stdout is not a terminal)
+ sh -c echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable" > /etc/apt/sources.list.d/docker.list
+ sh -c apt-get update -qq > /dev/null
+ [ -n  ]
+ sh -c apt-get install -y -qq --no-install-recommends docker-ce > /dev/null
+ sh -c docker version
Client: Docker Engine - Community
 Version:           20.10.2
 API version:       1.41
 Go version:        go1.13.15
 Git commit:        2291f61
 Built:             Mon Dec 28 16:17:32 2020
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.2
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.13.15
  Git commit:       8891c58
  Built:            Mon Dec 28 16:15:09 2020
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.4.3
  GitCommit:        269548fa27e0089a8b8278fc4fc781d7f65a939b
 runc:
  Version:          1.0.0-rc92
  GitCommit:        ff819c7e9184c13b7c2607fe6c30ae19403a7aff
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
If you would like to use Docker as a non-root user, you should now consider
adding your user to the "docker" group with something like:

  sudo usermod -aG docker your-user

Remember that you will have to log out and back in for this to take effect!

WARNING: Adding a user to the "docker" group will grant the ability to run
         containers which can be used to obtain root privileges on the
         docker host.
         Refer to https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface
         for more information.
Port 80 appears to already be in use.

This will show you what command is using port 80
COMMAND  PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nginx    958     root    8u  IPv4  20899      0t0  TCP *:http (LISTEN)
nginx    958     root    9u  IPv6  20901      0t0  TCP *:http (LISTEN)
nginx   3368 www-data    8u  IPv4  20899      0t0  TCP *:http (LISTEN)
nginx   3368 www-data    9u  IPv6  20901      0t0  TCP *:http (LISTEN)

If you are trying to run Discourse simultaneously with another web
server like Apache or nginx, you will need to bind to a different port

See https://meta.discourse.org/t/17247

If you are reconfiguring an already-configured Discourse, use 

./launcher stop app

to stop Discourse before you reconfigure it and try again.
root@localhost:/var/discourse# ./launcher stop app

WARNING: We are about to start downloading the Discourse base image
This process may take anywhere between a few minutes to an hour, depending on your network speed

Please be patient

2.0.20201221-2020: Pulling from discourse/base
6ec7b7d162b2: Pull complete 
488a5181297e: Extracting [========================>                          ]  384.9MB/775.2MB
^C
root@localhost:/var/discourse# ./launcher stop app

WARNING: We are about to start downloading the Discourse base image
This process may take anywhere between a few minutes to an hour, depending on your network speed

Please be patient

2.0.20201221-2020: Pulling from discourse/base
6ec7b7d162b2: Pull complete 
488a5181297e: Pull complete 
Digest: sha256:e181dd9046cc293b10c5b29bbc21c5aa8b939ba5f0c500da4a9e952ed0b5195d
Status: Downloaded newer image for discourse/base:2.0.20201221-2020
docker.io/discourse/base:2.0.20201221-2020
Config file was not found, ensure containers/app.yml exists

ls: cannot access '*.yml': No such file or directory
Available configs ( )

表示されている通り、ポート 80 または 443 で何かが実行されている場合、Discourse のセットアップを使用することはできません。

「いいね!」 2

はい、動作しています。Discourse の Nginx ポートを変更するにはどうすればよいですか?私のサーバーには Ghost がインストールされています。なぜポート 80 と 443 を使用できないのでしょうか?