Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New Remote Desktop #204

Closed
Jose-Matsuda opened this issue Jan 11, 2021 · 8 comments · Fixed by #209
Closed

New Remote Desktop #204

Jose-Matsuda opened this issue Jan 11, 2021 · 8 comments · Fixed by #209
Assignees

Comments

@Jose-Matsuda
Copy link
Contributor

Jose-Matsuda commented Jan 11, 2021

The current kubeflow-containers-desktop is a bit unwieldy to maintain and there are a few features that are outside the actual remote desktop that may be better served by other images.

This includes Jupyter which could be served by jupyterlab images, as well as a browser version of vscode which can also be found in our jupyterlab images. (Note that jupyter is not in the 'remote desktop' part, but vscode is)

Additionally, the current remote desktop is proving difficult to internationalize to French completely. Done via translation files

New Candidate image
Courtesy of Blair, can base new Dockerfile off of https://hub.docker.com/r/consol/ubuntu-xfce-vnc/ with the project at https://github.com/ConSol/docker-headless-vnc-container looking at Dockerfile.ubuntu.xfce.vnc for inspiration.

TODO
Make a basic remote desktop using docker headless and place it here. Will need to do investigation on getting jupyter proxy to get a vnc session up and running.

Important / to be researched
The typical way of adding a locale to the environment does not play well with remote desktop under ubuntu:18.04. It works just fine (as in the applications like Thunar are also localized) with ubuntu:16.04
Can use Ubuntu 20.04, see ConSol/docker-headless-vnc-container#96 (comment)

Discussion held here

Do we want all these random packages installed by the current remote desktop?
https://github.com/StatCan/kubeflow-containers-desktop/blob/master/base/Dockerfile#L70
Obvious keepers are curl, the compression libs, git, curl, wget

@Jose-Matsuda Jose-Matsuda transferred this issue from StatCan/kubeflow-containers-desktop Feb 1, 2021
@Jose-Matsuda Jose-Matsuda changed the title Focus Remote Desktop image to be just a remote desktop New Remote Desktop Feb 1, 2021
@Jose-Matsuda Jose-Matsuda self-assigned this Feb 1, 2021
@Jose-Matsuda
Copy link
Contributor Author

Work is being done on the remote-desktop branch, as of today the dockerbits included are the base CPU dockerfile, as well as a dockerfile that contains the XFCE-ubuntu dockerfile from the headless example. That "7_RemoteDesktop" contains both a server and client.
Still TODO is figuring out how to get the remote desktop server running on top of a jupyter server proxy so we can also get metrics for it.

@Jose-Matsuda
Copy link
Contributor Author

Jose-Matsuda commented Feb 1, 2021

Spoke with Blair he had two ideas to investigate

  1. Instead of using jupyter proxy try to get it to work on port 8888 with the NB_PREFIX acting correctly. Could have an apache server in front that assists with the NB_PREFIX. Also mentioned that DavidSpek is doing something like this with rstudio in the upstream kubeflow proj.
    (Move forward with this option)

  2. Check around how the proxy works. Blair has a fork here and notably look at the init.sh file. Instead of launching rserver and rsession it would be TigerVNC and novnc respectively.
    (Did a big of digging around and I kinda understand the implementation with a jupyter-desktop-server variation existing and I think it would be similar to how Blair implemented his fork of the jupyter-rsession-proxy in the docker-bits

@Jose-Matsuda
Copy link
Contributor Author

image

For future reference, here's what I'm tussling with.
Before that, there was another error that I solved by adding /usr/lib/python3/dist-packages to the path because without it the application could not find the qgis package.

@Jose-Matsuda
Copy link
Contributor Author

Jose-Matsuda commented Feb 15, 2021

Been doing a bit of reading here and there with copy and paste.

The extra sidebar that houses the copy and paste feature does come from the init.py in the jupyter-desktop-server project. A video containing the result, but with an error that I need to find out about is here

Regarding a more 'vanilla' copy and paste I'm not sure how well it would play along.
We have info from Frances original issue in kubeflow-containers which has a link to issues/509 in the novnc project.

In a separate issue 943 as well as a google-groups-forum that this type of vanilla copy-paste functionality is not possible and is limited by 'security restrictions' in the browsers

EDIT: I think I got extremely lucky in recording that video. Even after resetting to be consistent with the original fork, I can no longer seem to get vnc in the init.py to work. Only vnc_lite is working. Now what I'm thinking anyways is that we want the lite version anyways, and then just add in the clipboard feature.

@Jose-Matsuda
Copy link
Contributor Author

Not entirely sure what the following "Automatic clipboard support" issue found here means but I'll place it here for posterity's sake.

@Jose-Matsuda
Copy link
Contributor Author

Doing some testing in https://github.com/Ito-Matsuda/jupyter-desktop-server using the dockerfile provided there instead of constantly pushing / regrabbing it . To test there i can just change in the init.py and just build the dockerfile and it will use the project.

Issue remains of trying to use vnc.html instead of vnc_lite.html

@Jose-Matsuda
Copy link
Contributor Author

Jose-Matsuda commented Feb 17, 2021

Well this is pretty funny (clipboard does not work as intended here)
image

Right now I cannot seem to figure out how to use vnc.html instead of vnc_lite.html so instead I tried combining the two. Through this as well I think I will remove the ribbon at the top (will keep a way to send ctrl alt delete)

@Jose-Matsuda
Copy link
Contributor Author

Jose-Matsuda commented Feb 18, 2021

Got vnc.html to co-operate. The changes required to make it work are in this commit

This was found after going into webconsole and just comparing values there as well as looking at the terminal output.
Here is the terminal in lite
image
image

And in regular vnc
image
image

It's definitely the 'path' that is messing around here. Also add /?autoconnect=true if you want to bypass the initial "connect" screen

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants