Caddy를 rproxy로 사용해 discourse를 설정하는 방법, 도움 필요

잘못된 섹션에 글을 올린 것이라면 죄송합니다.

저는 Oracle Free tier를 서버로 사용 중이며, Ubuntu에 몇 개의 Docker 컨테이너를 실행하고 있습니다.
모든 컨테이너에 대해 Caddy를 rproxy로 사용하고 있는데, 이 역시 Docker로 실행하고 있습니다.

이제 퍼즐의 마지막 조각인 Discourse를 설정해야 하는데, 어떻게 진행해야 할지 잘 모르겠습니다.
다른 테스트 서버에서 표준 Docker 설치 방식으로 Discourse를 테스트하고 설치해 보았지만, 이는 전체 패키지를 포함하고 있습니다. Caddy를 rproxy로 사용하려면 일부 기능을 비활성화해야 하는 것 같습니다.

혹시 방향을 잡아주실 수 있다면 정말 감사하겠습니다.

이 정보가 도움이 될 수 있습니다:

그렇게 하면 올바른 방향으로 나아가는 것 같아요. 다만, 제가 올바른 경로를 가리키고 있는지는 확신이 서지 않네요.

제 app.yml 파일에서는 볼륨을 이렇게 설정해 두었습니다:
그리고 Discourse를 문제 없이 빌드할 수 있습니다.

volumes:
  - volume:
      host: /opt/docker/docker_configs/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /opt/docker/docker_configs/discourse/shared/standalone/log/var-log
      guest: /var/log

그 포럼 스레드를 읽고 나서 Caddyfile에서 몇 가지 시도를 해 봤습니다.

forum.mydomain.com {
  reverse_proxy unix//opt/docker/docker_configs/discourse/shared/standalone/nginx.http.sock
  import cloudflare
}
forum.mydomain.com {
  reverse_proxy /opt/docker/docker_configs/discourse/shared/standalone/nginx.http.sock
  import cloudflare
}

두 가지 모두 작동하지 않는데, 제가 제대로 하고 있는 건지 정말로 모르겠네요 xD

Caddy를 어떻게 시작하고 계신가요?

원본 주제에 있는 이 줄은 동작하려면 사용자의 디렉토리에 맞게 조정해야 합니다. Caddy 컨테이너에 올바른 디렉터리가 마운트되지 않으면 Discourse가 생성한 소켓을 인식할 수 없습니다.

아, 말씀하시는 게 discourse의 소켓을 caddy에 마운트해야 한다는 거군요? 그거 말이 되네요!

근데 어젯밤에 다른 방법을 시도해 봤어요.
discourse가 시작되면 docker bridge 네트워크에서 실행되거든요. 제 다른 컨테이너들이(그리고 Caddy도 포함) 있는 docker-default 네트워크를 그대로 추가하면, 다른 컨테이너들과 똑같이 caddy에 간단히 추가할 수 있어요.

forum.mydomain.com {
  reverse_proxy app:80
  import cloudflare
}

그런데 yml 파일들 중에 docker 네트워크가 어디서 정의되어 있는지 모르겠더라고요. bridge 대신 docker default로 실행되도록 변경할 수만 있으면 제 문제는 전부 해결될 텐데 말이죠.

이 내용이 도움이 될 수 있습니다:

Nginx Proxy Manager에 대한 내용이지만, 컨테이너를 기본 브리지 네트워크로 가져오는 과정을 설명하고 있습니다.

네! 작동합니다!

몇 가지를 수정해야 했지만, 첫 번째로 링크해 주신 스레드와 거의 비슷합니다.

Caddyfile에는 이렇게 작성해야 했습니다.
스레드에 나와 있는 내용과 약간 다릅니다.

forum.mydomain.com {
  reverse_proxy unix//sock/nginx.http.sock
  import cloudflare
}

그리고 볼륨을 추가했는데, 지금 생각해 보면 당연한 일이었습니다.
저는 docker-compose를 사용하고 있습니다.

  caddy:
    container_name: Caddy
    build:
      dockerfile: ./caddy-config/Dockerfile
      context: .
    labels:
      com.centurylinklabs.watchtower.enable: "false"
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./docker_configs/caddy/data:/data
      - ./docker_configs/caddy/Caddyfile:/etc/caddy/Caddyfile
      - ./docker_configs/caddy/srv:/srv
      - /var/discourse/shared/standalone:/sock
    restart: always

도움 주셔서 정말 감사합니다!

이는 아마도 Caddy 자체의 업스트림 변경 사항 때문일 것입니다. 주제에서 링크된 이미지는 제 기억에 따르면 제공된 구성으로 여전히 작동합니다.