# 不支持的存储和检查最新启动器导致无限循环

**URL:** https://meta.discourse.org/t/unsupported-storage-and-checking-latest-launcher-create-infinite-loop/117014
**Category:** Support
**Created:** [2019年五月6日 22:57 UTC](https://meta.discourse.org/t/unsupported-storage-and-checking-latest-launcher-create-infinite-loop/117014 "2019-05-06T22:57:20Z")
**Posts on this page:** 10
**Page:** 1

<div class="post-metadata">

### Author: ![nesnera](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/nesnera/32/120466_2.png) [@nesnera](https://meta.discourse.org/u/nesnera)
#### Post date: [2019年五月6日 22:57 UTC](https://meta.discourse.org/t/unsupported-storage-and-checking-latest-launcher-create-infinite-loop/117014/1 "2019-05-06T22:57:20Z")

</div>

If you must turn off [the control for use unsupported storage](https://github.com/discourse/discourse_docker/blob/4f6c87d86d3ac20dcde3b10c386f7209b465a9e6/launcher#L164) than [checking of the latest launcher](https://github.com/discourse/discourse_docker/blob/4f6c87d86d3ac20dcde3b10c386f7209b465a9e6/launcher#L758) creates infinite loop.

---

<div class="post-metadata">

### Author: ![zogstrip](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/zogstrip/32/512781_2.png) [@zogstrip](https://meta.discourse.org/u/zogstrip)
#### Post date: [2019年五月7日 06:18 UTC](https://meta.discourse.org/t/unsupported-storage-and-checking-latest-launcher-create-infinite-loop/117014/2 "2019-05-07T06:18:35Z")

</div>

So you’re saying that if you shoot yourself in the foot you can’t walk properly anymore?

Why are you using an unsupported storage?

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [2019年五月7日 11:50 UTC](https://meta.discourse.org/t/unsupported-storage-and-checking-latest-launcher-create-infinite-loop/117014/3 "2019-05-07T11:50:27Z")

</div>

Have you considered… using a _supported_ Docker storage method? 🤔

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [2019年五月9日 05:48 UTC](https://meta.discourse.org/t/unsupported-storage-and-checking-latest-launcher-create-infinite-loop/117014/5 "2019-05-09T05:48:20Z")

</div>

Our white list looks good to me, maybe even a bit too wide.

I am not sure if we should keep carrying overlay1 as a supported driver. Also btrfs can be somewhat dodgy.

@saj do you think we should drop `overlay` from our supported list? (keeping `overlay2`)

---

<div class="post-metadata">

### Author: ![saj](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/saj/32/523935_2.png) [@saj](https://meta.discourse.org/u/saj)
#### Post date: [2019年五月10日 19:34 UTC](https://meta.discourse.org/t/unsupported-storage-and-checking-latest-launcher-create-infinite-loop/117014/7 "2019-05-10T19:34:32Z")

</div>

Yes, I think it would be reasonable to drop the `overlay` storage driver from the whitelist. 👍

Foremost in my mind was not unduly inconveniencing users on enterprise distros. Docker Inc. appear to have dropped their support for all platforms but the following:

- Debian 9 (and later)
- EL7
- Ubuntu 16.04 (and later)

The kernels in these distributions should support `overlay2`. I can’t think of a reason why someone would choose to use the older `overlay` driver when their system meets `overlay2` requirements.

---

<div class="post-metadata">

### Author: ![supermathie](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/supermathie/32/507518_2.png) [@supermathie](https://meta.discourse.org/u/supermathie)
#### Post date: [2019年五月10日 19:41 UTC](https://meta.discourse.org/t/unsupported-storage-and-checking-latest-launcher-create-infinite-loop/117014/8 "2019-05-10T19:41:20Z")

</div>

I guess we could add an `ALLOW_ME_TO_USE_AN_UNSUPPORTED_STORAGE_DRIVER` environment variable override?

---

<div class="post-metadata">

### Author: ![saj](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/saj/32/523935_2.png) [@saj](https://meta.discourse.org/u/saj)
#### Post date: [2019年五月10日 19:56 UTC](https://meta.discourse.org/t/unsupported-storage-and-checking-latest-launcher-create-infinite-loop/117014/9 "2019-05-10T19:56:34Z")

</div>

Ayup. I searched the `launcher` script for prior art -

```plaintext
ag -o '[A-Z]{4,}' launcher | sort | uniq

```

There’s no existing pattern for this manner of knob. I propose the `DANGER_` prefix. I think it communicates the need for the user to take on additional responsibility.

```diff
diff --git a/launcher b/launcher
index b629bfc..3aed081 100755
--- a/launcher
+++ b/launcher
@@ -154,14 +154,19 @@ check_prereqs() {
 
   # 2. running an approved storage driver?
   if ! $docker_path info 2> /dev/null | egrep -q '^Storage Driver: (aufs|btrfs|zfs|overlay|overlay2)$'; then
- echo "Your Docker installation is not using a supported storage driver. If we were to proceed you may have a broken install."
+ echo "Your Docker installation is not using a supported storage driver."
     echo "aufs is the recommended storage driver, although zfs/btrfs/overlay and overlay2 may work as well."
     echo "Other storage drivers are known to be problematic."
     echo "You can tell what filesystem you are using by running \"docker info\" and looking at the 'Storage Driver' line."
     echo
- echo "If you wish to continue anyway using your existing unsupported storage driver,"
- echo "read the source code of launcher and figure out how to bypass this check."
- exit 1
+
+ if [[-z "${DANGER_UNSUPPORTED_DOCKER_STORAGE_DRIVER:-}"]]; then
+ echo "Aborting."
+ echo
+ echo "If you wish to continue anyway using your existing unsupported storage driver,"
+ echo "read the source code of launcher and figure out how to bypass this check."
+ exit 1
+ fi
   fi
 
   # 3. running recommended docker version

```

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [2019年五月10日 20:45 UTC](https://meta.discourse.org/t/unsupported-storage-and-checking-latest-launcher-create-infinite-loop/117014/10 "2019-05-10T20:45:38Z")

</div>

OK so let’s remove btrfs and overlay from the whitelist?

edit: that’s done now

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [2022年九月12日 17:25 UTC](https://meta.discourse.org/t/unsupported-storage-and-checking-latest-launcher-create-infinite-loop/117014/11 "2022-09-12T17:25:49Z")

</div>



---

<div class="post-metadata">

### Author: ![Stephen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/stephen/32/95011_2.png) [@Stephen](https://meta.discourse.org/u/Stephen)
#### Post date: [2022年九月12日 18:08 UTC](https://meta.discourse.org/t/unsupported-storage-and-checking-latest-launcher-create-infinite-loop/117014/12 "2022-09-12T18:08:31Z")

</div>


