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

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:

at

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.

The Turing Way has a tutorial 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.

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) 19.96ms
[I 210127 17:15:50 log:140] 200 GET / (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: ‘’

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

The repo for the apt_install example 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 to test what I was saying. It only has a README.md and a license file.)

1 Like

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

1 Like

Thanks, @fomightez @sgibson91 I’m using GitHub - binderhub-test-org/test-repo-public: Public repo to test permissions with Hub23, 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!

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

Can you share your config, secrets redacted?

thanks, Sarah,

I found a bug in my script, I was not giving the right config file to helm. :man_facepalming: sorry about that.

G

1 Like

No worries! Happens to the best of us :slight_smile: