IDE / entrypoint.sh
piyaka's picture
Update entrypoint.sh
5b50db2 verified
Raw History Blame Contribute Delete
2.37 kB
#!/bin/bash
# エラーが出たら止まるように設定
set -e
echo "🚀 Starting custom VSCode + Android Emulator environment..."
# ---------------------------------------------------------
# 1. 永続ストレージ (/data) のセットアップ
# ---------------------------------------------------------
if [ -d "/data" ]; then
echo "💾 Persistent storage detected provided at /data"
mkdir -p /data/User
mkdir -p /data/extensions
mkdir -p /data/workspace
mkdir -p /home/user/.local/share
rm -rf /home/user/.local/share/code-server
ln -s /data/extensions /home/user/.local/share/code-server
mkdir -p /home/user/.config
rm -rf /home/user/.config/code-server
ln -s /data/User /home/user/.config/code-server
WORKING_DIR="/data/workspace"
else
echo "⚠️ No persistent storage found. Using ephemeral storage."
WORKING_DIR="/home/user"
fi
# ---------------------------------------------------------
# 2. SQLite データベースの準備
# ---------------------------------------------------------
DB_PATH="$WORKING_DIR/user_data.sqlite"
if [ ! -f "$DB_PATH" ]; then
echo "📦 Initializing SQLite database at $DB_PATH..."
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. Android Emulator (headless, ARM image) の起動
# ---------------------------------------------------------
echo "📱 Launching Android Emulator (ARM, headless)..."
emulator -avd MyDeviceARM -no-window -gpu swiftshader_indirect -no-snapshot -noaudio -no-boot-anim &
# Give emulator time to boot
sleep 15
# ---------------------------------------------------------
# 4. code-server (VSCode) の起動
# ---------------------------------------------------------
echo "💻 Launching VSCode Server on port 7860..."
if [ -z "$PASSWORD" ]; then
export PASSWORD="123"
echo "⚠️ WARNING: No password set. Using default: '123'"
fi
exec code-server \
--bind-addr 0.0.0.0:7860 \
--auth password \
--disable-telemetry \
"$WORKING_DIR"