diff --git a/.claude/settings.local.json b/.claude/settings.local.json new file mode 100644 index 0000000..5557eae --- /dev/null +++ b/.claude/settings.local.json @@ -0,0 +1,9 @@ +{ + "permissions": { + "allow": [ + "Bash(git add:*)" + ], + "deny": [], + "ask": [] + } +} \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index a5c70a8..4501665 100644 --- a/Dockerfile +++ b/Dockerfile @@ -23,6 +23,33 @@ RUN curl -q -L -o vscode.deb https://update.code.visualstudio.com/1.103.2/linux- && apt-get install ./vscode.deb \ && rm -rf ./vscode.deb /etc/apt/sources.list.d/vscode.sources +# install .NET 8 and .NET 9 +RUN curl -q -L -o packages-microsoft-prod.deb https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb \ + && dpkg -i packages-microsoft-prod.deb \ + && rm packages-microsoft-prod.deb \ + && apt-get update \ + && apt-get install -y dotnet-sdk-8.0 dotnet-sdk-9.0 \ + && apt-get clean && rm -rf /var/lib/apt/lists/* + +# install cursor ide +RUN curl -q -L -o cursor.deb https://downloader.cursor.sh/linux/appImage/x64 \ + && mv cursor.deb cursor.AppImage \ + && chmod +x cursor.AppImage \ + && ./cursor.AppImage --appimage-extract \ + && mv squashfs-root /opt/cursor \ + && ln -s /opt/cursor/cursor /usr/bin/cursor \ + && rm cursor.AppImage + +# install claude code cli +RUN curl -q -L -o claude_cli.tar.gz https://github.com/anthropics/claude-cli/releases/latest/download/claude-cli-linux-x64.tar.gz \ + && tar -xzf claude_cli.tar.gz \ + && mv claude /usr/local/bin/claude \ + && chmod +x /usr/local/bin/claude \ + && rm claude_cli.tar.gz + +# install gemini cli +RUN npm install -g @google/generative-ai-cli + COPY entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh diff --git a/README.md b/README.md index ab0f3e9..b237b7e 100644 --- a/README.md +++ b/README.md @@ -8,10 +8,15 @@ RDP(리모트 데스크탑) 지원하는 경량 debian 13 (trixie) base 한글 X # 설치된 프로그램 - Visual studio code +- Cursor IDE - Chromium - vim - git - npm + nodejs +- .NET SDK 8.0 +- .NET SDK 9.0 +- Claude CLI +- Gemini CLI # 사용법 - docker 3389 port 열어서 띄우시면 됩니다. 그 후 윈도우 원격 데스크탑(3389포트)으로 해당 컨테이너 접속. @@ -25,6 +30,10 @@ RDP(리모트 데스크탑) 지원하는 경량 debian 13 (trixie) base 한글 X - 보안 상 로컬리소스가 붙는게 막혀있습니다. 로컬 리소스를 연결해서 CTRL+C / CTRL+V 같은 파일 복사를 원하시는 경우에는 privileged 모드로 실행하세요. - privileged 모드로 실행하는 경우 C: 같은 드라이브는 home 디렉토리 내 thinclient_drives 에 마운트 됩니다. +# AI CLI 도구 설정 +- **Claude CLI**: 컨테이너 실행 후 `claude auth` 명령어로 API 키 설정 필요 +- **Gemini CLI**: `genai config set api_key YOUR_API_KEY` 명령어로 API 키 설정 필요 + # 새 사용자 생성 sudo su 하셔서 루트 권한으로 adduser 하시면 됩니다. diff --git a/entrypoint.sh b/entrypoint.sh index 415ca02..3d257e8 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -41,6 +41,10 @@ if [ "$SANDBOX_CHECK_EXIT_CODE" -ne 0 ]; then rm -rf /usr/bin/code ln -s /usr/share/code/bin/code /usr/bin/code sed -i 's|ELECTRON_RUN_AS_NODE=1 "\$ELECTRON" "\$CLI" "\$@"|ELECTRON_RUN_AS_NODE=1 "\$ELECTRON" "\$CLI" --no-sandbox --disable-gpu "\$@"|' /usr/share/code/bin/code + # cursor also needs no-sandbox mode + if [ -f /opt/cursor/cursor ]; then + sed -i 's|exec "\$HERE/cursor"|exec "\$HERE/cursor" --no-sandbox --disable-gpu|' /opt/cursor/cursor 2>/dev/null || true + fi fi set -e diff --git a/initial-resource/Desktop/cursor.desktop b/initial-resource/Desktop/cursor.desktop new file mode 100644 index 0000000..df56a97 --- /dev/null +++ b/initial-resource/Desktop/cursor.desktop @@ -0,0 +1,7 @@ +[Desktop Entry] +Name=Cursor +Comment=AI-first code editor +Exec=/usr/bin/cursor %F +Icon=cursor +Terminal=false +Type=Application \ No newline at end of file