Add template
This commit is contained in:
60
vs-code-server/main.tf
Normal file
60
vs-code-server/main.tf
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
# main.tf (無 Docker provider 版,單容器 VSCode)
|
||||||
|
terraform {
|
||||||
|
required_providers {
|
||||||
|
coder = {
|
||||||
|
source = "coder/coder"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
provider "coder" {}
|
||||||
|
|
||||||
|
# 基本 workspace 資料
|
||||||
|
data "coder_workspace" "me" {}
|
||||||
|
|
||||||
|
# 取得使用者名稱
|
||||||
|
data "coder_workspace_owner" "me" {}
|
||||||
|
|
||||||
|
# 自動建立使用者 config 目錄與預設設定(使用 dir,無 shell)
|
||||||
|
resource "coder_agent" "main" {
|
||||||
|
os = "linux"
|
||||||
|
arch = "amd64"
|
||||||
|
|
||||||
|
dir = "/projects/${data.coder_workspace_owner.me.name}"
|
||||||
|
|
||||||
|
# 預設 VSCode 設定檔
|
||||||
|
env = {
|
||||||
|
CODE_SERVER_CONFIG = <<EOF
|
||||||
|
{
|
||||||
|
"workbench.colorTheme": "Default Dark+"
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
# 登出自動存檔
|
||||||
|
shutdown_script = <<EOF
|
||||||
|
#!/bin/bash
|
||||||
|
code-server --sync-settings || true
|
||||||
|
echo "Saved for ${data.coder_workspace_owner.me.name}"
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
# 磁碟監控(使用 coder_metadata 資源)
|
||||||
|
resource "coder_metadata" "disk_usage" {
|
||||||
|
resource_id = coder_agent.main.id
|
||||||
|
|
||||||
|
item {
|
||||||
|
key = "disk"
|
||||||
|
value = "10GB"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# VSCode Web App(連到 Coder server 的 code-server)
|
||||||
|
resource "coder_app" "code-server" {
|
||||||
|
agent_id = coder_agent.main.id
|
||||||
|
slug = "vscode"
|
||||||
|
display_name = "VSCode Web"
|
||||||
|
url = "http://localhost:6800/?folder=/projects/${data.coder_workspace_owner.me.name}"
|
||||||
|
icon = "/icon/code.svg"
|
||||||
|
subdomain = true
|
||||||
|
}
|
||||||
38
vs-code-server/readme.md
Normal file
38
vs-code-server/readme.md
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
\# Coder VSCode Template
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\## 功能
|
||||||
|
|
||||||
|
\- 單容器架構
|
||||||
|
|
||||||
|
\- 使用者程式碼 → 宿主實體目錄 `/path/to/host/projects`
|
||||||
|
|
||||||
|
\- 使用者設定 / cache → Docker volume `/config/users`
|
||||||
|
|
||||||
|
\- 登出自動儲存
|
||||||
|
|
||||||
|
\- 支援 GitHub Copilot
|
||||||
|
|
||||||
|
\- 支援 WebSocket + 子域名
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\## 對應 docker-compose.yml 要求
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
|
||||||
|
- user\_config:/config/users
|
||||||
|
|
||||||
|
- /path/to/host/projects:/projects
|
||||||
|
|
||||||
|
- coder\_system:/config/coder
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
environment:
|
||||||
|
|
||||||
|
CODER\_ADDRESS: 0.0.0.0:3000
|
||||||
|
|
||||||
Reference in New Issue
Block a user