# ./launcher enter 앱 실행 시 모든 것이 다시 빌드됨

**URL:** https://meta.discourse.org/t/launcher-enter-app-rebuilds-everything/316726
**Category:** Self-hosting
**Created:** [7월 17, 2024, 4:04오전 UTC](https://meta.discourse.org/t/launcher-enter-app-rebuilds-everything/316726 "2024-07-17T04:04:38Z")
**Posts on this page:** 9
**Page:** 1

<div class="post-metadata">

### Author: ![PhilipLoewen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/philiploewen/32/429709_2.png) [@PhilipLoewen](https://meta.discourse.org/u/PhilipLoewen)
#### Post date: [7월 17, 2024, 4:04오전 UTC](https://meta.discourse.org/t/launcher-enter-app-rebuilds-everything/316726/1 "2024-07-17T04:04:38Z")

</div>

경험이 부족한 사용자입니다. 아래 트랜스크립트 몇 줄을 공유하여 토론을 시작하고자 합니다:

```plaintext
# ./launcher enter app                                                                                                                                                                         
x86_64 아키텍처 감지됨.                                                                                                                                                                                                   
                                                                                                                                                                                                                        
경고: Discourse 기본 이미지를 다운로드하기 시작합니다.                                                                                                                                                     
이 과정은 네트워크 속도에 따라 몇 분에서 1시간까지 소요될 수 있습니다.                                                                                                                        
                                                                                                                                                                                                                        
인내심을 갖고 기다려 주세요.                                                                                                                                                                                                       
                                                                                                                                                                                                                        
2.0.20240602-0023: discourse/base에서 가져오는 중                                                                                                                                                                          
728328ac3bde: 추출 중 [=============================>] 18.68MB/31.43MB                                                                                                                         
1c0ca3c0af81: 다운로드 완료
...

```

이것은 제가 예상했던 동작과 다릅니다.

`docker ps` 명령을 입력하면 이미 Discourse 컨테이너가 실행 중임을 확인할 수 있습니다. 제가 원하는 것은 실행 중인 해당 컨테이너에 셸을 진입하는 것일 뿐, 전체 앱을 다시 빌드하는 것이 아닙니다. 실제로 `./launcher` 스크립트(약 746번째 줄 근처)를 살펴보면 `./launcher`의 `enter` 명령은 제가 예상했던 동작, 즉 다음 명령을 실행하도록 되어 있는 것으로 보입니다:

```plaintext
docker exec -it app /bin/bash

```

이 작업을 수행하기 전에 다른 일련의 작업을 수행해야 하는 타당한 이유가 있습니까? 만약 그렇다면 제게 알려 주시기를 바랍니다. 그렇지 않다면, 경험과 기술이 있는 누군가가 이 질문을 유용한 제안으로 전환해 주실 수 있을 것입니다. 감사합니다.

---

<div class="post-metadata">

### Author: ![nathank](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/nathank/32/290039_2.png) [@nathank](https://meta.discourse.org/u/nathank)
#### Post date: [7월 17, 2024, 4:32오전 UTC](https://meta.discourse.org/t/launcher-enter-app-rebuilds-everything/316726/2 "2024-07-17T04:32:30Z")

</div>

네, 적어도 1년 이상 그렇게 해왔어요. 다행히 새 이미지를 다운로드하는 데는 보통 오래 걸리지 않고, 셸에 진입하기 전에 다른 큰 문제는 없는 것 같아요.

다만, 전혀 사용하지 않는 이미지들이 드라이브를 꽤 불필요하게 가득 채우고 있어요. 아마도 바로 눈에 띄지 않는 어떤 목적이 있는 것일 수도 있겠네요.

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [7월 17, 2024, 5:13오전 UTC](https://meta.discourse.org/t/launcher-enter-app-rebuilds-everything/316726/3 "2024-07-17T05:13:28Z")

</div>

이것은 버그인 것 같은데요? 컨테이너에 진입하려고 하면 왜 새로운 이미지를 다운로드해야 하나요?

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [7월 17, 2024, 5:26오전 UTC](https://meta.discourse.org/t/launcher-enter-app-rebuilds-everything/316726/4 "2024-07-17T05:26:57Z")

</div>

이 동작은 한 번만 수행되는 것 같습니다. `./launcher enter app`을 두 번째로 실행하면 이미지 체크가 건너뜁니다. 아마도 여기에는 어떤 절충안이 있는 것 같습니다 …

---

<div class="post-metadata">

### Author: ![Firepup650](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/firepup650/32/465200_2.png) [@Firepup650](https://meta.discourse.org/u/Firepup650)
#### Post date: [7월 17, 2024, 7:51오전 UTC](https://meta.discourse.org/t/launcher-enter-app-rebuilds-everything/316726/5 "2024-07-17T07:51:19Z")

</div>

> [@merefield](#):
>
> `./launcher enter app`를 두 번째로 실행하면 이미지 검사가 건너뛴다

이미 그 시점에 이미지가 이미 다운로드되었기 때문이 아닌가요?

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [7월 17, 2024, 11:28오전 UTC](https://meta.discourse.org/t/launcher-enter-app-rebuilds-everything/316726/6 "2024-07-17T11:28:36Z")

</div>

네, 하지만 왜 애초에 그렇게 하려 했을까요?

기존 컨테이너에 진입하려는 것뿐입니다.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [7월 17, 2024, 12:14오후 UTC](https://meta.discourse.org/t/launcher-enter-app-rebuilds-everything/316726/7 "2024-07-17T12:14:09Z")

</div>

git pull을 수행하고 새로운 이미지를 가져옵니다. 이전에는 이 과정을 생략했을 때 업데이트가 안 된 상태로 인해 여러 사용자가 문제를 겪었기 때문입니다.

pull을 하지 않을 이유가 있다면, 대신 `docker run` 명령어를 사용하세요.

---

<div class="post-metadata">

### Author: ![PhilipLoewen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/philiploewen/32/429709_2.png) [@PhilipLoewen](https://meta.discourse.org/u/PhilipLoewen)
#### Post date: [7월 17, 2024, 4:09오후 UTC](https://meta.discourse.org/t/launcher-enter-app-rebuilds-everything/316726/8 "2024-07-17T16:09:05Z")

</div>

> [@pfaffman](#):
>
> 그때는 여러 사람이 문제가 발생했었는데, 그 이유는 내용이 구식이었기 때문이었습니다.

이것이 이유일 것 같다고 생각했습니다. 차가운 논리와 사용자 기대의 특성을 균형 있게 맞추는 일은 결코 쉽지 않죠.

> [@pfaffman](#):
>
> pull을 하지 않을 이유가 있다면 대신 `docker run` 명령어를 사용하세요.

이 부분은 시행착오를 겪으면서 배웠습니다. 이제 알고 보니, 그 설계 결정이 이해가 됩니다.

답변해 주셔서 감사합니다. 그리고 훌륭한 소프트웨어를 만들어 주셔서 감사합니다.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [7월 17, 2024, 5:46오후 UTC](https://meta.discourse.org/t/launcher-enter-app-rebuilds-everything/316726/9 "2024-07-17T17:46:02Z")

</div>

> [@PhilipLoewen](#):
>
> 제가 원하는 것은 그 실행 중인 컨테이너에 셸(shell)을 접속하는 것일 뿐이지, 전체 앱을 다시 빌드하는 것이 아닙니다.

전체 컨테이너를 다시 빌드하는 것이 아닙니다. 단순히 docker\_discourse에 대해 `git pull`을 실행하고 새로운 기본 이미지를 가져온 후, 예상대로 컨테이너에 적용하는 작업일 뿐입니다. 그래서 첫 번째 실행 이후에는 더 이상 그렇게 하지 않습니다. 디스크 공간이 극도로 부족하거나 10~30초가 상당한 시간이 되는 경우가 아니라면, 실제로는 큰 문제가 아닙니다.
