星期四, 3月 07, 2019

Code-server with openSUSE Leap 15 in Azure

Code-server with openSUSE Leap 15 in Azure

Code-server 套件是 vscode 的線上版

昨天也有參與一些討論, 所以今天官方也有釋放出 docker 的版本

接下來就嘗試三種使用 code-server 的方式

方式 1: 使用 container 的方式

在有 container 環境 ( docker / podman ) 底下

執行 docker run 指令
> docker  run  -p  8443:8443  -v  "${PWD}:/root/project"  codercom/code-server code-server --allow-http --no-auth

執行之後在 Firefox 可以正常連線


在 Google Chrome 則是不行

Notes:
  • 昨天晚上也有嘗試與其他的網友打包 Docker image, 後來大家發現 code-server 對net-tools 有相依性, 所以如果是自己打包請注意要安裝 net-tools


方式 2: 使用實體機器

OS:  openSUSE Leap 15
Code-server: 1.31.0-20

下載套件

我是下載 code-server-1.31.0-20-x86_64-linux.tar.gz


解壓縮檔案
> tar  zxvf  code-server-1.31.0-20-x86_64-linux.tar.gz

進入目錄
> cd   code-server-1.31.0-20-x86_64-linux/

執行 code-server 然後也可以使用 -p 指定 listen port, 這邊以 port 8000 為例

> sudo  ./code-server  -p  8000
[sudo] password for root:
INFO  code-server v1.0.0
INFO  Additional documentation: http://github.com/codercom/code-server
INFO  Initializing {"data-dir":"/root/.code-server","working-dir":"/home/sakana/Downloads/code-server-1.31.0-20-x86_64-linux","log-dir":"/root/.code-server/logs/20190307034954898"}
INFO  Starting webserver... {"host":"0.0.0.0","port":8000}
WARN  No certificate specified. This could be insecure.
WARN  Documentation on securing your setup: https://coder.com/docs
INFO   
INFO  Password: VsEamUzQLfnv
INFO   
INFO  Started (click the link below to open):
INFO  http://localhost:8000/
INFO   
INFO  Starting shared process [1/5]...
INFO  Connected to shared process

開啟瀏覽器 http://localhost:8000

會被要求輸入密碼, 輸入執行過程中帶出的密碼





方式 3:  In Microsoft Azure

OS:  openSUSE Leap 15 in Azure
Code-server: 1.31.0-20

在 Azure 上面建立 linux, 我是用 openSUSE Leap 15
使用 ssh 連入 VM

切換 root
> sudo  su -

在 Azure 上面其實可以使用 container 或是 套件執行的方式
但是為了之後使用方便, 我是使用 container 的方式
Azure 上面的 openSUSE Leap 其實已經安裝了 docker, 只是沒有啟動

檢查相關資訊
# systemctl  status  docker
● docker.service - Docker Application Container Engine
  Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
  Active: inactive (dead)
    Docs: http://docs.docker.com

啟動 docker
# systemctl  start  docker

設定開機啟動 docker
# systemctl  enable  docker

觀察相關資訊
# systemctl  status  docker
● docker.service - Docker Application Container Engine
  Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
  Active: active (running) since Thu 2019-03-07 04:14:26 UTC; 15s ago

執行 docker run 指令 測試
> docker  run  -p  8443:8443  -v  "${PWD}:/root/project"  codercom/code-server code-server --allow-http --no-auth


接下來到 VM 的 網路 -- > 新增輸入連接阜


如果只是要提供一個服務, 就可以考慮開單一 port
這邊我建立一個安全群組開放 port 8443 ~ port 8500
輸入 port 範圍 -- >  新增


開啟瀏覽器 http://SERVER_IP:8443


單一 container 沒問題, 來試試看開多個吧

寫一個簡單的 shell script 來開 15 個 code-server

以下是初步的內容
# cat  create_15_code-server.sh

#!/bin/bash
for (( i=8444 ; i < 8460 ; i=i+1 ))
 do
#    sudo docker  run -p $i:8443  -v "${PWD}:/root/project"  codercom/code-server code-server --allow-http --no-auth
   sudo docker  run -p $i:8443  codercom/code-server code-server --allow-http --no-auth &
 done

  • 我把 ${PWD} 拿掉, 因為不想要讓多個 code-server 的東西放在同一個資料夾, 會混亂
  • 執行的時候使用背景執行, 但是沒有去掉 STDOUT, 便於觀察
  • 需要很多記憶體, 如果一次執行多個, 記憶體不夠會死掉 :)

觀察資訊
# docker  ps
CONTAINER ID        IMAGE   COMMAND  CREATED STATUS              PORTS NAMES
85f909b6192e        codercom/code-server   "code-server --all..."  9 minutes ago Up 9 minutes        0.0.0.0:8449->8443/tcp   jolly_bhaskara
817e39144c05        codercom/code-server   "code-server --all..."  9 minutes ago Up 9 minutes        0.0.0.0:8456->8443/tcp   affectionate_euclid
4996dbd151ff        codercom/code-server   "code-server --all..."  9 minutes ago Up 9 minutes        0.0.0.0:8448->8443/tcp   hopeful_borg
d1fd0cdc3f0f        codercom/code-server   "code-server --all..."  9 minutes ago Up 9 minutes        0.0.0.0:8445->8443/tcp   thirsty_stonebraker
e857dc22c78e        codercom/code-server   "code-server --all..."  9 minutes ago Up 9 minutes        0.0.0.0:8452->8443/tcp   compassionate_euler
1d96d9e094df        codercom/code-server   "code-server --all..."  9 minutes ago Up 9 minutes        0.0.0.0:8447->8443/tcp   suspicious_thompson
43ec9205e208        codercom/code-server   "code-server --all..."  9 minutes ago Up 9 minutes        0.0.0.0:8458->8443/tcp   vibrant_roentgen
7abd20eb6c4e        codercom/code-server   "code-server --all..."  9 minutes ago Up 9 minutes        0.0.0.0:8455->8443/tcp   brave_roentgen
4bc3b6e2b912        codercom/code-server   "code-server --all..."  9 minutes ago Up 9 minutes        0.0.0.0:8444->8443/tcp   eager_jones
4ede04411909        codercom/code-server   "code-server --all..."  9 minutes ago Up 9 minutes        0.0.0.0:8457->8443/tcp   eager_yalow
89b11f5918fd        codercom/code-server   "code-server --all..."  9 minutes ago Up 9 minutes        0.0.0.0:8459->8443/tcp   agitated_benz
037083a1def1        codercom/code-server   "code-server --all..."  9 minutes ago Up 9 minutes        0.0.0.0:8453->8443/tcp   flamboyant_hypatia
b6f37bfb300f        codercom/code-server   "code-server --all..."  9 minutes ago Up 9 minutes        0.0.0.0:8450->8443/tcp   dreamy_mestorf
2dae87bcd325        codercom/code-server   "code-server --all..."  9 minutes ago Up 9 minutes        0.0.0.0:8451->8443/tcp   cocky_haibt
c87637961140        codercom/code-server   "code-server --all..."  9 minutes ago Up 9 minutes        0.0.0.0:8454->8443/tcp   vibrant_volhard
251f464672e9        codercom/code-server   "code-server --all..."  9 minutes ago Up 9 minutes        0.0.0.0:8446->8443/tcp   wonderful_boyd


記憶體用量參考
# free  -g
             total used        free shared buff/cache   available
Mem:             15 8        6 0 0           6
Swap:             0 0      0


開啟瀏覽器 http://SERVER_IP:8444 ~  http://SERVER_IP:8459




這樣的方式如果以後要弄個 workshop 或讀書會
也可以當成臨時性的線上編輯器 :p


~ enjoy it

沒有留言: