-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Support custom IDEs provided through docker images #2419
Comments
A rough, and still changing list of requirements we have towards IDE images:
IDE supervisor configIDEs can provide some configuration to customise supervisor's behaviour. This file is expected in {
"entrypoint": "/ide/startup.sh",
"readinessProbe": {
"type": "http",
"http": {
"path": "static/manifest.json"
}
}
} The Environment Variables coming from GitpodIDEs are expected to run on a particular port, specifically the one indicated on the Environment Variables coming from the IDE imageIDE images can contribute environment variables to a workspace. |
We might want to introduce a linter for images that can verify those requirements. In its first iteration that linter would just be a development tool, but could conceivably be integrated into the system as a whole. Also, we should look at ways for finding good defaults to relax those constraints over time. |
IDE should have index.html and integrate supervisor as described in gitpod/components/supervisor/frontend/src/index.ts Lines 7 to 11 in c749c27
|
First step would to be produce a working image for another IDE/editor, e.g. vim or https://github.com/JetBrains/projector-docker |
Let's do Theia as the first step. |
To create a great user experience we will need to provide a rich integration with Gitpod for accessing services such as ports, env vars, tokens etcs. We should investigate if we really want to go down the path of switching the primary IDE or rather let users start an additional IDE from within their workspaces. That way they could still use VS Code to interact with Gitpod and use A projector IDE or Jupyter Notebook for the coding task. |
Is there a minimal example of how to create custom IDE image? I tried to create such using |
Just commenting that we would be very interested in supporting custom IDEs in Gitpod. |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
Whilst it seems very unlikely this issue will be picked up in the short-term, I'm keen to keep the issue open, to hear of other use-cases from other communities who might want to leverage this type of functionality. |
It might make more sense for SSH users. |
I think there will be more and more specialized IDEs for different industries in the future, and cloud-based versions will be the way of the future. If Gitpod can turn the IDE access into an API, I believe more IDE companies will do business with Gitpod in the future 😄 |
Re-opening as we think about the longer term possibilities of general integrations around IDEs. No guarentee of significant movement on this issue in the short term, but would like to bring again more visibility to this issue. |
Is it an options to config IDE in Ref: #3274 (comment) |
Dear Gitpod maintainers, I'm very interested to ask: what is the status of the support for custom IDEs and/or for Emacs in particular? Just to complement my question:
Thanks for your time! |
Hi @erikmd, I think emacs is very usable with Gitpod at the current state. You could configure your Emacs setup through dotfiles installation script and then use SSH or xterm.js based browser terminal (private beta). I'm personally not very familiar with Emacs but I think I've a decent neovim setup through my dotfiles installer, it also has an option for auto installing emacs but probably incomplete. |
Hi @axonasif, thanks a lot for your quick reply!
AFAICT, yes it works, but there is one major usability issue, as documented here: https://github.com/emacs-lsp/lsp-gitpod#limitations
E.g. if one browses we get a VScode window (while we'd really like to just get an Emacs tab, out-of-the-box). Though, your reply makes me doubt… Do you think the limitation above mentioned in the emacs-lsp project has already been addressed? so this would just be a documentation issue 🙂 Thanks! |
@erikmd I wasn't talking about https://github.com/emacs-lsp/lsp-gitpod but the currently available Gitpod features that you could utilize to run emacs from a terminal emulator over SSH or this. |
@axonasif OK I see! thanks for this information 😊 Indeed, vanilla GNU Emacs and spacemacs provide both GUI and TTY front-ends, |
@erikmd if you sign up at gitpod.io/labs we can sign you up for the private beta for the terminal based editor in the browser that @axonasif mentioned, it would be great to get your feedback on how/if that works for you. Regarding the emacs lsp project, we have also been experimenting with custom IDE support, which could potentially be used in this context. We've been looking for more concrete examples that might use this type of feature, so that project would also be a good one for us to experiment with. |
@loujaybee OK, thanks for your advice and feedback!
Done! Looking forward to being able to test all this soon 🙂 |
Hi @loujaybee ! after I signed up at the URL you mentioned, is there any further step to do so that I'll be able to select a browser based terminal setting in https://gitpod.io/new ? Thanks for your time! (FYI, my email set in https://gitpod.io/user/account is |
Hey @erikmd, no further steps, you should have access now, can you retry? |
Indeed, @loujaybee, thanks ! BTW I posted some feedback on #17724 (comment) |
@axonasif I was able to test emacs in a Browser Terminal workspace, |
No, I'm using a dotfiles installation script to install it on all workspaces automatically (also mentioned in my initial message 😉 ) |
Thanks! 👍 for the record, I needed to:
|
Since we now have the foundation in place to install a custom IDE in Gitpod using a Docker Image, It would be great to have a an example and docs that explain the minimal requirements Gitpod imposes on such an image.
The text was updated successfully, but these errors were encountered: