새 호스트에서 빌드 실패

전체 /var/discourse를 새 호스트로 복사했습니다. CNAME과 SSL도 업데이트했고 모두 정상적으로 작동합니다. 재빌드(rebuild)를 시도하면 해결할 수 없는 문제가 발생합니다.

 sudo ./launcher rebuild app
I, [2022-03-11T16:50:42.832830 #1]  INFO -- :
I, [2022-03-11T16:50:42.833980 #1]  INFO -- : Replacing pid /run/nginx.pid; with daemon off; in /etc/nginx/nginx.conf
I, [2022-03-11T16:50:42.834524 #1]  INFO -- : Replacing (?m-ix:upstream[^\}]+\}) with upstream discourse { server 127.0.0.1:3000; } in /etc/nginx/conf.d/discourse.conf
I, [2022-03-11T16:50:42.834854 #1]  INFO -- : Replacing (?-mix:server_name.+$) with server_name _ ; in /etc/nginx/conf.d/discourse.conf
I, [2022-03-11T16:50:42.835184 #1]  INFO -- : Replacing (?-mix:client_max_body_size.+$) with client_max_body_size $upload_size ; in /etc/nginx/conf.d/discourse.conf
I, [2022-03-11T16:50:42.835501 #1]  INFO -- : Replacing (?-mix:worker_connections.+$) with worker_connections $nginx_worker_connections ; in /etc/nginx/nginx.conf
I, [2022-03-11T16:50:42.835804 #1]  INFO -- : > echo "done configuring web"
I, [2022-03-11T16:50:42.839749 #1]  INFO -- : done configuring web

I, [2022-03-11T16:50:42.840160 #1]  INFO -- : > cd /var/www/discourse && gem install bundler --conservative -v $(awk '/BUNDLED WITH/ { getline; gsub(/ /,""); print $0 }' Gemfile.lock)
ERROR:  Could not find a valid gem 'bundler' (= 2.3.4), here is why:
          Unable to download data from https://rubygems.org/ - Net::OpenTimeout: execution expired (https://rubygems.org/specs.4.8.gz)
I, [2022-03-11T16:55:43.338723 #1]  INFO -- :
I, [2022-03-11T16:55:43.339140 #1]  INFO -- : Terminating async processes
I, [2022-03-11T16:55:43.339338 #1]  INFO -- : Sending INT to HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 42
I, [2022-03-11T16:55:43.339402 #1]  INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 103
2022-03-11 16:55:43.339 UTC [42] LOG:  received fast shutdown request
103:signal-handler (1647017743) Received SIGTERM scheduling shutdown...
2022-03-11 16:55:43.340 UTC [42] LOG:  aborting any active transactions
2022-03-11 16:55:43.342 UTC [42] LOG:  background worker "logical replication launcher" (PID 51) exited with exit code 1
2022-03-11 16:55:43.346 UTC [46] LOG:  shutting down
2022-03-11 16:55:43.361 UTC [42] LOG:  database system is shut down
103:M 11 Mar 2022 16:55:43.363 # User requested shutdown...
103:M 11 Mar 2022 16:55:43.363 * Saving the final RDB snapshot before exiting.
103:M 11 Mar 2022 16:55:43.433 * DB saved on disk
103:M 11 Mar 2022 16:55:43.434 # Redis is now ready to exit, bye bye...

wget로 rubygems를 가져오는 것은 정상 작동하며 인터넷 연결에도 문제가 없습니다. 어떤 조언을 주실 수 있을까요?

호스트에서 인터넷 연결이 정상적으로 작동한다면, 해당 호스트의 Docker 컨테이너 내부의 인터넷 연결을 디버깅해야 합니다.

문제를 찾았습니다. Docker에서 IPv6를 활성화해 두었는데, 이게 문제를 일으키는 것 같았습니다.

IPv6를 비활성화한 후 Docker를 다시 로드해야 했습니다.

{
  "ipv6": false,
  "fixed-cidr-v6": "2001:db8:1::/64"
}

도와주셔서 감사합니다!

구체적으로 말씀드리면, IPv6가 활성화되어 있었고 컨테이너로 다시 돌아오지 않는 주소들을 할당하도록 설정되어 있었습니다.

모든 애플리케이션이 v6 연결이 끊어졌을 때 v4로 폴백되도록 작성되어 있지는 않습니다.