Skip to content

Docker で openvscode-server を構築

構築

起動

docker-compose.yamlを下記で作成します:

services:
  openvscode:
    container_name: nob-openvscode
    image: gitpod/openvscode-server:1.92.1
    ports:
      - 3000:3000
    volumes:
      - ./volumes:/home/workspace

{サーバのアドレス}:3000にアクセスすると VSCode の画面が表示されます。

https で通信を行う

http 通信だと markdown のプレビューができないなど不都合があるので、自己証明書を発行してリバースプロキシ経由で https 通信をできるようにします。ここでは例としてパッケージ版の nginx サーバを立ててプロキシサーバとします。

nginx インストール

sudo apt update

sudo apt install nginx

証明書作成

# 保管用ディレクトリ作成
sudo mkdir -p /etc/nginx/ssl

# 秘密鍵を作成
sudo openssl genrsa -out /etc/nginx/ssl/server.key 2048

# CSRを作成
sudo openssl req -new -key /etc/nginx/ssl/server.key -out /etc/nginx/ssl/server.csr

# SSLサーバ証明書を作成
sudo openssl x509 -days 3650 -req -signkey /etc/nginx/ssl/server.key -in /etc/nginx/ssl/server.csr -out /etc/nginx/ssl/server.crt

nginx の設定変更

/etc/nginx/conf.d/ssl.confを下記で作成します:

server {
    listen 443 ssl;
    ssl_certificate     /etc/nginx/ssl/server.crt;
    ssl_certificate_key /etc/nginx/ssl/server.key;

    location / {
        # WEBリクエストをローカルホスト3000番ポートへリダイレクト
        proxy_pass http://localhost:3000/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # WebSocket のための設定
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

nginx の再起動後、{サーバのアドレス}:443で VSCode にアクセスでき、markdown のプレビューなどが利用できるようになっています。