VSCode-IDE / entrypoint.sh
rikunarita's picture
Update entrypoint.sh
17d86c5 verified
#!/bin/bash
# エラーが出たら止まるように設定
set -e
echo "🚀 Starting custom VSCode environment..."
# ---------------------------------------------------------
# 1. 永続ストレージ (/data) のセットアップ
# ---------------------------------------------------------
# /data フォルダが存在するか確認(Persistent Storageが有効なら存在する)
if [ -d "/data" ]; then
echo "💾 Persistent storage detected provided at /data"
# ユーザー設定や拡張機能を保存するフォルダを /data 内に作成
mkdir -p /data/User
mkdir -p /data/extensions
mkdir -p /data/workspace
# 本来の保存場所から /data へリンクを貼る(これでデータが永続化される!)
# .local/share/code-server は拡張機能など
mkdir -p /home/user/.local/share
rm -rf /home/user/.local/share/code-server
ln -s /data/extensions /home/user/.local/share/code-server
# .config/code-server は設定ファイルなど
mkdir -p /home/user/.config
rm -rf /home/user/.config/code-server
ln -s /data/User /home/user/.config/code-server
# ワークスペース(作業場)を /data/workspace に設定
WORKING_DIR="/data/workspace"
else
echo "⚠️ No persistent storage found. Using ephemeral storage."
WORKING_DIR="/home/user"
fi
# ---------------------------------------------------------
# 2. SQLite データベースの準備
# ---------------------------------------------------------
# ユーザーごとのデータを保存するためのSQLite DBをセットアップ
DB_PATH="$WORKING_DIR/user_data.sqlite"
if [ ! -f "$DB_PATH" ]; then
echo "📦 Initializing SQLite database at $DB_PATH..."
# 新規作成時にテーブルを作っておく(例としてusersテーブルを作成)
sqlite3 "$DB_PATH" "CREATE TABLE IF NOT EXISTS system_logs (id INTEGER PRIMARY KEY, message TEXT, created_at DATETIME DEFAULT CURRENT_TIMESTAMP);"
sqlite3 "$DB_PATH" "INSERT INTO system_logs (message) VALUES ('System initialized');"
echo "✅ SQLite database created."
else
echo "📂 SQLite database found. Ready to use."
fi
# ---------------------------------------------------------
# 3. code-server (VSCode) の起動
# ---------------------------------------------------------
echo "💻 Launching VSCode Server on port 7860..."
# PASSWORD環境変数が設定されていない場合のデフォルト(必ずSpaceのSettingsで設定してね!)
if [ -z "$PASSWORD" ]; then
export PASSWORD="changeme123"
echo "⚠️ WARNING: No password set. Using default: 'changeme123'"
fi
# VSCodeを起動
# --bind-addr: 外部からアクセスできるようにする
# --auth: パスワード認証を有効にする
# --user-data-dir: 設定ファイルの場所を指定(リンク済みだが念のため)
exec code-server \
--bind-addr 0.0.0.0:7860 \
--auth password \
--disable-telemetry \
"$WORKING_DIR"