# Docker OS(bullseye)를 올바르게 업그레이드하는 방법

**URL:** https://meta.discourse.org/t/proper-way-to-upgrade-docker-os-bullseye/314640
**Category:** Self-hosting
**Created:** [7월 2, 2024, 2:56오후 UTC](https://meta.discourse.org/t/proper-way-to-upgrade-docker-os-bullseye/314640 "2024-07-02T14:56:42Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![bpittman13](https://avatars.discourse-cdn.com/v4/letter/b/f4b2a3/32.png) [@bpittman13](https://meta.discourse.org/u/bpittman13)
#### Post date: [7월 2, 2024, 2:56오후 UTC](https://meta.discourse.org/t/proper-way-to-upgrade-docker-os-bullseye/314640/1 "2024-07-02T14:56:42Z")

</div>

현재 운영체제인 Debian(bullseye)를 업그레이드하여 경고가 표시되고 있는 패키지들을 업데이트해야 합니다. 이 작업에 대한 문서나 단계가 있나요?

감사합니다

---

<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월 2, 2024, 5:08오후 UTC](https://meta.discourse.org/t/proper-way-to-upgrade-docker-os-bullseye/314640/2 "2024-07-02T17:08:17Z")

</div>

이것은 Discourse 문제가 아니라 OS 문제입니다. OS를 업그레이드하는 방법에 대해 설명하는 사이트가 많이 있습니다.

새로운 OS로 새 VM을 생성한 후 [rsync를 사용하여 Discourse 사이트를 다른 VPS로 이동](https://meta.discourse.org/t/move-a-discourse-site-to-another-vps-with-rsync/43812)하는 것을 권장합니다.

---

<div class="post-metadata">

### Author: ![bpittman13](https://avatars.discourse-cdn.com/v4/letter/b/f4b2a3/32.png) [@bpittman13](https://meta.discourse.org/u/bpittman13)
#### Post date: [7월 2, 2024, 6:03오후 UTC](https://meta.discourse.org/t/proper-way-to-upgrade-docker-os-bullseye/314640/3 "2024-07-02T18:03:34Z")

</div>

호스트 OS가 아니라 Discourse 설치 과정에서 설치된 Docker OS를 말합니다.

---

<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월 2, 2024, 6:07오후 UTC](https://meta.discourse.org/t/proper-way-to-upgrade-docker-os-bullseye/314640/4 "2024-07-02T18:07:40Z")

</div>

app.yml에 일반적인 명령어를 추가할 수 있습니다.

---

<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월 2, 2024, 7:09오후 UTC](https://meta.discourse.org/t/proper-way-to-upgrade-docker-os-bullseye/314640/5 "2024-07-02T19:09:24Z")

</div>

컨테이너 안에서 Debian을 업그레이드하려는 건가요?

누가 무엇을 플래그를 올린 건가요?

하지만 그게 의도하신 거라면 이렇게 할 수 있습니다.

```plaintext
./launcher enter app
apt-get update
apt-get upgrade

```

아마 아무 문제가 안 생길 겁니다. 그래도 권장하지는 않습니다.

그리고 그게 정말로 의도하신 거라면, 그걸 `exec` 스탠사로 추가할 수 있습니다. 예시로 `templates/import/mysql-dep.template.yml` 파일을 참고해 보세요.

---

<div class="post-metadata">

### Author: ![bpittman13](https://avatars.discourse-cdn.com/v4/letter/b/f4b2a3/32.png) [@bpittman13](https://meta.discourse.org/u/bpittman13)
#### Post date: [7월 3, 2024, 3:14오전 UTC](https://meta.discourse.org/t/proper-way-to-upgrade-docker-os-bullseye/314640/6 "2024-07-03T03:14:53Z")

</div>

네, 컨테이너 안에 Debian을 사용할 계획입니다. 그게 제 유일한 옵션으로 보이거든요.

예를 들어, 보안 팀이 Node.js 18.x, libcurl, openssl에 대한 취약점을 지적했습니다. libcurl의 경우 현재 버전이 7.4인데, 이는 bullseye에서 가장 최신 버전으로 보이지만, 규정 준수(compliance)를 위해서는 8.4 버전이 필요하고 다른 패키지도 마찬가지입니다.

./launcher enter app  
apt-get update  
apt-get upgrade

bullseye를 업데이트하기 위해 이 명령어들을 실행해 보았지만, 효과가 없었습니다.

---

<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월 3, 2024, 5:49오후 UTC](https://meta.discourse.org/t/proper-way-to-upgrade-docker-os-bullseye/314640/7 "2024-07-03T17:49:15Z")

</div>

네. 그렇게 단순하지 않습니다. "Docker OS(bullseye)를 업그레이드하는 올바른 방법"이라는 것은 존재하지 않습니다.

IT 팀이 승인할 이미지를 만들기 위해 `https://github.com/discourse/discourse_docker/blob/main/image/base/slim.Dockerfile`를 수정하는 것도 가능합니다. 저는 최신 Debian을 베이스 이미지로 사용하는 것부터 시작할 것 같습니다. 이를 위해 일주일 정도를 예상할 수 있지만, Discourse 코드베이스가 새 버전에서 실제로 동작하는지(아마도 동작할 가능성이 높지만, 확인할 방법이 없습니다)에 따라 절반이 걸리거나 두 배가 걸릴 수도 있습니다.

동작하는 이미지를 구축하고 컴플라이언스 문제를 해결하는 것은 시간 소모가 크며, Discourse 팀이 테스트하여 수천 개의 사이트에서 작동하는 표준 이미지를 사용하는 것보다 위험할 가능성이 높습니다. 대신 여러분만 아는 이미지를 실행하게 됩니다. 문제가 발생하면, 해당 문제가 코드 때문인지 Discourse가 아직 지원하지 않는 라이브러리 때문인지 구별할 수 없으므로 여기서 지원을 받을 수 없게 됩니다.

업그레이드할 때마다 Discourse 업데이트가 여러분의 이미지와 호환되는지 확인하는 데 시간을 확보해야 합니다.

IT 팀이 이러한 업데이트를 고집한다면, 다른 플랫폼을 고려하는 것이 좋을 것입니다.

---

<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월 9, 2024, 2:17오후 UTC](https://meta.discourse.org/t/proper-way-to-upgrade-docker-os-bullseye/314640/8 "2024-07-09T14:17:24Z")

</div>

여기서 한 저명한 개발자가 개발 버전에는 항상 최신 Node LTS를 사용한다고 말하며, 이로 인해 문제가 없을 것이라고 제안했습니다.

> [@Falco](#):
>
> 나는 ASDF를 통해 항상 NodeJS의 최신 LTS를 사용합니다.

즉, 당신의 Node 문제는 완전히 안전할 것입니다.

> [@bpittman13](#):
>
> libcurl를 사용하는데, 현재 내 버전은 7.4입니다. bullseye에서 가장 최신 버전인 것 같지만, 규정 준수(compliance)를 위해 8.4여야 하며 다른 패키지도 이에 맞춰야 합니다.

libcurl이 후방 호환성이 없는 방식으로 문제를 일으킬 가능성은 매우 낮아 보이므로, 당신의 작업이 내가 상상했던 것만큼 어렵지는 않을 수도 있습니다. 그렇다면 각 구성 요소를 잘 아는 사람에게 1~5시간 정도의 작업량이 될 것 같습니다.

따라서 `discourse_docker`를 포크(fork)하고 `slim.Dockerfile`의 몇 줄을 수정하면, 결국 큰 문제가 되지 않고 잘 작동할 것이라고 생각합니다.
