project

package module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 12, 2022 License: Apache-2.0 Imports: 12 Imported by: 0

README

code-code-server

code-server launcher with vscode devcontainer config

Installation

Use go install to install code-code-server.

go install github.com/ar90n/code-code-server/cmd/code@latest

Usage

Change directory to the directory you want to serve. And run code . to build image and start container. The logs of these operations are following.

$ cd code-code-server
$ ls .devcontainer
Dockerfile              devcontainer.json
$ code .
[+] Building 0.4s (10/10) FINISHED
 => [internal] load build definition from Dockerfile                                                                                                                                                     0.0s
 => => transferring dockerfile: 1.64kB                                                                                                                                                                   0.0s
 => [internal] load .dockerignore                                                                                                                                                                        0.0s
 => => transferring context: 2B                                                                                                                                                                          0.0s
 => [internal] load metadata for mcr.microsoft.com/vscode/devcontainers/go:0-1-bullseye                                                                                                                  0.3s
 => [1/6] FROM mcr.microsoft.com/vscode/devcontainers/go:0-1-bullseye@sha256:4cae6b242e4c6357f3242c0c6c70987cf56ad42e7c3ae925ea3ad3525925f891                                                            0.0s
 => CACHED [2/6] RUN if [ "lts/*" != "none" ]; then su vscode -c "umask 0002 && . /usr/local/share/nvm/nvm.sh && nvm install lts/* 2>&1"; fi                                                             0.0s
 => CACHED [3/6] RUN curl -fsSL https://code-server.dev/install.sh | sh                                                                                                                                  0.0s
 => CACHED [4/6] RUN mkdir -p /opt/code-server                                                                                                                                                           0.0s
 => CACHED [5/6] RUN { echo '#!/bin/bash'; echo 'set -e'; echo 'set -x'; echo ''; echo 'code-server --install-extension golang.Go'; echo 'echo "auth: none" > /tmp/config.yml'; echo 'code-server --con  0.0s
 => CACHED [6/6] RUN chmod +x /opt/code-server/entrypoint.sh                                                                                                                                             0.0s
 => exporting to image                                                                                                                                                                                   0.0s
 => => exporting layers                                                                                                                                                                                  0.0s
 => => writing image sha256:1881c619ccb5ea4c4b90ba9466a0ae3255eba897159ca39e87494c535f7099a8                                                                                                             0.0s
 => => naming to docker.io/library/go_code_coder_server                                                                                                                                                  0.0s
2022/03/07 22:24:41 ==============================================================================================
2022/03/07 22:24:41 Code Server running at http://tororo.local:58818/?folder=/workspace/code-code-server
2022/03/07 22:24:41 ==============================================================================================
+ code-server --install-extension golang.Go
[2022-03-07T13:24:43.113Z] info  Wrote default config file to ~/.config/code-server/config.yaml
Installing extensions...
Installing extension 'golang.go'...
Extension 'golang.go' v0.31.1 was successfully installed.
+ echo 'auth: none'
+ code-server --config /tmp/config.yml --bind-addr 0.0.0.0:8080
[2022-03-07T13:24:53.607Z] info  code-server 4.1.0 9e620e90f53fb91338a2ba1aaa2e556d42ae52d5
[2022-03-07T13:24:53.609Z] info  Using user-data-dir ~/.local/share/code-server
[2022-03-07T13:24:53.642Z] info  Using config file /tmp/config.yml
[2022-03-07T13:24:53.643Z] info  HTTP server listening on http://0.0.0.0:8080/
[2022-03-07T13:24:53.643Z] info    - Authentication is disabled
[2022-03-07T13:24:53.643Z] info    - Not serving HTTPS

And you can access to the code server by the above URL which is http://tororo.local:58818/?folder=/workspace/code-code-server.

スクリーンショット 2022-03-07 22 29 31

Features

  • Dockerfile in devcontainer support
  • Following attributes in devcontainer.json support
    • name
    • build
    • runArgs
    • workspaceMount
    • workspaceFolder
    • settings
    • extensions
    • forwardPorts
    • portsAttributes
    • postCraeteCommand
    • remoteUser
  • SettingsSync extension support partially
    • Only downloading is supported. Uploading is not supported.
    • Synchronization of settings is done at container building time.

Settings Sync support

code-code-server only supports shanalikhan's code-settings-sync extension partially. This means that code-code-server doesn't support vscode builtin SettingsSync feature. And our integration with code-settings-sync is not perfect.

How to use

Set your Gist ID of cloudSettings which is created by code-settings-sync to an Environment Variable whose name is SETTINGS_SYNC_GIST_ID.

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

Apache-2.0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BuildImage

func BuildImage(devcontainer DevContainer) (string, error)

Types

type ContainerContext

type ContainerContext struct {
	// contains filtered or unexported fields
}

func NewContainerContext

func NewContainerContext(tag string, devcontainer DevContainer, serviceURL ServiceURL) (ContainerContext, error)

func (*ContainerContext) Run

func (c *ContainerContext) Run() error

type ServiceURL

type ServiceURL struct {
	Host            string
	Port            int
	WorkspaceFolder string
}

func GetServiceURL

func GetServiceURL(devcontainer DevContainer) (ServiceURL, error)

func (*ServiceURL) String

func (s *ServiceURL) String() string

Directories

Path Synopsis
cmd
code command

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL