브라우저에서 사이트에 접근할 수 없음 - Docker 문제

Forest Admin을 설치하려고 했는데 docker-compose가 필요했습니다.

제가 설치되어 있지 않아서 설치했습니다:

sudo apt install docker-compose

하지만 실행하려고 했을 때 다음 오류가 발생했습니다:

docker-compose up
ERROR: Couldn't connect to Docker daemon at http+docker://localhost - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.

여러 가지를 시도해 봤고, 그중 하나는 Docker를 재시작하라고 권장했습니다:

sudo systemctl restart docker
Failed to restart docker.service: Unit docker.service is masked.

그래서 마스킹을 해제하고 재빌드했는데, 그 후로는 앱에 접근할 수 없었습니다.

sudo systemctl unmask docker
Removed /etc/systemd/system/docker.service.

sudo systemctl restart docker
# no error

이미지를 재빌드할 수 있었고, 오류 없이 완료되었습니다:

sudo /var/discourse/launcher rebuild app

하지만 URL로 접속하면 접근할 수 없습니다.

절망적으로 Docker를 업데이트하고 이미지를 여러 번 재빌드해 보았지만, 성공하지 못했습니다:

wget -qO- https://get.docker.com/ | sh

sudo /var/discourse/launcher rebuild app

더 이상 아이디어가 없습니다. 다른 시도해 볼 것이 있을까요?

백업에서 복원해야 하면 일부 데이터를 잃게 되므로 이를 피하고 싶습니다. 하지만 그것이 유일한 방법이라면 가장 좋은 접근 방식은 무엇일까요?

  • 최신 Digital Ocean 백업 복원
  • 최신 Discourse 백업 복원

도커가 깨진 건지, 아니면 포레스트 어드민이 디스커스가 작동하지 못하게 막고 있는 건지 판단이 안 선다. 포레스트 어드민은 어떤 문제를 해결하는 거야?

제이, 고마워. Forest Admin은 잊어버리자. 일단 제거해 뒀어. 문제를 진단하기 위해 다른 할 일이 있을까?

docker를 망친 것 같아. 관련이 있다면, 전에 docker 18.09.6, build 481bc77을 사용하다가 지금은 20.10.2, build 2291f61을 쓰고 있어.

음. 해답은 훨씬 더 간단했네요: nginx를 재시작하면 되는 거였어요 :sweat_smile:

재시작을 시도했을 때 다음과 같은 오류가 발생했어요:

sudo service nginx restart
Job for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xe" for details.

로그에서 명확한 원인은 찾지 못했지만, 서버를 재시작하니 해결됐어요:

sudo shutdown -r now

이제 사이트가 정상적으로 작동합니다.

nginx는 필요하지 않습니다. 제 추측으로는 nginx가 재시작되는 동안 Discourse가 포트 80을 선점했을 가능성이 높습니다. 그리고 시스템 재부팅 시 nginx보다 Discourse가 먼저 부팅되도록 운이 좋게 작용한 것입니다. nginx를 역방향 프록시로 구성한 경우(이것은 discourse-setup로는 불가능합니다)를 제외하고는 nginx를 제거하거나 비활성화해야 합니다.

고마워요, 제이. 재빌드할 때 예쁜 페이지를 표시하도록 nginx를 리버스 프록시로 설정해 두었거든요.