Merge pull request #1 from cdr/v4-image-examples

Add example Dockerfiles for v4 IDE installation
This commit is contained in:
Nathan Potter 2020-03-17 14:10:17 -05:00 committed by GitHub
commit 5c007cb9ac
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 216 additions and 2 deletions

View File

@ -1,2 +1,90 @@
# code-server-docs
Documentation and examples for code-server
# coder-enterprise-docs
These docs contain examples and guides for how to setup your images to utilize
the Multi Editor Support built into Coder Enterprise.
The `images` directory contains many examples for how to setup your images
with different IDEs.
## Multi Editor Support
Coder Enterprise has full support for a wide range of editors including VSCode
Eclipse, the JetBrains suite, and many more. These editors are run in the remote
environment and rendered directly in the browser. The updated multi editor support
also provides fully integrated window management to give the application the look
and feel of a native local application. This update provides the best of both
worlds -- the security and productivity of remote infrastructure with the native look
and feel of the local machine.
### Installing an IDE into your docker image:
Installing an IDE into your image can be done using the same methods that you would
normally use when installing the IDE onto your local machine. Code-server is able to
find and start the following IDEs if their binaries exist in your PATH:
- intellij-idea-ultimate
- intellij-idea-community
- eclipse
- goland
- pycharm
- phpstorm
- clion
- rider
- rubymine
- datagrip
- oni
- monodevelop
- emacs
For a cleaner experience, a [.desktop]() entry can be added into your
`/usr/share/applications` to make the IDE discoverable by code-server. Adding the `.desktop`
entry will render the applications Logo and name on the code-server dashboard.
### Desktop File
The `.desktop` file gives code-server information about the IDE such as the name,
where to find the logo to display, and what command to run to start the application.
The following fields are required in the `.desktop` file for code-server to be able
to discover and start your installed IDE:
| Field | Description | Required / Optional |
|---|---|---|
| Name | The name you would like to use for your application | Required |
| Type | This must be set to `Application` for code-server to render it | Required |
| Logo | The path to the logo you'd like code-server to use for displaying your IDE | Optional |
| Exec | The path to the command that is used to start the IDE | Required |
### Required Packages
The following packages are required in your image if you're using an IDE other than VSCode
to ensure that it can communicate properly with code-server.
| Deb Package | Rpm Package | Package Description |
|---|---|---|
| openssl | openssl | Secure Sockets Layer Toolkit |
| libxtst6 | libXtst | X11 Testing Library |
| libxrender1 | libXrender | X Rendering Extension Client Library |
| libfontconfig1 | fontconfig | Generic Font Configuration Library |
| libxi6 | libXi | X11 Input Extension Library |
### How does IDE licensing work?
Licensing for IDEs running via code-server are licensed in the same way that they are
when running them on your local machine. If your IDE requires a license for use locally,
it will still require one when running it through code-server.
### What editors are known to work?
- VSCode
- IntelliJ IDEA Ultimate and Community editions
- Eclipse
- PyCharm
- GoLand
- PhpStorm
- RubyMine
- CLion
- Rider
- DataGrip
- Emacs
- Vim
- Oni
- MonoDevelop
### Known Issues
- Reconnects dont currently work, if your internet connection is unstable or goes out,
we recommend using the built in VSCode IDE until we can resolve this issue.
- Opening and closing an application many times can cause code-server to get into a broken
state. We recommend minimizing the opens and closes of a single application until were able
to resolve this.

View File

@ -0,0 +1,18 @@
FROM centos:8
RUN yum update -y && yum install -y \
curl \
# The following libraries are required for the IDE to be able to communicate with
# code-server through xserver messaging.
openssl \
libXtst \
libXrender \
fontconfig \
libXi
# Install goland.
RUN mkdir -p /opt/goland
RUN curl -L https://download.jetbrains.com/go/goland-2019.3.3.tar.gz | tar -C /opt/goland --strip-components 1 -xzvf -
# Add a desktop file entry for goland.
COPY goland.desktop /usr/share/applications/goland.desktop

View File

@ -0,0 +1,17 @@
FROM ubuntu:18.04
RUN apt-get update && apt-get install -y \
curl \
# The following libraries are required for the IDE to be able to communicate with
# code-server through xserver messaging.
libxtst6 \
libxrender1 \
libfontconfig1 \
libxi6
# Install goland.
RUN mkdir -p /opt/goland
RUN curl -L https://download.jetbrains.com/go/goland-2019.3.3.tar.gz | tar -C /opt/goland --strip-components 1 -xzvf -
# Add a desktop file entry for goland.
COPY goland.desktop /usr/share/applications/goland.desktop

View File

@ -0,0 +1,7 @@
[Desktop Entry]
Version=2019.3.3
Type=Application
Terminal=false
Name=GoLand
Icon=/opt/goland/bin/goland.png
Exec=/opt/goland/bin/goland.sh

View File

@ -0,0 +1,18 @@
FROM centos:8
RUN yum update -y && yum install -y \
curl \
# The following libraries are required for the IDE to be able to communicate with
# code-server through xserver messaging.
openssl \
libXtst \
libXrender \
fontconfig \
libXi
# Install intellij.
RUN mkdir -p /opt/idea
RUN curl -L https://download.jetbrains.com/idea/ideaIC-2019.3.3.tar.gz | tar -C /opt/idea --strip-components 1 -xzvf -
# Add a desktop file entry for intellij.
COPY intellij.desktop /usr/share/applications/intellij.desktop

View File

@ -0,0 +1,17 @@
FROM ubuntu:18.04
RUN apt-get update && apt-get install -y \
curl \
# The following libraries are required for the IDE to be able to communicate with
# code-server through xserver messaging.
libxtst6 \
libxrender1 \
libfontconfig1 \
libxi6
# Install intellij.
RUN mkdir -p /opt/idea
RUN curl -L https://download.jetbrains.com/idea/ideaIC-2019.3.3.tar.gz | tar -C /opt/idea --strip-components 1 -xzvf -
# Add a desktop file entry for intellij.
COPY intellij.desktop /usr/share/applications/intellij.desktop

View File

@ -0,0 +1,7 @@
[Desktop Entry]
Version=2019.3.3
Type=Application
Terminal=false
Name=IntelliJ
Icon=/opt/idea/bin/idea.png
Exec=/opt/idea/bin/idea.sh

View File

@ -0,0 +1,18 @@
FROM centos:8
RUN yum update -y && yum install -y \
curl \
# The following libraries are required for the IDE to be able to communicate with
# code-server through xserver messaging.
openssl \
libXtst \
libXrender \
fontconfig \
libXi
# Install webstorm.
RUN mkdir -p /opt/webstorm
RUN curl -L https://download.jetbrains.com/webstorm/WebStorm-2019.3.3.tar.gz | tar -C /opt/webstorm --strip-components 1 -xzvf -
# Add a desktop file entry for webstorm.
COPY webstorm.desktop /usr/share/applications/webstorm.desktop

View File

@ -0,0 +1,17 @@
FROM ubuntu:18.04
RUN apt-get update && apt-get install -y \
curl \
# The following libraries are required for the IDE to be able to communicate with
# code-server through xserver messaging.
libxtst6 \
libxrender1 \
libfontconfig1 \
libxi6
# Install webstorm.
RUN mkdir -p /opt/webstorm
RUN curl -L https://download.jetbrains.com/webstorm/WebStorm-2019.3.3.tar.gz | tar -C /opt/webstorm --strip-components 1 -xzvf -
# Add a desktop file entry for webstorm.
COPY webstorm.desktop /usr/share/applications/webstorm.desktop

View File

@ -0,0 +1,7 @@
[Desktop Entry]
Version=2019.3.3
Type=Application
Terminal=false
Name=WebStorm
Icon=/opt/webstorm/bin/webstorm.png
Exec=/opt/webstorm/bin/webstorm.sh