Skip to content

Latest commit

 

History

History
126 lines (93 loc) · 9.04 KB

ZED-DOCKER.md

File metadata and controls

126 lines (93 loc) · 9.04 KB

Zed IDE Integration in Docker Environments (Suomi)

🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇧🇦 bs · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW


Kun OmniRoute toimii Dockerissa, tavallinen "Tuo Zedin avainnipusta" -toiminto epäonnistuu, koska säilö ei voi käyttää isäntäkäyttöjärjestelmän avainnippupalvelua (Linuxissa libsecret, macOS:ssä Avainnippu ja Windowsissa Tunnistetietojen hallinta), eivätkä isäntätiedostojärjestelmän Zed-määrityshakemistot oletusarvoisesti näy säilön sisällä.

Miksi avainnipusta tuonti epäonnistuu Dockerissa

Säilön sisällä ilmenee kaksi estävää ongelmaa:

  1. Tiedostojärjestelmän eristys — isZedInstalled() etsii hakemistoa ~/.config/zed (Linux), ~/Library/Application Support/Zed (macOS) tai vastaavaa Windows-hakemistoa. Nämä polut sijaitsevat isäntäkoneella, eivätkä ne ole käytettävissä, ellei niitä liitetä erikseen taltiona.
  2. IPC-eristys — Vaikka määrityshakemisto olisi liitetty, natiivi keytar-moduuli kommunikoi käyttöjärjestelmän avainnippupalvelun kanssa Unix-pistokkeen tai D-Bus-istunnon kautta. Kumpaakaan ei oletusarvoisesti välitetä säilöön, joten tunnistetietojen lukeminen epäonnistuu aina.

OmniRoute tunnistaa Docker-ympäristön kahden heuristiikan avulla:

  • Tiedoston /.dockerenv olemassaolo (Docker-daemon kirjoittaa sen säilön käynnistyessä).
  • Merkkijonon docker esiintyminen tiedostossa /proc/1/cgroup (Linux cgroup v1).

Kun jompikumpi heuristiikka täsmää, tuontireitti palauttaa HTTP 422 -vastauksen, jossa on zedDockerEnvironment: true, sekä viestin, joka ohjaa Manuaalinen tunnuksen tuonti -välilehdelle.

Manuaalinen tunnuksen tuonti -välilehden käyttäminen

  1. Avaa Hallintapaneeli → Palveluntarjoajat → Zed.
  2. Manuaalinen tunnuksen tuonti -paneeli näkyy avainnipusta tuonnin kortin alapuolella. Kun OmniRoute tunnistaa Dockerin, tämä paneeli laajenee automaattisesti ensimmäisen epäonnistuneen avainnipusta tuonnin jälkeen.
  3. Valitse palveluntarjoaja avattavasta valikosta (OpenAI, Anthropic, Google, Mistral, xAI, OpenRouter tai DeepSeek).
  4. Liitä API-avain salasanakenttään.
  5. Napsauta Tuo.

Avain tallennetaan uutena palveluntarjoajayhteytenä nimellä Zed Manual Import (<provider>).

Minne Zed tallentaa API-avaimet isäntäkoneella

Zed tallentaa tekoälypalveluntarjoajien avaimet käyttöjärjestelmän avainnippuun palvelunimillä, kuten zed-openai, ai.zed.openai, zed-anthropic jne. Voit noutaa ne manuaalista tuontia varten seuraavista paikoista:

Linux

~/.config/zed/settings.json

language_models-osio sisältää palveluntarjoajien määritykset. Zedin käyttöliittymän kautta avainnippuun tallennetut avaimet eivät ole selväkielisinä tiedostossa settings.json; nouda ne avainnipun katseluohjelmalla, kuten GNOME Keyring / Seahorse, tai suorittamalla:

secret-tool lookup service zed-openai account api-key

macOS

~/Library/Application Support/Zed/settings.json

Avainnipun tietueet löytyvät Keychain Access.app -sovelluksesta hakemalla merkkijonoa zed.

Taltiointivaihtoehto (edistynyt)

Voit halutessasi liittää Zedin määrityshakemiston vain luku -tilassa säilöön. Tämä ei korjaa avainnippuongelmaa, mutta siitä voi olla hyötyä tuleville ominaisuuksille, jotka lukevat Zedin muita kuin salaisia määritysarvoja (esimerkiksi malliasetuksia).

# docker-compose.yml-katkelma
services:
  omniroute:
    image: omniroute:latest
    volumes:
      # Linux-isäntäkone
      - "${HOME}/.config/zed:/host-zed-config:ro"
      # macOS-isäntäkone (poista sen sijaan kommentointi)
      # - "${HOME}/Library/Application Support/Zed:/host-zed-config:ro"
    environment:
      # Tulevaisuudessa: ZED_CONFIG_PATH=/host-zed-config
      PORT: "20128"

Huomautus: ZED_CONFIG_PATH-ympäristömuuttujan ohitusta ei ole vielä toteutettu. Tämä katkelma toimii viitteenä, kun kyseinen ominaisuus lisätään.

Manuaalisen tuonnin API

Manuaalisen tuonnin päätepistettä voi kutsua myös suoraan:

POST /api/providers/zed/manual-import
Content-Type: application/json
Authorization: Bearer <oma_live_or_manage_scoped_api_key>

{
  "provider": "openai",
  "token": "sk-...",
  "label": "Oma Zed OpenAI -avaimeni"   // valinnainen
}

Onnistuessaan se palauttaa:

{ "success": true, "connectionId": "...", "provider": "openai" }

Vianmääritys

Oire Syy Korjaus
422 + zedDockerEnvironment: true Suoritetaan Dockerissa Käytä Manuaalinen tunnuksen tuonti -välilehteä
404 + zedInstalled: false Zediä ei ole asennettu isäntäkoneelle Asenna Zed tai käytä manuaalista tuontia
403 + pääsy avainnippuun estetty Käyttöjärjestelmä esti pääsyn avainnippuun Myönnä käyttöoikeus käyttöjärjestelmän kehotteessa
404 + avainnippupalvelu ei ole käytettävissä libsecret puuttuu Linuxista Asenna libsecret-1-dev