# Zero-to-binder fork (binder-examples) is not building on mybinder

**URL:** <https://discourse.jupyter.org/t/zero-to-binder-fork-binder-examples-is-not-building-on-mybinder/7680>\
**Category:** mybinder.org ops\
**Tags:** jupyterhub\
**Created:** [January 26, 2021, 8:22pm UTC](https://discourse.jupyter.org/t/zero-to-binder-fork-binder-examples-is-not-building-on-mybinder/7680 "2021-01-26T20:22:39Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![gmartins](https://avatars.discourse-cdn.com/v4/letter/g/8baadc/32.png) [@gmartins](https://discourse.jupyter.org/u/gmartins)\
**Post date:** [January 26, 2021, 8:22pm UTC](https://discourse.jupyter.org/t/zero-to-binder-fork-binder-examples-is-not-building-on-mybinder/7680/1 "2021-01-26T20:22:39Z")

</div>

I was trying to find a working example repo that is not cached on mybinder, for that I decided to fork a very basic one:

> **[GitHub - binder-examples/zero-to-binder](https://github.com/binder-examples/zero-to-binder)**
>
> Contribute to binder-examples/zero-to-binder development by creating an account on GitHub.

at

> **[GitHub - ggmartins/zero-to-binder](https://github.com/ggmartins/zero-to-binder)**
>
> Contribute to ggmartins/zero-to-binder development by creating an account on GitHub.

but the fork is not building because of this error:

> …  
> terminado 0.8.3 py37hc8dfbb8\_1 conda-forge  
> testpath 0.4.4 py\_0 conda-forge  
> tk 8.6.10 hed695b0\_0 conda-forge  
> tornado 6.0.4 py37h8f50634\_1 conda-forge  
> traitlets 4.3.3 py37hc8dfbb8\_1 conda-forge  
> urllib3 1.25.10 py\_0 conda-forge  
> wcwidth 0.2.5 pyh9f0ad1d\_0 conda-forge  
> webencodings 0.5.1 py\_1 conda-forge  
> wheel 0.34.2 py\_1 conda-forge  
> widgetsnbextension 3.5.1 py37hc8dfbb8\_1 conda-forge  
> xz 5.2.5 h516909a\_1 conda-forge  
> zeromq 4.3.2 he1b5a44\_2 conda-forge  
> zipp 3.1.0 py\_0 conda-forge  
> zlib 1.2.11 h516909a\_1006 conda-forge  
> zstd 1.4.8 ha95c52a\_1 conda-forge  
> Removing intermediate container 0df8e5c8061c  
> failed to get digest sha256:bd81638d28fc0df63f799166bd0e9978176f7d402f1a79528adf2a6f635646c8: open /var/lib/docker/image/overlay2/imagedb/content/sha256/bd81638d28fc0df63f799166bd0e9978176f7d402f1a79528adf2a6f635646c8: no such file or directory

maybe there’s a simpler example I can try? sorry, I’m totally new to binderhub.

---

<div class="post-metadata">

**Author:** ![sgibson91](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.jupyter.org/sgibson91/32/487_2.png) [@sgibson91](https://discourse.jupyter.org/u/sgibson91)\
**Post date:** [January 26, 2021, 9:23pm UTC](https://discourse.jupyter.org/t/zero-to-binder-fork-binder-examples-is-not-building-on-mybinder/7680/2 "2021-01-26T21:23:01Z")

</div>

[_The Turing Way_ has a tutorial](https://www.github.com/alan-turing-institute/the-turing-way/tree/master/workshops%2Fboost-research-reproducibility-binder%2Fworkshop-presentations%2Fzero-to-binder-python.md) that may help, it is based on the contents of that repo. It might at least unblock you while we try to work out what’s going wrong with the original repo.

---

<div class="post-metadata">

**Author:** ![gmartins](https://avatars.discourse-cdn.com/v4/letter/g/8baadc/32.png) [@gmartins](https://discourse.jupyter.org/u/gmartins)\
**Post date:** [January 27, 2021, 8:40pm UTC](https://discourse.jupyter.org/t/zero-to-binder-fork-binder-examples-is-not-building-on-mybinder/7680/3 "2021-01-27T20:40:41Z")

</div>

Thanks, Sarah,

I was able to bootstrap homemade-ML on mybinderhub, but using binderhub 0.2.0-n472.h32e06ee on our own binderhub deployment we’re getting the error below. Let me know if there a ultra ultra simple hello world repo you can share. We’re excited because we’re able to spin up infrastructure on our own. Right now, we just need to test it, thus the reason for seeking a ‘kiss’ hello world.

Thanks,

G

> Loading /etc/binderhub/config/values.yaml  
> Loading /etc/binderhub/secret/values.yaml  
> [I 210127 17:14:48 app:727] BinderHub starting on port 8585  
> [I 210127 17:15:37 log:140] 200 GET / ([anonymous@192.168.41.122](mailto:anonymous@192.168.41.122)) 19.96ms  
> [I 210127 17:15:50 log:140] 200 GET / ([anonymous@192.168.41.122](mailto:anonymous@192.168.41.122)) 1.07ms  
> [I 210127 17:16:07 registry:113] Loading docker config /root/.docker/config.json  
> [I 210127 17:16:08 builder:514] Launching pod for [MYFORK-of HMML]: 0 other pods running this repo (0 total)  
> [I 210127 17:16:08 launcher:166] Creating user ggmartins-homem-achine-learning-uviw0xgr for image -[REDACTED]  
> [I 210127 17:16:08 launcher:213] Starting server for user ggmartins-homem-achine-learning-uviw0xgr with image [REDACTED]  
> [E 210127 17:21:13 builder:573] Retrying launch of [MYFORK-of HMML] after error (duration=305s, attempt=1): KeyError(‘’)  
> [I 210127 17:21:17 launcher:166] Creating user ggmartins-homem-achine-learning-ve2s2plc for image [REDACTED]  
> [I 210127 17:21:17 launcher:213] Starting server for user ggmartins-homem-achine-learning-ve2s2plc with image [REDACTED]  
> [E 210127 17:26:23 builder:573] Retrying launch of [MYFORK-of HMML] after error (duration=305s, attempt=2): KeyError(‘’)  
> [I 210127 17:26:31 launcher:166] Creating user ggmartins-homem-achine-learning-14sfifd4 for image [REDACTED]  
> [I 210127 17:26:31 launcher:213] Starting server for user ggmartins-homem-achine-learning-14sfifd4 with image [REDACTED]  
> [E 210127 17:31:16 builder:573] Retrying launch of [MYFORK-of HMML] after error (duration=285s, attempt=3): KeyError(‘’)  
> [I 210127 17:31:32 launcher:166] Creating user ggmartins-homem-achine-learning-8zmmh302 for image[REDACTED]:1a444a4e3add28a0d60  
> [I 210127 17:31:32 launcher:213] Starting server for user ggmartins-homem-achine-learning-8zmmh302 with image [REDACTED]  
> [E 210127 17:36:37 web:1789] Uncaught exception GET /build/gh/ggmartins/homemade-machine-learning/HEAD (192.168.41.122)  
> HTTPServerRequest(protocol=‘http’, host=‘[REDACTED]’, method=‘GET’, uri=‘/build/gh/ggmartins/homemade-machine-learning/HEAD’, version=‘HTTP/1.1’, remote\_ip=‘192.168.41.122’)  
> Traceback (most recent call last):  
> File “/usr/local/lib/python3.8/site-packages/tornado/web.py”, line 1704, in \_execute  
> result = await result  
> File “/usr/local/lib/python3.8/site-packages/binderhub/builder.py”, line 337, in get  
> await self.launch(kube, provider)  
> File “/usr/local/lib/python3.8/site-packages/binderhub/builder.py”, line 546, in launch  
> server\_info = await launcher.launch(image=self.image\_name,  
> File “/usr/local/lib/python3.8/site-packages/binderhub/launcher.py”, line 226, in launch  
> if user\_data[‘servers’][server\_name][‘ready’]:  
> KeyError: ‘’

---

<div class="post-metadata">

**Author:** ![gmartins](https://avatars.discourse-cdn.com/v4/letter/g/8baadc/32.png) [@gmartins](https://discourse.jupyter.org/u/gmartins)\
**Post date:** [January 27, 2021, 8:44pm UTC](https://discourse.jupyter.org/t/zero-to-binder-fork-binder-examples-is-not-building-on-mybinder/7680/4 "2021-01-27T20:44:33Z")

</div>

Just to add extra info. The container built successfully, but launching gives us Internal Server Error in the BH console. The stuff above is from kubectl logs binder. Thanks,  
G

---

<div class="post-metadata">

**Author:** ![fomightez](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.jupyter.org/fomightez/32/495_2.png) [@fomightez](https://discourse.jupyter.org/u/fomightez)\
**Post date:** [January 27, 2021, 10:36pm UTC](https://discourse.jupyter.org/t/zero-to-binder-fork-binder-examples-is-not-building-on-mybinder/7680/5 "2021-01-27T22:36:30Z")

</div>

The repo for the [apt\_install example](https://github.com/binder-examples/apt_install) is simpler, especially if you remove the `postBuild` from your fork.

I know you are looking for one that fits the criteria of ‘working example repo that is not cached on mybinder’; however, I think you are over-thinking that ‘working example’ part. You can use any plain, extremely basic new repo or repo branch. A binderhub will spin up a minimal Python-backed Jupyter environment and essentially git clone the contents if you don’t have any `requirements.txt` or `environment.yml` or other config file. Or at least this is what MyBinder does. So you can always make a new branch or repo and test it on yours first. And then test it on MyBinder later, if you must. If you don’t put ‘anything of substance’ in your repo, it will build via MyBinder. (Once you demonstrate that last statement a few times for yourself, you’ll trust it. I just used this [one](https://github.com/fomightez/utility-notebooks) to test what I was saying. It only has a `README.md` and a license file.)

---

<div class="post-metadata">

**Author:** ![sgibson91](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.jupyter.org/sgibson91/32/487_2.png) [@sgibson91](https://discourse.jupyter.org/u/sgibson91)\
**Post date:** [January 28, 2021, 7:30am UTC](https://discourse.jupyter.org/t/zero-to-binder-fork-binder-examples-is-not-building-on-mybinder/7680/6 "2021-01-28T07:30:58Z")

</div>

I tend to use [GitHub - binder-examples/requirements: Simple requirements.txt based example](https://github.com/binder-examples/requirements) to test my BinderHub deployments. As @fomightez said above, any new branch or minimal repo would be suffice to test on mybinder.

---

<div class="post-metadata">

**Author:** ![gmartins](https://avatars.discourse-cdn.com/v4/letter/g/8baadc/32.png) [@gmartins](https://discourse.jupyter.org/u/gmartins)\
**Post date:** [February 3, 2021, 12:34am UTC](https://discourse.jupyter.org/t/zero-to-binder-fork-binder-examples-is-not-building-on-mybinder/7680/7 "2021-02-03T00:34:36Z")

</div>

Thanks, @fomightez @sgibson91 I’m using [GitHub - binderhub-test-org/test-repo-public: Public repo to test permissions with Hub23](https://github.com/binderhub-test-org/test-repo-public), that’s all I needed.

Just for the record, It’s working flawlessly on GKE but for EKS I’ve got this error below. This is weird since I’m using the exact same public docker registry config. Thanks for the help!

```auto
Loading /etc/binderhub/config/values.yaml
Loading /etc/binderhub/secret/values.yaml
[BinderHub] ERROR | Exception while loading config file /etc/binderhub/config/binderhub_config.py
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/traitlets/config/application.py", line 737, in _load_config_files
    config = loader.load_config()
  File "/usr/local/lib/python3.8/site-packages/traitlets/config/loader.py", line 616, in load_config
    self._read_file_as_dict()
  File "/usr/local/lib/python3.8/site-packages/traitlets/config/loader.py", line 648, in _read_file_as_dict
    exec(compile(f.read(), conf_filename, 'exec'), namespace, namespace)
  File "/etc/binderhub/config/binderhub_config.py", line 87, in <module>
    hub_url = urlparse(c.BinderHub.hub_url)
  File "/usr/local/lib/python3.8/urllib/parse.py", line 372, in urlparse
    url, scheme, _coerce_result = _coerce_args(url, scheme)
  File "/usr/local/lib/python3.8/urllib/parse.py", line 124, in _coerce_args
    return _decode_args(args) + (_encode_result,)
  File "/usr/local/lib/python3.8/urllib/parse.py", line 108, in _decode_args
    return tuple(x.decode(encoding, errors) if x else '' for x in args)
  File "/usr/local/lib/python3.8/urllib/parse.py", line 108, in <genexpr>
    return tuple(x.decode(encoding, errors) if x else '' for x in args)
AttributeError: 'LazyConfigValue' object has no attribute 'decode'
[I 210128 19:24:41 app:727] BinderHub starting on port 8585
[I 210128 19:32:01 log:140] 200 GET / (anonymous@192.168.64.250) 20.20ms
[I 210128 19:36:10 log:140] 200 GET / (anonymous@192.168.36.101) 0.94ms
[W 210128 19:36:28 registry:111] No docker config at /root/.docker/config.json
[W 210128 19:36:28 registry:154] No username for docker registry at https://index.docker.io/v1
[W 210128 19:36:28 registry:179] No password for docker registry at https://index.docker.io/v1
[E 210128 19:36:29 builder:313] Tornado HTTP Timeout error: Failed to get image manifest for ggmartins-2dhelloworld-2dbinderhub-a52d48:97e86925cf99b4733d17924dbdbc3273c19fa14c
    Traceback (most recent call last):
      File "/usr/local/lib/python3.8/site-packages/binderhub/builder.py", line 309, in get
        image_manifest = await self.registry.get_image_manifest(*'/'.join(image_name.split('/')[-2:]).split(':', 1))
      File "/usr/local/lib/python3.8/site-packages/binderhub/registry.py", line 198, in get_image_manifest
        auth_resp = await client.fetch(auth_req)
    tornado.httpclient.HTTPClientError: HTTP 401: Unauthorized
[E 210128 19:36:29 builder:313] Tornado HTTP Timeout error: Failed to get image manifest for ggmartins-2dhelloworld-2dbinderhub-a52d48:97e86925cf99b4733d17924dbdbc3273c19fa14c

```

---

<div class="post-metadata">

**Author:** ![sgibson91](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.jupyter.org/sgibson91/32/487_2.png) [@sgibson91](https://discourse.jupyter.org/u/sgibson91)\
**Post date:** [February 3, 2021, 7:32am UTC](https://discourse.jupyter.org/t/zero-to-binder-fork-binder-examples-is-not-building-on-mybinder/7680/8 "2021-02-03T07:32:58Z")

</div>

> [@gmartins](#):
>
> Just for the record, It’s working flawlessly on GKE but for EKS I’ve got this error below. This is weird since I’m using the exact same public docker registry config. Thanks for the help!

Can you share your config, secrets redacted?

---

<div class="post-metadata">

**Author:** ![gmartins](https://avatars.discourse-cdn.com/v4/letter/g/8baadc/32.png) [@gmartins](https://discourse.jupyter.org/u/gmartins)\
**Post date:** [February 9, 2021, 3:50pm UTC](https://discourse.jupyter.org/t/zero-to-binder-fork-binder-examples-is-not-building-on-mybinder/7680/9 "2021-02-09T15:50:56Z")

</div>

thanks, Sarah,

I found a bug in my script, I was not giving the right config file to helm. 🤦‍♂️ sorry about that.

G

---

<div class="post-metadata">

**Author:** ![sgibson91](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.jupyter.org/sgibson91/32/487_2.png) [@sgibson91](https://discourse.jupyter.org/u/sgibson91)\
**Post date:** [February 9, 2021, 4:07pm UTC](https://discourse.jupyter.org/t/zero-to-binder-fork-binder-examples-is-not-building-on-mybinder/7680/10 "2021-02-09T16:07:38Z")

</div>

No worries! Happens to the best of us 🙂
