Docker 이미지 discourse/discourse는 안전하고 프로덕션 환경에 사용할 수 있나요?

안녕하세요!

도와주신 모든 분께 진심으로 감사드리기 위해 가입했습니다. 특히 @featheredtoast 님께 감사드립니다.

거의 성공했지만 메일 전송이 작동하지 않았습니다.
Caddy를 리버스 프록시로 사용했기 때문이라고 추측합니다.

그래서 지금은 Docker Compose 환경에서 다른 모든 서비스와 별도로 Discourse를 다시 사용하게 되었습니다.

Caddy와 함께 작동하게 만드는 방법을 아시나요? 소켓 기반 설정을 사용해야 한다고 생각하는데, Docker Compose의 Discourse 설정 안에 있는 app.yml 파일을 어떻게 수정해야 하는지 모르겠습니다.

모두 건강하시길 바랍니다 - Y

Caddy를 사용하여 발신 메일을 프록시하는 특별한 상황이 아니라면, 관련이 없다고 생각합니다.

소켓 기반으로 만들 필요는 없으며, docker 이름과/또는 IP를 참조하면 됩니다. Discourse working with jwilder /nginx proxy & acme-companion - #7 by Steve_Emerson 포스트에서는 소켓 템플릿 사용법과 기타 여러 사항에 대해 다루고 있습니다.

답을 짧게 하면, docker-compose 자체로는 불가능합니다. 이런 기능이 있었으면 좋겠지만, 현재 계획은 누구나 공개적으로 공유할 수 있는 커스텀 베이스 이미지를 만들 수 있도록 하여 진행을 도모하는 것입니다. 플러그인을 빌드하려면 플러그인을 클론하고, bundle install을 실행하고, npm을 설치하며, ember를 다시 컴파일해야 합니다… 이러한 작업은 부팅 시 수행해서는 안 됩니다.

따라서 이 아이디어의 일부는 discourse/discourse와 동일한 방식으로 이미지를 빌드하는 것을 허용하는 것입니다. 즉, 지원되는 Discourse 버전에서 실행되는 것과 동일한 app.yml을 사용하는 것입니다.

예를 들어, 저는 코어 app.yml을 업데이트하여 여기에서 플러그인을 포함시키고, 그런 다음 외부(공개!) 도커 레지스트리에 푸시하는 방식으로 resenha를 사용한 개인 이미지를 빌드하고 있습니다.

외부 메일 서비스를 사용 중이라면, caddy 리버스 프록시가 문제가 아닐 가능성이 높습니다. 현재 launcher 빌드와 달리, discourse/discourse는 이메일 환경 변수를 설정하도록 반복적으로 요구하지 않습니다(하지만 설정은 여전히 필요합니다) – 먼저 해당 변수들을 확인해 보시는 것이 좋습니다.

업로드 크기 한도를 변경하는 데 성공했습니다:

cat fix-upload-size.sh (chmod +x가 필요합니다):

#!/bin/sh
sed -i 's/client_max_body_size .*;/client_max_body_size 500m;/' /etc/nginx/conf.d/discourse.conf

docker-compose.yml:

    volumes:
     - ./fix-upload-size.sh:/etc/runit/1.d/fix-upload-size

이미지를 구축할 수는 있었지만, ESR 버전만 사용하여 가능했습니다. 그보다 새로운 버전을 사용하면 빌드 과정에서 데이터베이스와 Redis 인스턴스가 필요합니다. 의도된 것인가요?

이 이미지를 사용할 때 Discourse를 최신 버전으로 업그레이드할 방법이 있을까요?

저는 학부 연구 그룹 포럼에 이 이미지를 사용하고 있으며, 최신 Discourse 릴리스로 업데이트하고 싶습니다. 하지만 이 이미지는 3월 이후로 업데이트가 되지 않았습니다. 권장되는 업그레이드 방법이 무엇일까요?

이는 막힌 웹 업그레이드를 정리하기 위한 호출을 추가하면서 발생한 의도치 않은 부수 효과입니다. FIX: run clear_stuck_web_upgrades during precompile stage - Pull Request #1055 - discourse/discourse_docker - GitHub 를 통해 조속히 해결할 예정입니다.

좋아요, 감사합니다!

하지만 또 다른 질문이 있습니다. 저는 Azure for Students를 사용 중이며 Container Apps를 이용하고 있습니다. 만약 앱 내에서 어떤 형태로든 업그레이드를 하게 되면, Discourse가 실행 중인 인스턴스가 어떤 이유로든 실패할 경우 포럼이 혼란에 빠질까 걱정됩니다. 재시작 시 이전 버전으로 돌아갈 가능성이 높기 때문이죠.

다시 한번 감사합니다!

그것은 위험을 수반합니다. 앱에서 업그레이드하는 동시에 Docker 레포지토리에서 이미지를 가져와 업데이트하는 경우, 이미지가 최신 상태인지 확인하는 것 외에는 좋은 해결책이 없습니다. 정말로 그렇게 하는 것을 권장하지 않습니다.

한편, 저는 여전히 Docker 레포지토리를 정리하고 있습니다(여기서 해결해야 할 또 다른 문제가 있습니다).

네, 내일의 빌드가 이 패치로 복구될 예정이니, 최신 이미지를 가져와서 업그레이드할 수 있을 것입니다. 보고해 주셔서 감사합니다 :slight_smile:

–복구되었습니다! 최신 이미지가 이제 사용 가능합니다.

정말 감사합니다! 우리 포럼을 업그레이드했습니다

정말 멋졌어요!