# 제공된 스크립트 없이 Discourse를 설치하는 방법이 있을까요?

**URL:** https://meta.discourse.org/t/is-there-a-way-to-install-discourse-without-the-provided-scripts/178883
**Category:** Self-hosting
**Created:** [2월 8, 2021, 11:55오전 UTC](https://meta.discourse.org/t/is-there-a-way-to-install-discourse-without-the-provided-scripts/178883 "2021-02-08T11:55:51Z")
**Posts on this page:** 9
**Page:** 1

<div class="post-metadata">

### Author: ![ann\_eav](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ann_eav/32/207897_2.png) [@ann\_eav](https://meta.discourse.org/u/ann_eav)
#### Post date: [2월 8, 2021, 11:55오전 UTC](https://meta.discourse.org/t/is-there-a-way-to-install-discourse-without-the-provided-scripts/178883/1 "2021-02-08T11:55:51Z")

</div>

안녕하세요,

다시 한번 특이한 질문을 드리려고 합니다 ✨

내부 커뮤니티에 Discourse를 설치하는 방법에 대해 여전히 조사 중입니다. 과거에는 외부 Redis와 외부 Postgres를 사용하여 Discourse를 설치하고, 모든 것을 Kubernetes 클러스터에서 관리하는 방법에 대해 질문한 적이 있습니다. 자세한 내용은 [여기](https://meta.discourse.org/t/can-i-install-discourse-with-my-own-redis-and-postgres/177943/6)에서 확인하실 수 있습니다.

이제 또 다른 의문이 생겼는데, helm을 사용하여 배포하려면 자체 컨테이너 이미지를 생성해야 한다는 말을 들었기 때문입니다. 이로 인해 클라우드 설치 가이드에 포함된 스크립트를 사용하여 공식 문서대로 설치를 수행할 수 없을 것 같습니다. 😰

bootstrap 명령어를 사용하여 자체 이미지를 빌드해 보았지만, ruby 템플릿을 찾지 못해 오류가 발생하여 제가 직접 docker 이미지를 실행할 수 없습니다.

제공된 스크립트를 사용하지 않고 컨테이너 이미지를 실행할 수 있을까요? bash 스크립트를 살펴보려고 했지만 제 수준에는 좀 너무 복잡한 것 같습니다. 이런 상황에 처해 본 다른 분이 있다면 조언을 주실 수 있을지 희망하고 있습니다.

다시 한번 모든 것에 감사드립니다 💞

---

<div class="post-metadata">

### Author: ![ann\_eav](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ann_eav/32/207897_2.png) [@ann\_eav](https://meta.discourse.org/u/ann_eav)
#### Post date: [2월 8, 2021, 12:26오후 UTC](https://meta.discourse.org/t/is-there-a-way-to-install-discourse-without-the-provided-scripts/178883/2 "2021-02-08T12:26:31Z")

</div>

더 많은 맥락과 세부 정보를 제공하겠습니다.  
저는 런처 스크립트의 bootstrap 명령을 사용하여 제 설정이 포함된 이미지를 직접 생성했습니다.  
그런 다음 문서에서는 컨테이너를 생성하려면 run 명령으로 런처를 실행해야 한다고 안내합니다.  
스크립트 코드를 살펴보니 docker 명령은 다음과 같습니다:

```plaintext
$docker_path run --shm-size=512m $links $attach_on_run $restart_policy "${env[@]}" "${labels[@]}" -h "$hostname" \
        -e DOCKER_HOST_IP="$docker_ip" --name $config -t "${ports[@]}" $volumes $mac_address $user_args \
        $run_image $boot_command

```

하지만 스크립트 없이 단독으로 실행할 수 있는 명령어로 모든 변수를 변환하는 방법을 알 수 없습니다. 아니면 처음부터 제가 시도하고 있는 접근 방식이 잘못된 것일 수도 있지만, 다른 사람에게 부담을 주지 않고 혼자서 해결할 수 있는지 확인해 보고 싶어서 먼저 시도해 보았습니다.

제가 직접 docker 이미지를 실행하면 컨테이너가 종료되고, 로그를 보면 다음과 같은 내용이 표시됩니다:

```plaintext
Already up to date.
INFO -- : Loading --stdin
/pups/lib/pups/config.rb:23:in `initialize': undefined method `[]' for nil:NilClass (NoMethodError)
	from /pups/lib/pups/cli.rb:27:in `new'
	from /pups/lib/pups/cli.rb:27:in `run'
	from /pups/bin/pups:8:in `<main>'

```

---

<div class="post-metadata">

### Author: ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)
#### Post date: [2월 8, 2021, 1:21오후 UTC](https://meta.discourse.org/t/is-there-a-way-to-install-discourse-without-the-provided-scripts/178883/3 "2021-02-08T13:21:04Z")

</div>

`./launcher start-cmd app`을 실행해 보세요.

---

<div class="post-metadata">

### Author: ![ann\_eav](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ann_eav/32/207897_2.png) [@ann\_eav](https://meta.discourse.org/u/ann_eav)
#### Post date: [2월 9, 2021, 9:12오전 UTC](https://meta.discourse.org/t/is-there-a-way-to-install-discourse-without-the-provided-scripts/178883/4 "2021-02-09T09:12:28Z")

</div>

정말 많이 도움되었습니다 💖

이 명령어가 문서에 나와 있었나요? 만약 그렇다면 물어본 것 죄송합니다. 못 봤거든요.

항상 도와주셔서 정말 감사합니다 ✨

---

<div class="post-metadata">

### Author: ![neounix](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/neounix/32/215617_2.png) [@neounix](https://meta.discourse.org/u/neounix)
#### Post date: [2월 9, 2021, 10:10오전 UTC](https://meta.discourse.org/t/is-there-a-way-to-install-discourse-without-the-provided-scripts/178883/5 "2021-02-09T10:10:24Z")

</div>

> [@ann\_eav](#):
>
> 부트스트랩 명령어를 사용하여 자체 이미지를 빌드해 보았지만, 루비 템플릿을 찾다가 오류가 발생하여 도커 이미지를 직접 실행할 수 없습니다.

Discourse는 공유 볼륨에서 실행 중인 PostgreSQL에 의존합니다. 또한 이미지, 업로드된 파일, 백업, 로그 등 많은 중요한 파일들이 해당 공유 볼륨에 위치해 있습니다.

/shared 볼륨의 파일 시스템 무결성을 Discourse 구성 표준에 맞게 유지한다면, Discourse 도커 이미지와 컨테이너 애플리케이션을 쉽게 시작하고 중지할 수 있습니다. 그러나 Discourse 스크립트 없이 애플리케이션을 빌드하는 것은 불가능합니다(제 지식 범위 내에서). 스크립트와 완벽하게 동일하게 작동하는 지원되는 스크립트 기반의 자체 스크립트를 작성하기 위해 스크립트를 완전히 역공학하지 않는 한 말입니다. 이는 스크립트가 서버 측 기술인 Ruby on Rails 위에 클라이언트 측 기술인 정교한 EmberJS SPA(단일 페이지 애플리케이션)를 빌드하는 것을 담당할 뿐만 아니라, 코어 애플리케이션 및 모든 플러그인의 구성을 관리하기 때문입니다. 솔직히 말해, 꽤 정교한 애플리케이션입니다.

> [@ann\_eav](#):
>
> 제공된 스크립트 없이 컨테이너 이미지를 실행할 수 있습니까?

네, 스크립트 없이 Discourse 컨테이너를 시작하거나 Discourse 이미지에서 Discourse 컨테이너를 생성할 수 있습니다. 단, 데이터베이스, 이미지 및 업로드, 백업, 로그 파일 등 영구 저장 요구 사항을 포함한 Discourse 구성 표준에 부합하는 완벽하게 구축된 Discourse 도커 이미지가 이미 있는 경우(그리고 오직 그 경우에만)입니다. Discourse에는 공유 볼륨에 많은 중요한 파일이 필요합니다. 따라서 위에서 언급한 필수 사전 요구 사항(위에서 모두 언급한 것은 아닙니다!) 없이 단순히 "기본 Discourse 도커 이미지"를 가져와 실행할 수 없습니다.

도움이 되기를 바랍니다.

---

<div class="post-metadata">

### Author: ![ann\_eav](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ann_eav/32/207897_2.png) [@ann\_eav](https://meta.discourse.org/u/ann_eav)
#### Post date: [2월 9, 2021, 10:24오전 UTC](https://meta.discourse.org/t/is-there-a-way-to-install-discourse-without-the-provided-scripts/178883/6 "2021-02-09T10:24:42Z")

</div>

답변 주셔서 감사합니다. 정말 도움이 많이 됩니다 🙂 어제 이 [토픽](https://meta.discourse.org/t/can-discourse-ship-frequent-docker-images-that-do-not-need-to-be-bootstrapped/33205)과 다른 몇 가지 글에서 왜 스크립트가 필요한지에 대해 읽었습니다.

더 자세한 설명을 주셔서 다시 한번 감사드립니다. 이 모든 정보가 필요한 표준에 맞춰 제 워크플로를 만드는 데 도움이 될 것 같습니다 🙂

---

<div class="post-metadata">

### Author: ![neounix](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/neounix/32/215617_2.png) [@neounix](https://meta.discourse.org/u/neounix)
#### Post date: [2월 9, 2021, 10:34오전 UTC](https://meta.discourse.org/t/is-there-a-way-to-install-discourse-without-the-provided-scripts/178883/7 "2021-02-09T10:34:39Z")

</div>

> [@ann\_eav](#):
>
> 더 자세한 설명을 해주셔서 다시 한번 감사합니다. 이 모든 정보가 제가 필요한 표준을 기반으로 나만의 워크플로를 만드는 데 큰 도움이 됩니다.

기꺼이 도와드리겠습니다.

(1) Ruby on Rails 개발자가 아니고 (2) EmberJS 개발자도 아닌 분들에게는 이 내용이 매우 혼란스러울 수 있습니다.

기본적으로, 당신은 도커화(dockerized)된 프로덕션 Ruby on Rails 애플리케이션(서버 측 기술)을 구축하는 것이며, 이는 세계 일급 EmberJS SPA 애플리케이션(주요 사용자 앱)의 기반이 됩니다. 그리고 그 위에, 이 환경에서 오랫동안 코딩해 온 매우 유능하고 경험이 풍부한 웹 전문가 팀이 관리하는 모든 소스 코드에 대한 완전한 오픈소스 구성 관리 시스템을 갖추게 됩니다. 또한 Discourse 비즈니스 생태계 내에서 전문 호스팅과 맞춤 개발 서비스도 이용할 수 있습니다.

정말 멋지지 않나요? 🙂

---

<div class="post-metadata">

### Author: ![serverhorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/serverhorror/32/213267_2.png) [@serverhorror](https://meta.discourse.org/u/serverhorror)
#### Post date: [3월 15, 2021, 3:29오후 UTC](https://meta.discourse.org/t/is-there-a-way-to-install-discourse-without-the-provided-scripts/178883/8 "2021-03-15T15:29:37Z")

</div>

> [@neounix](#):
>
> Discourse는 공유 볼륨에서 실행 중인 PostgreSQL에 의존합니다. 그리고 이미지, 업로드된 파일, 백업, 로그 등 많은 다른 중요한 파일들도 해당 공유 볼륨에 있습니다.

이 글을 우연히 발견했습니다. 앱과 데이터베이스를 물리적으로 다른 호스트에서, 아무것도 공유하지 않는 상태로 실행할 수 없다는 말씀이신가요?

제 경우라면 이는 완전한 걸림돌이 될 것입니다…

---

<div class="post-metadata">

### Author: ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)
#### Post date: [3월 15, 2021, 3:47오후 UTC](https://meta.discourse.org/t/is-there-a-way-to-install-discourse-without-the-provided-scripts/178883/9 "2021-03-15T15:47:36Z")

</div>

> [@serverhorror](#):
>
> 앱과 데이터베이스를 물리적으로 완전히 다른 호스트에서, 아무것도 공유하지 않는 상태로 실행할 수 _없다_고 말씀하시는 건가요?

아니요, 그렇지 않습니다. Discourse를 전용 외부 데이터베이스와 함께 실행하는 것은 [지원되고 문서화된](https://meta.discourse.org/t/running-discourse-with-a-separate-postgresql-server/46375) 사용 사례입니다.
